From 5bd8769a7bf5e5ce244140aa4cbf1f87a34f5d63 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 31 Oct 2025 15:57:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=92=8C=E5=8E=9F=E6=9D=90=E6=96=99BOM=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IWmsProductService接口中新增queryPageListWithBom方法 - 在IWmsRawMaterialService接口中新增queryPageListWithBom方法 - 在WmsProductController中新增listWithBom接口 - 在WmsRawMaterialController中新增listWithBom接口 - 在WmsProductServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑 - 在WmsRawMaterialServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑 - 在WmsProductVo和WmsRawMaterialVo中新增bomItems字段用于存储BOM明细信息 --- .../klp/controller/WmsProductController.java | 8 +++++ .../controller/WmsRawMaterialController.java | 8 +++++ .../java/com/klp/domain/vo/WmsProductVo.java | 7 ++++ .../com/klp/domain/vo/WmsRawMaterialVo.java | 7 ++++ .../com/klp/service/IWmsProductService.java | 5 +++ .../klp/service/IWmsRawMaterialService.java | 5 +++ .../service/impl/WmsProductServiceImpl.java | 34 +++++++++++++++++++ .../impl/WmsRawMaterialServiceImpl.java | 34 +++++++++++++++++++ 8 files changed, 108 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProductController.java b/klp-wms/src/main/java/com/klp/controller/WmsProductController.java index d3d27886..013f6790 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsProductController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsProductController.java @@ -46,6 +46,14 @@ public class WmsProductController extends BaseController { return iWmsProductService.queryPageList(bo, pageQuery); } + /** + * 查询产品列表(带BOM信息) + */ + @GetMapping("/listWithBom") + public TableDataInfo listWithBom(WmsProductBo bo, PageQuery pageQuery) { + return iWmsProductService.queryPageListWithBom(bo, pageQuery); + } + /** * 导出产品列表 */ diff --git a/klp-wms/src/main/java/com/klp/controller/WmsRawMaterialController.java b/klp-wms/src/main/java/com/klp/controller/WmsRawMaterialController.java index fde4fb26..abbdcba4 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsRawMaterialController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsRawMaterialController.java @@ -45,6 +45,14 @@ public class WmsRawMaterialController extends BaseController { return iWmsRawMaterialService.queryPageList(bo, pageQuery); } + /** + * 查询原材料列表(带BOM信息) + */ + @GetMapping("/listWithBom") + public TableDataInfo listWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) { + return iWmsRawMaterialService.queryPageListWithBom(bo, pageQuery); + } + /** * 导出原材料列表 */ diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductVo.java index ad2db09f..82af994b 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsProductVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsProductVo.java @@ -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 bomItems; + } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsRawMaterialVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsRawMaterialVo.java index 26bc5a08..7b107822 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsRawMaterialVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsRawMaterialVo.java @@ -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 bomItems; } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsProductService.java b/klp-wms/src/main/java/com/klp/service/IWmsProductService.java index ee6c5cff..cb548d13 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsProductService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsProductService.java @@ -48,5 +48,10 @@ public interface IWmsProductService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 查询产品列表(带BOM信息) + */ + TableDataInfo queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery); + DashboardOverviewVO getDashboardOverview(); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsRawMaterialService.java b/klp-wms/src/main/java/com/klp/service/IWmsRawMaterialService.java index 1e9134dc..66e1a0ab 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsRawMaterialService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsRawMaterialService.java @@ -51,4 +51,9 @@ public interface IWmsRawMaterialService { * 查询原材料列表(含需求、库存、在途信息) */ TableDataInfo queryPageListWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery); + + /** + * 查询原材料列表(带BOM信息) + */ + TableDataInfo queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java index 10963a5c..67494def 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java @@ -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 queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page 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 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 bomItems = wmsBomItemService.queryList(bomItemBo); + vo.setBomItems(bomItems); + } + } + } + /** * 保存前的数据校验 */ diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java index f34239ed..9731b507 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsRawMaterialServiceImpl.java @@ -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 queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page 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 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 bomItems = wmsBomItemService.queryList(bomItemBo); + vo.setBomItems(bomItems); + } + } + } + /** * 保存前的数据校验 */