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 f52ad744f..7e824fc0b 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 @@ -36,6 +36,7 @@ import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService; +import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; @@ -80,6 +81,8 @@ public class StockOutOrderApplicationService { private IStockOutOrderService stockOutOrderService; @Autowired private IOutMaterialDetailService outMaterialDetailService; + @Autowired + private IPickingMaterialDetailService pickingMaterialDetailService; /** @@ -151,7 +154,15 @@ public class StockOutOrderApplicationService { BigDecimal reduce = materialDetailList.stream().map(OutMaterialDetailPO::getOutboundQuantity).reduce(BigDecimal.ZERO, BigDecimal::add); stockOutOrderPO.setTotalOutboundQuantity(reduce); stockOutOrderPO.setAllocationQuantity(stockOutOrderPO1.getAllocationQuantity()); - stockOutOrderPO.setPickingQuantity(stockOutOrderPO1.getPickingQuantity()); + // PDA复核物料总数量:使用实际下发时的拣货完成数量(picking_material_detail),而非计划数量 + String outOrderNumber = stockOutOrderPO.getOutOrderNumber(); + BigDecimal actualPickingQty = pickingMaterialDetailService.sumPickingQuantityByOutOrderNumber(outOrderNumber); + stockOutOrderPO.setPickingQuantity(actualPickingQty.compareTo(BigDecimal.ZERO) > 0 ? actualPickingQty : stockOutOrderPO1.getPickingQuantity()); + // 物料种类:按有拣货数量的明细统计 + Integer materialTypeCount = pickingMaterialDetailService.countMaterialTypesByOutOrderNumber(outOrderNumber); + if (materialTypeCount != null && materialTypeCount > 0) { + stockOutOrderPO.setMaterialQuantity(materialTypeCount); + } stockOutOrderPO.setCheckQuantity(stockOutOrderPO1.getCheckQuantity()); } return stockOutOrderPOS; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/facade/IPickingMaterialDetailService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/facade/IPickingMaterialDetailService.java index adf4361c3..52849db3e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/facade/IPickingMaterialDetailService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/facade/IPickingMaterialDetailService.java @@ -9,6 +9,7 @@ import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -26,6 +27,16 @@ public interface IPickingMaterialDetailService extends IService + + + + UPDATE picking_material_detail