diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index 90447f556..b3bf9bde4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -303,6 +303,9 @@ public class StockOutOrderApplicationService { } if (pickQty.compareTo(BigDecimal.ZERO) <= 0) { detailList.remove(i); + } else if (Integer.valueOf(1).equals(review) && d.getUniqueId() != null) { + // 需要复核时:用 picking_material_detail 的拣货数量覆盖展示,保证已拣货数量正确 + d.setPickingQuantity(pickQty); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java index d5a7da647..d5a07e167 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/deliveTask/repository/persistence/DeliveTaskImpl.java @@ -125,15 +125,6 @@ public class DeliveTaskImpl extends ServiceImpl im } deliveTaskPO.setHandoverStatus(handoverTaskOrder.getStatus());//交接状态: 1-未交接 2-已交接,与PC端保持一致 String orderNumber = handoverTaskOrder.getOrderNumber();//出库单号 - PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); - pickingOrderDTO.setOrderNumber(orderNumber); - PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); - List pickingList = pickingOrderService.queryList(pickingOrderDO); - if (!pickingList.isEmpty()) { - PickingOrderPO pickingOrderPOS = pickingList.get(0); - BigDecimal pickingQuantity = pickingOrderPOS.getPickingQuantity();//已拣货数量 - deliveTaskPO.setPickingQuantity(pickingQuantity); - } // 已复核数量、出库单信息:直接从出库单获取(需在物料统计前获取,用于判断是否需要复核) StockOutOrder stockOutOrder = stockOutOrderService.getOne(new LambdaQueryWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber)); @@ -143,6 +134,24 @@ public class DeliveTaskImpl extends ServiceImpl im deliveTaskPO.setShipperName(stockOutOrder.getShipperName()); deliveTaskPO.setCarrier(stockOutOrder.getCarrier()); deliveTaskPO.setCheckQuantity(stockOutOrder.getCheckQuantity());//已复核数量 + // 已拣货数量:需要复核时用 picking_material_detail 汇总(与交接详情一致),否则用 picking_order + BigDecimal pickingQuantity; + if (Integer.valueOf(1).equals(stockOutOrder.getReview())) { + pickingQuantity = pickingMaterialDetailMapper.sumPickingQuantityByOutOrderNumber(orderNumber); + } else { + PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); + pickingOrderDTO.setOrderNumber(orderNumber); + List pickingList = pickingOrderService.queryList(pickingOrderAssembler.toDO(pickingOrderDTO)); + pickingQuantity = pickingList.isEmpty() ? BigDecimal.ZERO : (pickingList.get(0).getPickingQuantity() != null ? pickingList.get(0).getPickingQuantity() : BigDecimal.ZERO); + } + deliveTaskPO.setPickingQuantity(pickingQuantity != null ? pickingQuantity : BigDecimal.ZERO); + } else { + // 无出库单时仍从拣货单取已拣货数量 + PickingOrderDTO pickingOrderDTO = new PickingOrderDTO(); + pickingOrderDTO.setOrderNumber(orderNumber); + List pickingList = pickingOrderService.queryList(pickingOrderAssembler.toDO(pickingOrderDTO)); + BigDecimal pickingQuantity = pickingList.isEmpty() ? BigDecimal.ZERO : (pickingList.get(0).getPickingQuantity() != null ? pickingList.get(0).getPickingQuantity() : BigDecimal.ZERO); + deliveTaskPO.setPickingQuantity(pickingQuantity); } // 物料种类数:从出库明细按料号去重统计,pickingQuantity 为 0 的过滤掉(与交接详情一致) List omdList = outMaterialDetailService.list(new LambdaQueryWrapper()