From b81245aa621ac10e3066e6e7bed932ee3ec5b91a Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 28 十月 2023 13:23:27 +0800 Subject: [PATCH] #跨楼层移动节点计算采取不同方案 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 81 ++++++++++++++++++++++------------------ 1 files changed, 44 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 1b43d5d..9ccfca0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -3160,43 +3160,26 @@ return false; } - //璺ㄦゼ灞傜Щ鍔ㄤ换鍔� - if (Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(wrkMast.getLocNo())) { - //鑾峰彇鐩爣绔� - LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); - if (liftSta == null) { - return false;//鎵句笉鍒扮珯鐐� - } - - //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** - List<NavigateNode> targetNodes = NyLiftUtils.getLiftStaNodes(liftSta.getStaNo()); - if (targetNodes == null) { - return false;//鏈幏鍙栧埌鑺傜偣 - } - //灏濊瘯瑙i攣鐩爣绔欒矾寰� - boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), targetNodes, false);//鎵�浣跨敤鐨勮矾寰勮繘琛岃В閿� - if (!result) { - return false;//璺緞瑙i攣澶辫触 - } - //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** - } - -// //鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐� -// BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getLocNo()), wrkMast.getLiftNo()); -// if (targetBasDevp == null) { -// return false;//缂哄皯绔欑偣淇℃伅 -// } +// //璺ㄦゼ灞傜Щ鍔ㄤ换鍔� +// if (Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(wrkMast.getLocNo())) { +// //鑾峰彇鐩爣绔� +// LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); +// if (liftSta == null) { +// return false;//鎵句笉鍒扮珯鐐� +// } // -// //鑾峰彇鎻愬崌鏈烘暟鎹� -// BasLift basLift = basLiftService.selectById(targetBasDevp.getLiftNo()); -// if (basLift == null) { -// return false;//娌℃湁鎻愬崌鏈烘暟鎹� +// //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** +// List<NavigateNode> targetNodes = NyLiftUtils.getLiftStaNodes(liftSta.getStaNo()); +// if (targetNodes == null) { +// return false;//鏈幏鍙栧埌鑺傜偣 +// } +// //灏濊瘯瑙i攣鐩爣绔欒矾寰� +// boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), targetNodes, false);//鎵�浣跨敤鐨勮矾寰勮繘琛岃В閿� +// if (!result) { +// return false;//璺緞瑙i攣澶辫触 +// } +// //*************灏濊瘯瑙i攣鐩爣绔欒矾寰�*************** // } -// if (basLift.getPoint() == null) { -// return false;//娌℃湁璁剧疆鎻愬崌鏈虹偣浣嶅潗鏍� -// } -// NavigateNode liftNode = new NavigateNode(basLift.getPoint$().getX(), basLift.getPoint$().getY()); -// liftNode.setZ(basLift.getPoint$().getZ()); //灏忚溅宸茬粡鍦ㄧ洰鏍囧簱浣嶏紝鐩存帴璁ゅ畾灏忚溅绉诲姩浠诲姟瀹屾垚 if (shuttleProtocol.getCurrentLocNo().equals(wrkMast.getLocNo())) { @@ -3225,8 +3208,32 @@ return false; } - //鑾峰彇灏忚溅鍒扮洰鏍囧簱浣嶅懡浠� - NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), NavigationMapType.NORMAL.id); + NyShuttleOperaResult result = null; + //璺ㄦゼ灞傜Щ鍔ㄤ换鍔� + if (Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(wrkMast.getLocNo())) { + //闇�瑕佸皢鍓嶄袱涓妭鐐逛綔涓虹櫧鍚嶅崟鑺傜偣浼犲叆 + //鑾峰彇鐩爣绔� + LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); + if (liftSta == null) { + return false;//鎵句笉鍒扮珯鐐� + } + + List<NavigateNode> targetNodes = NyLiftUtils.getLiftStaNodes(liftSta.getStaNo()); + if (targetNodes == null) { + return false;//鏈幏鍙栧埌鑺傜偣 + } + + //璁剧疆璁$畻鑺傜偣鐨勭櫧鍚嶅崟 + ArrayList<int[]> whiteList = new ArrayList<>();//璁剧疆璁$畻鑺傜偣鐨勭櫧鍚嶅崟 + for (NavigateNode node : targetNodes) { + whiteList.add(new int[]{node.getX(), node.getY()}); + } + result = NyShuttleOperaUtils.getStartToTargetCommandsByWhites(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), NavigationMapType.NORMAL.id, whiteList); + }else { + //鑾峰彇灏忚溅鍒扮洰鏍囧簱浣嶅懡浠� + result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), wrkMast.getLocNo(), NavigationMapType.NORMAL.id); + } + if (result == null) { return false;//璺緞璁$畻澶辫触 } -- Gitblit v1.9.1