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

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<>();
// 这里单独处理站台拣选出库以外的任务
for (Task task : allTasks) {
if (request.size() >= maxWcsAcceptNums) {
// 每次给wcs下发数量
break;
}
if (taskGroupIds.contains(task.getTaskGroup())) {
// 该任务组已经下发
continue;
@ -130,7 +126,10 @@ public class WmsJobServiceImplements implements IWmsJobService {
// 发送任务
String url = configMap.get(ConfigMapKeyEnum.URL_WCS_TASK.getConfigKey());
if (url != null) {
logger.info("向WCS发送任务地址{},请求详情:{}", url, convertJsonString(request));
// 循环发送任务
for (int i = 0; i < request.size(); i += maxWcsAcceptNums) {
List<WcsTaskRequest> tempRequest = request.subList(i, Math.min(i + maxWcsAcceptNums, request.size()));
logger.info("向WCS发送任务{}-{},地址:{},请求详情:{}", i + 1, Math.min(i + maxWcsAcceptNums, request.size()), 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"));
@ -142,11 +141,13 @@ public class WmsJobServiceImplements implements IWmsJobService {
} else {
if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
logger.info("发送WCS任务成功。");
List<String> successTaskIds = tempRequest.stream().map(WcsTaskRequest::getTaskId).toList();
taskService.update(new LambdaUpdateWrapper<Task>()
.set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode())
.in(Task::getTaskGroup, taskGroupIds)
.in(Task::getTaskGroup, successTaskIds)
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
} else {
logger.error("发送任务错误:{}", convertJsonString(result));
// 判断returnData的数据
if (result.getReturnData() != null) {
List<WcsTaskRequest> errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class);
@ -159,7 +160,7 @@ public class WmsJobServiceImplements implements IWmsJobService {
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
}
}
logger.error("发送任务错误:{}", convertJsonString(result));
}
}
}
} else {