From 42cc083dd05f6c90137fc239482625492965a2e8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 24 十月 2023 20:22:54 +0800
Subject: [PATCH] #路径规划修改
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 33 +++++++----
src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java | 18 +++--
src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java | 6 ++
src/main/java/com/zy/core/thread/NyShuttleThread.java | 70 +++++++++++-----------
4 files changed, 73 insertions(+), 54 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 e70ce0f..cecad4c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3078,18 +3078,6 @@
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攣鐩爣绔欒矾寰�***************
-
NavigateNode liftNode = new NavigateNode(basLift.getPoint$().getX(), basLift.getPoint$().getY());
liftNode.setZ(liftSta.getLev());
@@ -3154,6 +3142,27 @@
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) {
diff --git a/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java b/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
index cf52c25..2c46cd8 100644
--- a/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
+++ b/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
@@ -1,5 +1,6 @@
package com.zy.common.utils;
+import com.core.common.SpringUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.NavigateNode;
import com.zy.common.model.NyShuttleOperaResult;
@@ -86,6 +87,7 @@
* 鑾峰彇璧风偣鍒扮洰鏍囩偣琛岃蛋鍛戒护
*/
public static NyShuttleOperaResult getStartToTargetCommands(Integer shuttleNo, Integer wrkNo, String startPoint, String targetPoint, Integer mapType) {
+ NavigateMapUtils navigateMapUtils = SpringUtils.getBean(NavigateMapUtils.class);
//璁$畻璧风偣鍒扮洰鏍囩偣琛岃蛋鑺傜偣
List<NavigateNode> calc = NavigateUtils.calc(startPoint, targetPoint, mapType, Utils.getShuttlePoints(shuttleNo, Utils.getLev(startPoint)));
if (calc == null) {
@@ -94,6 +96,7 @@
//鍛戒护闆嗗悎
ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+ List<NavigateNode> allNode = new ArrayList<>();
//鑾峰彇鍒嗘璺緞
ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(calc);
@@ -107,8 +110,11 @@
NyShuttleHttpCommand moveCommand = NyHttpUtils.getMoveCommand(shuttleNo, wrkNo, startPath, targetPath);
moveCommand.setNodes(nodes);//灏嗚璧拌妭鐐规坊鍔犲埌姣忎竴姝ュ懡浠や腑
commands.add(moveCommand);
+
+ allNode.addAll(nodes);
}
+ navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(startPoint), allNode, true);//閿佸畾璺緞
return result(commands, calc);
}
diff --git a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
index 525078e..f17d9be 100644
--- a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
@@ -70,11 +70,15 @@
*/
public boolean dispatchShuttle(Integer wrkNo, String locNo) {
//妫�娴嬬洰鏍囧簱浣嶇粍鏄惁瀛樺湪灏忚溅锛屽瀛樺湪灏忚溅鍒欑洿鎺ユ寚瀹氳杞�
- List<String> groupLoc = Utils.getGroupLoc(locNo);
- Integer groupShuttleNo = Utils.checkGroupLocHasShuttle(groupLoc);
- if (groupShuttleNo != null) {
- //瀛樺湪灏忚溅锛岀洿鎺ヨ皟搴﹁杞�
- return shuttleMoveGenerate(wrkNo, locNo, groupShuttleNo);
+ WrkMast wrkMast = wrkMastMapper.selectByWorkNo(wrkNo);
+ if (wrkMast != null) {
+ String targetLocNo = wrkMast.getIoType() < 100 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
+ List<String> groupLoc = Utils.getGroupLoc(targetLocNo);
+ Integer groupShuttleNo = Utils.checkGroupLocHasShuttle(groupLoc);
+ if (groupShuttleNo != null) {
+ //瀛樺湪灏忚溅锛岀洿鎺ヨ皟搴﹁杞�
+ return shuttleMoveGenerate(wrkNo, locNo, groupShuttleNo);
+ }
}
ArrayList<NyShuttleThread> sameLev = new ArrayList<>();//鐩稿悓妤煎眰鐨勭┛姊溅
@@ -145,8 +149,8 @@
WrkMast wrkMast1 = wrkMastMapper.selectByWorkNo(wrkNo);
if (wrkMast1 != null) {
- String locNO=wrkMast1.getIoType()<100?wrkMast1.getLocNo():wrkMast1.getSourceLocNo();
- int lev = Utils.getLev(locNO);//鐩爣妤煎眰
+ String targetLoc = wrkMast1.getIoType() < 100 ? wrkMast1.getLocNo() : wrkMast1.getSourceLocNo();
+ int lev = Utils.getLev(targetLoc);//鐩爣妤煎眰
//妫�娴嬬洰鏍囨ゼ灞傝溅鏁伴噺鏄惁灏忎簬鍏佽鐨勬渶澶ф暟閲�
boolean checkDispatchMaxNum = checkDispatchMaxNum(lev);
diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index a84ca61..083a995 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -473,41 +473,41 @@
return false;
}
- 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);
- }
-
- //瑙i攣杩囪矾寰勶紝鍙娴嬩笅涓�娈佃矾寰勬槸鍚﹀彲璧�(褰撳墠璺緞宸茬粡琚攣瀹氭棤闇�鍐嶆娴�)
- if (isLock) {
- //鍙娴嬩笅涓�娈佃矾寰勬槸鍚﹀彲璧�(褰撳墠璺緞宸茬粡琚攣瀹氭棤闇�鍐嶆娴�)
- //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
- if (!checkPath(nextNodes == null ? command.getNodes() : nextNodes, null, whiteList)) {
- return false;
- }
- }else {
- //妫�娴嬪綋鍓嶈矾寰勫拰涓嬩竴娈佃矾寰�
- //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
- if (!checkPath(command.getNodes(), nextNodes, whiteList)) {
- return false;
- }
- }
-
- //閿佸畾璺緞锛岄攣瀹氬綋鍓嶈矾寰勫拰涓嬩竴姝ヨ矾寰�
- List<NavigateNode> nodes = command.getNodes();
- if (nextNodes != null) {
- nodes.addAll(nextNodes);
- }
- if (nodes != null) {
- boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(shuttleProtocol.getCurrentLocNo()), nodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
- if (!result) {
- return false;//璺緞閿佸畾澶辫触
- }
- }
- }
+// 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);
+// }
+//
+// //瑙i攣杩囪矾寰勶紝鍙娴嬩笅涓�娈佃矾寰勬槸鍚﹀彲璧�(褰撳墠璺緞宸茬粡琚攣瀹氭棤闇�鍐嶆娴�)
+// if (isLock) {
+// //鍙娴嬩笅涓�娈佃矾寰勬槸鍚﹀彲璧�(褰撳墠璺緞宸茬粡琚攣瀹氭棤闇�鍐嶆娴�)
+// //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
+// if (!checkPath(nextNodes == null ? command.getNodes() : nextNodes, null, whiteList)) {
+// return false;
+// }
+// }else {
+// //妫�娴嬪綋鍓嶈矾寰勫拰涓嬩竴娈佃矾寰�
+// //妫�娴嬭矾寰勬槸鍚﹀彲琛岃蛋
+// if (!checkPath(command.getNodes(), nextNodes, whiteList)) {
+// return false;
+// }
+// }
+//
+// //閿佸畾璺緞锛岄攣瀹氬綋鍓嶈矾寰勫拰涓嬩竴姝ヨ矾寰�
+// List<NavigateNode> nodes = command.getNodes();
+// if (nextNodes != null) {
+// nodes.addAll(nextNodes);
+// }
+// if (nodes != null) {
+// boolean result = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(shuttleProtocol.getCurrentLocNo()), nodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
+// if (!result) {
+// return false;//璺緞閿佸畾澶辫触
+// }
+// }
+// }
//鍙墽琛屽懡浠�
if (!write(command, assignCommand)) {
--
Gitblit v1.9.1