出库交接详情,物料明细根据复核单生成1;

This commit is contained in:
秦鸿展
2026-03-15 13:31:58 +08:00
parent fdff381b09
commit 4ff70dc152
2 changed files with 21 additions and 9 deletions
@@ -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);
}
}
}
@@ -125,15 +125,6 @@ public class DeliveTaskImpl extends ServiceImpl<DeliveTaskMapper, DeliveTask> 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<PickingOrderPO> 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<StockOutOrder>()
.eq(StockOutOrder::getOutOrderNumber, orderNumber));
@@ -143,6 +134,24 @@ public class DeliveTaskImpl extends ServiceImpl<DeliveTaskMapper, DeliveTask> 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<PickingOrderPO> 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<PickingOrderPO> 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<OutMaterialDetail> omdList = outMaterialDetailService.list(new LambdaQueryWrapper<OutMaterialDetail>()