From a62ca100a2f8a2a4ceebd503dfbd8ea948230771 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 24 Mar 2023 17:35:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90=E3=80=81?= =?UTF-8?q?=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/service/impl/AcsToWmsServiceImpl.java | 10 ++- .../wms/sch/service/impl/TaskServiceImpl.java | 80 ++++++++----------- 2 files changed, 39 insertions(+), 51 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index b2c60897..bcdb3561 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -20,6 +20,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.service.dto.TaskDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -29,11 +30,12 @@ import java.util.HashMap; import java.util.Map; @Service -@RequiredArgsConstructor @Slf4j public class AcsToWmsServiceImpl implements AcsToWmsService { - private final TaskService taskService; - private final AgvInstService agvInstService; + @Autowired + private TaskService taskService; + @Autowired + private AgvInstService agvInstService; @Override public Map apply(JSONObject jsonObject) { @@ -70,7 +72,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONArray errArr = new JSONArray(); for (int i = 0; i < array.size(); i++) { JSONObject row = array.getJSONObject(i); - String task_uuid = row.getString("task_uuid"); + String task_uuid = row.getString("task_id"); TaskDto taskDto = taskService.findById(task_uuid); String processing_class = taskDto.getHandle_class(); //1:执行中,2:完成 ,3:acs取消 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index 1132339f..10206ada 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -17,9 +17,13 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.dto.ClassstandardDto; +import org.nl.wms.ext.acs.service.AcsToWmsService; +import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl; +import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.service.dto.TaskDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,11 +40,13 @@ import java.util.Map; * @date 2021-08-19 **/ @Service -@RequiredArgsConstructor @Slf4j public class TaskServiceImpl implements TaskService { - private final ClassstandardService classstandardService; + @Autowired + private ClassstandardService classstandardService; + @Autowired + private AcsToWmsService acsToWmsService; @Override public Map queryAll(Map form, Pageable page) { @@ -176,55 +182,35 @@ public class TaskServiceImpl implements TaskService { @Override public void operation(Map map) { + WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl(); String task_id = MapUtil.getStr(map, "task_id"); String method_name = MapUtil.getStr(map, "method_name"); JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); if (taskObj.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) throw new BadRequestException("任务已完成!"); - // 任务处理类 - String processing_class = taskObj.getString("handle_class"); - String message = ""; - // 根据任务类型获取对应的任务操作类 - try { - Class clz = Class.forName(processing_class); - Object obj = clz.newInstance(); - // 调用每个任务类的method_name()强制结束方法 - Method m; - JSONObject result; - if (method_name.equals("immediateNotifyAcs")) { // 立即下发不需要参数 - m = obj.getClass().getMethod(method_name); - result = (JSONObject) m.invoke(obj); - } else { - m = obj.getClass().getMethod(method_name, String.class); - result = (JSONObject) m.invoke(obj, task_id); - } - if (ObjectUtil.isEmpty(result)) return; - JSONArray arr = result.getJSONArray("errArr"); - WQLObject wo = WQLObject.getWQLObject("sch_base_task"); - if (ObjectUtil.isNotEmpty(arr)) { - for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); - JSONObject param = new JSONObject(); - param.put("task_id", json.getString("task_id")); - param.put("remark", json.getString("message")); - wo.update(param); - } - throw new BadRequestException("任务操作失败!"); - } else { - JSONObject param = new JSONObject(); - param.put("task_id", task_id); - param.put("remark", "操作成功"); - wo.update(param); - } - } catch (InvocationTargetException e) { - if (ObjectUtil.isNull(e.getTargetException().getMessage())) { - message = e.getTargetException().toString(); - } else { - message = e.getTargetException().getMessage(); - } - throw new BadRequestException(message); - } catch (Exception e) { - e.printStackTrace(); - throw new BadRequestException("任务操作失败!"); + + switch (method_name) { // forceFinish, cancel + case "immediateNotifyAcs": + JSONArray array = new JSONArray(); + array.add(taskObj); + wms.issueTaskToAcs(array); + break; + case "forceFinish": + JSONArray finish = new JSONArray(); + JSONObject res = new JSONObject(); + res.put("task_id", task_id); + res.put("task_status", "2"); + finish.add(res); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish)); + break; + case "cancel": + JSONArray cancel = new JSONArray(); + JSONObject res2 = new JSONObject(); + res2.put("task_id", task_id); + res2.put("task_status", "1"); + cancel.add(res2); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); + break; + default: break; } }