From d093d6723dda1ec949f3326b93833a7143c66537 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 29 May 2023 17:13:24 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/AcsTaskEnum.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 31 +++---------- .../ext/acs/service/impl/AgvInstService.java | 3 ++ .../acs/service/impl/WmsToAcsServiceImpl.java | 8 +++- .../sch/service/TaskService.java | 1 - .../sch/service/impl/TaskServiceImpl.java | 43 +------------------ .../sch/tasks/SpeMachinery/SpeEmpTask.java | 5 +-- .../sch/tasks/SpeMachinery/SpeFullTask.java | 16 ++++--- .../sch/tasks/TaskScheduleService.java | 2 +- .../device/dao/mapper/PdmBiDeviceMapper.xml | 4 +- .../labelConverter/impl/FlowConverter.java | 7 +++ .../labelConverter/impl/FlowElement.java | 6 +-- .../labelConverter/impl/ParamConverter.java | 42 ++++++++++++++++++ .../labelConverter/impl/ParamElement.java | 18 ++++++++ .../task/impl/SchBaseTaskServiceImpl.java | 4 +- .../src/main/resources/scheduler.xml | 5 ++- .../workorder/produceshiftorder.js | 2 +- 17 files changed, 109 insertions(+), 90 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamElement.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index ece8922b..20e4eb4a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -27,7 +27,7 @@ public enum AcsTaskEnum { //专机到深坑任务:深坑业务单独处理 TASK_PRODUCT_WASH("3","专机-深坑任务"), //3个点,任务编号,缓存线满料载具列表 - TASK_CACHELINE_OUT("4","缓存线-专机出库任务"), + TASK_CACHELINE_OUT("4","缓存线-专机缺料任务"), TASK_PLOTTER_MAC("5","刻字机-满料入库"), TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"), TASK_WARP_MAC("7","包装机-叫料出库"), 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 07476391..7e0d4cbe 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 @@ -122,49 +122,30 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String task_id = row.getString("task_id"); TaskDto taskDto = taskService.findById(task_id); String processing_class = taskDto.getHandle_class(); - //1:执行中,2:完成 ,3:acs取消 + //6:执行中,7:完成 ,8:acs取消 acs:123 String acs_task_status = row.getString("status"); String message = ""; String status = ""; if ("1".equals(acs_task_status)) { - status = AcsTaskEnum.STATUS_START.getCode(); + status = StatusEnum.TASK_RUNNING.getCode(); } if ("2".equals(acs_task_status)) { - status = AcsTaskEnum.STATUS_FINISH.getCode(); + status = StatusEnum.TASK_FINISH.getCode(); } if ("3".equals(acs_task_status)) { - status = AcsTaskEnum.STATUS_CANNEL.getCode(); + status = StatusEnum.TASK_CANNEL.getCode(); } // 任务处理类 try { - Object obj = SpringContextHolder.getBean(Class.forName(processing_class)); - Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class); - m.invoke(obj, row, status); - } catch (InvocationTargetException e) { - e.printStackTrace(); - //空指针 - if (ObjectUtil.isNull(e.getTargetException().getMessage())) { - message = e.getTargetException().toString(); - } else { - message = e.getTargetException().getMessage(); - } - log.info("任务状态更新失败:{}", message); - - JSONObject json = new JSONObject(); - json.put("task_id", task_id); - json.put("message", message); - errArr.add(json); - + AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); + taskHandler.updateTaskStatus(row,status); } catch (Exception e) { - e.printStackTrace(); - message = e.getMessage(); log.info("任务状态更新失败:{}", message); JSONObject json = new JSONObject(); json.put("task_id", task_id); json.put("message", message); errArr.add(json); - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java index 0f036b19..17cd3889 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java @@ -1,6 +1,7 @@ package org.nl.wms.ext.acs.service.impl; import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -79,12 +80,14 @@ public class AgvInstService { //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: if (next.getName().equals("深坑清洗")){ query.put("material_id",task.getString("material_id")); + query.put("spec",null); // query.put("qty",quantity) 深坑物料需要转重量 task.put("task_type",AcsTaskEnum.TASK_PRODUCT_WASH.getCode()); task.put("task_name",AcsTaskEnum.TASK_PRODUCT_WASH.getDesc()); } List> collect = deviceService.workproceduceDevices(query); + log.info("调度任务分配点位信息:", JSON.toJSONString(collect)); List> list = collect.stream().filter(stringStringMap -> stringStringMap.get("tasks") == null || stringStringMap.get("materials").contains(task.getString("material_id"))).collect(Collectors.toList()); task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode()); task.put("is_send","1"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index f36c814a..20bbc3f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -2,7 +2,7 @@ package org.nl.wms.ext.acs.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.common.utils.AcsUtil; @@ -32,8 +32,11 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{ , "next_point_code", task.getString("point_code3")//空盘返回点 , "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id") , "priority", task.getString("priority") - , "is_send", task.getString("is_send") + , "is_send", task.getBoolean("is_send")?"1":"0" , "vehicle_code", task.getString("vehicle_code") + , "quantity", task.getString("material_qty") + , "barcodeArr", task.getString("barcodeArr") + , "proprity_floor", "2" , "agv_system_type", task.getString("agv_system_type") )); form.add(param); @@ -104,3 +107,4 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{ } } + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/TaskService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/TaskService.java index 384a7323..09a69a5d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/TaskService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/TaskService.java @@ -84,7 +84,6 @@ public interface TaskService { * * @param param */ - void operation(Map param); /** * 获取任务类型 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java index d213bd48..8fff62e4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; @@ -176,48 +177,6 @@ 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("任务已完成!"); - - 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("status", AcsTaskEnum.STATUS_FINISH.getCode()); - res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成 - 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("status", AcsTaskEnum.STATUS_CANNEL.getCode()); - cancel.add(res2); - acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); - break; - case "delete": - JSONArray delete = new JSONArray(); - JSONObject res3 = new JSONObject(); - res3.put("task_id", task_id); - res3.put("status", AcsTaskEnum.STATUS_CANNEL.getCode()); - delete.add(res3); - acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(delete)); - break; - default: break; - } - } @Override public JSONArray getTaskTypes() { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java index c5fce2a6..3da80518 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java @@ -106,7 +106,7 @@ public class SpeEmpTask extends AbstractAcsTask { JSONObject form = new JSONObject(MapOf.of("start_point_code","", "next_point_code",param.getString("device_code"),"return_point_code", "","vehicle_code", - "","product_area",one.getProduct_area(),"quantity", param.getString("quantity"),"type",param.getString("type"),"material_id", one.getMaterial_id())); + "","product_area",one.getProduct_area(),"quantity", param.getString("quantity"),"type",AcsTaskEnum.TASK_CACHELINE_OUT.getCode(),"material_id", one.getMaterial_id())); String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; JSONObject task = packageParam(form, taskId); taskService.save(task.toJavaObject(SchBaseTask.class)); @@ -155,9 +155,8 @@ public class SpeEmpTask extends AbstractAcsTask { private JSONObject packageParam(JSONObject form, String task_id) { JSONObject task = new JSONObject(); 参数封装:{ - AcsTaskEnum taskEnum = AcsTaskEnum.getType(form.getString("type"), "TASK_"); task.put("task_id", task_id); - task.put("task_name", taskEnum.getDesc()); + task.put("task_name", AcsTaskEnum.TASK_CACHELINE_OUT.name()); task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); task.put("task_type", form.getString("type")); task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NOBLE_DOUBLE_TASK.getCode()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java index 2ec30c1a..49c78d20 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java @@ -77,14 +77,9 @@ public class SpeFullTask extends AbstractAcsTask { log.info(InterfaceLogType.ACS_TO_LMS.getDesc()); // 指令执行中 SchBaseTask task = taskService.getById(param.getString("task_id")); - AcsTaskEnum taskType = AcsTaskEnum.getType(task.getTask_type(),"TASK_"); pointService.update(new UpdateWrapper().set("lock_type","0").in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); - taskService.update(new UpdateWrapper() - .set("task_status",status) - .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); try { - SpeHandles.get(taskType.name()).handle(param,status,task); + SpeHandles.get(task.getTask_name()).handle(param,status,task); }catch (Exception ex){ log.error(OPT_NAME+"updateStatus error:{}",ex); throw ex; @@ -270,6 +265,10 @@ public class SpeFullTask extends AbstractAcsTask { switch (status){ case STATUS_START: Map extParam = (Map)param.get("ext_param"); + UpdateWrapper wrapper = new UpdateWrapper() + .set("task_status", StatusEnum.TASK_RUNNING.getCode()) + .set("update_name", "acs") + .set("update_time", DateUtil.now()).eq("task_id", task.getTask_id()); log.info("生坑到料完成:"+param.toString()); if (extParam.get("fall_finish") != null){ PdmBiDevice one = deviceService.getOne(new QueryWrapper().eq("device_code", task.getPoint_code2())); @@ -280,8 +279,13 @@ public class SpeFullTask extends AbstractAcsTask { } break; case STATUS_FINISH: + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); break; case STATUS_CANNEL: + cancel(param.getString("task_id")); break; default: throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java index f0d37294..6347cf91 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java @@ -84,7 +84,7 @@ public class TaskScheduleService { } } } - List all = taskService.list(new QueryWrapper().eq("is_auto_issue", "1").eq("is_delete",false).eq("task_status", StatusEnum.TASK_START_END_P.getCode())); + List all = taskService.list(new QueryWrapper().eq("is_auto_issue", "1").eq("is_delete",false).eq("task_status", StatusEnum.TASK_START_END_P.getCode()).orderByAsc("point_code2")); //分区域:不同区域调用不同acs接口 log.info("定时调度——2222——准备下发任务:{}", JSON.toJSONString(all.stream().map(a->a.getTask_id()+"__"+a.getPoint_code1()+a.getPoint_code2()+a.getPoint_code3()).collect(Collectors.toList()))); Map> areaCollent = all.stream().collect(Collectors.groupingBy(SchBaseTask::getProduct_area)); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml index c3b3b678..25a5a89f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml @@ -20,7 +20,7 @@