diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java index 489ebc58f..2025b8020 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java @@ -21,7 +21,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.basicdata.dto.BasicdataGoodsAllocationDTO; import com.logpm.basicdata.entity.BasicdataGoodsAllocationEntity; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.excel.BasicdataGoodsAllocationExcel; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.basicdata.service.IBasicdataGoodsAllocationService; import com.logpm.basicdata.vo.BasicdataGoodsAllocationVO; import com.logpm.basicdata.vo.BasicdataNodeVO; @@ -48,6 +50,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 货位 控制器 @@ -66,6 +69,8 @@ public class BasicdataGoodsAllocationController extends BladeController { private final BladeRedis bladeRedis; + private final IBasicdataWarehouseClient warehouseClient; + /** * 货位 详情 */ @@ -138,6 +143,14 @@ public class BasicdataGoodsAllocationController extends BladeController { @ApiOperationSupport(order = 7) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn("############remove: 仓库信息不存在"); + return R.fail(405,"仓库信息不存在"); + } + Long warehouseId = myCurrentWarehouse.getId(); + bladeRedis.del("warehouse:all:allocationIds:" + warehouseId); return R.status(basicdataGoodsAllocationService.deleteLogic(Func.toLongList(ids))); } @@ -148,11 +161,20 @@ public class BasicdataGoodsAllocationController extends BladeController { @ApiOperationSupport(order = 7) @ApiOperation(value = "禁用", notes = "传入ids") public R disable(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn("############disable: 仓库信息不存在"); + return R.fail(405,"仓库信息不存在"); + } + Long warehouseId = myCurrentWarehouse.getId(); + R r =basicdataGoodsAllocationService.disableGoodsAllocation(ids); if (r.getCode() == 200) { String prefix = "warehouseGoodsAllocation/*"; bladeRedis.del(bladeRedis.keys(prefix)); } + bladeRedis.del("warehouse:all:allocationIds:" + warehouseId); return r; } @@ -163,11 +185,22 @@ public class BasicdataGoodsAllocationController extends BladeController { @ApiOperationSupport(order = 7) @ApiOperation(value = "启用", notes = "传入ids") public R enable(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn("############enable: 仓库信息不存在"); + return R.fail(405,"仓库信息不存在"); + } + Long warehouseId = myCurrentWarehouse.getId(); + R r =basicdataGoodsAllocationService.enableGoodsAllocation(ids); if (r.getCode() == 200) { String prefix = "warehouseGoodsAllocation/*"; bladeRedis.del(bladeRedis.keys(prefix)); } + + bladeRedis.del("warehouse:all:allocationIds:" + warehouseId); + return r; } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java index b26320df5..91e2b4d40 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java @@ -211,10 +211,8 @@ public class DistributionDatarepair { * 推送单个 老系统系统 * @return */ - @XxlJob("pushNotification") + @XxlJob("pushSingleNotification") public ReturnT pushSingleNotification(String params) { - - Boolean b = distributionSignforClient.clerkCheckPushData(Long.parseLong(params)); if(b!=null&&b){ warehouseMappingDataMapper.updateClearSignforStatusBysignforId(Long.parseLong(params), 1); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java index 9a6395ad7..897ac56f3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java @@ -16,8 +16,10 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringUtil; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @Slf4j @RestController @@ -265,8 +267,11 @@ public class CarsLoadApiController { log.warn(method+"配载装车扫描id为空 carsLoadScanIds={}",carsLoadScanIds); return R.fail(405,"配载装车扫描id为空"); } + List list = Arrays.asList(carsLoadScanIds.split(",")); + //把list转化成Long的集合 + List carsLoadScanIdList = list.stream().map(Long::valueOf).collect(Collectors.toList()); - return carsLoadService.removeCarsLoadScan(carsLoadScanIds,myCurrentWarehouse.getId()); + return carsLoadService.removeCarsLoadScan(carsLoadScanIdList,myCurrentWarehouse.getId()); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); 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 ca8671370..bfa5ebb27 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 @@ -165,4 +165,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper update logpm_trunkline_cars_load_scan - set loading_abnormal = 1,final_node_id = null + set loading_abnormal = 1,final_node_id = null,final_node_name = null where load_id = #{loadId} and warehouse_id = #{warehouseId} and final_node_id = #{nodeId} @@ -875,4 +875,16 @@ and scan_status = '1' + + update logpm_trunkline_cars_load_scan + set final_node_id = #{finalNodeId}, + final_node_name = #{finalNodeName}, + loading_abnormal = 0 + where load_id = #{loadId} + and warehouse_id = #{warehouseId} + and order_code = #{orderCode} + and waybill_no = #{waybillNo} + and scan_status = '1' + + 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 1b481d0b7..c03e51b77 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 @@ -160,4 +160,6 @@ public interface ITrunklineCarsLoadScanService extends BaseService carsLoadScanIdList, Long warehouseId); R arriveUnloadPageList(LoadCarsDTO loadCarsDTO); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index 82812f579..14cf98d87 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -3226,9 +3226,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { List carsLoadScanIds = trunklineCarsLoadScanService.findCarsLoadScanIdsByWaybillIds(waybillIds); if(!CollUtil.isEmpty(carsLoadScanIds)){ - //把carsLoadScanIds中的元素用,拼接起来成为一个字符串 - String carsLoadScanIdsStr = CollUtil.join(carsLoadScanIds, ","); - carsLoadService.removeCarsLoadScan(carsLoadScanIdsStr,warehouseId); + carsLoadService.removeCarsLoadScan(carsLoadScanIds,warehouseId); } List advanceIds = trunklineWaybillOrderService.findAdvanceIdsByWaybillIds(waybillIds); 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 5cc24d084..1173ea40a 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 @@ -388,4 +388,9 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper().in("load_id", idsSet)); + List loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper().in("load_id", idsSet).orderByAsc("sort")); //把loadLineList中对象通过loadId分组 Map> loadLineMap = loadLineList.stream() .collect(Collectors.groupingBy(TrunklineCarsLoadLineEntity::getLoadId)); @@ -807,7 +807,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl 0) { + if (Objects.isNull(unloadNumber) || unloadNumber > 0) { log.warn("#############cancelArriveCarByLoadId: 当前节点已卸车 unloadNumber={}", unloadNumber); throw new CustomerException(400, "当前节点已卸车"); } - if(realLoadingNumber > 0){ + if(Objects.isNull(realLoadingNumber) || realLoadingNumber > 0){ log.warn("#############cancelArriveCarByLoadId: 当前节点已做装车,不能取消到车 realLoadingNumber={}", realLoadingNumber); throw new CustomerException(400, "当前节点已做装车,不能取消到车"); } - if(planLoadingNumber > 0){ + if(Objects.isNull(planLoadingNumber) || planLoadingNumber > 0){ log.warn("#############cancelArriveCarByLoadId: 当前节点已做计划,不能取消到车 planLoadingNumber={}", planLoadingNumber); throw new CustomerException(400, "当前节点已做计划,不能取消到车"); } @@ -1274,6 +1274,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl 0){ + //如果装车数量大于0则需要把装车的包件的计划目的仓改到对应的目的仓 + trunklineCarsLoadScanService.updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId,trunklineCarsOrderEntity.getNodeId(),orderCode,waybillNo,finalNodeId,finalWarehouseEntity.getName()); + } } } - loadLineTitleName = ""; - List loadLineEntityList = trunklineCarsLoadLineService.findListByLoadId(loadId); - for (TrunklineCarsLoadLineEntity carsLoadLineEntity : loadLineEntityList) { - String nodeName = carsLoadLineEntity.getNodeName(); - if (StringUtil.isBlank(loadLineTitleName)) { - loadLineTitleName = nodeName; - } else { - loadLineTitleName = loadLineTitleName + "->" + nodeName; - } - } carsLoadEntity.setCarsLineName(loadLineTitleName); carsLoadEntity.setEndWarehouseIds(endWarehouseIds); carsLoadEntity.setEndWarehouseNames(endWarehouseNames); + String[] split = endWarehouseIds.split(","); + int length = split.length; + Long lastEndWarehouseId = Long.parseLong(split[length - 1]); + if(lastEndWarehouseId.equals(warehouseId)){ + //移除当前仓作为目的仓的装车记录 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id",loadId) + .eq("warehouse_id",warehouseId).isNull("final_node_id"); + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + if(CollUtil.isNotEmpty(carsLoadScanEntityList)){ + //把carsLoadScanEntityList中所有元素的id放入一个List + List ids = carsLoadScanEntityList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + removeCarsLoadScan(ids,warehouseId); + } + carsLoadEntity.setLoadStatus("40"); + }else{ + carsLoadEntity.setLoadStatus("20"); + } + updateById(carsLoadEntity); updateNumByLoadId(loadId); @@ -1730,9 +1754,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadScanIds, Long warehouseId) { - TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId); - if (Objects.isNull(carsLoadScanEntity)) { - log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId); - return R.fail(405, "配载装车扫描不存在"); - } - loadId = carsLoadScanEntity.getLoadId(); - - TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); - if (Objects.isNull(carsLoadEntity)) { - log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId); - return R.fail(405, "配载计划不存在"); - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", carsLoadScanIds) + .eq("scan_status", "1"); + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + if (CollUtil.isEmpty(carsLoadScanEntityList)) { + log.warn("##################removeCarsLoadScan: 没有删除的数据 carsLoadScanIds={}", carsLoadScanIds); + return R.fail(405, "没有删除的数据"); + } - Long nowWarehouseId = carsLoadEntity.getNowWarehouseId(); + BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); + if(Objects.isNull(warehouseEntity)){ + log.warn("##################removeCarsLoadScan: 仓库信息不存在 warehouseId={}", warehouseId); + return R.fail(405, "仓库信息不存在"); + } + String warehouseName = warehouseEntity.getName(); - if (!nowWarehouseId.equals(warehouseId)) { - log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId); - return R.fail(405, "暂未有权限进行操作"); - } - String loadStatus = carsLoadEntity.getLoadStatus(); - if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) { - log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId); - return R.fail(405, "当前配载计划不属于到车状态"); - } + //把carsLoadScanEntityList通过loadId分组 + Map> groupedByLoadId = carsLoadScanEntityList.stream() + .collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getLoadId)); + Set loadIdSet = groupedByLoadId.keySet(); - TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); - if (Objects.isNull(carsLoadLineEntity)) { - log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId); - return R.fail(405, "当前节点信息不存在"); - } - - String nodeStatus = carsLoadLineEntity.getNodeStatus(); - if (!"10".equals(nodeStatus)) { - log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId); - return R.fail(405, "当前节点不是到车状态"); - } + List updateParceListList = new ArrayList<>(); + List updateStockArticleList = new ArrayList<>(); - //删除 - boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId); - if (b) { - Integer isData = carsLoadScanEntity.getIsData(); - if (isData == 1) { - updateNumByLoadId(loadId); - String warehouseName = carsLoadScanEntity.getWarehouseName(); - Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal(); - Integer num = carsLoadScanEntity.getNum(); - Long trayId = carsLoadScanEntity.getTrayId(); - String trayCode = carsLoadScanEntity.getTrayCode(); - String orderCode = carsLoadScanEntity.getOrderCode(); - String waybillNo = carsLoadScanEntity.getWaybillNo(); - String scanCode = carsLoadScanEntity.getScanCode(); - Integer type = carsLoadScanEntity.getType(); - Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); - String fromWarehouseName = null; + groupedByLoadId.keySet().forEach(loadId -> { + List loadScanEntityList = groupedByLoadId.get(loadId); + if(CollUtil.isNotEmpty(loadScanEntityList)){ + //把loadScanEntityList通过fromNodeId进行分组 + Map> groupedByFromWarehouseId = loadScanEntityList.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getFromWarehouseId())) + .collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId)); + groupedByFromWarehouseId.keySet().forEach(fromWarehouseId -> { BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId); - if (!Objects.isNull(fromWarehouseEntity)) { - fromWarehouseName = fromWarehouseEntity.getName(); - } + String fromWarehouseEntityName = fromWarehouseEntity.getName(); + + List loadScanEntityList1 = groupedByFromWarehouseId.get(fromWarehouseId); + if(CollUtil.isNotEmpty(loadScanEntityList1)){ + //把loadScanEntityList1通过type进行分组 + Map> groupedByType = loadScanEntityList1.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getType())) + .collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); + + groupedByType.keySet().forEach(type -> { + List trunklineCarsLoadScanEntities = groupedByType.get(type); + //把trunklineCarsLoadScanEntities通过orderCode进行分组 + Map> groupedByOrderCode = trunklineCarsLoadScanEntities.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getOrderCode())) + .collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode)); + if(type == 1){ + + groupedByOrderCode.keySet().forEach(orderCode -> { + DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); + List loadScanEntityList2 = groupedByOrderCode.get(orderCode); + if(CollUtil.isNotEmpty(loadScanEntityList2)){ + //把loadScanEntityList2的num进行累加 + Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum); + //把loadScanEntityList2中所有元素的scanCode放入一个List + List scanCodeList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getScanCode).collect(Collectors.toList()); + + FindParamterDTO findParamterDTO = new FindParamterDTO(); + findParamterDTO.setOrderPackageCodeList(scanCodeList); + findParamterDTO.setWarehouseId(fromWarehouseId); + List parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO); + parcelListEntityList.forEach(parcelListEntity -> { + DistributionParcelListEntity updateParceList = new DistributionParcelListEntity(); + updateParceList.setId(parcelListEntity.getId()); + updateParceList.setOrderPackageStatus("20"); + updateParceListList.add(updateParceList); + }); + loadScanEntityList2.forEach(trunklineCarsLoadScanEntity -> { + String trayCode = trunklineCarsLoadScanEntity.getTrayCode(); + String scanCode = trunklineCarsLoadScanEntity.getScanCode(); + if (StringUtil.isNotBlank(trayCode)) { + updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托"); + } + }); - DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); - if (!Objects.isNull(stockArticleEntity)) { - Long articleId = stockArticleEntity.getId(); - distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId); - } - if (type == 1) { - DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId); - if (Objects.isNull(parcelListEntity)) { - log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode); - return R.fail(405, "包件信息不存在"); - } - Long wid = parcelListEntity.getWarehouseId(); - String waybillNumber = parcelListEntity.getWaybillNumber(); - Long waybillId = parcelListEntity.getWaybillId(); - if (!Objects.isNull(waybillId)) { - WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); - parcelListEntity.setIsTransfer(0); - if (!Objects.isNull(waybillEntity)) { - Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); - parcelListEntity.setOrderPackageStatus("20"); - if (destinationWarehouseId.equals(wid)) { - parcelListEntity.setIsTransfer(0); - } else { - parcelListEntity.setIsTransfer(1); - } - } - } - distributionParcelListClient.update(parcelListEntity); -// if (StringUtil.isNotBlank(trayCode)) { -// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托"); -// } - List orderPackageCodes = new ArrayList<>(); - orderPackageCodes.add(scanCode); - String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName(); - packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); + DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity(); + updateStockArticle.setId(distributionStockArticle.getId()); + updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num); + updateStockArticleList.add(updateStockArticle); - } else { -// if (StringUtil.isNotBlank(trayCode)) { -// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托"); -// } + String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + fromWarehouseEntityName; + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), scanCodeList, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); + } + }); + + + }else if(type == 2){ + groupedByOrderCode.keySet().forEach(orderCode -> { + List loadScanEntityList2 = groupedByOrderCode.get(orderCode); + if(CollUtil.isNotEmpty(loadScanEntityList2)){ + //把loadScanEntityList2的num进行累加 + Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum); + DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); + DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity(); + updateStockArticle.setId(distributionStockArticle.getId()); + updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num); + updateStockArticleList.add(updateStockArticle); + } + }); + } + }); } - - } + }); } + }); + + trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIds); + + if(CollUtil.isNotEmpty(updateStockArticleList)){ + distributionStockArticleClient.updateByBatchId(updateStockArticleList); } - if (!Objects.isNull(loadId)) { - updateNumByLoadId(loadId); + if(CollUtil.isNotEmpty(updateParceListList)){ + distributionParcelListClient.updateList(updateParceListList); } + if(CollUtil.isNotEmpty(loadIdSet)){ + loadIdSet.forEach(loadId -> { + updateNumByLoadId(loadId); + }); + } + + +// Long loadId = null; +// for (String str : split) { +// long carsLoadScanId = Long.parseLong(str); +// +// TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId); +// if (Objects.isNull(carsLoadScanEntity)) { +// log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId); +// return R.fail(405, "配载装车扫描不存在"); +// } +// loadId = carsLoadScanEntity.getLoadId(); +// +// TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); +// if (Objects.isNull(carsLoadEntity)) { +// log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId); +// return R.fail(405, "配载计划不存在"); +// } +// +// Long nowWarehouseId = carsLoadEntity.getNowWarehouseId(); +// +// if (!nowWarehouseId.equals(warehouseId)) { +// log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId); +// return R.fail(405, "暂未有权限进行操作"); +// } +// String loadStatus = carsLoadEntity.getLoadStatus(); +// if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) { +// log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId); +// return R.fail(405, "当前配载计划不属于到车状态"); +// } +// +// TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); +// if (Objects.isNull(carsLoadLineEntity)) { +// log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId); +// return R.fail(405, "当前节点信息不存在"); +// } +// +// String nodeStatus = carsLoadLineEntity.getNodeStatus(); +// if (!"10".equals(nodeStatus)) { +// log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId); +// return R.fail(405, "当前节点不是到车状态"); +// } +// +// //删除 +// boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId); +// if (b) { +// Integer isData = carsLoadScanEntity.getIsData(); +// if (isData == 1) { +// updateNumByLoadId(loadId); +// String warehouseName = carsLoadScanEntity.getWarehouseName(); +// Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal(); +// Integer num = carsLoadScanEntity.getNum(); +// Long trayId = carsLoadScanEntity.getTrayId(); +// String trayCode = carsLoadScanEntity.getTrayCode(); +// String orderCode = carsLoadScanEntity.getOrderCode(); +// String waybillNo = carsLoadScanEntity.getWaybillNo(); +// String scanCode = carsLoadScanEntity.getScanCode(); +// Integer type = carsLoadScanEntity.getType(); +// Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); +// String fromWarehouseName = null; +// BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId); +// if (!Objects.isNull(fromWarehouseEntity)) { +// fromWarehouseName = fromWarehouseEntity.getName(); +// } +// +// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); +// if (!Objects.isNull(stockArticleEntity)) { +// Long articleId = stockArticleEntity.getId(); +// distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId); +// } +// +// if (type == 1) { +// DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId); +// if (Objects.isNull(parcelListEntity)) { +// log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode); +// return R.fail(405, "包件信息不存在"); +// } +// Long wid = parcelListEntity.getWarehouseId(); +// String waybillNumber = parcelListEntity.getWaybillNumber(); +// Long waybillId = parcelListEntity.getWaybillId(); +// if (!Objects.isNull(waybillId)) { +// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); +// parcelListEntity.setIsTransfer(0); +// if (!Objects.isNull(waybillEntity)) { +// Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); +// parcelListEntity.setOrderPackageStatus("20"); +// if (destinationWarehouseId.equals(wid)) { +// parcelListEntity.setIsTransfer(0); +// } else { +// parcelListEntity.setIsTransfer(1); +// } +// } +// } +// distributionParcelListClient.update(parcelListEntity); +//// if (StringUtil.isNotBlank(trayCode)) { +//// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托"); +//// } +// +// List orderPackageCodes = new ArrayList<>(); +// orderPackageCodes.add(scanCode); +// String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName(); +// packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); +// +// } else { +//// if (StringUtil.isNotBlank(trayCode)) { +//// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托"); +//// } +// +// } +// +// } +// } +// } +// if (!Objects.isNull(loadId)) { +// updateNumByLoadId(loadId); +// } return R.success("删除成功"); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java index e235d940c..bdb55b65b 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java @@ -1,6 +1,7 @@ package com.logpm.warehouse.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.basicdata.entity.*; @@ -29,6 +30,7 @@ import org.springblade.common.constant.broadcast.FanoutConstants; import org.springblade.common.exception.CustomerException; import org.springblade.common.model.FanoutMsg; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; @@ -66,6 +68,7 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl orderPackageCodes) { @@ -119,9 +122,14 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl allocationIds = basicdataGoodsAllocationClient.findAllAllocationIdByWarehouseId(warehouseId); - + String allocationStr = bladeRedis.get("warehouse:all:allocationIds:" + warehouseId); + List allocationIds = null; + if(StringUtil.isBlank(allocationStr)){ + allocationIds = basicdataGoodsAllocationClient.findAllAllocationIdByWarehouseId(warehouseId); + bladeRedis.set("warehouse:all:allocationIds:" + warehouseId, JSONUtil.toJsonStr(allocationIds)); + }else{ + allocationIds = JSONUtil.toList(allocationStr,Long.class); + } return R.data(allocationIds); }