diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index d04eaebd0..8f0b50e75 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -790,7 +790,12 @@ public class StockOutOrderDomainService { outMaterialDetailPO.setCheckVolume(pickingMaterialDetailPO.getTotalVolume()); outMaterialDetailPO.setCheckNetWeight(pickingMaterialDetailPO.getTotalNetWeight()); outMaterialDetailPO.setCheckGrossWeight(pickingMaterialDetailPO.getTotalGrossWeight()); - outMaterialDetailPO.setWaitCheckQuantity(outMaterialDetailPO.getPickingQuantity()); + // 复核明细按已拣货完成数量:优先使用 picking_material_detail 汇总的拣货数量(真实拣货数据) + if (pickingMaterialDetailPO.getPickingQuantity() != null && pickingMaterialDetailPO.getPickingQuantity().compareTo(BigDecimal.ZERO) > 0) { + outMaterialDetailPO.setWaitCheckQuantity(pickingMaterialDetailPO.getPickingQuantity()); + } else { + outMaterialDetailPO.setWaitCheckQuantity(outMaterialDetailPO.getPickingQuantity()); + } } List children = outMaterialDetailPO.getChildren(); if (!CollectionUtils.isEmpty(children)) { @@ -808,7 +813,12 @@ public class StockOutOrderDomainService { outMaterialDetailPOChild.setCheckVolume(pickingMaterialDetailPO1.getTotalVolume()); outMaterialDetailPOChild.setCheckNetWeight(pickingMaterialDetailPO1.getTotalNetWeight()); outMaterialDetailPOChild.setCheckGrossWeight(pickingMaterialDetailPO1.getTotalGrossWeight()); - outMaterialDetailPOChild.setWaitCheckQuantity(outMaterialDetailPOChild.getPickingQuantity()); + // 复核明细按已拣货完成数量:优先使用 picking_material_detail 汇总的拣货数量(真实拣货数据) + if (pickingMaterialDetailPO1.getPickingQuantity() != null && pickingMaterialDetailPO1.getPickingQuantity().compareTo(BigDecimal.ZERO) > 0) { + outMaterialDetailPOChild.setWaitCheckQuantity(pickingMaterialDetailPO1.getPickingQuantity()); + } else { + outMaterialDetailPOChild.setWaitCheckQuantity(outMaterialDetailPOChild.getPickingQuantity()); + } } } } @@ -821,7 +831,10 @@ public class StockOutOrderDomainService { for (OutMaterialDetailPO outMaterialDetailPO : outMaterialDetailPOList){ weightLimit = weightLimit.add(outMaterialDetailPO.getWeightLimit()); volumeLimit = volumeLimit.add(outMaterialDetailPO.getVolumeLimit()); - wantNumber = wantNumber.add(outMaterialDetailPO.getPickingQuantity()); + // 待复核数量按已拣货完成数量:优先 waitCheckQuantity(来自 picking_material_detail),否则用 pickingQuantity + BigDecimal qty = (outMaterialDetailPO.getWaitCheckQuantity() != null && outMaterialDetailPO.getWaitCheckQuantity().compareTo(BigDecimal.ZERO) > 0) + ? outMaterialDetailPO.getWaitCheckQuantity() : outMaterialDetailPO.getPickingQuantity(); + wantNumber = wantNumber.add(qty != null ? qty : BigDecimal.ZERO); alreadyNumber = alreadyNumber.add(outMaterialDetailPO.getCheckQuantity()); } OutMaterialCheckPO outMaterialCheckPO = new OutMaterialCheckPO(); @@ -863,7 +876,12 @@ public class StockOutOrderDomainService { // 3. 为每个物料明细设置更多属性(从库存表中获取值) setMaterialMoreDetailListFromInventory(materialDetailList, batchDetailMap); - materialDetailList.removeIf(detail -> detail.getPickingQuantity() != null && detail.getPickingQuantity().compareTo(BigDecimal.ONE) < 0); + // 过滤无拣货数量的明细:pickingQuantity 或 waitCheckQuantity 任一 >= 1 则保留(waitCheckQuantity 来自 picking_material_detail 已拣货数量) + materialDetailList.removeIf(detail -> { + BigDecimal pickQty = detail.getPickingQuantity() != null ? detail.getPickingQuantity() : BigDecimal.ZERO; + BigDecimal waitQty = detail.getWaitCheckQuantity() != null ? detail.getWaitCheckQuantity() : BigDecimal.ZERO; + return pickQty.compareTo(BigDecimal.ONE) < 0 && waitQty.compareTo(BigDecimal.ONE) < 0; + }); stockOutOrderPO.setMaterialDetailList(materialDetailList); return stockOutOrderPO; } diff --git a/mhd_wms/src/main/resources/mapper/pickingMaterialDetail/PickingMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/pickingMaterialDetail/PickingMaterialDetailMapper.xml index ba330c641..427e1c786 100644 --- a/mhd_wms/src/main/resources/mapper/pickingMaterialDetail/PickingMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/pickingMaterialDetail/PickingMaterialDetailMapper.xml @@ -191,11 +191,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"