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); + } + } + } + /** * 保存前的数据校验 */