From 97aa2cd09e92f73cd4dff3d99eaef64e748c80b3 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 28 六月 2023 19:04:32 +0800 Subject: [PATCH] 优化出库小车避让 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 59 +++++++++++++++++++---------------------------------------- 1 files changed, 19 insertions(+), 40 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 3cecf33..3d831aa 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1086,26 +1086,6 @@ //鏈壘鍒拌矾寰勶紝绛夊緟涓嬩竴娆� continue; } - //鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿侊紝鐢ㄤ簬鍚庣画璁$畻 - NavigateMapData navigateMapData = new NavigateMapData(currentLev); - navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿� - - //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� - //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞� - int distLev = Utils.getLev(liftSiteLocNo);//閬胯妤煎眰 - String startLocNo = "180020" + Utils.getLev(liftSiteLocNo); - ShuttleAssignCommand moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo); - if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖ - continue; - } - //鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿侊紝鐢ㄤ簬鍚庣画璁$畻 - navigateMapData.writeNavigateNodeToRedisMap(moveAssignCommand.getNodes(), false);//鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿� - commands.addAll(moveAssignCommand.getCommands());//灏嗛伩璁╁皬杞︾殑鍛戒护娣诲姞 - List<NavigateNode> nodes = assignCommand.getNodes();//灏嗛伩璁╄矾寰勬坊鍔犺繘鑺傜偣璺緞涓� - nodes.addAll(moveAssignCommand.getNodes());//灏嗛伩璁╄矾寰勬坊鍔犺繘鑺傜偣璺緞涓� - assignCommand.setNodes(nodes); - navigateMapData.writeNavigateNodeToRedisMap(nodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹� - //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getSourceLocNo()); @@ -1177,26 +1157,6 @@ if (commands == null) { continue;//鏈壘鍒拌矾寰� } - //鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿侊紝鐢ㄤ簬鍚庣画璁$畻 - NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(liftSiteLocNo)); - navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿� - - //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� - //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞� - int distLev = Utils.getLev(liftSiteLocNo);//閬胯妤煎眰 - String startLocNo = "180020" + Utils.getLev(liftSiteLocNo); - ShuttleAssignCommand moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo); - if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖ - continue; - } - //鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿侊紝鐢ㄤ簬鍚庣画璁$畻 - navigateMapData.writeNavigateNodeToRedisMap(moveAssignCommand.getNodes(), false);//鎵�浣跨敤鐨勮矾寰勮繘琛屼复鏃惰В閿� - commands.addAll(moveAssignCommand.getCommands());//灏嗛伩璁╁皬杞︾殑鍛戒护娣诲姞 - List<NavigateNode> nodes = assignCommand.getNodes();//灏嗛伩璁╄矾寰勬坊鍔犺繘鑺傜偣璺緞涓� - nodes.addAll(moveAssignCommand.getNodes());//灏嗛伩璁╄矾寰勬坊鍔犺繘鑺傜偣璺緞涓� - assignCommand.setNodes(nodes); - navigateMapData.writeNavigateNodeToRedisMap(nodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹� - //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛 short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜 @@ -1373,6 +1333,7 @@ //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue()); + ShuttleAssignCommand moveAssignCommand = null;//閬胯鍛戒护 if (wrkMast != null) { switch (wrkMast.getWrkSts().intValue()) { case 9://9.灏忚溅鍏ュ簱鎼繍涓� ==> 14.鍏ュ簱瀹屾垚 @@ -1385,6 +1346,15 @@ wrkMast.setWrkSts(23L); break; case 26://26.灏忚溅鍑哄簱鎼繍涓� ==> 27.灏忚溅鍑哄簱鎼繍瀹屾垚 + //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� + //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞� + int distLev = Utils.getLev(wrkMast.getSourceLocNo());//閬胯妤煎眰 + String startLocNo = "180020" + distLev; + moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo); + if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖ + continue; + } + wrkMast.setWrkSts(27L); break; default: @@ -1402,6 +1372,15 @@ //浠诲姟鎸囦护娓呴浂 shuttleProtocol.setAssignCommand(null); News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo()); + + if (wrkMast.getWrkSts() == 27) { + if (moveAssignCommand != null) { + //涓嬪彂浠诲姟 + shuttleProtocol.setPakMk(true); + MessageQueue.offer(SlaveType.Shuttle, shuttleThread.getSlave().getId(), new Task(3, moveAssignCommand)); + } + } + } else { News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo()); } -- Gitblit v1.9.1