diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java index a94523ea3..878d71705 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java @@ -147,15 +147,26 @@ public class ReviewOrderDomainService { throw new ServiceException("复核单主表保存失败"); } + int detailInserted = 0; for (PickingOrder po : pickingOrders) { List lines = pickingMaterialDetailService.list(new LambdaQueryWrapper() .eq(PickingMaterialDetail::getPickingOrderNumber, po.getPickingOrderNumber()) .eq(PickingMaterialDetail::getDelFlag, 1)); for (PickingMaterialDetail line : lines) { + BigDecimal picked = line.getPickingQuantity(); + if (picked == null || picked.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } ReviewMaterialDetail row = buildDetailFromPicking(line, reviewOrderId, reviewOrderNumber, outOrderNumber, loginUser, now); reviewMaterialDetailMapper.insert(row); + detailInserted++; } } + if (detailInserted == 0) { + reviewOrderMapper.deleteById(reviewOrderId); + log.info("跳过生成复核单:拣货明细无已拣货数量>0 的行 outOrderNumber={}", outOrderNumber); + return; + } // 复核也生成作业单(同拣货作业单表结构),用于作业任务跟踪 genStockOutTaskOrderForReview(header, loginUser, now);