From 62b1f39e60f64ec4e05b21d11af3e36f5891a91a Mon Sep 17 00:00:00 2001 From: zc <zc@123> Date: 星期二, 29 四月 2025 20:10:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java index 885621d..10bd959 100644 --- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java +++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java @@ -30,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.rmi.CORBA.Util; import java.util.*; /** @@ -251,7 +252,8 @@ if (wrkMast1 != null) { wrkMast1.setShuttleNo(shuttleProtocol.getShuttleNo()); wrkMastService.updateById(wrkMast1); - return true; + sameLev.add(0, shuttleThread); + //return true; } break; } @@ -363,7 +365,8 @@ */ public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) { ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅 - + int lev1 = 0; + boolean tongLev = false; for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { //鑾峰彇鍥涘悜绌挎杞︾嚎绋� ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); @@ -387,9 +390,16 @@ } } diffLev.add(shuttleThread); + if (lev1 != 0) { + if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) { + tongLev = true; + } + } else { + lev1 = Utils.getLev(shuttleProtocol.getCurrentLocNo()); + } } - //瀵绘壘绂讳换鍔℃ゼ灞傛渶杩戠殑绌挎杞�(涓嶈�冭檻璺ㄦゼ灞傚皬杞︾Щ鍔ㄨ窛绂�) + // if (!diffLev.isEmpty()) { Map<Integer, ShuttleThread> diffShuttles = new TreeMap<>();//鑷劧鎺掑簭灏忚溅Map //鑾峰彇浠诲姟 @@ -421,19 +431,38 @@ //褰撳墠绌挎杞﹀簱浣嶅彿 String currentLocNo = shuttleProtocol.getCurrentLocNo(); int currentLev = Utils.getLev(currentLocNo); - if (wrkMast1.getIoType() == 101 && currentLocNo.equals(locNo)) { //杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝璋冨害璇ヨ溅 //缁欏伐浣滄。缁戝畾灏忚溅鍙� - diffShuttles.put(-1, shuttleThread); + diffShuttles.put(-2, shuttleThread); } else { +// if (tongLev && diffLev.size() >= 2) { +// //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈 +// List<NavigateNode> currentShuttlePath = navigateUtils.calc(currentLocNo, locNo, NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), Utils.getLev(currentLocNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘 +// if (currentShuttlePath == null) { +// continue; +// } +// Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂� +// diffShuttles.put(currentAllDistance, shuttleThread); +// } else { //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊� int currentValue = Math.abs(lev - currentLev); if (diffShuttles.get(currentValue) != null) { - diffShuttles.put(currentValue + 1, shuttleThread); + try { + List<NavigateNode> currentShuttlePath = navigateUtils.calc(currentLocNo, locNo, NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), Utils.getLev(currentLocNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘 + if (currentShuttlePath == null) { + continue; + } + Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂� + diffShuttles.put(currentAllDistance, shuttleThread); + diffShuttles.put(currentValue - 1, shuttleThread); + } catch (Exception e) { + diffShuttles.put(currentValue + 1, shuttleThread); + } } else { diffShuttles.put(currentValue, shuttleThread); } + // } } } -- Gitblit v1.9.1