From 5fd478fcee23bbdac0fe4fbe9becdd2a28d14c56 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期六, 13 七月 2024 14:27:04 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java index 3f2c412..9648ec7 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java @@ -161,7 +161,7 @@ } // 鎸傝浇浠诲姟鏉冮噸 - List<Task> tasks = taskService.selectWorkingByShuttle(Integer.valueOf(device.getDeviceNo())); + List<Task> tasks = taskService.selectWorkingByShuttle(Integer.valueOf(device.getDeviceNo()), null); if (!Cools.isEmpty(tasks)) { currDistance += tasks.size() * WEIGHT; } @@ -302,20 +302,24 @@ } int lev = Utils.getLev(locNo);//褰撳墠妤煎眰 - JSONArray standbyLoc = JSON.parseArray(idleLoc); - if (lev > standbyLoc.size()) { + List<String> standbyLoc = JSON.parseArray(idleLoc, String.class); + if (standbyLoc.isEmpty()) { throw new CoolException("閬胯鏁版嵁寮傚父"); } - - Object object = standbyLoc.get(lev - 1); - List<String> locs = JSON.parseArray(object.toString(), String.class); - if (locs.isEmpty()) { - throw new CoolException("閬胯鏁版嵁涓虹┖"); + //鑾峰彇褰撳墠灞傞伩璁╀綅缃� + List<String> currentLevStandByLoc = new ArrayList<>(); + for (String loc : standbyLoc) { + if (Utils.getLev(loc) == lev) { + currentLevStandByLoc.add(loc); + } + } + if (currentLevStandByLoc.isEmpty()) { + throw new CoolException("褰撳墠灞傛棤閬胯浣嶇疆"); } Integer finalDistance = ShuttleDispatcher.INF; String recentLoc = null; - for (String loc : locs) { + for (String loc : currentLevStandByLoc) { //褰撳墠绌挎杞﹀埌閬胯浣嶈绠� List<NavigateNode> currentShuttlePath = NavigateUtils.calc( locNo -- Gitblit v1.9.1