diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index 4a21f58d6..e61193d10 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -2944,20 +2944,52 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { @Override public void maintenanceCancelBillLading(List ids) { + List orderIds = new ArrayList<>(); + List packageIds = new ArrayList<>(); for (Long id : ids) { List list = billPackageService.list(Wrappers.query().lambda() .eq(DistrilbutionBillPackageEntity::getBillLadingId, id) - .eq(DistrilbutionBillPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue()) ); if (!list.isEmpty()) { - List packageIds = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList()); - distributionParcelListService.update(Wrappers.update().lambda() - .in(DistributionParcelListEntity::getId, packageIds) - .set(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue()) - ); - List orderIds = list.stream().map(DistrilbutionBillPackageEntity::getStockArticleId).distinct().collect(Collectors.toList()); - distributionStockArticleService.maintenanceOrderInfoByIds(orderIds); + List packageIds1 = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList()); + packageIds.addAll(packageIds1); + + List orderId1 = list.stream().map(DistrilbutionBillPackageEntity::getStockArticleId).distinct().collect(Collectors.toList()); + orderIds.addAll(orderId1); } + List reservationZeroPackageEntities = zeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, id) + .eq(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()) + .eq(DistributionReservationZeroPackageEntity::getType, "3") + ); + + if (!reservationZeroPackageEntities.isEmpty()) { + //进行数据回退 + List packageIds2 = reservationZeroPackageEntities.stream().map(DistributionReservationZeroPackageEntity::getParcelListId).distinct().collect(Collectors.toList()); + packageIds.addAll(packageIds2); + for (DistributionReservationZeroPackageEntity reservationZeroPackageEntity : reservationZeroPackageEntities) { + reservationZeroPackageEntity.setZeroPackageStatus(ReservationPackageStatusConstant.quxiao.getValue()); + Integer quantity = reservationZeroPackageEntity.getQuantity(); + distributionParcelNumberService.update(Wrappers.update().lambda() + .eq(DistributionParcelNumberEntity::getParcelListId,reservationZeroPackageEntity.getParcelListId()) + .eq(DistributionParcelNumberEntity::getStockArticleId,reservationZeroPackageEntity.getStockArticleId()) + .setSql("delivery_quantity -", quantity) + ); + //状态回退包件一定处于可预约 + orderIds.add(reservationZeroPackageEntity.getStockArticleId()); + } + if (!packageIds.isEmpty()) { + distributionParcelListService.update(Wrappers.update().lambda() + .in(DistributionParcelListEntity::getId, packageIds) + .set(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue()) + ); + } + if (!orderIds.isEmpty()) { + List newOrderIds = orderIds.stream().distinct().collect(Collectors.toList()); + distributionStockArticleService.maintenanceOrderInfoByIds(newOrderIds); + } + } + } }