diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml
index d6346a9..ec40204 100644
--- a/lms/nladmin-system/pom.xml
+++ b/lms/nladmin-system/pom.xml
@@ -57,6 +57,12 @@
test
+
+ org.reflections
+ reflections
+ 0.9.10
+
+
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateTask.java b/lms/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateTask.java
new file mode 100644
index 0000000..df0f332
--- /dev/null
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateTask.java
@@ -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 taskList = null;
+ private Set> 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 tasks = (List) 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);
+ }
+ }
+
+ }
+
+
+}
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index 8c8c703..9ca2ee7 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -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);