代码更新
This commit is contained in:
@@ -57,6 +57,12 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.reflections</groupId>
|
||||
<artifactId>reflections</artifactId>
|
||||
<version>0.9.10</version>
|
||||
</dependency>
|
||||
|
||||
<!--Spring boot 安全框架-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
package org.nl.modules.quartz.task;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsUtil;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.reflections.Reflections;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AutoCreateTask {
|
||||
// 下发acs的任务集合
|
||||
private List<AcsTaskDto> taskList = null;
|
||||
private Set<Class<? extends AbstractAcsTask>> subTypes = null;
|
||||
|
||||
WQLObject taskTab = null;
|
||||
|
||||
@SneakyThrows
|
||||
public void run() {
|
||||
if (ObjectUtil.isNull(subTypes) || subTypes.isEmpty()) {
|
||||
Reflections reflections = new Reflections("org.nl.wms.sch.tasks");
|
||||
//System.out.println(AbstractAcsTask.class.isAssignableFrom(DumpInvTask.class));
|
||||
subTypes = reflections.getSubTypesOf(AbstractAcsTask.class);
|
||||
}
|
||||
if (ObjectUtil.isNull(taskTab)) taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
taskList = new ArrayList<>();
|
||||
|
||||
this.doExecute();
|
||||
}
|
||||
|
||||
|
||||
private void doExecute() {
|
||||
subTypes.forEach(clz -> {
|
||||
// 调用AbstractAcsTask类的每个子类的schedule()方法
|
||||
try {
|
||||
Object obj = clz.newInstance();
|
||||
//Method m = obj.getClass().getDeclaredMethod("schedule");
|
||||
Method m = obj.getClass().getMethod("schedule");
|
||||
List<AcsTaskDto> tasks = (List<AcsTaskDto>) m.invoke(obj);
|
||||
if (ObjectUtil.isNotEmpty(tasks)) {
|
||||
taskList.addAll(tasks);
|
||||
}
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
log.info("定时器执行失败:{}", e.getTargetException().getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.info("定时器执行失败:{}", e.getMessage());
|
||||
}
|
||||
|
||||
});
|
||||
if (ObjectUtil.isEmpty(taskList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
JSONArray arr = new JSONArray();
|
||||
taskList.forEach(item -> {
|
||||
JSONObject param = JSONObject.parseObject(JSON.toJSONString(item));
|
||||
arr.add(param);
|
||||
});
|
||||
String api = "api/wms/task";
|
||||
|
||||
log.info("下发acs任务的参数为:{}", arr.toString());
|
||||
JSONObject result = AcsUtil.notifyAcs(api, arr);
|
||||
log.info("下发acs任务的返回结果为:{}", result.toString());
|
||||
|
||||
|
||||
String status = result.getString("status");
|
||||
String message = result.getString("message");
|
||||
//发送失败的任务JSON集合:task_uuid,message
|
||||
JSONArray errArr = result.getJSONArray("errArr");
|
||||
|
||||
//任务下发以后,更新任务状态
|
||||
//成功
|
||||
if ("200".equals(status)) {
|
||||
taskList.forEach(item -> {
|
||||
JSONObject taskObj = new JSONObject();
|
||||
taskObj.put("task_uuid", item.getTask_id());
|
||||
taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode());
|
||||
taskObj.put("remark", "下发成功");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
});
|
||||
} else {//下发失败
|
||||
taskList.forEach(item -> {
|
||||
JSONObject taskObj = new JSONObject();
|
||||
taskObj.put("task_uuid", item.getTask_id());
|
||||
taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode());
|
||||
taskObj.put("remark", "下发失败:" + message);
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
});
|
||||
}
|
||||
//处理下发错误的任务
|
||||
if (ObjectUtil.isNotEmpty(errArr)) {
|
||||
//处理下发失败的任务
|
||||
for (int i = 0; i < errArr.size(); i++) {
|
||||
JSONObject taskObj = errArr.getJSONObject(i);
|
||||
taskObj.put("remark", "下发失败:"+taskObj.getString("message"));
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -179,7 +179,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
param.put("point_code2", point_code);
|
||||
param.put("qty", vehicle_num);
|
||||
// 创建任务
|
||||
CallEmpVehicleTask taskBean = SpringContextHolder.getBean(CallEmpVehicleTask.class);
|
||||
GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class);
|
||||
String task_id = taskBean.createTask(param);
|
||||
// 下发
|
||||
JSONObject jsonObject = taskBean.renotifyAcs(task_id);
|
||||
|
||||
Reference in New Issue
Block a user