diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java index 54763fcdf..2675500a4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.java @@ -53,8 +53,14 @@ public interface DisStockListDetailMapper extends BaseMapper exportDisStockListDetail(@Param("ew") Wrapper queryWrapper); /** - * 删除该客户下的库存品包件信息 + * 删除该客户下指定库存品类的库存品包件信息 * @param id */ - void deleteByReservationStockListId(@Param("reservationStockListId") Long id); + void deleteInventoryByStockListId(@Param("reservationStockListId") Long id); + + /** + * 删除客户下的库存品包件信息 + * @param id + */ + void deleteInventoryByReservationId(@Param("reservationId")Long id); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml index 9404d4938..ee738d58e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DisStockListDetailMapper.xml @@ -29,8 +29,13 @@ - - DELETE FROM logpm_dis_stock_list_teail WHERE reservation_stock_list_id = #{reservationStockListId} + + DELETE FROM logpm_dis_stock_list_detail WHERE reservation_stock_list_id = #{reservationStockListId} + + + + + DELETE FROM logpm_dis_stock_list_detail WHERE reservation_id = #{reservationId} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml index e297266c3..4bce4554b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml @@ -47,7 +47,7 @@ WHERE ldl.package_id = #{id} and lddl.loading_time is null - UPDATE logpm_distribution_delivery_list lddl SET lddl.loading_time = now(),lddl.delivery_status =2 WHERE lddl.id = #{id} and lddl.loading_time is null + UPDATE logpm_distribution_delivery_list lddl SET lddl.loading_time = now(),lddl.delivery_status = 1 WHERE lddl.id = #{id} and lddl.loading_time is null diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java index 2f13918d0..7a813aa70 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java @@ -180,4 +180,20 @@ public interface DistributionReservationMapper extends BaseMapper selectAppPackageListByReservationId(@Param("reservationId")Long reservationId); + + /** + * 查询出客户下的库存品订单维度信息 + * @param id + * @return + */ + List selectStockListByReservationId(@Param("reservationId")Long id); + + List selectReservationPackageByReservationId(@Param("reservationId")Long id); + + /** + * 查询预约计划的备货任务 + * @param id + * @return + */ + DistributionStockupEntity selectStockup(@Param("reservationId")Long id); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index cc2c29501..b44ebb681 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -758,5 +758,110 @@ WHERE ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId} + + + 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 7a3bf77a3..b514da90c 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 @@ -474,7 +474,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl distributionParcelListEntities = distributionParcelListMapper.selectList(new QueryWrapper().lambda() 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 62a9e0298..b00c2beaf 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 @@ -37,12 +37,14 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; import com.logpm.distribution.wrapper.DistributionStockListWrapper; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; +import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.constant.Inventory.*; import org.springblade.common.constant.delivery.DeliveryStatusConstant; import org.springblade.common.constant.order.OrderReservationStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageFreezeStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant; import org.springblade.common.constant.reservation.*; import org.springblade.common.constant.signing.SignforStatusConstant; @@ -81,6 +83,7 @@ import java.util.stream.Collectors; * @since 2023-06-12 */ @Service +@Slf4j public class DistributionReservationServiceImpl extends BaseServiceImpl implements IDistributionReservationService { @Autowired @@ -168,6 +171,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl list = disStockListDetailService.list(Wrappers.query().lambda() .eq(DisStockListDetailEntity::getReservationId, distributionReservationStocklistEntity.getReservationId()).eq(DisStockListDetailEntity::getStockListId, distributionReservationStocklistEntity.getStocklistId())); list.forEach(l->l.setStockPackageStatus(InventoryPackageStatusConstant.quxiao.getValue())); @@ -1672,19 +1678,115 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl>>{}", reservationDTO); return false; } DistributionReservationEntity reservationEntity = this.getById(reservationDTO.getId()); if (Func.isEmpty(reservationEntity)) { - log.error("参数异常reservationEntity+{" + reservationEntity + "}"); + log.error("参数异常reservationEntity:{}" , reservationEntity ); return false; } - boolean result = false; +// ------------------------取消预约需要重新调整———————————————————————————————————————————————————— +// 思路:查询该预约,此预约是否进行了备货操作,如果没有进行备货操作,这里则进行订单状态的还原 +// 如果此预约进行了备货操作则需要对备货人任务进行判断,备货任务未执行标记备货任务取消 将包件状态进行恢复 +// 备货任务开始,此时则只表示预约任务取消,不对订单等信息进行更新状态的操作 + + DistributionStockupEntity stockupEntity = distributionReservationMapper.selectStockup(reservationEntity.getId()); + if (Func.isEmpty(stockupEntity) || stockupEntity.getAssignStatus().equals(StockAssignStatusConstant.weizhipai.getValue())){ + if (Func.isNotEmpty(stockupEntity)){ + List stockupInfoEntityList = distributionStockupInfoService.list(Wrappers.query().lambda().eq(DistributionStockupInfoEntity::getStockupId, stockupEntity.getId())); + boolean flag = stockupInfoEntityList.stream().allMatch(info -> Func.equals(info.getReservationId(), reservationEntity.getId())); + if (flag){ + //删除中间表和备货表 + DistributionStockupInfoEntity stockupInfoEntity = stockupInfoEntityList.get(0); + distributionStockupInfoMapper.deleteByReservationId(stockupInfoEntity.getReservationId()); + distributionStockupMapper.deleteStockUpById(stockupInfoEntity.getStockupId()); + }else { + //只删除中间表 + distributionStockupInfoMapper.deleteByReservationId(reservationEntity.getId()); + } + } + //这里取消还需要对订单、包件、库存品的数据进行维护 +// -------------------------------------------维护订单—————————————————————————————————————————————————————————————————————————— + List reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(reservationStockarticleEntityList)&&reservationStockarticleEntityList.size()>0){ + List stockArticleList = distributionReservationMapper.getStockArticleList(reservationEntity.getId()); + stockArticleList.forEach(s->{ + s.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue()); + distributionStockArticleService.updateById(s); + }); + reservationStockarticleEntityList.forEach(rs->{ + rs.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); + distributionReservationStockarticleService.updateById(rs); + }); + } +// ----------------------------------------维护包件———————————————————————————————————————————————————————————————————————————————————— + List reservationPackageEntityList = distributionReservationMapper.selectReservationPackageByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size() > 0){ + List parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationEntity.getId()); + parcelListEntities.forEach(p->{ + p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue()); + distributionParcelListService.updateById(p); + }); + reservationPackageEntityList.forEach(rp->{ + rp.setPacketBarStatus(ReservationPackageStatusConstant.quxiao.getValue()); + distributionReservationPackageService.updateById(rp); + }); + + } + +// ——————————————————————————————————————————————————维护库存品——————————————————————————————————————————————————————————————————————————— + List distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(distributionReservationStocklistEntities) && distributionReservationStocklistEntities.size() > 0){ + //进行库存品库存数量的维护 + distributionReservationStocklistEntities.forEach(i->{ + DistributionStockListEntity stockListEntity = distributionStockListService.getById(i.getStocklistId()); + stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - i.getReservationNum()); + distributionStockListService.updateById(stockListEntity); + i.setStockListStatus(ReservationInventoryStatusConstant.quxiao.getValue()); + distributionReservationStocklistService.updateById(i); + }); + //执行物理删除 + disStockListDetailMapper.deleteInventoryByReservationId(reservationEntity.getId()); + } + + }else { + //仅仅标注该客户的预约计划取消 +// -------------------------------------------维护订单—————————————————————————————————————————————————————————————————————————— + List reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(reservationStockarticleEntityList)&&reservationStockarticleEntityList.size()>0){ + reservationStockarticleEntityList.forEach(rs->{ + rs.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); + distributionReservationStockarticleService.updateById(rs); + }); + } +// ----------------------------------------维护包件———————————————————————————————————————————————————————————————————————————————————— + List reservationPackageEntityList = distributionReservationMapper.selectReservationPackageByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size() > 0){ + reservationPackageEntityList.forEach(rp->{ + rp.setPacketBarStatus(ReservationPackageStatusConstant.quxiao.getValue()); + distributionReservationPackageService.updateById(rp); + }); + } + +// ——————————————————————————————————————————————————维护库存品——————————————————————————————————————————————————————————————————————————— + List distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationEntity.getId()); + if (Func.isNotEmpty(distributionReservationStocklistEntities) && distributionReservationStocklistEntities.size() > 0){ + //进行库存品库存数量的维护 + distributionReservationStocklistEntities.forEach(i->{ + DistributionStockListEntity stockListEntity = distributionStockListService.getById(i.getStocklistId()); + stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - i.getReservationNum()); + distributionStockListService.updateById(stockListEntity); + i.setStockListStatus(ReservationInventoryStatusConstant.quxiao.getValue()); + distributionReservationStocklistService.updateById(i); + }); + } + } + reservationEntity.setCancelReason(reservationDTO.getCancelReason()); reservationEntity.setReservationStatus(ReservationStatusConstant.yiquexiao.getValue()); - result = this.updateById(reservationEntity); - return result; + this.updateById(reservationEntity); + return true; } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 22fb40733..5478b8627 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -1116,7 +1116,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl