修复发送任务延迟性的问题

This commit is contained in:
梁州 2025-11-18 13:40:01 +08:00
parent 30d8831498
commit 2022369830

View File

@ -89,10 +89,6 @@ public class WmsJobServiceImplements implements IWmsJobService {
List<String> taskGroupIds = new ArrayList<>(); List<String> taskGroupIds = new ArrayList<>();
// 这里单独处理站台拣选出库以外的任务 // 这里单独处理站台拣选出库以外的任务
for (Task task : allTasks) { for (Task task : allTasks) {
if (request.size() >= maxWcsAcceptNums) {
// 每次给wcs下发数量
break;
}
if (taskGroupIds.contains(task.getTaskGroup())) { if (taskGroupIds.contains(task.getTaskGroup())) {
// 该任务组已经下发 // 该任务组已经下发
continue; continue;
@ -130,36 +126,41 @@ public class WmsJobServiceImplements implements IWmsJobService {
// 发送任务 // 发送任务
String url = configMap.get(ConfigMapKeyEnum.URL_WCS_TASK.getConfigKey()); String url = configMap.get(ConfigMapKeyEnum.URL_WCS_TASK.getConfigKey());
if (url != null) { if (url != null) {
logger.info("向WCS发送任务地址{},请求详情:{}", url, convertJsonString(request)); // 循环发送任务
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class); for (int i = 0; i < request.size(); i += maxWcsAcceptNums) {
try { List<WcsTaskRequest> tempRequest = request.subList(i, Math.min(i + maxWcsAcceptNums, request.size()));
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS")); logger.info("向WCS发送任务{}-{},地址:{},请求详情:{}", i + 1, Math.min(i + maxWcsAcceptNums, request.size()), url, convertJsonString(request));
} catch (Exception e) { ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, convertJsonString(request)), ResponseEntity.class);
logger.error("保存发送任务的日志错误。"); try {
} logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS"));
if (result == null) { } catch (Exception e) {
logger.error("发送堆垛机任务异常。"); logger.error("保存发送任务的日志错误。");
} else { }
if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) { if (result == null) {
logger.info("发送WCS任务成功。"); logger.error("发送堆垛机任务异常。");
taskService.update(new LambdaUpdateWrapper<Task>()
.set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode())
.in(Task::getTaskGroup, taskGroupIds)
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
} else { } else {
// 判断returnData的数据 if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
if (result.getReturnData() != null) { logger.info("发送WCS任务成功。");
List<WcsTaskRequest> errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class); List<String> successTaskIds = tempRequest.stream().map(WcsTaskRequest::getTaskId).toList();
if (!errorTasks.isEmpty()) { taskService.update(new LambdaUpdateWrapper<Task>()
List<String> failedTaskIds = errorTasks.stream().map(WcsTaskRequest::getTaskId).distinct().toList(); .set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode())
// 更新任务状态为异常 .in(Task::getTaskGroup, successTaskIds)
taskService.update(new LambdaUpdateWrapper<Task>() .eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
.set(Task::getTaskStatus, WmsTaskStatus.EXCEPTION.getCode()) } else {
.in(Task::getTaskGroup, failedTaskIds) logger.error("发送任务错误:{}", convertJsonString(result));
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); // 判断returnData的数据
if (result.getReturnData() != null) {
List<WcsTaskRequest> errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class);
if (!errorTasks.isEmpty()) {
List<String> failedTaskIds = errorTasks.stream().map(WcsTaskRequest::getTaskId).distinct().toList();
// 更新任务状态为异常
taskService.update(new LambdaUpdateWrapper<Task>()
.set(Task::getTaskStatus, WmsTaskStatus.EXCEPTION.getCode())
.in(Task::getTaskGroup, failedTaskIds)
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
}
} }
} }
logger.error("发送任务错误:{}", convertJsonString(result));
} }
} }
} else { } else {