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 dfc05a127..f1cc346da 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 @@ -196,8 +196,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl ivtList = packageinfoivtList.stream().filter(r -> r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))).sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq).reversed()).collect(Collectors.toList()); + List pointList = new ArrayList<>(); + List ivtList = packageinfoivtList.stream().filter(r -> r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具"))).sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList()); + //有空载具 if (CollectionUtils.isNotEmpty(ivtList)) { + // BstIvtPackageinfoivt bstIvtPackageinfoivt = new BstIvtPackageinfoivt(); + // bstIvtPackageinfoivt.setPoint_code(ivtList.get(0).getPoint_code()); + // returList.add(bstIvtPackageinfoivt); + // return returList; BstIvtPackageinfoivt bstIvtPackageinfoivt = new BstIvtPackageinfoivt(); bstIvtPackageinfoivt.setPoint_code(ivtList.get(0).getPoint_code()); + bstIvtPackageinfoivt.setSort_seq(ivtList.get(0).getSort_seq()); returList.add(bstIvtPackageinfoivt); - return returList; + //判断是否有空载具阻挡 + pointList.add(getBstIvtPackageinfoivt(returList, packageinfoivtList)); + return pointList; } else { - return returList; + BstIvtPackageinfoivt bstIvtPackageinfoivt = packageinfoivtList.stream().filter(r -> r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))).sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq).reversed()).collect(Collectors.toList()).get(0); + pointList.add(bstIvtPackageinfoivt); + return pointList; } } else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务取货分配"))) { taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, pointIds, pointIds); @@ -310,16 +321,16 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl空载具缓存位)")) || taskType.equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))) { - return getBstIvtPackageinfoivts(pointCode, taskList, ivtList); + return getNoBlockIvt(pointCode, taskList, ivtList); } else { return ivtList; } } /** - * 判断阻挡 + * 获取没有阻挡的点位 */ - private List getBstIvtPackageinfoivts(String pointCode, List taskList, List ivtList) { + private List getNoBlockIvt(String pointCode, List taskList, List ivtList) { Set taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet()); List pointList = new ArrayList<>(); //存在补空载具任务已分配却未完成的任务 @@ -570,7 +581,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl newPointList = packageinfoivtService.checkEndPointTask(bstIvtPackageinfoivt.getPoint_status(), ivtInfo.getIvt_status(), targetPoint, ivtInfo.getSort_seq().toString(), ""); if (CollectionUtils.isEmpty(newPointList)) { - throw new BadRequestException("暂无点位资源!"); + log.info("一楼装箱区二次分配任务编号为:" + baseTask.getTask_code() + ",分配失败,暂无点位资源或点位外层有载具阻挡!"); + throw new BadRequestException("一楼装箱区二次分配任务编号为:" + baseTask.getTask_code() + ",分配失败,暂无点位资源或点位外层有载具阻挡!"); } newPoint = newPointList.get(0); return newPoint;