任务完成、取消

This commit is contained in:
2023-03-24 17:35:36 +08:00
parent 7faf39babb
commit a62ca100a2
2 changed files with 39 additions and 51 deletions

View File

@@ -20,6 +20,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.service.TaskService;
import org.nl.wms.sch.service.dto.TaskDto; import org.nl.wms.sch.service.dto.TaskDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -29,11 +30,12 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Service @Service
@RequiredArgsConstructor
@Slf4j @Slf4j
public class AcsToWmsServiceImpl implements AcsToWmsService { public class AcsToWmsServiceImpl implements AcsToWmsService {
private final TaskService taskService; @Autowired
private final AgvInstService agvInstService; private TaskService taskService;
@Autowired
private AgvInstService agvInstService;
@Override @Override
public Map<String, Object> apply(JSONObject jsonObject) { public Map<String, Object> apply(JSONObject jsonObject) {
@@ -70,7 +72,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONArray errArr = new JSONArray(); JSONArray errArr = new JSONArray();
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
JSONObject row = array.getJSONObject(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); TaskDto taskDto = taskService.findById(task_uuid);
String processing_class = taskDto.getHandle_class(); String processing_class = taskDto.getHandle_class();
//1:执行中,2:完成 ,3:acs取消 //1:执行中,2:完成 ,3:acs取消

View File

@@ -17,9 +17,13 @@ import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil; import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.ClassstandardService;
import org.nl.wms.basedata.master.service.dto.ClassstandardDto; 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.manage.TaskStatusEnum;
import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.service.TaskService;
import org.nl.wms.sch.service.dto.TaskDto; import org.nl.wms.sch.service.dto.TaskDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -36,11 +40,13 @@ import java.util.Map;
* @date 2021-08-19 * @date 2021-08-19
**/ **/
@Service @Service
@RequiredArgsConstructor
@Slf4j @Slf4j
public class TaskServiceImpl implements TaskService { public class TaskServiceImpl implements TaskService {
private final ClassstandardService classstandardService; @Autowired
private ClassstandardService classstandardService;
@Autowired
private AcsToWmsService acsToWmsService;
@Override @Override
public Map<String, Object> queryAll(Map form, Pageable page) { public Map<String, Object> queryAll(Map form, Pageable page) {
@@ -176,55 +182,35 @@ public class TaskServiceImpl implements TaskService {
@Override @Override
public void operation(Map<String, Object> map) { public void operation(Map<String, Object> map) {
WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl();
String task_id = MapUtil.getStr(map, "task_id"); String task_id = MapUtil.getStr(map, "task_id");
String method_name = MapUtil.getStr(map, "method_name"); String method_name = MapUtil.getStr(map, "method_name");
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); 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("任务已完成!"); if (taskObj.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) throw new BadRequestException("任务已完成!");
// 任务处理类
String processing_class = taskObj.getString("handle_class"); switch (method_name) { // forceFinish, cancel
String message = ""; case "immediateNotifyAcs":
// 根据任务类型获取对应的任务操作类 JSONArray array = new JSONArray();
try { array.add(taskObj);
Class<?> clz = Class.forName(processing_class); wms.issueTaskToAcs(array);
Object obj = clz.newInstance(); break;
// 调用每个任务类的method_name()强制结束方法 case "forceFinish":
Method m; JSONArray finish = new JSONArray();
JSONObject result; JSONObject res = new JSONObject();
if (method_name.equals("immediateNotifyAcs")) { // 立即下发不需要参数 res.put("task_id", task_id);
m = obj.getClass().getMethod(method_name); res.put("task_status", "2");
result = (JSONObject) m.invoke(obj); finish.add(res);
} else { acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish));
m = obj.getClass().getMethod(method_name, String.class); break;
result = (JSONObject) m.invoke(obj, task_id); case "cancel":
} JSONArray cancel = new JSONArray();
if (ObjectUtil.isEmpty(result)) return; JSONObject res2 = new JSONObject();
JSONArray arr = result.getJSONArray("errArr"); res2.put("task_id", task_id);
WQLObject wo = WQLObject.getWQLObject("sch_base_task"); res2.put("task_status", "1");
if (ObjectUtil.isNotEmpty(arr)) { cancel.add(res2);
for (int i = 0; i < arr.size(); i++) { acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
JSONObject json = arr.getJSONObject(i); break;
JSONObject param = new JSONObject(); default: break;
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("任务操作失败!");
} }
} }