fix:增加桁架任务及二次分配任务完成情况校验

This commit is contained in:
2024-07-11 19:26:58 +08:00
parent e3da38f4f9
commit 62774053a3
12 changed files with 222 additions and 126 deletions

View File

@@ -1837,7 +1837,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
} else {
//如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
List<SchBaseTask> existTaskList = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")));
List<SchBaseTask> existTaskList = taskService.getExistTasks(taskTypes);
//如果有就不创建,没有就创建
if (CollectionUtils.isEmpty(existTaskList)) {
//只确定起点NBJ1002
@@ -1849,12 +1850,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
jo2.put("task_status", TaskStatusEnum.SURE_START.getCode());
jo2.put("is_send", false);
mzhcwTask.createTask(jo2);
//不确定起点的空载具缓存位->输送线任务
createTask3(containerName);
result.put("status", HttpStatus.OK.value());
result.put("message", "反馈成功!");
} else {
log.info("已存在任务编号为:" + existTaskList.get(0).getTask_code() + "未完成的桁架任务,请检查!");
log.info("已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList.get(0).getTask_code() + ",请检查!");
result.put("status", HttpStatus.BAD_REQUEST.value());
result.put("message", "已存在任务编号为:" + existTaskList.get(0).getTask_code() + "未完成的桁架任务,请检查!");
result.put("message", "已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList.get(0).getTask_code() + ",请检查!");
}
}
} else {
@@ -1877,40 +1880,48 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private JSONObject createTask2(String containerName, JSONObject jo) {
JSONObject result = new JSONObject();
result.put("data", containerName);
//如果空载具缓存位少空载具,创建输送线->满轴缓存位两个点任务
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
//如果空载具缓存位少空载具,创建输送线->满轴缓存位两个点任务
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")));
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
if (CollectionUtils.isEmpty(existTaskList1)) {
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
jo.put("is_send", true);
mzhcwTask.createTask(jo);
//空载具缓存位缺少空载具,下发一个确定点的空载具缓存位->输送线任务
List<SchBaseTask> existTask1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), null, null);
if (CollectionUtils.isEmpty(existTask1)) {
JSONObject jo1 = new JSONObject();
//创建确定终点任务
jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
jo1.put("point_code2", "NBJ1002");
jo1.put("vehicle_code", containerName);
jo1.put("task_status", TaskStatusEnum.SURE_END.getCode());
jo1.put("is_send", false);
ssxDjwTask.createTask(jo1);
}
//确定点的空载具缓存位->输送线任务
createTask3(containerName);
result.put("status", HttpStatus.OK.value());
result.put("message", "反馈成功!");
} else {
log.info("已存在任务编号为:" + existTaskList1.get(0).getTask_code() + "未完成的桁架任务,请检查!");
result.put("message", "已存在任务编号为:" + existTaskList1.get(0).getTask_code() + "未完成的桁架任务,请检查!");
log.info("已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList1.get(0).getTask_code() + ",请检查!");
result.put("message", "已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList1.get(0).getTask_code() + ",请检查!");
result.put("status", HttpStatus.BAD_REQUEST.value());
}
return result;
}
/**
* 不确定起点的空载具缓存位->输送线任务
*/
private void createTask3(String containerName) {
//空载具缓存位缺少空载具,下发一个确定终点的空载具缓存位->输送线任务
JSONObject jo1 = new JSONObject();
//创建确定终点任务
jo1.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
jo1.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
jo1.put("point_code2", "NBJ1002");
jo1.put("vehicle_code", containerName);
jo1.put("task_status", TaskStatusEnum.SURE_END.getCode());
jo1.put("is_send", false);
ssxDjwTask.createTask(jo1);
}
private JSONObject createTask(String containerName, JSONObject jo, String pointCode3, String pointCode4) {
JSONObject result = new JSONObject();
result.put("data", containerName);
// 创建前先判断是否有已创建相同任务
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
existTaskList1 = existTaskList1.stream().filter(r->StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(existTaskList1)) {
jo.put("point_code3", pointCode3);
//终点为输送线点位
@@ -1921,8 +1932,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("status", HttpStatus.OK.value());
result.put("message", "反馈成功!");
} else {
log.info("已存在任务编号为:" + existTaskList1.get(0).getTask_code() + "未完成的桁架任务,请检查!");
result.put("message", "已存在任务编号为:" + existTaskList1.get(0).getTask_code() + "未完成的桁架任务,请检查!");
log.info("已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList1.get(0).getTask_code() + ",请检查!");
result.put("message", "已存在未完成的且已分配的补空载具或桁架任务,任务编号为:" + existTaskList1.get(0).getTask_code() + ",请检查!");
result.put("status", HttpStatus.BAD_REQUEST.value());
}
return result;