fix:增加已分配满轴点位判断

This commit is contained in:
2024-07-10 11:05:12 +08:00
parent d1861b5fd5
commit f362699d28

View File

@@ -188,6 +188,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
} }
newPoint = checkIvtSBlock(baseTask); newPoint = checkIvtSBlock(baseTask);
} else { } else {
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
//放满轴任务不判断终点是否有任务
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货");
}
newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask); newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask);
} }
if (StringUtils.isNotBlank(newPoint.getPoint_code())) { if (StringUtils.isNotBlank(newPoint.getPoint_code())) {
@@ -239,17 +243,22 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, null); taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, null);
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"))) { } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, pointIds); taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, pointIds);
} } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) {
else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null); taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null);
} } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) {
else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, pointIds); taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, pointIds);
} else { } else {
return packageinfoivtList; return packageinfoivtList;
} }
// 过滤未完成任务的任务 // 过滤未完成任务的任务
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) { 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("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) {
pointSets = taskList.stream() pointSets = taskList.stream()
.flatMap(task -> Stream.of( .flatMap(task -> Stream.of(
task.getPoint_code1(), task.getPoint_code1(),
@@ -453,22 +462,23 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
*/ */
private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) { private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) {
BstIvtPackageinfoivt newPoint; BstIvtPackageinfoivt newPoint;
String targetPoint ="";
//1取货任务2放货任务 //1取货任务2放货任务
LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new LambdaQueryWrapper<>();
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) { if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code3()); queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code3());
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"); targetPoint = PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务");
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) { } else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code4()); queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code4());
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"); targetPoint = PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务");
} else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) { }
//放满轴任务不判断终点是否有任务 if (StringUtils.isNotBlank(taskPointType)) {
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"); targetPoint = taskPointType;
} }
BstIvtPackageinfoivt bstIvtPackageinfoivt = bstIvtPackageinfoivtMapper.selectOne(queryWrapper); BstIvtPackageinfoivt bstIvtPackageinfoivt = bstIvtPackageinfoivtMapper.selectOne(queryWrapper);
//根据任务类型返回点位分配规则 //根据任务类型返回点位分配规则
BstIvtPackageinfoivt ivtInfo = getIvtInfoFromRegion(baseTask.getTask_type(), actionType); BstIvtPackageinfoivt ivtInfo = getIvtInfoFromRegion(baseTask.getTask_type(), actionType);
List<BstIvtPackageinfoivt> newPointList = packageinfoivtService.checkEndPointTask(bstIvtPackageinfoivt.getPoint_status(), ivtInfo.getIvt_status(), taskPointType, ivtInfo.getSort_seq().toString(), ""); List<BstIvtPackageinfoivt> newPointList = packageinfoivtService.checkEndPointTask(bstIvtPackageinfoivt.getPoint_status(), ivtInfo.getIvt_status(), targetPoint, ivtInfo.getSort_seq().toString(), "");
if (CollectionUtils.isEmpty(newPointList)) { if (CollectionUtils.isEmpty(newPointList)) {
throw new BadRequestException("暂无点位资源!"); throw new BadRequestException("暂无点位资源!");
} }