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 | 109 +++++++++++++++++++++++++++++-------------------------
1 files changed, 58 insertions(+), 51 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 e6dcfca..9ccfca0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2190,7 +2190,7 @@
String barcode = barcodeThread.getBarcode();
if(!Cools.isEmpty(barcode)) {
//閫氱煡AGV鍙栬揣
- agvRestockCall("CS-301-001-01@3", barcode);
+ agvRestockCall("301-1", barcode);
log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode);
}
}
@@ -2204,7 +2204,7 @@
String barcode = barcodeThread.getBarcode();
if(!Cools.isEmpty(barcode)) {
//閫氱煡AGV鍙栬揣
- agvRestockCall("CS-302-001-01@3", barcode);
+ agvRestockCall("302-1", barcode);
log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode);
}
}
@@ -2712,6 +2712,18 @@
return false;
}
+ //鑾峰彇婧愯緭閫佺珯
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
+ if (liftSta == null) {
+ return false;//鎵句笉鍒扮珯鐐�
+ }
+
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
+ WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(liftSta.getLiftNo());
+ if (liftWrkMast != null) {
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
+ }
+
//*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
List<NavigateNode> targetNodes = NyLiftUtils.getLiftStaNodes(wrkMast.getStaNo());
if (targetNodes == null) {
@@ -2727,18 +2739,6 @@
return false;//璺緞閿佸畾澶辫触
}
//*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
-
- //鑾峰彇婧愯緭閫佺珯
- LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
- if (liftSta == null) {
- return false;//鎵句笉鍒扮珯鐐�
- }
-
- //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
- WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(liftSta.getLiftNo());
- if (liftWrkMast != null) {
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
//鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleThread.getSlave().getId(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo(), NavigationMapType.NORMAL.id);
@@ -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