From 8884ef7c5948c1b87e65a829fd912d4c965087e8 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Wed, 10 Jul 2024 22:53:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E5=88=86=E9=85=8D=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90=E6=83=85?= =?UTF-8?q?=E5=86=B5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/BstIvtPackageinfoivtMapper.java | 2 +- .../dao/mapper/BstIvtPackageinfoivtMapper.xml | 53 +++++------- .../impl/BstIvtPackageinfoivtServiceImpl.java | 82 ++++++++++++++----- .../nl/common/enums/PackageInfoIvtEnum.java | 2 +- 4 files changed, 84 insertions(+), 55 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java index 53e8a191f..b19d72e27 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java @@ -32,7 +32,7 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper getTaskList(Set point_code1, Set point_code2, Set point_code3, Set point_code4); + List getTaskList(Set pointCodes1, Set pointCodes2, Set pointCodes3, Set pointCodes4); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml index 1ff9045bf..bce455291 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml @@ -44,40 +44,27 @@ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index 138625e39..eddc18726 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -165,32 +165,17 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")) ) { - //是否有执行中的行架任务,有就分配行架搬运起点 - List taskList = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) - .and( - r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) - .or() - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)") - ))); - if (CollectionUtils.isNotEmpty(taskList)) { - if (StringUtils.isBlank(taskList.get(0).getRequest_param())) { - throw new BadRequestException("请等待桁架任务取空载具动作执行完成,再分配空载具点位"); - } else { - if (!taskList.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { - throw new BadRequestException("请等待桁架任务取空载具动作执行完成,再分配空载具点位"); - } - } - } + //检查是否满足二次分配条件 + checkTaskInfo(); newPoint = checkIvtSBlock(baseTask); } else { if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { //放满轴任务不判断终点是否有任务 - taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"); + taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务分配"); } newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask); } @@ -243,21 +228,41 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl Stream.of( + task.getPoint_code1(), + task.getPoint_code3() + )) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务分配"))) { pointSets = taskList.stream() .flatMap(task -> Stream.of( task.getPoint_code1() )) .filter(Objects::nonNull) .collect(Collectors.toSet()); + } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"))) { + pointSets = taskList.stream() + .flatMap(task -> Stream.of( + task.getPoint_code2(), + task.getPoint_code4() + )) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) { pointSets = taskList.stream() .flatMap(task -> Stream.of( @@ -277,6 +282,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl ivtList = packageinfoivtList.stream() .filter(p -> !pointSets.contains(p.getPoint_code())) .collect(Collectors.toList()); @@ -302,6 +308,42 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl taskList1 = taskService.list(new LambdaQueryWrapper() + .lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .and( + r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)") + ))); + if (CollectionUtils.isNotEmpty(taskList1)) { + //存在未完成的已分配的送空载具任务,需要等这个任务完成再分配 + if (taskList1.stream().anyMatch(r -> !r.getPoint_code2().equals("ZXQ_01_1"))) { + throw new BadRequestException("请等待补空载具任务执行完成,再分配空载具点位"); + } + } + //是否有执行中的行架任务,有就分配行架搬运起点 + List taskList2 = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .and( + r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) + .or() + .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)") + ))); + if (CollectionUtils.isNotEmpty(taskList2)) { + if (StringUtils.isBlank(taskList2.get(0).getRequest_param())) { + throw new BadRequestException("请等待桁架任务取空载具动作执行完成,再分配空载具点位"); + } else { + if (!taskList2.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { + throw new BadRequestException("请等待桁架任务取空载具动作执行完成,再分配空载具点位"); + } + } + } + } + /** * 根据点位类型查询库存 diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java index 35b95b94a..441cd99c9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java @@ -41,7 +41,7 @@ public enum PackageInfoIvtEnum { //起点终点类型 - TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务放货", "7")), + TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务放货", "7","空载具放货", "8", "四个点任务分配", "9")), //等待点类型 WAIT_POINT_TYPE(MapOf.of("满轴区等待点", "1", "待检区等待点", "2")),