diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java index 8ceff28a8..e64daa9d9 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java @@ -159,4 +159,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper carsLoadScanIdList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index a683078fc..078c45086 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -848,4 +848,12 @@ and final_node_id is null + + delete from logpm_trunkline_cars_load_scan + where id in + + #{item} + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java index 2b2ed285f..c012a6b7c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java @@ -154,4 +154,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService carsLoadScanIdList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index 582ed00aa..3c78e60d8 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -373,4 +373,9 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl carsLoadScanIdList) { + baseMapper.deleteListByCarsLoadScanIds(carsLoadScanIdList); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 5d31b3f27..6758d2a92 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -973,10 +973,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodes = new ArrayList<>(); orderPackageCodes.add(scanCode); @@ -6035,9 +6035,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadScanIdList, Long loadId, Long warehouseId) { + + TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); + if (Objects.isNull(carsLoadEntity)) { + log.warn("##################removeCarsLoadScanListByCancelLoad: 配载计划不存在 loadId={}", loadId); + return R.fail(405, "配载计划不存在"); + } + + Long nowWarehouseId = carsLoadEntity.getNowWarehouseId(); + + if (!nowWarehouseId.equals(warehouseId)) { + log.warn("##################removeCarsLoadScanListByCancelLoad: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId); + return R.fail(405, "暂未有权限进行操作"); + } + String loadStatus = carsLoadEntity.getLoadStatus(); + if (!"100".equals(loadStatus)) { + log.warn("##################removeCarsLoadScanListByCancelLoad: 当前配载计划不属于取消配载状态 loadStatus={} warehouseId={}", loadStatus, warehouseId); + return R.fail(405, "当前配载计划不属于取消配载状态"); + } + + TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); + if (Objects.isNull(carsLoadLineEntity)) { + log.warn("##################removeCarsLoadScanListByCancelLoad: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId); + return R.fail(405, "当前节点信息不存在"); + } + + String nodeStatus = carsLoadLineEntity.getNodeStatus(); + if (!"10".equals(nodeStatus)) { + log.warn("##################removeCarsLoadScanListByCancelLoad: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId); + return R.fail(405, "当前节点不是到车状态"); + } + + BasicdataWarehouseEntity basicdataWarehouse = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); + if(Objects.isNull(basicdataWarehouse)){ + log.warn("##################removeCarsLoadScanListByCancelLoad: 仓库信息不存在 warehouseId={}", warehouseId); + return R.fail(405, "仓库信息不存在"); + } + + String warehouseName = basicdataWarehouse.getName(); + + List trunklineCarsLoadScanEntities = trunklineCarsLoadScanService.listByIds(carsLoadScanIdList); + + //把trunklineCarsLoadScanEntities只提取isData等于1的数据 + List hasDataScanEntites = trunklineCarsLoadScanEntities.stream().filter(carsLoadScanEntity -> carsLoadScanEntity.getIsData() == 1).collect(Collectors.toList()); + + + //把hasDataScanEntites通过fromWarehouseId进行分组 + Map> fromWarehouseIdMap = hasDataScanEntites.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId)); + + List updateStockArticleList = new ArrayList<>(); + List updateParcelListList = new ArrayList<>(); + + fromWarehouseIdMap.keySet().forEach(fromWarehouseId -> { + List scanEntities = fromWarehouseIdMap.get(fromWarehouseId); + //把scanEntities中所有元素的以orderCode进行分组 + Map> orderCodeMap = scanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode)); + Set orderCodeSet = orderCodeMap.keySet(); + FindParamterDTO findParamterDTO = new FindParamterDTO(); + findParamterDTO.setOrderCodeSet(orderCodeSet); + findParamterDTO.setWarehouseId(fromWarehouseId); + List stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO); + //把stockArticleEntityList转化成OrderCode为key的Map + Map stockArticleMap = stockArticleEntityList.stream().collect(Collectors.toMap(DistributionStockArticleEntity::getOrderCode, Function.identity())); + + orderCodeMap.keySet().forEach(orderCode -> { + DistributionStockArticleEntity stockArticle = stockArticleMap.get(orderCode); + if(!Objects.isNull(stockArticle)){ + List orderCodeEntities = orderCodeMap.get(orderCode); + //把orderCodeEntities中所有元素的num求和 + Integer num = orderCodeEntities.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(Integer::sum).get(); + DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity(); + updateStockArticle.setId(stockArticle.getId()); + updateStockArticle.setHandQuantity(stockArticle.getHandQuantity() + num); + updateStockArticleList.add(updateStockArticle); + } + }); + + //把scanEntities通过只保留type等于1的数据 + List type1ScanEntities = scanEntities.stream().filter(carsLoadScanEntity -> carsLoadScanEntity.getType() == 1).collect(Collectors.toList()); + //把type1ScanEntities中所有元素的scanCode放入一个Set + Set scanCodeSet = type1ScanEntities.stream().map(TrunklineCarsLoadScanEntity::getScanCode).collect(Collectors.toSet()); + findParamterDTO.setOrderPackageCodeList(new ArrayList<>(scanCodeSet)); + List parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO); + parcelListEntityList.forEach(parcelListEntity -> { + Long waybillId = parcelListEntity.getWaybillId(); + DistributionParcelListEntity parcelList = new DistributionParcelListEntity(); + parcelList.setId(parcelListEntity.getId()); + parcelList.setOrderPackageStatus("20"); + if(!Objects.isNull(waybillId)){ + Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); + if(acceptWarehouseId.equals(fromWarehouseId)){ + parcelList.setIsTransfer(0); + }else{ + parcelList.setIsTransfer(1); + } + } + updateParcelListList.add(parcelList); + }); + }); + + if(CollUtil.isNotEmpty(updateStockArticleList)){ + distributionStockArticleClient.updateByBatchId(updateStockArticleList); + } + + if(CollUtil.isNotEmpty(updateParcelListList)){ + distributionParcelListClient.updateList(updateParcelListList); + } + + if(CollUtil.isNotEmpty(carsLoadScanIdList)){ + trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIdList); + } + + if(CollUtil.isNotEmpty(trunklineCarsLoadScanEntities)){ + //把trunklineCarsLoadScanEntities中所有元素保留type等于1的数据 + List type1ScanEntities = trunklineCarsLoadScanEntities.stream().filter(carsLoadScanEntity -> carsLoadScanEntity.getType() == 1).collect(Collectors.toList()); + //把type1ScanEntities通过finalNodeId进行分组 + Map> finalNodeIdMap = type1ScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFinalNodeName)); + finalNodeIdMap.keySet().forEach(finalNodeName -> { + List finalNodeIdEntities = finalNodeIdMap.get(finalNodeName); + List orderPackageCodes = new ArrayList<>(); + finalNodeIdEntities.forEach(carsLoadScanEntity -> { + Integer type = carsLoadScanEntity.getType(); + if(type.equals(1)){ + orderPackageCodes.add(carsLoadScanEntity.getScanCode()); + } + }); + String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + finalNodeName; + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); + }); + } + + + if (!Objects.isNull(loadId)) { + updateNumByLoadId(loadId); + } + + return R.success("删除成功"); + } + + @Override public R unloadPackage(Long loadId, String orderPackageCode, Long warehouseId, Integer unbindTray, String remark, Integer incomingType) { log.info("#############unloadPackage: 卸车包件");