feat(wms): 返回补充的信息

This commit is contained in:
2025-11-15 15:37:50 +08:00
parent 3ffa9f5c89
commit 9e02caecf2
2 changed files with 62 additions and 7 deletions

View File

@@ -33,7 +33,9 @@ import com.klp.service.IWmsWarehouseService;
import com.klp.service.IWmsActualWarehouseService;
import com.klp.service.IWmsRawMaterialService;
import com.klp.service.IWmsBomItemService;
import com.klp.service.IWmsProductService;
import com.klp.domain.vo.WmsActualWarehouseVo;
import com.klp.domain.vo.WmsProductVo;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
@@ -63,6 +65,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
private final IWmsActualWarehouseService actualWarehouseService;
private final IWmsRawMaterialService rawMaterialService;
private final IWmsBomItemService bomItemService;
private final IWmsProductService productService;
/**
* 查询钢卷物料表
@@ -126,13 +129,13 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
// 查询产品信息当itemType为product时
if ("product".equals(vo.getItemType()) && vo.getItemId() != null) {
// 产品和原材料的查询逻辑相同都通过itemId查询
WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId());
WmsProductVo product = productService.queryById(vo.getItemId());
vo.setProduct(product);
// 查询原材料对应的BOM信息通过bomId查询BomItem列表
if (rawMaterial != null && rawMaterial.getBomId() != null) {
// 查询产品对应的BOM信息通过bomId查询BomItem列表
if (product != null && product.getBomId() != null) {
WmsBomItemBo bomItemBo = new WmsBomItemBo();
bomItemBo.setBomId(rawMaterial.getBomId());
bomItemBo.setBomId(product.getBomId());
List<WmsBomItemVo> bomItemList = bomItemService.queryList(bomItemBo);
vo.setBomItemList(bomItemList);
}
@@ -146,6 +149,12 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
public TableDataInfo<WmsMaterialCoilVo> queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery) {
QueryWrapper<WmsMaterialCoil> qw = buildQueryWrapperPlus(bo);
Page<WmsMaterialCoilVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
// 填充每个记录的产品或原材料对象
for (WmsMaterialCoilVo vo : result.getRecords()) {
fillItemObject(vo);
}
return TableDataInfo.build(result);
}
@@ -200,7 +209,51 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
@Override
public List<WmsMaterialCoilVo> queryList(WmsMaterialCoilBo bo) {
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
return baseMapper.selectVoListWithDynamicJoin(lqw);
List<WmsMaterialCoilVo> list = baseMapper.selectVoListWithDynamicJoin(lqw);
// 填充每个记录的产品或原材料对象
for (WmsMaterialCoilVo vo : list) {
fillItemObject(vo);
}
return list;
}
/**
* 填充物品对象(产品或原材料)
*/
private void fillItemObject(WmsMaterialCoilVo vo) {
if (vo.getItemId() == null || vo.getItemType() == null) {
return;
}
// 查询原材料信息
if ("raw_material".equals(vo.getItemType())) {
WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId());
vo.setRawMaterial(rawMaterial);
// 查询原材料对应的BOM信息
if (rawMaterial != null && rawMaterial.getBomId() != null) {
WmsBomItemBo bomItemBo = new WmsBomItemBo();
bomItemBo.setBomId(rawMaterial.getBomId());
List<WmsBomItemVo> bomItemList = bomItemService.queryList(bomItemBo);
vo.setBomItemList(bomItemList);
}
}
// 查询产品信息
if ("product".equals(vo.getItemType())) {
WmsProductVo product = productService.queryById(vo.getItemId());
vo.setProduct(product);
// 查询产品对应的BOM信息
if (product != null && product.getBomId() != null) {
WmsBomItemBo bomItemBo = new WmsBomItemBo();
bomItemBo.setBomId(product.getBomId());
List<WmsBomItemVo> bomItemList = bomItemService.queryList(bomItemBo);
vo.setBomItemList(bomItemList);
}
}
}
/**