PC复核下发

This commit is contained in:
秦鸿展
2026-03-14 20:18:26 +08:00
parent c2a29490a8
commit 1250e24e71
2 changed files with 28 additions and 5 deletions
@@ -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<OutMaterialDetailPO> 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;
}
@@ -191,11 +191,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryTotalsByOutNumberAndBaseId" resultType="com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO">
SELECT
b.TOTAL_AREA,b.TOTAL_VOLUME,b.TOTAL_NET_WEIGHT,b.TOTAL_GROSS_WEIGHT
IFNULL(SUM(b.PICKING_QUANTITY), 0) AS picking_quantity,
IFNULL(SUM(b.TOTAL_AREA), 0) AS total_area,
IFNULL(SUM(b.TOTAL_VOLUME), 0) AS total_volume,
IFNULL(SUM(b.TOTAL_NET_WEIGHT), 0) AS total_net_weight,
IFNULL(SUM(b.TOTAL_GROSS_WEIGHT), 0) AS total_gross_weight
FROM
PICKING_MATERIAL_DETAIL b
WHERE
b.OUT_UNIQUE_ID = #{outUniqueId}
AND b.DEL_FLAG = 1
</select>
<update id="addQuantity" parameterType="com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDOByUpdate">