diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java index 16d73951f..dfe48fe73 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java @@ -74,32 +74,7 @@ public class AutoExecuteWaitTask { for (SchBaseTask task : taskList) { if (task != null) { String taskType = task.getTask_type(); - if (PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)").equals(taskType)) { - //校验任务是否存在 - List taskTypes = new ArrayList<>(Arrays.asList(taskType, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"),PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); - List existTask = taskService.getExistTasks(taskTypes); - //过滤未分配的补空载具任务 - existTask = existTask.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); - if (existTask.size() > 0) { - //已二次分配过的任务未完成 - if (existTask.stream().anyMatch(r -> r.getResponse_param().equals(IOSEnum.IS_NOTANDYES.code("是")))) { - throw new BadRequestException("存在已二次分配过点位的补空载具任务未完成!"); - } - } - List kzjPointList = packageinfoivtService - .list(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用") - ).eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) - .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")) - .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - if (CollectionUtils.isEmpty(kzjPointList)) { - return; - } - task.setPoint_code1(kzjPointList.get(0).getPoint_code()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - taskService.updateById(task); - ssxDjwTask.immediateNotifyAcs(null); - } else if (PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位").equals(taskType)) { + if (PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位").equals(taskType)) { //校验任务是否存在 List taskTypes = new ArrayList<>(Collections.singletonList(taskType)); List existTaskList = taskService.getExistTasks(taskTypes); @@ -120,6 +95,36 @@ public class AutoExecuteWaitTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(task); mzhcwTask.immediateNotifyAcs(null); + } else if (PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)").equals(taskType)) { + //校验任务是否存在 + List taskTypes = new ArrayList<>(Arrays.asList(taskType, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))); + List existTask = taskService.getExistTasks(taskTypes); + //先发输送线->满轴位任务,如果有输送线->满轴位任务未完成任务,暂不下发放空(空载具缓存位->输送线)任务 + List existTask1 = existTask.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(existTask1)) { + return; + } + //过滤未分配的补空载具任务 + List existTask2 = existTask.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(existTask2)) { + //已二次分配过的任务未完成 + if (existTask.stream().anyMatch(r -> r.getResponse_param().equals(IOSEnum.IS_NOTANDYES.code("是")))) { + throw new BadRequestException("存在已二次分配过点位的补空载具任务未完成!"); + } + } + List kzjPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用") + ).eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + if (CollectionUtils.isEmpty(kzjPointList)) { + return; + } + task.setPoint_code1(kzjPointList.get(0).getPoint_code()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + taskService.updateById(task); + ssxDjwTask.immediateNotifyAcs(null); } } }