From 3eeb8a09bba80161e386702217a56beb48f10bf8 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 6 May 2025 19:01:41 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E9=80=81=E7=A9=BA?= =?UTF-8?q?=E8=BD=BD=E5=85=B7=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auto/AutoSendVehicleToKzj.java | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) 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 7f7baffb7..0bf2ccfaf 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 @@ -73,28 +73,25 @@ public class AutoSendVehicleToKzj extends Prun{ RLock lock = redissonClient.getLock(THIS_CLASS); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { - if (tryLock) { - //todo 只允许2个补空任务,后期需要根据区域动态获取任务数量 - List taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))); - List existTask = taskService.getExistTasks(taskTypes); - if (existTask.size() > 1) { - return; - } - List empPoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空")); - List vehiclePoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); - if (!CollectionUtils.isEmpty(empPoints) && !CollectionUtils.isEmpty(vehiclePoints)){ - JSONObject task = new JSONObject(); - task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); - task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); - task.put("point_code1", vehiclePoints.get(0).getPoint_code()); - task.put("point_code2", packageinfoivtService.getWaitPoint(empPoints.get(0).getBlock(), empPoints.get(0).getWait_point_type())); - //预占用点位 - task.put("point_code3", empPoints.get(0).getPoint_code()); - djqToKzjhcwTask.createTask(task); - } - } else { + if (!tryLock) { log.info("待检区或管制区->空载具缓存位补空任务正在创建被锁住。"); + return; } + List taskTypes = new ArrayList(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))); + List existTask = this.taskService.getExistTasks(taskTypes); + if (existTask.size() <= 1) { + List empPoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空")); + List vehiclePoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具")); + if (!CollectionUtils.isEmpty(empPoints) && !CollectionUtils.isEmpty(vehiclePoints) && existTask.size() < empPoints.size()) { + JSONObject task = new JSONObject(); + task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")); + task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配")); + task.put("point_code1", vehiclePoints.get(0).getPoint_code()); + task.put("point_code2", this.packageinfoivtService.getWaitPoint(empPoints.get(0).getBlock(), empPoints.get(0).getWait_point_type())); + task.put("point_code3", empPoints.get(0).getPoint_code()); + this.djqToKzjhcwTask.createTask(task); + } + } } finally { if (lock.isLocked() && lock.isHeldByCurrentThread()) { lock.unlock();