From 8254197b29064846c3eafc916e340b74434fde6a Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 19 九月 2023 11:17:57 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/NyShuttleThread.java | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java index b84f13c..750c8c2 100644 --- a/src/main/java/com/zy/core/thread/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java @@ -176,6 +176,20 @@ //灏忚溅澶勪簬杩愯涓紝灏嗘爣璁扮疆涓簍rue if (shuttleProtocol.getFree() == 0) { shuttleProtocol.setPakMk(true); + }else { + //灏忚溅澶勪簬绛夊緟纭涓旂┖闂茬姸鎬侊紝濡傛湁宸ヤ綔鍙峰垯娓呯┖璺緞 + if (shuttleProtocol.getTaskNo() != 0 && shuttleProtocol.getProtocolStatusType() == ShuttleProtocolStatusType.IDLE) { + Object o = redisUtil.get("shuttle_wrk_no_" + shuttleProtocol.getTaskNo()); + if (o != null) { + ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class); + ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand(); + NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); + navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//瑙i攣璺緞 + + //鍒犻櫎redis + redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); + } + } } //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴� @@ -411,7 +425,9 @@ //閿佸畾璺緞锛岄攣瀹氬綋鍓嶈矾寰勫拰涓嬩竴姝ヨ矾寰� List<NavigateNode> nodes = command.getNodes(); - nodes.addAll(nextNodes); + if (nextNodes != null) { + nodes.addAll(nextNodes); + } navigateMapData.writeNavigateNodeToRedisMap(nodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢� //鍙墽琛屽懡浠� @@ -455,8 +471,12 @@ }else { //宸叉墽琛屽畬鎴� - //鍒犻櫎redis - redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); + //鏈�鍚庝竴娈靛懡浠や负绉诲姩鍛戒护锛屽垯鏆傜紦鍒犻櫎redis绛夊緟娓呴櫎璺緞鏃朵竴娆℃�у垹闄� + //鏈�鍚庝竴娈靛懡浠や负涓嶆槸绉诲姩鍛戒护锛屽垯鍒犻櫎redis + if (!command.getRequest().getBody().get("requestType").equals("move")) { + //鍒犻櫎redis + redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo()); + } if (!assignCommand.getCharge()) { //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting @@ -573,7 +593,9 @@ if (basLift == null) { continue; } - if (basLift.getPoint().equals(shuttleProtocol.getPoint())) { + Integer liftX = basLift.getPoint$().getX(); + Integer liftY = basLift.getPoint$().getY(); + if (liftX.equals(shuttleProtocol.getPoint().getX()) && liftY.equals(shuttleProtocol.getPoint().getY())) { //灏忚溅鍦ㄦ彁鍗囨満鍐� //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂� LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId()); @@ -588,6 +610,8 @@ //鎻愬崌鏈哄浜庣┖闂诧紝鏀捐 return true; } + }else { + return true;//涓嶅湪鎻愬崌鏈哄唴锛屾斁琛� } } return false;//榛樿涓嶆斁琛� @@ -601,9 +625,15 @@ //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋(妫�鏌ヨ矾寰勯攣瀹氱姸鎬侊紝妫�娴嬭矾寰勬槸鍚︽湁鍏朵粬灏忚溅) //妫�娴嬪綋鍓嶈璧拌矾寰勶紝鍜屼笅涓�姝ヨ矾寰� boolean checkPathIsAvailable = NavigateUtils.checkPathIsAvailable(currentNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); - boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); - if (checkPathIsAvailable && checkPathIsAvailable2) { - return true;//鍙璧� + if (nextNodes == null) { + if (checkPathIsAvailable) { + return true;//鍙璧� + } + }else { + boolean checkPathIsAvailable2 = NavigateUtils.checkPathIsAvailable(nextNodes, shuttleProtocol.getShuttleNo().intValue(), Utils.getLev(shuttleProtocol.getCurrentLocNo())); + if (checkPathIsAvailable && checkPathIsAvailable2) { + return true;//鍙璧� + } } ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand(); -- Gitblit v1.9.1