任务完成、取消
This commit is contained in:
@@ -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取消
|
||||||
|
|||||||
@@ -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("任务操作失败!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user