From e60c80d7b8d170b755a6e43eca755f4909fcdbfc Mon Sep 17 00:00:00 2001 From: liangzhou <594755172@qq.com> Date: Fri, 14 Nov 2025 16:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A8=8B=E5=BA=8F=EF=BC=9A1.?= =?UTF-8?q?=20=E5=B7=A5=E4=BD=9C=E7=8A=B6=E6=80=81=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=94=B9=E4=B8=BA=E5=8F=AA=E5=88=A4=E6=96=AD1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E3=80=822.=20=E4=BF=AE=E6=94=B9=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=85=A5=E5=BA=93=E4=B8=8E=E6=8B=A3=E9=80=89=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E5=86=99=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wms/controller/TaskController.java | 27 +- .../quartz/job_executor/CommonTaskSender.java | 5 +- .../quartz/job_executor/PickTaskSender.java | 7 +- .../wms/service/business/IWmsJobService.java | 6 +- .../WmsJobServiceImplements.java | 300 +++++++++--------- 5 files changed, 159 insertions(+), 186 deletions(-) diff --git a/src/main/java/com/wms/controller/TaskController.java b/src/main/java/com/wms/controller/TaskController.java index 4b7d15b..e7bcec2 100644 --- a/src/main/java/com/wms/controller/TaskController.java +++ b/src/main/java/com/wms/controller/TaskController.java @@ -112,10 +112,6 @@ public class TaskController { * 物料服务 */ private final GoodsService goodsService; - /** - * 流转中物料箱号数据 - */ - private final OutsideVehiclesService outsideVehiclesService; /** * 拣选任务记录服务 */ @@ -132,10 +128,6 @@ public class TaskController { * 工作站配置服务 */ private final WorkStationConfigService workStationConfigService; - /** - * 站台要料服务 - */ - private final GoodsToStationService goodsToStationService; /** * 非计划领料服务 */ @@ -161,7 +153,6 @@ public class TaskController { */ private final IWorkService workService; private final WorkFlowLastService workFlowLastService;// 服务 - private final StandStackerTaskService standStackerTaskService;// 特殊服务 private final InventoryListService inventoryService; private final WorkSummaryService workSummaryService; private final InventoryHistoryService inventoryHistoryService; @@ -642,7 +633,7 @@ public class TaskController { response.setMessage("暂无可用库位!"); return convertJsonString(response); } else { - Location nextLocation = locationService.getOne(new LambdaQueryWrapper().eq(Location::getLocationId, resultMap.get("nextLocationId")).last("limit 1")); + Location nextLocation = locationService.getById(resultMap.get("nextLocationId")); if (Objects.equals(nextLocation.getLocationStatus(), LocationStatus.OCCUPY.getCode()) && nextLocation.getVehicleId().equals(wcsVehicleInRequest.getVehicleNo())) { nextLocationId = resultMap.get("nextLocationId"); break; @@ -1584,7 +1575,7 @@ public class TaskController { if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, standId) .in(WorkFlow::getGoodsId, goodsIdList) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { // 需要,不放行,返回前台提示信息 StandPickVo pickVoEntity = new StandPickVo(); pickVoEntity.setTip("当前料箱还有其他物料需要拣货"); @@ -1608,7 +1599,7 @@ public class TaskController { // 判断是不是已经完成工作 if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, standId) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { // 当前站台工作未全部完成 standService.update(new LambdaUpdateWrapper() .set(Stand::getLastUseTime, LocalDateTime.now()) @@ -1647,7 +1638,7 @@ public class TaskController { // 判断是不是已经完成工作 if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, standId) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { // 当前站台工作未全部完成 standService.update(new LambdaUpdateWrapper() .set(Stand::getLastUseTime, LocalDateTime.now()) @@ -1765,7 +1756,7 @@ public class TaskController { if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, targetStand.getStandId()) .in(WorkFlow::getGoodsId, goodsIdList) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { // 更新站台信息 standService.update(new LambdaUpdateWrapper() .set(Stand::getPickGoods, "") @@ -1787,7 +1778,7 @@ public class TaskController { // 判断是不是已经完成工作 if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, targetStand.getStandId()) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { standService.update(new LambdaUpdateWrapper() .set(Stand::getLastUseTime, LocalDateTime.now()) .set(Stand::getPickVehicle, "") @@ -1823,7 +1814,7 @@ public class TaskController { // 判断是不是已经完成工作 if (workFlowService.exists(new LambdaQueryWrapper() .eq(WorkFlow::getWorkStation, targetStand.getStandId()) - .notIn(WorkFlow::getWorkStatus, -1, 2))) { + .eq(WorkFlow::getWorkStatus, 1))) { // 当前站台工作未全部完成 standService.update(new LambdaUpdateWrapper() .set(Stand::getLastUseTime, LocalDateTime.now()) @@ -2209,8 +2200,6 @@ public class TaskController { backTask.setCreateTime(LocalDateTime.now()); // 保存任务 taskService.save(backTask); - // 删除outsideVehicle表 - outsideVehiclesService.remove(new LambdaQueryWrapper().eq(OutsideVehicles::getVehicleId, requestBackQuery.getVehicleId())); // 设置库存状态为回库中 stockService.update(new LambdaUpdateWrapper() .set(Stock::getStockStatus, StockStatus.BACK.getCode()) @@ -3336,7 +3325,7 @@ public class TaskController { inventoryVo.setGoodsId(inventoryRequest.getGoodsId()); inventoryVo.setVehiclesQuantity(stockList.size()); inventoryVo.setVehicleIds(stock.getVehicleId()); - String vehicleStatus = ""; + String vehicleStatus; if (Objects.equals(StockStatus.OK.getCode(), stock.getStockStatus())) { vehicleStatus = "在库中"; } else if (Objects.equals(StockStatus.OUT.getCode(), stock.getStockStatus())) { diff --git a/src/main/java/com/wms/quartz/job_executor/CommonTaskSender.java b/src/main/java/com/wms/quartz/job_executor/CommonTaskSender.java index c5d94a0..e986088 100644 --- a/src/main/java/com/wms/quartz/job_executor/CommonTaskSender.java +++ b/src/main/java/com/wms/quartz/job_executor/CommonTaskSender.java @@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import static com.wms.config.InitLocalConfig.configMap; +import static com.wms.utils.StringUtils.convertJsonString; /** * 普通任务发送定时器类 @@ -30,7 +31,6 @@ public class CommonTaskSender implements Job { * @param jobExecutionContext 执行文本 */ @Override - @Transactional(rollbackFor = Exception.class) public void execute(JobExecutionContext jobExecutionContext) { try { String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); @@ -40,8 +40,7 @@ public class CommonTaskSender implements Job { // 发送正常任务 wmsJobService.sendCommonTasks(); } catch (Exception e) { - // 回滚事务 - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("发送任务给wcs发生异常:{}", convertJsonString(e)); } } } diff --git a/src/main/java/com/wms/quartz/job_executor/PickTaskSender.java b/src/main/java/com/wms/quartz/job_executor/PickTaskSender.java index 0e230c9..b60abe3 100644 --- a/src/main/java/com/wms/quartz/job_executor/PickTaskSender.java +++ b/src/main/java/com/wms/quartz/job_executor/PickTaskSender.java @@ -6,10 +6,9 @@ import com.wms.utils.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.quartz.*; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import static com.wms.config.InitLocalConfig.configMap; +import static com.wms.utils.StringUtils.convertJsonString; @Slf4j @PersistJobDataAfterExecution @@ -27,7 +26,6 @@ public class PickTaskSender implements Job { * @param jobExecutionContext 执行上下文 */ @Override - @Transactional(rollbackFor = Exception.class) public void execute(JobExecutionContext jobExecutionContext) { try { String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); @@ -37,8 +35,7 @@ public class PickTaskSender implements Job { // 发送拣选任务 wmsJobService.sendPickTasks(); } catch (Exception e) { - // 回滚事务 - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("发送拣选任务任务给wcs发生异常:{}", convertJsonString(e)); } } } diff --git a/src/main/java/com/wms/service/business/IWmsJobService.java b/src/main/java/com/wms/service/business/IWmsJobService.java index 6b5dfcc..c6b42ad 100644 --- a/src/main/java/com/wms/service/business/IWmsJobService.java +++ b/src/main/java/com/wms/service/business/IWmsJobService.java @@ -6,9 +6,8 @@ package com.wms.service.business; public interface IWmsJobService { /** * 执行普通任务 - * @throws Exception 异常用于回滚事务 */ - void sendCommonTasks() throws Exception; + void sendCommonTasks(); /** * 下发拣选出库任务 @@ -18,9 +17,8 @@ public interface IWmsJobService { /** * 发送拣选任务 - * @throws Exception 异常用于回滚事务 */ - void sendPickTasks() throws Exception; + void sendPickTasks(); /** * 发送重复入库修正后的任务 diff --git a/src/main/java/com/wms/service/business/serviceImplements/WmsJobServiceImplements.java b/src/main/java/com/wms/service/business/serviceImplements/WmsJobServiceImplements.java index 994438a..61612aa 100644 --- a/src/main/java/com/wms/service/business/serviceImplements/WmsJobServiceImplements.java +++ b/src/main/java/com/wms/service/business/serviceImplements/WmsJobServiceImplements.java @@ -48,7 +48,6 @@ import static com.wms.utils.StringUtils.convertJsonString; @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class WmsJobServiceImplements implements IWmsJobService { private final Logger logger = LoggerFactory.getLogger(this.getClass());// 日志 - private final String ROOT_PATH = "./file"; private final LogService logService;// 日志服务 private final TaskService taskService;// 任务服务 @@ -72,105 +71,100 @@ public class WmsJobServiceImplements implements IWmsJobService { * 发送正常的任务 */ @Override - public void sendCommonTasks() throws Exception { - try { - // 检索任务表---新建未下发的任务 - LambdaQueryWrapper waitForDistributeTaskQuery = new LambdaQueryWrapper() - .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()); - List allTasks = taskService.list(waitForDistributeTaskQuery); - if (!allTasks.isEmpty()) { - String max_wcs_accept_nums = configMap.get(ConfigMapKeyEnum.MAX_WCS_ACCEPT_NUMS.getConfigKey()); - if (StringUtils.isEmpty(max_wcs_accept_nums)) { - logger.error("配置未生成"); - return; + public void sendCommonTasks() { + // 检索任务表---新建未下发的任务 + LambdaQueryWrapper waitForDistributeTaskQuery = new LambdaQueryWrapper() + .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()); + List allTasks = taskService.list(waitForDistributeTaskQuery); + if (!allTasks.isEmpty()) { + String max_wcs_accept_nums = configMap.get(ConfigMapKeyEnum.MAX_WCS_ACCEPT_NUMS.getConfigKey()); + if (StringUtils.isEmpty(max_wcs_accept_nums)) { + logger.error("配置未生成"); + return; + } + int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums); + // 需要发送给wcs的任务列表 + List request = new ArrayList<>(); + // 已经下发的任务组列表 + List taskGroupIds = new ArrayList<>(); + // 这里单独处理站台拣选出库以外的任务 + for (Task task : allTasks) { + if (request.size() >= maxWcsAcceptNums) { + // 每次给wcs下发数量 + break; } - int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums); - // 需要发送给wcs的任务列表 - List request = new ArrayList<>(); - // 已经下发的任务组列表 - List taskGroupIds = new ArrayList<>(); - // 这里单独处理站台拣选出库以外的任务 - for (Task task : allTasks) { - if (request.size() >= maxWcsAcceptNums) { - // 每次给wcs下发数量 - break; - } - if (taskGroupIds.contains(task.getTaskGroup())) { - // 该任务组已经下发 + if (taskGroupIds.contains(task.getTaskGroup())) { + // 该任务组已经下发 + continue; + } + if (StringUtils.isNotEmpty(task.getPreTask())) {// 当前任务具有前置任务 + // 查询一下前置的任务有没有存在,存在则不下发 + if (taskService.exists(new LambdaQueryWrapper().eq(Task::getTaskId, task.getPreTask()))) { continue; } - if (StringUtils.isNotEmpty(task.getPreTask())) {// 当前任务具有前置任务 - // 查询一下前置的任务有没有存在,存在则不下发 - if (taskService.exists(new LambdaQueryWrapper().eq(Task::getTaskId, task.getPreTask()))) { - continue; - } - } - // 创建发送的任务 - WcsTaskRequest tempTask = new WcsTaskRequest(); - tempTask.setTaskId(task.getTaskGroup()); - if (Objects.equals(task.getTaskType(), TaskType.INVENTORY.getCode())) { - tempTask.setTaskType(TaskType.OUT.getCode()); - } else { - tempTask.setTaskType(task.getTaskType()); - } - tempTask.setOrigin(task.getOrigin()); - tempTask.setDestination(task.getDestination()); - tempTask.setVehicleNo(task.getVehicleId()); - tempTask.setVehicleSize(task.getVehicleSize()); - tempTask.setWeight(task.getWeight()); - tempTask.setPriority(task.getTaskPriority()); - request.add(tempTask); - // 已经发送过的任务组 - taskGroupIds.add(task.getTaskGroup()); } - if (request.isEmpty()) { - // 没有新任务发送 - return; - } - // 下面这行代码模拟wcs下发成功 -// simulateSendPickOutTasks(taskGroupIds, Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); - // 发送任务 - String url = configMap.get(ConfigMapKeyEnum.URL_WCS_TASK.getConfigKey()); - if (url != null) { - logger.info("向WCS发送任务,地址:{},请求详情:{}", url, convertJsonString(request)); - ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class); - try { - logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS")); - } catch (Exception e) { - logger.error("保存发送任务的日志错误。"); - } - if (result == null) { - logger.error("发送任务异常。"); - } else { - if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { - logger.info("发送WCS任务成功。"); - taskService.update(new LambdaUpdateWrapper() - .set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode()) - .in(Task::getTaskGroup, taskGroupIds) - .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); - } else { - // 判断returnData的数据 - if (result.getReturnData() != null) { - List errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class); - if (!errorTasks.isEmpty()) { - List failedTaskIds = errorTasks.stream().map(WcsTaskRequest::getTaskId).distinct().toList(); - // 更新任务状态为异常 - taskService.update(new LambdaUpdateWrapper() - .set(Task::getTaskStatus, WmsTaskStatus.EXCEPTION.getCode()) - .in(Task::getTaskGroup, failedTaskIds) - .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); - } - } - logger.error("发送任务错误:{}", convertJsonString(result)); - } - } + // 创建发送的任务 + WcsTaskRequest tempTask = new WcsTaskRequest(); + tempTask.setTaskId(task.getTaskGroup()); + if (Objects.equals(task.getTaskType(), TaskType.INVENTORY.getCode())) { + tempTask.setTaskType(TaskType.OUT.getCode()); } else { - logger.error("WCS发送任务地址为空。"); + tempTask.setTaskType(task.getTaskType()); } + tempTask.setOrigin(task.getOrigin()); + tempTask.setDestination(task.getDestination()); + tempTask.setVehicleNo(task.getVehicleId()); + tempTask.setVehicleSize(task.getVehicleSize()); + tempTask.setWeight(task.getWeight()); + tempTask.setPriority(task.getTaskPriority()); + request.add(tempTask); + // 已经发送过的任务组 + taskGroupIds.add(task.getTaskGroup()); + } + if (request.isEmpty()) { + // 没有新任务发送 + return; + } + // 下面这行代码模拟wcs下发成功 +// simulateSendPickOutTasks(taskGroupIds, Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); + // 发送任务 + String url = configMap.get(ConfigMapKeyEnum.URL_WCS_TASK.getConfigKey()); + if (url != null) { + logger.info("向WCS发送任务,地址:{},请求详情:{}", url, convertJsonString(request)); + ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class); + try { + logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS")); + } catch (Exception e) { + logger.error("保存发送任务的日志错误。"); + } + if (result == null) { + logger.error("发送堆垛机任务异常。"); + } else { + if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { + logger.info("发送WCS任务成功。"); + taskService.update(new LambdaUpdateWrapper() + .set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode()) + .in(Task::getTaskGroup, taskGroupIds) + .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); + } else { + // 判断returnData的数据 + if (result.getReturnData() != null) { + List errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class); + if (!errorTasks.isEmpty()) { + List failedTaskIds = errorTasks.stream().map(WcsTaskRequest::getTaskId).distinct().toList(); + // 更新任务状态为异常 + taskService.update(new LambdaUpdateWrapper() + .set(Task::getTaskStatus, WmsTaskStatus.EXCEPTION.getCode()) + .in(Task::getTaskGroup, failedTaskIds) + .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); + } + } + logger.error("发送任务错误:{}", convertJsonString(result)); + } + } + } else { + logger.error("WCS发送任务地址为空。"); } - } catch (Exception exception) { - logger.error("向WCS发送任务时发生异常:{}", convertJsonString(exception)); - throw new Exception("向WCS发送任务时发生异常。"); } } @@ -178,71 +172,66 @@ public class WmsJobServiceImplements implements IWmsJobService { * 发送拣选任务 */ @Override - public void sendPickTasks() throws Exception { - try { - // 检索任务表---新建未下发的拣选任务 - LambdaQueryWrapper waitForDistributePickTaskQuery = new LambdaQueryWrapper() - .eq(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode()); - List allPickTasks = pickTaskService.list(waitForDistributePickTaskQuery); - if (allPickTasks == null || allPickTasks.isEmpty()) { - return; + public void sendPickTasks() { + // 检索任务表---新建未下发的拣选任务 + LambdaQueryWrapper waitForDistributePickTaskQuery = new LambdaQueryWrapper() + .eq(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode()); + List allPickTasks = pickTaskService.list(waitForDistributePickTaskQuery); + if (allPickTasks == null || allPickTasks.isEmpty()) { + return; + } + // 需要发送给wcs的拣选任务列表 + List request = new ArrayList<>(); + // 载具对应站台列表 + Map> vehicleAndStansMap = new HashMap<>(); + // 循环生成载具对应站台列表 + for (PickTask pickTask : allPickTasks) { + // 当前载具已经添加过站台 + if (vehicleAndStansMap.containsKey(pickTask.getVehicleId())) { + List oldStandIds = vehicleAndStansMap.get(pickTask.getVehicleId()); + oldStandIds.add(pickTask.getStandId()); + vehicleAndStansMap.replace(pickTask.getVehicleId(), oldStandIds); + } else {// 新载具 + List newStandIds = new ArrayList<>(); + newStandIds.add(pickTask.getStandId()); + vehicleAndStansMap.put(pickTask.getVehicleId(), newStandIds); } - // 需要发送给wcs的拣选任务列表 - List request = new ArrayList<>(); - // 载具对应站台列表 - Map> vehicleAndStansMap = new HashMap<>(); - // 循环生成载具对应站台列表 - for (PickTask pickTask : allPickTasks) { - // 当前载具已经添加过站台 - if (vehicleAndStansMap.containsKey(pickTask.getVehicleId())) { - List oldStandIds = vehicleAndStansMap.get(pickTask.getVehicleId()); - oldStandIds.add(pickTask.getStandId()); - vehicleAndStansMap.replace(pickTask.getVehicleId(), oldStandIds); - } else {// 新载具 - List newStandIds = new ArrayList<>(); - newStandIds.add(pickTask.getStandId()); - vehicleAndStansMap.put(pickTask.getVehicleId(), newStandIds); - } - } - // 循环生成Wcs任务请求 - for (String vehicleId : vehicleAndStansMap.keySet()) { - WcsStandTaskRequest requestSingle = new WcsStandTaskRequest(); - requestSingle.setTaskGroup(WmsUtils.generateId(vehicleId)); - requestSingle.setTaskType(1); - requestSingle.setVehicleNo(vehicleId); - requestSingle.setLocation(vehicleAndStansMap.get(vehicleId)); - requestSingle.setRemark("站台拣选任务"); - request.add(requestSingle); - } - // 下面是模拟发送wcs拣选任务 + } + // 循环生成Wcs任务请求 + for (String vehicleId : vehicleAndStansMap.keySet()) { + WcsStandTaskRequest requestSingle = new WcsStandTaskRequest(); + requestSingle.setTaskGroup(WmsUtils.generateId(vehicleId)); + requestSingle.setTaskType(1); + requestSingle.setVehicleNo(vehicleId); + requestSingle.setLocation(vehicleAndStansMap.get(vehicleId)); + requestSingle.setRemark("站台拣选任务"); + request.add(requestSingle); + } + // 下面是模拟发送wcs拣选任务 // simulateSendPickTasks(vehicleAndStansMap.keySet().stream().toList()); - if (!request.isEmpty()) { - // 发送任务 - String url = configMap.get(ConfigMapKeyEnum.URL_WCS_PICK_TASK.getConfigKey()); - if (url != null) { - logger.info("向WCS发送拣选任务,地址:{},请求详情:{}", url, convertJsonString(request)); - ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class); - try { - logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送拣选任务", "setConveyTask", convertJsonString(request), convertJsonString(result), url, LocalDateTime.now(), "WMS")); - } catch (Exception e) { - logger.error("插入日志错误。"); - } - if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { - logger.info("发送拣选任务成功。"); - pickTaskService.update(new LambdaUpdateWrapper() - .set(PickTask::getPickStatus, PickTaskStatusEnum.SEND.getCode()) - .in(PickTask::getVehicleId, vehicleAndStansMap.keySet()) - .eq(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode())); - } else { - logger.error("发送拣选任务错误:{}", convertJsonString(result)); - } - } else { - logger.error("WCS发送拣选任务地址为空。"); + if (!request.isEmpty()) { + // 发送任务 + String url = configMap.get(ConfigMapKeyEnum.URL_WCS_PICK_TASK.getConfigKey()); + if (url != null) { + logger.info("向WCS发送拣选任务,地址:{},请求详情:{}", url, convertJsonString(request)); + ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class); + try { + logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送拣选任务", "setConveyTask", convertJsonString(request), convertJsonString(result), url, LocalDateTime.now(), "WMS")); + } catch (Exception e) { + logger.error("保存发送拣选任务日志错误。"); } + if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { + logger.info("发送拣选任务成功。"); + pickTaskService.update(new LambdaUpdateWrapper() + .set(PickTask::getPickStatus, PickTaskStatusEnum.SEND.getCode()) + .in(PickTask::getVehicleId, vehicleAndStansMap.keySet()) + .eq(PickTask::getPickStatus, PickTaskStatusEnum.NEW.getCode())); + } else { + logger.error("发送拣选任务错误:{}", convertJsonString(result)); + } + } else { + logger.error("WCS发送拣选任务地址为空。"); } - } catch (Exception exception) { - logger.error("向WCS发送拣选任务时发生异常:{}", convertJsonString(exception)); - throw new Exception("向WCS发送拣选任务时发生异常。"); } } @@ -369,6 +358,7 @@ public class WmsJobServiceImplements implements IWmsJobService { // 查询过期任务记录 List expireTaskRecords = taskRecordService.list(new LambdaQueryWrapper() .lt(TaskRecord::getCreateTime, deleteTime)); + String ROOT_PATH = "./file"; if (expireTaskRecords != null && !expireTaskRecords.isEmpty()) { List needRemoveIds = new ArrayList<>(); List finishedExcelTemp = new ArrayList<>(); @@ -1096,7 +1086,7 @@ public class WmsJobServiceImplements implements IWmsJobService { } } else { - logger.error("WCS发送任务地址为空。"); + logger.error("WCS发送站台出库任务地址为空。"); } } } catch (Exception exception) {