diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index 46b9b7832..3f6ff8363 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -10,6 +11,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -18,6 +20,7 @@ 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.basedata.st.service.impl.UserAreaServiceImpl; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; import org.nl.wms.sch.service.RegionService; import org.nl.wms.sch.service.TaskService; @@ -90,13 +93,16 @@ public class TaskServiceImpl implements TaskService { if (StrUtil.isNotEmpty(whereJson.getString("end_time"))) { map.put("end_time", whereJson.getString("end_time")); } + if (StrUtil.isNotEmpty(whereJson.getString("is_delete"))) { + map.put("is_delete", whereJson.getString("is_delete")); + } //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); if (ObjectUtil.isNotEmpty(in_area_id)) { map.put("in_area_id", in_area_id); } - JSONObject json = WQL.getWO("QSCH_TASK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "task.update_time desc"); + JSONObject json = WQL.getWO("QSCH_TASK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); JSONArray content = json.getJSONArray("content"); JSONArray res = new JSONArray(); @@ -116,43 +122,54 @@ public class TaskServiceImpl implements TaskService { 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); - // 任务处理类 - String processing_class = taskObj.getString("handle_class"); - String message = ""; - try { - Class clz = Class.forName(processing_class); - Object obj = clz.newInstance(); - // 调用每个任务类的method_name()强制结束方法 - Method m = obj.getClass().getMethod(method_name, String.class); - JSONObject 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); + if (method_name.equals("finish")){ + //强制执行,只把任务变更成完成状态 + // 更改任务状态为完成 + taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode()); + taskObj.put("update_optid", SecurityUtils.getCurrentUserId()); + taskObj.put("update_optname", SecurityUtils.getCurrentUsername()); + taskObj.put("update_time", DateUtil.now()); + taskObj.put("remark","任务被强制完成,不执行任何逻辑!"); + WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj); + }else { + // 任务处理类 + String processing_class = taskObj.getString("handle_class"); + String message = ""; + try { + Class clz = Class.forName(processing_class); + Object obj = clz.newInstance(); + // 调用每个任务类的method_name()强制结束方法 + Method m = obj.getClass().getMethod(method_name, String.class); + JSONObject 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", json.getString("task_id")); - param.put("remark", json.getString("message")); + param.put("task_id", task_id); + param.put("remark", "操作成功"); 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(e.getMessage()); } - } 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(e.getMessage()); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql index 53d862e69..dca879609 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_TASK_01.wql @@ -24,6 +24,7 @@ 输入.vehicle_code TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string + 输入.is_delete TYPEAS s_string 输入.unFinish TYPEAS s_string [临时表] @@ -61,7 +62,10 @@ LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code LEFT JOIN sys_dict dict ON dict.`value` = task.task_status AND dict.`code` = 'task_status' WHERE - task.is_delete = '0' + 1=1 + OPTION 输入.is_delete <> "" + task.is_delete = 输入.is_delete + ENDOPTION OPTION 输入.task_type <> "" md.class_id in 输入.task_type ENDOPTION diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java index 7f56262b1..5af116414 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java @@ -102,7 +102,7 @@ public class CutTrussTask extends AbstractAcsTask { //更新入站气涨轴的分切计划状态 JSONArray plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status IN ('04','05')").getResultJSONArray(0); if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "对应的分切计划!"); + throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:入站中或入站完成的分切计划!"); } for (int i = 0; i < plan_jo.size(); i++) { JSONObject plan_row = plan_jo.getJSONObject(i); @@ -114,7 +114,7 @@ public class CutTrussTask extends AbstractAcsTask { //更新出站气涨轴的分切计划状态 JSONArray plan_jo2 = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code2") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status = '06'").getResultJSONArray(0); if (ObjectUtil.isEmpty(plan_jo2)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code2") + "对应的分切计划!"); + throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code2") + "状态为:出站中的分切计划!"); } for (int i = 0; i < plan_jo2.size(); i++) { JSONObject plan_row = plan_jo2.getJSONObject(i); @@ -130,7 +130,7 @@ public class CutTrussTask extends AbstractAcsTask { //更新出站气涨轴的分切计划状态 JSONArray plan_jo2 = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status = '06'").getResultJSONArray(0); if (ObjectUtil.isEmpty(plan_jo2)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "对应的分切计划!"); + throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:出站中的分切计划!"); } for (int i = 0; i < plan_jo2.size(); i++) { JSONObject plan_row = plan_jo2.getJSONObject(i); @@ -145,7 +145,7 @@ public class CutTrussTask extends AbstractAcsTask { //更新入站气涨轴的分切计划状态 JSONArray plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("qzzno = '" + jsonTask.getString("vehicle_code") + "' AND is_child_tz_ok = '1' AND is_child_ps_ok = '1' AND is_delete = '0' AND status IN ('04','05') ").getResultJSONArray(0); if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "对应的分切计划!"); + throw new BadRequestException("未查询到气涨轴:" + jsonTask.getString("vehicle_code") + "状态为:入站中或入站完成的分切计划!"); } for (int i = 0; i < plan_jo.size(); i++) { JSONObject plan_row = plan_jo.getJSONObject(i); diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 0fc7ff403..581bffe48 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -49,7 +49,7 @@ - + - + + + + + + + + + + - - + @@ -111,6 +129,7 @@ style="width: 100%;" @selection-change="crud.selectionChangeHandler" > + @@ -127,11 +146,12 @@ + @@ -202,7 +227,7 @@ export default { sort: 'task_id,desc', crudMethod: { ...crudTask }, query: { - task_code: '', vehicle_code: '', start_point_code: '', next_point_code: '', task_type: '', finished_type: '', task_status: ['-1'] + task_code: '', is_delete: '0', vehicle_code: '', start_point_code: '', next_point_code: '', task_type: '', finished_type: '', task_status: ['-1'] }, optShow: { add: false, @@ -221,6 +246,7 @@ export default { openParam: {}, create_time: [], taskStatusList: [], + deleteList: [{ 'code': '0', 'name': '否' }, { 'code': '1', 'name': '是' }], taskTypeList: [], finishTypeList: [], permission: { @@ -314,6 +340,9 @@ export default { case 'c':// 下发 method_name = 'immediateNotifyAcs' break + case 's':// 强制完成 + method_name = 'finish' + break case 'd':// 详情 method_name = 'view' break