From a3cd273234d56c5a36bd0a793a67e533a2141d6d Mon Sep 17 00:00:00 2001 From: zc <zc@123> Date: 星期五, 25 四月 2025 08:23:47 +0800 Subject: [PATCH] 初步调试 --- src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java index 5fb8a40..bcbe6e4 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,7 @@ if (wrkMast1 != null) { wrkMast1.setShuttleNo(shuttleProtocol.getShuttleNo()); wrkMastService.updateById(wrkMast1); - sameLev.add(0,shuttleThread); + sameLev.add(0, shuttleThread); //return true; } break; @@ -364,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()); @@ -388,6 +390,13 @@ } } diffLev.add(shuttleThread); + if (lev1 != 0) { + if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) { + tongLev = true; + } + } else { + lev1 = Utils.getLev(shuttleProtocol.getCurrentLocNo()); + } } //瀵绘壘绂讳换鍔℃ゼ灞傛渶杩戠殑绌挎杞�(涓嶈�冭檻璺ㄦゼ灞傚皬杞︾Щ鍔ㄨ窛绂�) @@ -422,18 +431,27 @@ //褰撳墠绌挎杞﹀簱浣嶅彿 String currentLocNo = shuttleProtocol.getCurrentLocNo(); int currentLev = Utils.getLev(currentLocNo); - if (wrkMast1.getIoType() == 101 && currentLocNo.equals(locNo)) { //杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝璋冨害璇ヨ溅 //缁欏伐浣滄。缁戝畾灏忚溅鍙� diffShuttles.put(-1, shuttleThread); } else { - //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊� - int currentValue = Math.abs(lev - currentLev); - if (diffShuttles.get(currentValue) != null) { - diffShuttles.put(currentValue + 1, shuttleThread); + if (tongLev) { + //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈 + 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 { - diffShuttles.put(currentValue, shuttleThread); + //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊� + int currentValue = Math.abs(lev - currentLev); + if (diffShuttles.get(currentValue) != null) { + diffShuttles.put(currentValue + 1, shuttleThread); + } else { + diffShuttles.put(currentValue, shuttleThread); + } } } } -- Gitblit v1.9.1