From b46784db9ef2a319d8d214c0aacff07542581a59 Mon Sep 17 00:00:00 2001 From: zhaoqing <3160641494@qq.com> Date: Thu, 4 Jun 2026 18:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=8F=A3=E4=BB=93=E5=8D=95=E5=9E=8B?= =?UTF-8?q?=E5=8F=B7=E8=A7=84=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PickingOrderApplicationService.java | 44 ++++++++++++++++++- .../repository/po/PickingOrderPO.java | 4 ++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index c57edb1bb..c86b48975 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -23,6 +23,8 @@ import com.mhd.system.api.domain.cache.SystemServiceCacheUtil; import com.mhd.system.api.model.LoginUser; import com.mhd.wms.application.service.materialBaseInfo.MaterialBaseInfoApplicationService; import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; +import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; +import com.mhd.wms.domain.inMaterialDetail.repository.facade.IInMaterialDetailService; import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO; @@ -89,6 +91,8 @@ public class PickingOrderApplicationService { private MaterialBaseInfoApplicationService materialBaseInfoApplicationService; @Autowired private IPickingMaterialDetailService pickingMaterialDetailService; + @Autowired + private IInMaterialDetailService inMaterialDetailService; private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; @@ -192,9 +196,47 @@ public class PickingOrderApplicationService { pickingOrderPO.setMaterialQuantity(0); } } + + // ========== 批量查保管明细表补规格型号 ========== + Set inOrderNumberSet = new HashSet<>(); + Set materialBaseInfoIdSet = new HashSet<>(); + for (List details : materialDetailsByOrderNumber.values()) { + for (PickingMaterialDetailPO d : details) { + if (StringUtils.isNotBlank(d.getInOrderNumber()) && d.getMaterialBaseInfoId() != null) { + inOrderNumberSet.add(d.getInOrderNumber()); + materialBaseInfoIdSet.add(d.getMaterialBaseInfoId()); + } + } + } + if (!inOrderNumberSet.isEmpty() && !materialBaseInfoIdSet.isEmpty()) { + LambdaQueryWrapper inWrapper = new LambdaQueryWrapper<>(); + inWrapper.in(InMaterialDetail::getInOrderNumber, inOrderNumberSet); + inWrapper.in(InMaterialDetail::getMaterialBaseInfoId, materialBaseInfoIdSet); + inWrapper.eq(InMaterialDetail::getDelFlag, 1); + List inDetailList = inMaterialDetailService.list(inWrapper); + // 按 inOrderNumber + materialBaseInfoId 分组 + Map>> grouped = inDetailList.stream() + .collect(Collectors.groupingBy(InMaterialDetail::getInOrderNumber, + Collectors.groupingBy(InMaterialDetail::getMaterialBaseInfoId))); + // 回填到拣货单头 + for (PickingOrderPO po : pickingOrderPOList) { + List details = materialDetailsByOrderNumber.get(po.getPickingOrderNumber()); + if (CollectionUtils.isEmpty(details)) continue; + PickingMaterialDetailPO first = details.get(0); + Map> byBaseId = grouped.get(first.getInOrderNumber()); + if (byBaseId != null) { + List list = byBaseId.get(first.getMaterialBaseInfoId()); + if (list != null && !list.isEmpty()) { + po.setSpecificationModel(list.get(0).getSpecificationModel()); + } + } + } + } + // ========== 批量查保管明细表补规格型号结束 ========== + } } - + return pickingOrderPOList; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java index 6721e7bb2..11aafedc9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/po/PickingOrderPO.java @@ -162,4 +162,8 @@ public class PickingOrderPO extends StockOutOrderBasePO { @ApiModelProperty("是否报关") private String needDeclareFlag; + + @ApiModelProperty("规格型号") + @Excel(name = "规格型号") + private String specificationModel; } \ No newline at end of file