From f18464143b3be9b0247f8625b7e61115402de328 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 29 九月 2023 16:16:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/utils/Utils.java | 23 -----------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 55 +++++++++++++++++----------
src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java | 42 +++++++++++----------
3 files changed, 56 insertions(+), 64 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 c875665..fdbeb8c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1196,6 +1196,17 @@
//23.灏忚溅鎼繍瀹屾垚 ==> 24.鎻愬崌鏈烘惉杩愪腑
if (wrkMast.getWrkSts() == 23) {
+ NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+
+ //璋冨害灏忚溅閬胯
+ boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkMast.getLocNo()), wrkMast.getShuttleNo(), shuttleThread);
+ if (!result) {
+ return false;
+ }
+
//鑾峰彇鍑哄簱绔欑偣(鐩爣绔�)
BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNo());
if (basDevp == null) {
@@ -1968,7 +1979,7 @@
continue;
}
- if (wrkMast.getMk().equals("Y")) {//鏍囪涓篩琛ㄧず闇�瑕佺敤鍒版満姊拌噦鎷f枡
+ if (wrkMast.getMk() != null && wrkMast.getMk().equals("Y")) {//鏍囪涓篩琛ㄧず闇�瑕佺敤鍒版満姊拌噦鎷f枡
Short targetSta = null;//鐩爣绔�
//鍒ゆ柇鏈烘鑷傛嫞鏂欑珯鏄惁绌洪棽
StaProtocol staProtocol303 = devpThread.getStation().get(303);
@@ -2006,28 +2017,30 @@
StaProtocol staProtocol317 = devpThread.getStation().get(317);
if (staProtocol303.isAutoing() && staProtocol303.isLoading() && staProtocol303.getWorkNo() != 0) {
//璋冨害鏈烘鑷�
- //鏌ヨ鏄惁鏈夊伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol303.getWorkNo().intValue());
- if (wrkMast == null) {
- continue;
- }
- WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
- if (wrkDetl == null) {
- continue;
- }
- RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "303");
+// //鏌ヨ鏄惁鏈夊伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol303.getWorkNo().intValue());
+// if (wrkMast == null) {
+// continue;
+// }
+// WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
+// if (wrkDetl == null) {
+// continue;
+// }
+// RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "303");
+ RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), -1, "303");
}else if (staProtocol317.isAutoing() && staProtocol317.isLoading() && staProtocol317.getWorkNo() != 0) {
//璋冨害鏈烘鑷�
- //鏌ヨ鏄惁鏈夊伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol317.getWorkNo().intValue());
- if (wrkMast == null) {
- continue;
- }
- WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
- if (wrkDetl == null) {
- continue;
- }
- RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "317");
+// //鏌ヨ鏄惁鏈夊伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol317.getWorkNo().intValue());
+// if (wrkMast == null) {
+// continue;
+// }
+// WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo());
+// if (wrkDetl == null) {
+// continue;
+// }
+// RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "317");
+ RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), -1, "317");
}
}
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index b5e47fb..4a3c0a9 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -354,29 +354,6 @@
return locNo;
}
- //妤煎眰杞崲瀵瑰簲鍑哄叆搴撶珯鐐瑰簱浣嶅彿
- public static String levToOutInStaLocNo(Integer lev) {
- String locNo = null;
- if (lev >= 2) {
- lev++;
- }
- switch (lev) {
- case 1:
- locNo = "1800201";
- break;
- case 3:
- locNo = "1800202";
- break;
- case 4:
- locNo = "1800203";
- break;
- case 5:
- locNo = "1800204";
- break;
- }
- return locNo;
- }
-
public static void main(String[] args) {
System.out.println(JSON.toJSONString(getGroupOutsideLoc("0200101")));
}
diff --git a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
index 3d84c4f..dbe89f9 100644
--- a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
@@ -123,29 +123,31 @@
}
}else {
//鍚屼竴妤煎眰锛屾病鏈夌┖闂茬┛姊溅锛屽彧鑳戒粠鍏朵粬妤煎眰璋冨害
- //瀵绘壘绂讳换鍔℃渶杩戠殑绌挎杞�
- for (NyShuttleThread shuttleThread : diffLev) {
+ //瀵绘壘绂讳换鍔℃ゼ灞傛渶杩戠殑绌挎杞�(涓嶈�冭檻璺ㄦゼ灞傚皬杞︾Щ鍔ㄨ窛绂�)
- //褰撳墠绌挎杞﹀簱浣嶅彿
- String currentLocNo = shuttleThread.getShuttleProtocol().getCurrentLocNo();
- int currentLev = Utils.getLev(currentLocNo);
- List<WrkMast> wrkMasts1 = wrkMastService.selectNoShuttleWrkByLev(currentLev);//鍒ゆ柇褰撳墠绌挎杞︽ゼ灞傛槸鍚︽湁寰呭垎閰嶈溅杈嗙殑浠诲姟锛屽鏋滄湁鍒欎笉鍒嗛厤杩欒締杞�
- if (wrkMasts1.size() > 0) {
- //瀛樺湪鍏朵粬浠诲姟锛岃烦杩囪繖杈嗚溅
- continue;
- }
+ //鑾峰彇浠诲姟
+ WrkMast wrkMast1 = wrkMastMapper.selectByWorkNo(wrkNo);
- //褰撳墠绌挎杞︾嚎绋嬪埌褰撳墠杞﹀瓙鎵�鍦ㄦゼ灞傜殑鎻愬崌鏈哄彛璺濈
- List<NavigateNode> currentShuttlePath = NavigateUtils.calc(currentLocNo, Utils.levToOutInStaLocNo(currentLev), NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleThread.getSlave().getId(), currentLev));//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
- if (currentShuttlePath == null) {
- continue;
- }
+ if (wrkMast1 != null) {
+ int lev = Utils.getLev(wrkMast1.getLocNo());//鐩爣妤煎眰
+ int recentValue = 99999;//鏈�灏忓樊鍊�
+ for (NyShuttleThread shuttleThread : diffLev) {
+ //褰撳墠绌挎杞﹀簱浣嶅彿
+ String currentLocNo = shuttleThread.getShuttleProtocol().getCurrentLocNo();
+ int currentLev = Utils.getLev(currentLocNo);
+ List<WrkMast> wrkMasts1 = wrkMastService.selectNoShuttleWrkByLev(currentLev);//鍒ゆ柇褰撳墠绌挎杞︽ゼ灞傛槸鍚︽湁寰呭垎閰嶈溅杈嗙殑浠诲姟锛屽鏋滄湁鍒欎笉鍒嗛厤杩欒締杞�
+ if (wrkMasts1.size() > 0) {
+ //瀛樺湪鍏朵粬浠诲姟锛岃烦杩囪繖杈嗚溅
+ continue;
+ }
- Integer currentAllDistance = NavigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
- if (currentAllDistance < recentAllDistance) {
- //濡傛灉褰撳墠妤煎眰鐨勮溅璺緞鏇村皬锛屽垯鏇存柊鏈�杩戠┛姊溅
- recentShuttle = shuttleThread;
- recentAllDistance = currentAllDistance;
+ //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
+ int currentValue = Math.abs(lev - currentLev);
+ if (currentValue < recentValue) {
+ //濡傛灉褰撳墠妤煎眰鐨勮溅璺緞鏇村皬锛屽垯鏇存柊鏈�杩戠┛姊溅
+ recentShuttle = shuttleThread;
+ recentValue = currentValue;
+ }
}
}
}
--
Gitblit v1.9.1