From 5f685f89bf6501325b6129ecf709b988369eeedd Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 13 十月 2023 10:16:49 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/NyShuttleThread.java | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java index 1ba299f..12e841d 100644 --- a/src/main/java/com/zy/core/thread/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java @@ -370,6 +370,7 @@ } WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class); + WrkMast wrkMast = wrkMastMapper.selectByWorkNo(wrkNo.intValue()); Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo); if (o == null) { @@ -465,8 +466,15 @@ } if (command.getRequest().getBody().get("requestType").equals("move")) { + ArrayList<int[]> whiteList = new ArrayList<>();//璁剧疆鑺傜偣鐨勭櫧鍚嶅崟 + if (wrkMast != null && ((wrkMast.getIoType() > 100 && wrkMast.getIoType() < 200) || wrkMast.getIoType() == 11)) { + //鍑哄簱浠诲姟锛屼笉妫�娴嬮鑺傜偣 + int[] startArr = NavigatePositionConvert.positionToXY(wrkMast.getSourceLocNo());//寮�濮嬭妭鐐� + whiteList.add(startArr); + } + //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋 - if (!checkPath(command.getNodes(), nextNodes, redisCommand)) { + if (!checkPath(command.getNodes(), nextNodes, whiteList)) { return false; } @@ -636,17 +644,17 @@ * 妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋 * 濡傛灉璺緞涓虹洰鏍囧簱浣嶏紝浣嗕笉鍙璧帮紝绯荤粺灏嗗皾璇曢噸鏂拌绠楄矾寰� */ - private boolean checkPath(List<NavigateNode> currentNodes, List<NavigateNode> nextNodes, ShuttleRedisCommand redisCommand) { + private boolean checkPath(List<NavigateNode> currentNodes, List<NavigateNode> nextNodes, List<int[]> whitePoints) { //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋(妫�鏌ヨ矾寰勯攣瀹氱姸鎬侊紝妫�娴嬭矾寰勬槸鍚︽湁鍏朵粬灏忚溅) //妫�娴嬪綋鍓嶈璧拌矾寰勶紝鍜屼笅涓�姝ヨ矾寰� - boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(currentNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); + boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(currentNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()), whitePoints); if (nextNodes == null) { if (checkPathIsAvailable) { return true;//鍙璧� } return false; }else { - boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); + boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo()), whitePoints); if (checkPathIsAvailable && checkPathIsAvailable2) { return true;//鍙璧� } -- Gitblit v1.9.1