diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java index 018ce5f7b..be93866e2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendVehicleToKzj.java @@ -111,20 +111,11 @@ public class AutoSendVehicleToKzj { } else { return; } - //待检区有空载具且过滤未完成任务 - List djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); - if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) { - pointCode1 = djqPackageinfoivtList.get(0).getPoint_code(); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + if (existTask.size() % 2 != 0) { + //优先去待检区 + pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); } else { - //管制区有空位 - List gzqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); - if (CollectionUtils.isNotEmpty(gzqList)) { - pointCode1 = gzqList.get(0).getPoint_code(); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); - } + pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); } //去待检区或管制区搬运空载具 if (pointCode1 != null) { @@ -148,6 +139,59 @@ public class AutoSendVehicleToKzj { } } + + private String getPointCode(JSONObject task, String taskType) { + String pointCode1 = null; + List packageList = null; + if (taskType.equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))) { + packageList = packageinfoivtService.checkEndPointTask( + PackageInfoIvtEnum.POINT_STATUS.code("待检区"), + PackageInfoIvtEnum.IVT_STATUS.code("空载具"), + PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), + PackageInfoIvtEnum.SORT_TYPE.code("升序"), + "" + ); + if (CollectionUtils.isEmpty(packageList)) { + packageList = packageinfoivtService.checkEndPointTask( + PackageInfoIvtEnum.POINT_STATUS.code("管制区"), + PackageInfoIvtEnum.IVT_STATUS.code("空载具"), + PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), + PackageInfoIvtEnum.SORT_TYPE.code("降序"), + "" + ); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); + } else { + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + } + } else { + packageList = packageinfoivtService.checkEndPointTask( + PackageInfoIvtEnum.POINT_STATUS.code("管制区"), + PackageInfoIvtEnum.IVT_STATUS.code("空载具"), + PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), + PackageInfoIvtEnum.SORT_TYPE.code("降序"), + "" + ); + if (CollectionUtils.isEmpty(packageList)) { + packageList = packageinfoivtService.checkEndPointTask( + PackageInfoIvtEnum.POINT_STATUS.code("待检区"), + PackageInfoIvtEnum.IVT_STATUS.code("空载具"), + PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), + PackageInfoIvtEnum.SORT_TYPE.code("升序"), + "" + ); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + } else { + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")); + } + } + if (CollectionUtils.isNotEmpty(packageList)) { + pointCode1 = packageList.get(0).getPoint_code(); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); + } + return pointCode1; + } + + /** * 二次分配任务 */