From 89dc1cca03b92c65c40731e07294048c3ce85bae Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Tue, 5 Nov 2024 14:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E9=85=8D=E8=BD=A6=E6=AC=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AFBUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionDeliveryListMapper.java | 7 +++ .../mapper/DistributionDeliveryListMapper.xml | 8 +++ .../DistributionDeliveryListServiceImpl.java | 60 +++++++++++++------ 3 files changed, 56 insertions(+), 19 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java index fb1ebe6b0..663aff2ef 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java @@ -604,4 +604,11 @@ public interface DistributionDeliveryListMapper extends BaseMapper + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index 869340e52..b1b328b13 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -4211,25 +4211,41 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl oldReservationEntities = new ArrayList<>(); - oldReservation.forEach((m, n) -> { - //这里就是取消的预约单,进行状态回退 - DistributionReservationEntity reservationEntity = n.get(0); - reservationEntity.setReservationStatus(ReservationStatusConstant.yiqueren.getValue()); - reservationEntity.setStockupStatus(ReservationStockupStatusConstant.weibeihuo.getValue()); - distributionReservationMapper.updateById(reservationEntity); - //删除配送预约中间表信息 - distributionSignforMapper.deleteByReservationAndDeliveryId(reservationEntity.getId(), deliveryListEntity.getId()); - //删除Redis中的reservationCode - bladeRedis.del(user.getTenantId() + ":" + ModuleNameConstant.APPLICATION_DISTRIBUTION_NAME + ":reservationLock" + reservationEntity.getReservationCode()); - //取消备货中间表 - distributionStockupInfoService.update(Wrappers.update().lambda() - .eq(DistributionStockupInfoEntity::getReservationId, reservationEntity.getId()) - .set(DistributionStockupInfoEntity::getStockStatus, "4") - ); - oldReservationEntities.add(reservationEntity); - oldIds.add(reservationEntity.getId()); - }); + if (!oldReservation.isEmpty()) { + oldReservation.forEach((m, n) -> { + //这里就是取消的预约单,进行状态回退 + DistributionReservationEntity reservationEntity = n.get(0); + reservationEntity.setReservationStatus(ReservationStatusConstant.yiqueren.getValue()); + reservationEntity.setStockupStatus(ReservationStockupStatusConstant.weibeihuo.getValue()); + distributionReservationMapper.updateById(reservationEntity); + //删除配送预约中间表信息 + distributionSignforMapper.deleteByReservationAndDeliveryId(reservationEntity.getId(), deliveryListEntity.getId()); + //删除Redis中的reservationCode + bladeRedis.del(user.getTenantId() + ":" + ModuleNameConstant.APPLICATION_DISTRIBUTION_NAME + ":reservationLock" + reservationEntity.getReservationCode()); + //取消备货中间表 + distributionStockupInfoService.update(Wrappers.update().lambda() + .eq(DistributionStockupInfoEntity::getReservationId, reservationEntity.getId()) + .set(DistributionStockupInfoEntity::getStockStatus, "4") + ); + oldReservationEntities.add(reservationEntity); + oldIds.add(reservationEntity.getId()); + }); + } + if (!oldIds.isEmpty()) { + //查询这些计划是否存在有装车数 + long packageCount = distributionLoadscanService.count(Wrappers.query().lambda() + .in(DistributionLoadscanEntity::getReservationId, oldIds) + .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + ); + long inventorycount = distributionLoadscaninvnService.count(Wrappers.query().lambda() + .in(DistributionLoadscaninvnEntity::getReservationId, oldIds) + .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + ); + if ((packageCount + inventorycount) > 0) { + String s = oldReservationEntities.stream().filter(f -> oldIds.contains(f.getId())).map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(",")); + throw new CustomerException(s+"存在装车或签收数据,无法移除"); + } String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "取消配车计划,操作方式:车次移除预约计划,车次号:" + deliveryListEntity.getTrainNumber(); distributionAsyncService.recordsReservationDeliveryLog(oldReservationEntities, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(), content); } @@ -5190,9 +5206,16 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl 0){ + return R.fail("存在装车或签收数据无法进行配送取消!!!"); + } List distributionSignforEntities = distributionSignforServicer.getBaseMapper().selectList(Wrappers.query().lambda().eq(DistributionSignforEntity::getDeliveryId, deliveryListEntity.getId())); BladeUser user = AuthUtil.getUser(); List reservationList = new ArrayList<>(); @@ -5213,7 +5236,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl reservationPackageEntityList = distributionReservationPackageMapper.selectList(Wrappers.query().lambda().eq(DistributionReservationPackageEntity::getReservationId, reservationEntity.getId()).eq(DistributionReservationPackageEntity::getStockArticleId, o.getStockArticleId()).ne(DistributionReservationPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue())); reservationPackageEntityList.forEach(p -> { DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(p.getParceListId()); - //TODO 这里取消应该有一个取消的任务 parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()); parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiruku.getValue()); distributionParcelListService.updateById(parcelListEntity);