From 285c642243cfc02c2c259d1132e6e49f97993267 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Mon, 11 Aug 2025 09:35:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E5=8E=9F?= =?UTF-8?q?=E6=9D=90=E6=96=99=E5=9C=A8=E9=80=94=E4=BF=A1=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsStockServiceImpl 中添加填充原材料在途信息的方法 - 在 WmsStockVo 中添加在途量字段 - 通过查询采购计划明细来获取在途量 --- .../java/com/klp/domain/vo/WmsStockVo.java | 6 +++ .../klp/service/impl/WmsStockServiceImpl.java | 37 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsStockVo.java index 4a6f7abb..cda0849d 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsStockVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsStockVo.java @@ -86,4 +86,10 @@ public class WmsStockVo { @ExcelProperty(value = "仓库/库区名称") private String warehouseName; + /** + * 在途量 + */ + @ExcelProperty(value = "在途量") + private BigDecimal onTheWay; + } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsStockServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsStockServiceImpl.java index e470c4c5..e3370503 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsStockServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsStockServiceImpl.java @@ -8,6 +8,10 @@ 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 com.klp.domain.bo.WmsPurchasePlanDetailBo; +import com.klp.domain.vo.WmsPurchasePlanDetailVo; +import com.klp.domain.vo.WmsRawMaterialVo; +import com.klp.service.IWmsPurchasePlanDetailService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsStockBo; @@ -36,6 +40,8 @@ public class WmsStockServiceImpl implements IWmsStockService { private final WmsStockMapper baseMapper; private final WmsWarehouseMapper warehouseMapper; + private final IWmsPurchasePlanDetailService purchasePlanDetailService; + /** * 查询库存:原材料/产品与库区/库位的存放关系 @@ -52,9 +58,40 @@ public class WmsStockServiceImpl implements IWmsStockService { public TableDataInfo queryPageList(WmsStockBo bo, PageQuery pageQuery) { QueryWrapper lqw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + fillDemandInfo(result.getRecords()); return TableDataInfo.build(result); } + /** + * 填充原材料在途信息 + */ + private void fillDemandInfo(List rawMaterialList) { + if (rawMaterialList == null || rawMaterialList.isEmpty()) { + return; + } + // 为每个原材料填充信息 + for (WmsStockVo vo : rawMaterialList) { + Long rawMaterialId = vo.getItemId(); + // 查询在途量(采购计划明细) + BigDecimal onTheWay = getOnTheWayQuantity(rawMaterialId); + vo.setOnTheWay(onTheWay); + } + } + + /** + * 获取在途量 + */ + private BigDecimal getOnTheWayQuantity(Long rawMaterialId) { + WmsPurchasePlanDetailBo bo = new WmsPurchasePlanDetailBo(); + bo.setRawMaterialId(rawMaterialId); + List list = purchasePlanDetailService.queryList(bo); + return list.stream() + .filter(item -> item.getStatus() != null && item.getStatus() == 1) // 在途状态 + .map(WmsPurchasePlanDetailVo::getQuantity) + .filter(qty -> qty != null) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + /** * 查询库存:原材料/产品与库区/库位的存放关系列表 */