Files
klp-oa/klp-wms/src/main/java/com/klp/service/impl/WmsBomServiceImpl.java

112 lines
3.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsBomBo;
import com.klp.domain.vo.WmsBomVo;
import com.klp.domain.WmsBom;
import com.klp.mapper.WmsBomMapper;
import com.klp.service.IWmsBomService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* BOM 头关联产品或原材料Service业务层处理
*
* @author Joshi
* @date 2025-07-29
*/
@RequiredArgsConstructor
@Service
public class WmsBomServiceImpl implements IWmsBomService {
private final WmsBomMapper baseMapper;
/**
* 查询BOM 头,关联产品或原材料
*/
@Override
public WmsBomVo queryById(Long bomId){
return baseMapper.selectVoById(bomId);
}
/**
* 查询BOM 头,关联产品或原材料列表
*/
@Override
public TableDataInfo<WmsBomVo> queryPageList(WmsBomBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsBom> lqw = buildQueryWrapper(bo);
Page<WmsBomVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询BOM 头,关联产品或原材料列表
*/
@Override
public List<WmsBomVo> queryList(WmsBomBo bo) {
LambdaQueryWrapper<WmsBom> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsBom> buildQueryWrapper(WmsBomBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsBom> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getBomCode()), WmsBom::getBomCode, bo.getBomCode());
lqw.like(StringUtils.isNotBlank(bo.getBomName()), WmsBom::getBomName, bo.getBomName());
lqw.eq(bo.getIsEnabled() != null, WmsBom::getIsEnabled, bo.getIsEnabled());
return lqw;
}
/**
* 新增BOM 头,关联产品或原材料
*/
@Override
public WmsBomBo insertByBo(WmsBomBo bo) {
WmsBom add = BeanUtil.toBean(bo, WmsBom.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setBomId(add.getBomId());
}
return bo;
}
/**
* 修改BOM 头,关联产品或原材料
*/
@Override
public Boolean updateByBo(WmsBomBo bo) {
WmsBom update = BeanUtil.toBean(bo, WmsBom.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsBom entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除BOM 头,关联产品或原材料
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}