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 1a0c596ca..28cc50658 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 @@ -63,6 +63,9 @@ import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusCon import org.springblade.common.constant.reservation.*; import org.springblade.common.constant.stockup.StockupStatusConstant; import org.springblade.common.constant.stockup.StockupTypeConstant; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.ReservationVO; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; @@ -127,6 +130,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { private final ITrunklinePackageTrackLogClient trunklinePackageTrackLogClient; private final IDistributionPrintService distributionPrintService; private final IBasicdataClientClient basicdataClientClient; + private final IDistributionNodeWorkService nodeWorkService; @@ -1864,6 +1868,22 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { //统计库存品数 planNum += distributionReservationStocklistEntities.stream().mapToInt(DistributionReservationStocklistEntity::getReservationNum).sum(); } + List loadscanEntityList = distributionLoadscanMapper.selectList(Wrappers.query().lambda() + .eq(DistributionLoadscanEntity::getReservationId, reservationId) + .eq(DistributionLoadscanEntity::getDeliveryId, deliveryId) + .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + ); + if (!loadscanEntityList.isEmpty()) { + planNum += loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum(); + } + List loadscaninvnEntityList = distributionLoadscaninvnMapper.selectList(Wrappers.query().lambda() + .eq(DistributionLoadscaninvnEntity::getReservationId, reservationId) + .eq(DistributionLoadscaninvnEntity::getDeliveryId, deliveryId) + .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + ); + if (!loadscaninvnEntityList.isEmpty()) { + planNum += loadscaninvnEntityList.stream().mapToInt(DistributionLoadscaninvnEntity::getLoadedNub).sum(); + } distributionReservationMapper.updateById(distributionReservationEntity); if (planNum == 0 ) { distributionReservationEntity.setIsDeleted(1); @@ -1872,10 +1892,33 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { distributionReservationMapper.updateById(distributionReservationEntity); //删除签收表数据 distributionSignforMapper.deleteByReservationAndDeliveryId(reservationId,deliveryId); + NodeFanoutMsg nodeFanoutMsg =buildNodeFanoutMsgByReservationByCancel(distributionReservationEntity); + nodeWorkService.cancelReservation(nodeFanoutMsg,AuthUtil.getUser()); + } } } + + + private NodeFanoutMsg buildNodeFanoutMsgByReservationByCancel(DistributionReservationEntity reservationEntity) { + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg<>(); + + nodeFanoutMsg.setNode(WorkNodeEnums.PLANNED_RESERVATION); + nodeFanoutMsg.setBizOperation(BizOperationEnums.DELETE); + nodeFanoutMsg.setOperator(AuthUtil.getNickName()); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setWarehouse(reservationEntity.getWarehouseName()); + nodeFanoutMsg.setWarehouseId(reservationEntity.getWarehouseId()); + nodeFanoutMsg.setTenantId(AuthUtil.getTenantId()); + + ReservationVO reservationVO = getReservationVO(reservationEntity); + nodeFanoutMsg.setMain(reservationVO); + + + return nodeFanoutMsg; + } + // @Transactional private void checkReservationAndDeliverySigningStatus(Long reservationId, Long deliveryId) { //维护客户签收状态