feat(wms): 新增产品和原材料BOM信息查询功能

- 在IWmsProductService接口中新增queryPageListWithBom方法
- 在IWmsRawMaterialService接口中新增queryPageListWithBom方法
- 在WmsProductController中新增listWithBom接口
- 在WmsRawMaterialController中新增listWithBom接口
- 在WmsProductServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑
- 在WmsRawMaterialServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑
- 在WmsProductVo和WmsRawMaterialVo中新增bomItems字段用于存储BOM明细信息
This commit is contained in:
2025-10-31 15:57:48 +08:00
parent 056b6aabac
commit 5bd8769a7b
8 changed files with 108 additions and 0 deletions

View File

@@ -46,6 +46,14 @@ public class WmsProductController extends BaseController {
return iWmsProductService.queryPageList(bo, pageQuery);
}
/**
* 查询产品列表带BOM信息
*/
@GetMapping("/listWithBom")
public TableDataInfo<WmsProductVo> listWithBom(WmsProductBo bo, PageQuery pageQuery) {
return iWmsProductService.queryPageListWithBom(bo, pageQuery);
}
/**
* 导出产品列表
*/

View File

@@ -45,6 +45,14 @@ public class WmsRawMaterialController extends BaseController {
return iWmsRawMaterialService.queryPageList(bo, pageQuery);
}
/**
* 查询原材料列表带BOM信息
*/
@GetMapping("/listWithBom")
public TableDataInfo<WmsRawMaterialVo> listWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
return iWmsRawMaterialService.queryPageListWithBom(bo, pageQuery);
}
/**
* 导出原材料列表
*/

View File

@@ -1,6 +1,8 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
@@ -116,5 +118,10 @@ public class WmsProductVo {
@ExcelProperty(value = "类型")
private String type;
/**
* BOM明细信息
*/
private List<WmsBomItemVo> bomItems;
}

View File

@@ -1,6 +1,8 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
@@ -211,5 +213,10 @@ public class WmsRawMaterialVo {
@ExcelProperty(value = "在途量")
private BigDecimal onTheWay;
/**
* BOM明细信息
*/
private List<WmsBomItemVo> bomItems;
}

View File

@@ -48,5 +48,10 @@ public interface IWmsProductService {
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询产品列表带BOM信息
*/
TableDataInfo<WmsProductVo> queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery);
DashboardOverviewVO getDashboardOverview();
}

View File

@@ -51,4 +51,9 @@ public interface IWmsRawMaterialService {
* 查询原材料列表(含需求、库存、在途信息)
*/
TableDataInfo<WmsRawMaterialVo> queryPageListWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery);
/**
* 查询原材料列表带BOM信息
*/
TableDataInfo<WmsRawMaterialVo> queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery);
}

View File

@@ -22,6 +22,7 @@ import com.klp.service.IWmsBomService;
import com.klp.service.IWmsBomItemService;
import com.klp.domain.bo.WmsBomBo;
import com.klp.domain.bo.WmsBomItemBo;
import com.klp.domain.vo.WmsBomItemVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -61,6 +62,20 @@ public class WmsProductServiceImpl implements IWmsProductService {
return TableDataInfo.build(result);
}
/**
* 查询产品列表带BOM信息
*/
@Override
public TableDataInfo<WmsProductVo> queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsProduct> lqw = buildQueryWrapper(bo);
Page<WmsProductVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// 填充BOM信息
fillBomInfo(result.getRecords());
return TableDataInfo.build(result);
}
/**
* 查询产品列表
*/
@@ -162,6 +177,25 @@ public class WmsProductServiceImpl implements IWmsProductService {
return baseMapper.updateById(update) > 0;
}
/**
* 填充BOM信息
*/
private void fillBomInfo(List<WmsProductVo> productList) {
if (productList == null || productList.isEmpty()) {
return;
}
for (WmsProductVo vo : productList) {
if (vo.getBomId() != null) {
// 查询BOM明细
WmsBomItemBo bomItemBo = new WmsBomItemBo();
bomItemBo.setBomId(vo.getBomId());
List<WmsBomItemVo> bomItems = wmsBomItemService.queryList(bomItemBo);
vo.setBomItems(bomItems);
}
}
}
/**
* 保存前的数据校验
*/

View File

@@ -30,6 +30,7 @@ import com.klp.service.IWmsBomService;
import com.klp.service.IWmsBomItemService;
import com.klp.domain.bo.WmsBomBo;
import com.klp.domain.bo.WmsBomItemBo;
import com.klp.domain.vo.WmsBomItemVo;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
@@ -75,6 +76,20 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService {
return TableDataInfo.build(result);
}
/**
* 查询原材料列表带BOM信息
*/
@Override
public TableDataInfo<WmsRawMaterialVo> queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsRawMaterial> lqw = buildQueryWrapper(bo);
Page<WmsRawMaterialVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// 填充BOM信息
fillBomInfo(result.getRecords());
return TableDataInfo.build(result);
}
/**
* 查询原材料列表
*/
@@ -272,6 +287,25 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService {
return baseMapper.updateById(update) > 0;
}
/**
* 填充BOM信息
*/
private void fillBomInfo(List<WmsRawMaterialVo> rawMaterialList) {
if (rawMaterialList == null || rawMaterialList.isEmpty()) {
return;
}
for (WmsRawMaterialVo vo : rawMaterialList) {
if (vo.getBomId() != null) {
// 查询BOM明细
WmsBomItemBo bomItemBo = new WmsBomItemBo();
bomItemBo.setBomId(vo.getBomId());
List<WmsBomItemVo> bomItems = wmsBomItemService.queryList(bomItemBo);
vo.setBomItems(bomItems);
}
}
}
/**
* 保存前的数据校验
*/