diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java index b023c1848..95e47d4de 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java @@ -192,7 +192,7 @@ public class BasicdataClientController extends BladeController { @GetMapping("/listName") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入basicdataClient") - public R> listName(String name) { + public R> listName(@RequestParam String name) { List pages = basicdataClientService.listName(name); return R.data(pages); } @@ -203,7 +203,7 @@ public class BasicdataClientController extends BladeController { @GetMapping("/listCode") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入basicdataClient") - public R> listCode(String code) { + public R> listCode(@RequestParam String code) { List pages = basicdataClientService.listCode(code); return R.data(pages); } 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 bfa662667..9a696ffc7 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 @@ -5283,7 +5283,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl parcelListEntities = distributionParcelListService.list(Wrappers.query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())); + List parcelListEntities = distributionParcelListService.list(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) + ); if (Func.isNotEmpty(parcelListEntities) && parcelListEntities.size() == 1) { DistributionParcelListEntity parcelListEntity = parcelListEntities.get(0); if (OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(parcelListEntity.getOrderPackageLoadingStatus())) { 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 c067c8ea4..28ac857ab 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 @@ -1503,6 +1503,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl storeName = new HashSet<>(); HashSet receivingUnit = new HashSet<>(); newStockArticle.forEach((k, v) -> { + List packageLockIds = new ArrayList<>(); if (Func.isEmpty(oldStockArticle.get(k))) { //这里发生了新增订单的操作 AtomicInteger packageNum = new AtomicInteger(); @@ -1517,6 +1518,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode()); + if (Func.isNotEmpty(a)){ + boolean flag = a.stream().anyMatch(f -> packageLockIds.contains(f)); + if (flag){ + log.error("###############预约新增订单同时操作"); + //当前操作包件存在于缓存中,此次操作无效 + throw new RuntimeException(v.get(0).getOrderCode()+"正在操作,请刷新后尝试"); + }else { + bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode(),packageLockIds,5*60L); + } + }else { + bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + "orderCode:" + v.get(0).getOrderCode(),packageLockIds,5*60L); + } + } }); if (Func.isNotEmpty(oldStockArticle)) { oldStockArticle.forEach((i, j) -> { //这里就是需要进行取消的订单信息 + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(i); + DistributionReservationStockarticleEntity reservationStockarticleEntity = j.get(0); if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); @@ -1803,6 +1817,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl>>{}", myCurrentWarehouse.getId()); + return false; + } if (Func.isEmpty(reservationDTO)) { log.error("参数异常allocationDTO>>>{}", reservationDTO); return false; @@ -2686,7 +2706,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl { + List packageLockIds = new ArrayList<>(); if (Func.isNotEmpty(s.getAllocation())) { s.setAllocation(null); } @@ -3158,8 +3180,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl packageIds = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + packageLockIds.addAll(packageIds); distributionParcelListEntities.forEach(dp -> { if (!dp.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) { + if (!Func.equals(dp.getOrderPackageFreezeStatus(), OrderPackageFreezeStatusConstant.yidongjie.getValue()) && !Func.equals(dp.getOrderPackageReservationStatus(), OrderPackageReservationStatusConstant.yiyueyue.getValue())) { DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity(); distributionReservationPackageEntity.setReservationId(reservationId); @@ -3190,6 +3215,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl packageIds = packageList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + packageLockIds.addAll(packageIds); packageList.forEach(p -> { if (!p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) { if (!Func.equals(p.getOrderPackageFreezeStatus(), OrderPackageFreezeStatusConstant.yidongjie.getValue()) && !Func.equals(p.getOrderPackageReservationStatus(), OrderPackageReservationStatusConstant.yiyueyue.getValue())) { @@ -3273,6 +3300,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl a = bladeRedis.get("warehouseId:" + myCurrentWarehouse.getId() +"orderCode:"+ s.getOrderCode()); + if (Func.isNotEmpty(a)){ + boolean b = a.stream().anyMatch(f -> packageLockIds.contains(f)); + if (b){ + log.error("###############预约新增订单同时操作"); + //当前操作包件存在于缓存中,此次操作无效 + throw new RuntimeException(s.getOrderCode()+"正在操作,请刷新后尝试"); + }else { + bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId() + s.getOrderCode(),packageLockIds,5*60L); + } + }else { + bladeRedis.setEx("warehouseId:" + myCurrentWarehouse.getId()+"orderCode:" + s.getOrderCode(),packageLockIds,5*60L); + } + } }); } //存在库存品构建预约库存品关联信息 @@ -3697,6 +3739,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl parcelListEntityList = distributionParcelListService.list(Wrappers.query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())); + List parcelListEntityList = distributionParcelListService.list(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) + ); if (Func.isNotEmpty(parcelListEntityList) && parcelListEntityList.size() == 1) { DistributionParcelListEntity parcelListEntity = parcelListEntityList.get(0); if (parcelListEntity.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) { diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java index 7f14bd922..0ce05c922 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java @@ -61,46 +61,65 @@ public class InComingServiceImpl implements IInComingService { String packageStatus = advanceDetailEntity.getPackageStatus(); Long advanceId = advanceDetailEntity.getAdvanceId(); if("1".equals(packageStatus)){ - log.warn("############incomingPackage: 包件已入库 packageCode={} warehouseId={}",packageCode,warehouseId); - return Resp.scanFail(405,"包件已入库","包件已入库"); - } + if(incomingType != 1){ + log.warn("############incomingPackage: 包件已入库 packageCode={} warehouseId={}",packageCode,warehouseId); + return Resp.scanFail(405,"包件已入库","包件已入库"); + }else{ + if(!Objects.isNull(billladingId)){ + //先判断该包件是否已经有提货记录了 + TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode); + if(Objects.isNull(billladingPackageEntity)){ + billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType); + } + } - if(StringUtil.isBlank(warehouseName)){ - BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId); - if(!Objects.isNull(warehouseEntity)){ - warehouseName = warehouseEntity.getName(); + //4.如果有托盘码 + if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){ + Map map = new HashMap<>(); + map.put("trayType",trayType); + map.put("trayCode",trayCode); + map.put("warehouseId",warehouseId); + map.put("orderPackageCode",packageCode); + warehouseTrayTypeClient.orderScanOrderPackageCode(map); + } } - } - - //1.修改暂存单包件入库状态 - advanceDetailService.updatePackageStatusById("1",advanceDetailId,warehouseId,warehouseName); - List incomingWarehouseNames = advanceDetailService.findIncomingWarehouseName(advanceId); - advanceService.updateIncomingWarehouseName(String.join(",",incomingWarehouseNames),advanceId); - - //2.判断包件和订单是否已经存入在库订单 - boolean b = advanceService.saveOrderAndPackage(advanceDetailEntity, warehouseId); - - if(b){ - //3.根据是否有提货单id绑定提货单 - if(!Objects.isNull(billladingId)){ - //先判断该包件是否已经有提货记录了 - TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode); - if(Objects.isNull(billladingPackageEntity)){ - billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType); + }else{ + if(StringUtil.isBlank(warehouseName)){ + BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId); + if(!Objects.isNull(warehouseEntity)){ + warehouseName = warehouseEntity.getName(); } } - //4.如果有托盘码 - if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){ - Map map = new HashMap<>(); - map.put("trayType",trayType); - map.put("trayCode",trayCode); - map.put("warehouseId",warehouseId); - map.put("orderPackageCode",packageCode); - warehouseTrayTypeClient.orderScanOrderPackageCode(map); + //1.修改暂存单包件入库状态 + advanceDetailService.updatePackageStatusById("1",advanceDetailId,warehouseId,warehouseName); + List incomingWarehouseNames = advanceDetailService.findIncomingWarehouseName(advanceId); + advanceService.updateIncomingWarehouseName(String.join(",",incomingWarehouseNames),advanceId); + + //2.判断包件和订单是否已经存入在库订单 + boolean b = advanceService.saveOrderAndPackage(advanceDetailEntity, warehouseId); + + if(b){ + //3.根据是否有提货单id绑定提货单 + if(!Objects.isNull(billladingId)){ + //先判断该包件是否已经有提货记录了 + TrunklineBillladingPackageEntity billladingPackageEntity = billladingPackageServicie.findBillladingPackage(packageCode); + if(Objects.isNull(billladingPackageEntity)){ + billladingPackageServicie.saveEntity(packageCode,billladingId,warehouseId,incomingType); + } + } + + //4.如果有托盘码 + if(StringUtil.isNotBlank(trayCode) && StringUtil.isNotBlank(trayType)){ + Map map = new HashMap<>(); + map.put("trayType",trayType); + map.put("trayCode",trayCode); + map.put("warehouseId",warehouseId); + map.put("orderPackageCode",packageCode); + warehouseTrayTypeClient.orderScanOrderPackageCode(map); + } } } - } return R.success("入库成功"); }