From 49da58b4a4939aea85af56a5728eeb28bfc82640 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 21 Nov 2025 14:15:39 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E9=99=90=E5=88=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8F=B7=E7=9B=B8=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/service/impl/WmsToAcsServiceImpl.java | 44 ++++++++++++++++++- .../modules/quartz/task/AutoCreateInst.java | 10 +++++ .../mes/service/impl/MesToWmsServiceImpl.java | 12 +++++ 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/acs2/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 980856f..0570cdd 100644 --- a/acs2/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -409,7 +409,47 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { // 获取当前所有内存指令 List instructionList = instructionServiceTwo.findAllInstFromCache(); // 调用接口查看任务状态 - for (Instruction dto : instructionList) { + + for (TaskDto taskDto : taskList) { + String TaskStatus = "创建"; + String ExecutingAGV = ""; + + Instruction instruction = instructionList.stream() + .filter(row -> row.getTask_id().equals(taskDto.getTask_id())) + .findFirst().orElse(null); + + // 等于就绪状态就不调用接口 + if (ObjectUtil.isNotEmpty(instruction)) { + if (instruction.getSend_status().equals("1")) { + UnifiedResponse resp = agvService.queryXZAgvInstStatusByCode(instruction.getInstruction_code(), JSONObject.class); + // 状态 + String state = resp.getData().getString("state"); + if ("RUNNING".equals(state) || "WAITING".equals(state)) { + TaskStatus = "执行中"; + } + // 车号 + ExecutingAGV = resp.getData().getString("vehicle"); + } + } + + // mes起点终点为空则不返回 + if (ObjectUtil.isEmpty(taskDto.getStart_parent_code()) || ObjectUtil.isEmpty(taskDto.getNext_parent_code())) { + continue; + } + + ResultTaskMesDto mesDto = ResultTaskMesDto.builder() + .TaskCode(taskDto.getTask_code()) + .PickingLocation(taskDto.getStart_parent_code()) + .PlacedLocation(taskDto.getNext_parent_code()) + .TaskStatus(TaskStatus) + .ExecutingAGV(ExecutingAGV) + .CreateTime(taskDto.getCreate_time()) + .ExecuteTime(taskDto.getUpdate_time()) + .build(); + mesDtoList.add(mesDto); + } + + /* for (Instruction dto : instructionList) { String TaskStatus = "创建"; String ExecutingAGV = ""; @@ -447,7 +487,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { .ExecuteTime(taskDto.getUpdate_time()) .build(); mesDtoList.add(mesDto); - } + }*/ // 返回结果 JSONObject result = new JSONObject(); result.put("ReturnStatus", 0); diff --git a/acs2/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java b/acs2/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java index cf80665..f8ea6b7 100644 --- a/acs2/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java +++ b/acs2/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java @@ -75,6 +75,16 @@ public class AutoCreateInst { } } + // 判断终点是否是CPJSSX,如果是只能下发执行一个 + if (nextPoint.equals("CPJSSX")) { + List readyExTask = taskserver.findReadyExTask(); + boolean isEnd = readyExTask.stream() + .anyMatch(row -> row.getNext_device_code().equals("CPJSSX")); + if (isEnd) { + continue; + } + } + // 获取任务对应的字段参数 String taskid = acsTask.getTask_id(); String taskcode = acsTask.getTask_code(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java index b03e2e4..7a7040a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java @@ -113,6 +113,18 @@ public class MesToWmsServiceImpl implements MesToWmsService { jsonItem.put("task_type",json.getString("task_type")); } + // 判断是否有相同任务号的任务 + SchBaseTask taskCode = taskService.getByCode(jsonItem.getString("TaskCode")); + if (ObjectUtil.isNotEmpty(taskCode)) { + JSONObject jsonErro = new JSONObject(); + jsonErro.put("TaskCode", jsonItem.getString("TaskCode")); + jsonErro.put("ReturnStatus", 1); + jsonErro.put("ReturnInfo", "5.不能立即派送" + "此任务号已下发过任务!"); + jsonErro.put("ReturnCount", null); + jsonErro.put("MsgTime", DateUtil.now()); + erroList.add(jsonErro); + } + taskCreateList.add(jsonItem); } }