diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java index ed441e362..64e4e22d1 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java @@ -119,4 +119,12 @@ public interface IBasicdataClientClient { @GetMapping(API_PREFIX+"/findBasicdataClientEntitysTenantId") List findBasicdataClientEntitysTenantId(@RequestParam String tenantId) ; + + /** + * 查询制定租户下面的客户结合 + * @return + */ + @PostMapping(API_PREFIX+"/saveEntity") + Long saveEntity(@RequestBody BasicdataClientEntity clientEntity) ; + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java index 3a94dab82..ec15703b7 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java @@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.security.NoSuchAlgorithmException; import java.util.List; /** @@ -151,4 +152,16 @@ public class BasicdataClientClient implements IBasicdataClientClient { lambdaQueryWrapper.eq(BasicdataClientEntity::getIsDeleted, 0);// 查询未删除的客户信息 return basicdataClientService.list(lambdaQueryWrapper); } + + @Override + public Long saveEntity(BasicdataClientEntity clientEntity) { + try { + String finallyClientCode = basicdataClientService.getFinallyClientCode(); + clientEntity.setClientCode(finallyClientCode); + basicdataClientService.ownSaveOrUpdate(clientEntity); + return clientEntity.getId(); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java index 16fe60315..67608f940 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java @@ -658,7 +658,6 @@ public class DistributionStockupAppController extends BladeController { BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if (Func.isEmpty(myCurrentWarehouse)) { return R.data(403, "未授权!"); - } if (scanType == 2) { //库存品扫描 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.java index bdf33e243..61fc90a42 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.java @@ -83,4 +83,13 @@ public interface DistributionDeliveryDetailsMapper extends BaseMapper getBillOrderInventoryExcel(@Param("param") DistributionDeliveryDetailsEntity deliveryDetails); List getBillLadingDetailOrderInventoryExcel(@Param("id")Long id); + + /** + * 查询老的计划信息 + * @param billLadingId + * @param cargoNumber + * @param stockListId + * @return + */ + List selectStockListByReservationIdAndCargoNumber(@Param("billId")Long billId,@Param("cargoNumber") String cargoNumber,@Param("oldStockId") Long oldStockId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.xml index c7b74da5e..8bdf38a5e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryDetailsMapper.xml @@ -156,5 +156,15 @@ WHERE lddd.bill_lading_id = #{id} and lddd.inventory_status in (1,3) + 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 fa9c039ae..16adcfeb5 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 @@ -890,7 +890,7 @@ ldrs.packet_bar_status IN ('1','3') and reservation_id = #{reservationId} AND ldpl.conditions = 1 + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryDetailsService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryDetailsService.java index 6c415ced5..ab71ae6a0 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryDetailsService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryDetailsService.java @@ -24,6 +24,7 @@ import com.logpm.distribution.excel.DistributionDeliveryDetailsExcel; import com.logpm.distribution.vo.DistributionBillInventoryVO; import com.logpm.distribution.vo.DistributionDeliveryDetailsVO; import com.logpm.distribution.vo.app.DistrilbutionBillLadingInventoryAppVO; +import org.apache.ibatis.annotations.Param; import org.springblade.core.mp.base.BaseService; import java.util.List; @@ -89,4 +90,14 @@ public interface IDistributionDeliveryDetailsService extends BaseService getBillLadingDetailOrderInventoryExcel(Long id); void maintainInvnetory(Long l); + + /** + * 查询库存品 + * @param billLadingId + * @param cargoNumber + * @param stockListId + * @return + */ + List selectStockListByReservationIdAndCargoNumber( Long billLadingId, String cargoNumber, Long stockListId); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java index 1b529b3e6..a45818a2d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java @@ -196,4 +196,9 @@ public class DistributionDeliveryDetailsServiceImpl extends BaseServiceImpl selectStockListByReservationIdAndCargoNumber(Long billLadingId, String cargoNumber, Long stockListId) { + return baseMapper.selectStockListByReservationIdAndCargoNumber(billLadingId,cargoNumber,stockListId); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index a753250e4..672c4ef5d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -241,6 +241,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl selectDistributionStockupPage(IPage page, DistributionStockupVO distributionStockup) { return page.setRecords(baseMapper.selectDistributionStockupPage(page, distributionStockup)); @@ -1778,7 +1780,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl 0) { log.warn("###################createPackageCode: 包条数量与预约数量不正确"); throw new CustomerException(405, "包条数量与预约数量不正确"); @@ -2358,8 +2361,6 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list1 = disStockListDetailService.list(Wrappers.query().lambda() .eq(DisStockListDetailEntity::getStockListId, stockupDTO.getStockListId()) .eq(DisStockListDetailEntity::getReservationId, stockupDTO.getReservationId()) @@ -3949,6 +3950,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl s.equals(finalById.getId())); if (!flag) { - DistributionReservationStocklistEntity rs = getDistributionReservationStocklistEntity(stockupDTO, byId); - distributionReservationStocklistService.save(rs); - - DistributionStockListEntity stockListEntity = distributionStockListService.getById(byId.getId()); - stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + 1); - distributionStockListService.updateById(stockListEntity); - //原来对应的需要进行计划减少 //收集满足修改条件的计划库存品 List reservationStocklistEntities = new ArrayList<>(); @@ -4033,6 +4028,15 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl billStocklistEntityList = distrilbutionBillLadingMapper.selectInventoryListByIdAndMateriel(stockupDTO.getReservationId(), stockupDTO.getCargoNumber()); + if (!billStocklistEntityList.isEmpty()) { + DistributionStockListEntity finalById = byId; + //检测是否存在计划中 + boolean flag = billStocklistEntityList.stream() + .map(DistributionDeliveryDetailsEntity::getStockListId) + .anyMatch(s -> s.equals(finalById.getId())); + if (!flag){ + //不存在计划中 + List targetDeliveryDetailsEntity = new ArrayList<>(); + for (DistributionDeliveryDetailsEntity deliveryDetails : billStocklistEntityList) { + if (deliveryDetails.getQuantity() >= deliveryDetails.getRealityQuantity() && deliveryDetails.getRealityQuantity() > 0) { + targetDeliveryDetailsEntity.add(deliveryDetails); + } + } + if (Func.isEmpty(targetDeliveryDetailsEntity)) { + return R.fail("该物料库存品备货已完成"); + } + //新增此物料计划 + DistributionDeliveryDetailsEntity distributionBillStocklistEntity = getDistributionBillStocklistEntity(stockupDTO, byId); + distributionDeliveryDetailsService.save(distributionBillStocklistEntity); + + DistributionStockListEntity stockListEntity = distributionStockListService.getById(byId.getId()); + stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + 1); + distributionStockListService.updateById(stockListEntity); + + + DistributionDeliveryDetailsEntity deliveryDetails = targetDeliveryDetailsEntity.get(0); + int oldRsNum = deliveryDetails.getQuantity() - 1; + if (oldRsNum < 0) { + return R.fail("操作数据错误"); + } + deliveryDetails.setQuantity(oldRsNum); + if (deliveryDetails.getQuantity() == 0) { + deliveryDetails.setInventoryStatus(ReservationOrderStatusConstant.quxiao.getValue()); + } + distributionDeliveryDetailsService.updateById(deliveryDetails); + + //维护老的的冻结数量 + DistributionStockListEntity oldStockList = distributionStockListService.getById(deliveryDetails.getStockListId()); + oldStockList.setQuantityOccupied(oldStockList.getQuantityOccupied() - 1); + distributionStockListService.updateById(oldStockList); + + + //查询对应的包件进行修改 + List stockListDetailEntities = disStockListDetailService.list(Wrappers.query().lambda() + .eq(DisStockListDetailEntity::getReservationId, stockupDTO.getReservationId()) + .eq(DisStockListDetailEntity::getStockListId, oldStockList.getId()) + .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()) + ); + DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.stream().filter(s -> Func.isBlank(s.getStockPackageCode())).collect(Collectors.toList()).get(0); + disStockListDetailEntity.setStockListId(distributionBillStocklistEntity.getStockListId()); +// disStockListDetailEntity.setStockStatus(OrderPackageStockupStatusConstant.yibeihu.getValue()); + disStockListDetailService.updateById(disStockListDetailEntity); + }else { + //判断是否是为增加库存品进行数据维护 + DistributionStockListEntity finalById1 = byId; + DistributionDeliveryDetailsEntity deliveryDetails = billStocklistEntityList.stream().filter(f -> f.getStockListId().equals(finalById1.getId())).collect(Collectors.toList()).get(0); + //因为新增库存品的时候会完成扫描 此时的增加数和备货数量时一样的 + if (deliveryDetails.getInventoryStatus().equals(ReservationOrderStatusConstant.zengjia.getValue()) && Objects.equals(deliveryDetails.getQuantity(), deliveryDetails.getRealityQuantity())) { + List oldRS = distributionDeliveryDetailsService.selectStockListByReservationIdAndCargoNumber(deliveryDetails.getBillLadingId(), stockupDTO.getCargoNumber(), deliveryDetails.getStockListId()); + //收集满足条件的库存品 + List rs = new ArrayList<>(); + for (DistributionDeliveryDetailsEntity oldR : oldRS) { + if (oldR.getQuantity() >= oldR.getRealityQuantity() && oldR.getQuantity() > 0) { + rs.add(oldR); + } + } + if (Func.isEmpty(rs)) { + //不存在还需要进行备货的库存品 + return R.fail("该物料库存品备货已完成"); + } + DistributionDeliveryDetailsEntity oldReservationStockList = rs.get(0); + int oldReservationNum = oldReservationStockList.getQuantity() - 1; + + oldReservationStockList.setQuantity(oldReservationNum); + if (oldReservationNum == 0) { + oldReservationStockList.setInventoryStatus(ReservationOrderStatusConstant.quxiao.getValue()); + } + distributionDeliveryDetailsService.updateById(oldReservationStockList); + //修改对应库存品数量 + DistributionStockListEntity stockListEntity = distributionStockListService.getById(oldReservationStockList.getStockListId()); + stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - 1); + distributionStockListService.updateById(stockListEntity); + + + //找出对库存品包件信息进行包件的修改 + List oldRsPack = disStockListDetailService.list(Wrappers.query().lambda() + .eq(DisStockListDetailEntity::getReservationId, oldReservationStockList.getBillLadingId()) + .eq(DisStockListDetailEntity::getStockListId, oldReservationStockList.getStockListId()) + .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()) + ); + if (Func.isEmpty(oldRsPack)) { + return R.fail("该物料库存品备货已完成"); + } + List collect = oldRsPack.stream().filter(f -> Func.isBlank(f.getStockPackageCode())).collect(Collectors.toList()); + DisStockListDetailEntity disStockListDetailEntity = collect.get(0); + disStockListDetailEntity.setStockListId(deliveryDetails.getStockListId()); + disStockListDetailService.updateById(disStockListDetailEntity); + + deliveryDetails.setQuantity(deliveryDetails.getQuantity() + 1); + distributionDeliveryDetailsService.updateById(deliveryDetails); + + + //维护库存品在库数量 + DistributionStockListEntity newStockList = distributionStockListService.getById(deliveryDetails.getStockListId()); + newStockList.setQuantityOccupied(newStockList.getQuantityOccupied() + 1); + distributionStockListService.updateById(newStockList); + } + } + + } + } } if (Func.isNotEmpty(byId)) { @@ -4542,4 +4661,17 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl