add:任务定时下发

This commit is contained in:
zhangzhiqiang
2023-03-23 17:53:27 +08:00
parent 14144e5228
commit 3159f8eab4
3 changed files with 23 additions and 17 deletions

View File

@@ -12,9 +12,11 @@ import lombok.Getter;
@AllArgsConstructor
public enum AcsTaskEnum {
UNDEFINED("0","未定义类型"),
//任务类型
//任务类型3个点任务编号无需载具
PRODUCT_MAC("1","专机-专机任务"),
//3个点任务编号缓存线空载具列表
PRODUCT_CACHE("2","专机-缓存线任务"),
//3个点任务编号缓存线满料载具列表
CACHELINE_OUT("3","缓存线出库任务"),
//回调状态

View File

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import org.nl.common.anno.Log;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.AcsUtil;
import org.nl.common.utils.MapOf;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.springframework.stereotype.Service;
@@ -17,6 +18,19 @@ import java.util.Map;
public class WmsToAcsServiceImpl implements WmsToAcsService {
@Override
public Map<String, Object> issueTaskToAcs(JSONArray arr) {
JSONArray form = new JSONArray();
for (Object o : arr) {
JSONObject task = (JSONObject) o;
JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id")
, "task_type", task.getString("task_type")
, "start_point_code", task.getString("point_code1")
, "next_point_code", task.getString("point_code2")
, "return_point_code", task.getString("point_code3")
, "task_group_id", task.getString("task_group_id")
, "vehicle_code", task.getString("vehicle_code")
));
form.add(param);
}
String api = "api/wms/task";
return AcsUtil.notifyAcs(api, arr);
}

View File

@@ -56,9 +56,9 @@ public class TaskScheduleService {
Map<String, List<Object>> pointRegionCollent = needMergeCollect.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("point_code")));
Set<String> mergePointCollent = needMergeCollect.stream().map(item -> ((JSONObject) item).getString("point_code")).collect(Collectors.toSet());
//合并下发的任务
ArrayList<JSONObject> notMerge = new ArrayList<>();//单独下发的任务
ArrayList<JSONObject> Merge = new ArrayList<>();//单独下发的任务
ArrayList<JSONObject> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
List<Object> notMerge = new ArrayList<>();//单独下发的任务
List<Object> Merge = new ArrayList<>();//单独下发的任务
List<Object> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
Map<String, String> taskGroupMap = new HashMap<>();
for (Object o : array) {
String taskGroupId = IdUtil.getStringId();
@@ -88,7 +88,7 @@ public class TaskScheduleService {
}
//开始下发处理waitingTask如果创建时间>2分钟则改单独下发
if (waitingTask.size()>1){
List<JSONObject> needPublish = waitingTask.stream().filter(a -> a.getString("create_time") == DateUtil.now()).collect(Collectors.toList());
List<Object> needPublish = waitingTask.stream().filter(a -> ((JSONObject)a).getString("create_time") == DateUtil.now()).collect(Collectors.toList());
notMerge.addAll(needPublish);
}
String notMergeID = notMerge.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(","));
@@ -98,18 +98,8 @@ public class TaskScheduleService {
//下发任务:一次暂时下发十条同一个区域任务不超过10条
JSONArray form = new JSONArray();
Merge.addAll(notMerge);
for (JSONObject task : Merge) {
JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id")
, "task_type", task.getString("task_type")
, "start_point_code", task.getString("point_code1")
, "next_point_code", task.getString("point_code2")
, "return_point_code", task.getString("point_code3")
, "task_group_id", task.getString("task_group_id")
, "vehicle_code", task.getString("vehicle_code")
));
form.add(param);
}
wmsToAcsService.issueTaskToAcs(form);
JSONArray jsonArray = new JSONArray(Merge);
wmsToAcsService.issueTaskToAcs(jsonArray);
}
}
}