diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java index 8619fef01..b1a600eb3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java @@ -254,6 +254,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl initTotal = new AtomicReference<>(BigDecimal.ZERO); //存在订单构建预约订单关联信息 if (!Func.isEmpty(stockArticleList)) { + boolean flag = stockArticleList.stream().anyMatch(s -> s.getReservationStatus().equals(OrderReservationStatusConstant.yiyueyue.getValue())); + if (flag){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("预约选择订单被多次预约"); + return R.fail("订单已预约!!!"); + } //存在订单的情况下才会对预约和包件的关系进行维护 //选择了订单但是未进行包件的选择,默认选择了订单下的所有在库包件 stockArticleList.forEach(s -> { @@ -542,6 +549,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl warehouseNames = new HashSet<>(); @@ -1234,6 +1249,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl stockArticle = allocationDTO.getStockArticle(); - - //根据运单号进行分组 //TODO 这里先根据运单号进行运单信息查询,后期根据运单进行 Map> mallClient = stockArticle.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getWaybillNumber)); @@ -1810,6 +1824,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl s.getReservationStatus().equals(OrderReservationStatusConstant.yiyueyue.getValue())); + if (flag){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("预约选择订单被多次预约"); + return R.fail("订单已预约!!!"); + } stockArticleList.forEach(s -> { // storeName.add(s.getStoreName()); // mallName.add(s.getMallName());