From a643725f67e225ef0776496785163f7289a3432a Mon Sep 17 00:00:00 2001 From: kilo Date: Tue, 5 Sep 2023 10:44:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93Id=E5=AD=97=E6=AE=B5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionReservationServiceImpl.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) 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());