From 77401b95f2fc410ecc6d6f9f0052ca56ccc4910f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 10 八月 2023 12:49:30 +0800
Subject: [PATCH] 地图增加站点
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 78 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 76 insertions(+), 2 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 731db7f..92adad4 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -721,6 +721,10 @@
if (!shuttleProtocol.isIdle()) {
return false;
}
+ //鍒ゆ柇灏忚溅浠ょ墝鏄惁鏈鍗犻
+ if (shuttleProtocol.getToken() != 0) {
+ return false;//灏忚溅宸茶鐙崰锛岀姝㈠啀娲惧彂浠诲姟
+ }
//鍒ゆ柇灏忚溅鏄惁鍒拌揪杈撻�佺珯鐐瑰簱浣�
if (!shuttleProtocol.getCurrentLocNo().equals(basDevp.getLocNo())) {
@@ -746,6 +750,7 @@
wrkMast.setWrkSts(5L);//4.鎻愬崌鏈烘惉杩愬畬鎴� => 5.灏忚溅鎼繍涓�
wrkMast.setModiTime(new Date());
+ shuttleProtocol.setToken(wrkMast.getWrkNo());//鐙崰灏忚溅浠ょ墝
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
@@ -793,6 +798,10 @@
if (!shuttleProtocol.isIdle()) {
return false;
}
+ //鍒ゆ柇灏忚溅浠ょ墝鏄惁鏈鍗犻
+ if (shuttleProtocol.getToken() != 0) {
+ return false;//灏忚溅宸茶鐙崰锛岀姝㈠啀娲惧彂浠诲姟
+ }
//鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐�
BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getSourceLocNo()), wrkMast.getLiftNo());
@@ -824,6 +833,7 @@
wrkMast.setWrkSts(22L);//21.鐢熸垚鍑哄簱浠诲姟 => 22.灏忚溅鎼繍涓�
wrkMast.setModiTime(new Date());
+ shuttleProtocol.setToken(wrkMast.getWrkNo());//鐙崰灏忚溅浠ょ墝
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
@@ -856,11 +866,17 @@
switch (wrkMast.getWrkSts().intValue()) {
case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
wrkMast.setWrkSts(9L);
- //浠诲姟鍙锋竻闆�
- shuttleProtocol.setTaskNo(0);
+ if (shuttleProtocol.getToken() == wrkMast.getWrkNo()) {
+ //閲婃斁灏忚溅浠ょ墝
+ shuttleProtocol.setToken(0);
+ }
break;
case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
wrkMast.setWrkSts(23L);
+ if (shuttleProtocol.getToken() == wrkMast.getWrkNo()) {
+ //閲婃斁灏忚溅浠ょ墝
+ shuttleProtocol.setToken(0);
+ }
break;
case 102://102.灏忚溅鍒版彁鍗囨満涓� ==> 103.灏忚溅鍒版彁鍗囨満瀹屾垚
wrkMast.setWrkSts(103L);
@@ -870,6 +886,10 @@
break;
case 108://108.灏忚溅绉诲姩涓� ==> 109.灏忚溅绉诲姩瀹屾垚
wrkMast.setWrkSts(109L);
+ if (shuttleProtocol.getToken() == wrkMast.getWrkNo()) {
+ //閲婃斁灏忚溅浠ょ墝
+ shuttleProtocol.setToken(0);
+ }
break;
default:
}
@@ -961,6 +981,10 @@
if (!liftProtocol.isIdle(wrkMast.getWrkNo().shortValue())) {
return false;
}
+ //鍒ゆ柇鎻愬崌鏈轰护鐗屾槸鍚︽湭琚崰棰�
+ if (liftProtocol.getToken() != 0) {
+ return false;//鎻愬崌鏈哄凡琚嫭鍗狅紝绂佹鍐嶆淳鍙戜换鍔�
+ }
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(liftThread.getSlave().getId());
if (liftWrkMast != null) {
@@ -991,6 +1015,7 @@
wrkMast.setWrkSts(3L);//2.璁惧涓婅蛋 ==> 3.鎻愬崌鏈烘惉杩愪腑
wrkMast.setLiftNo(liftThread.getSlave().getId());//浠诲姟妗g粦瀹氭彁鍗囨満鍙�
wrkMast.setModiTime(now);
+ liftProtocol.setToken(wrkMast.getWrkNo());//鐙崰鎻愬崌鏈轰护鐗�
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Lift, liftProtocol.getLiftNo().intValue(), new Task(3, assignCommand));
@@ -1023,6 +1048,10 @@
if (!liftProtocol.isIdle(wrkMast.getWrkNo().shortValue())) {
return false;
}
+ //鍒ゆ柇鎻愬崌鏈轰护鐗屾槸鍚︽湭琚崰棰�
+ if (liftProtocol.getToken() != 0) {
+ return false;//鎻愬崌鏈哄凡琚嫭鍗狅紝绂佹鍐嶆淳鍙戜换鍔�
+ }
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(liftThread.getSlave().getId());
if (liftWrkMast != null) {
@@ -1053,6 +1082,7 @@
wrkMast.setWrkSts(24L);//23.灏忚溅鎼繍瀹屾垚 ==> 24.鎻愬崌鏈烘惉杩愪腑
wrkMast.setLiftNo(liftThread.getSlave().getId());//浠诲姟妗g粦瀹氭彁鍗囨満鍙�
wrkMast.setModiTime(now);
+ liftProtocol.setToken(wrkMast.getWrkNo());//鐙崰鎻愬崌鏈轰护鐗�
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Lift, liftProtocol.getLiftNo().intValue(), new Task(3, assignCommand));
@@ -1088,11 +1118,19 @@
case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
wrkMast.setWrkSts(4L);
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
+ if (liftProtocol.getToken() == wrkMast.getWrkNo()) {
+ //閲婃斁鎻愬崌鏈轰护鐗�
+ liftProtocol.setToken(0);
+ }
break;
case 24://24.鎻愬崌鏈烘惉杩愪腑 ==> 25.鎻愬崌鏈烘惉杩愬畬鎴�
wrkMast.setWrkSts(25L);
if (wrkMast.getIoType() == 11) {//搴撲綅绉昏浆
wrkMast.setWrkSts(4L);//4.鎻愬崌鏈烘惉杩愬畬鎴�
+ }
+ if (liftProtocol.getToken() == wrkMast.getWrkNo()) {
+ //閲婃斁鎻愬崌鏈轰护鐗�
+ liftProtocol.setToken(0);
}
break;
case 104://104.鎻愬崌鏈烘惉杩愪腑 ==> 105.鎻愬崌鏈烘惉杩愬畬鎴�
@@ -1984,6 +2022,11 @@
return false;
}
+ //鍒ゆ柇灏忚溅浠ょ墝鏄惁鏈鍗犻
+ if (shuttleProtocol.getToken() != 0) {
+ return false;//灏忚溅宸茶鐙崰锛岀姝㈠啀娲惧彂浠诲姟
+ }
+
if (Utils.getLev(wrkMast.getLocNo()) == shuttleProtocol.getPoint().getZ()) {
//鐩爣搴撲綅鍜屽皬杞﹀簱浣嶅浜庡悓涓�妤煎眰锛岄渶瑕侀�氳繃鎻愬崌鏈鸿皟搴�
return true;//鐩存帴杩涘叆108.灏忚溅绉诲姩涓�
@@ -2062,6 +2105,7 @@
wrkMast.setWrkSts(102L);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 101.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 102.灏忚溅鍒版彁鍗囨満涓�
wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿(閿佸畾鎻愬崌鏈洪槻姝㈣鍏朵粬浠诲姟鎶㈠崰)
wrkMast.setModiTime(now);
+ shuttleProtocol.setToken(wrkMast.getWrkNo());//鐙崰璇ュ皬杞︿护鐗�
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
@@ -2092,6 +2136,10 @@
}
if (!liftProtocol.isIdle(wrkMast.getWrkNo().shortValue())) {
return false;
+ }
+ //鍒ゆ柇鎻愬崌鏈轰护鐗屾槸鍚︽湭琚崰棰�
+ if (liftProtocol.getToken() != 0) {
+ return false;//鎻愬崌鏈哄凡琚嫭鍗狅紝绂佹鍐嶆淳鍙戜换鍔�
}
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
@@ -2133,6 +2181,7 @@
wrkMast.setWrkSts(104L);//鎻愬崌鏈烘惉杩愪腑 103.灏忚溅鍒版彁鍗囨満瀹屾垚 ==> 104.鎻愬崌鏈烘惉杩愪腑
wrkMast.setLiftNo(liftThread.getSlave().getId());//閿佸畾鎻愬崌鏈洪槻姝㈣鍗犵敤
wrkMast.setModiTime(now);
+ liftProtocol.setToken(wrkMast.getWrkNo());//鐙崰鎻愬崌鏈轰护鐗�
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Lift, liftProtocol.getLiftNo().intValue(), new Task(3, assignCommand));
@@ -2166,6 +2215,11 @@
return false;
}
+ //鍒ゆ柇鎻愬崌鏈轰护鐗屾槸鍚︿负褰撳墠浠诲姟
+ if (liftProtocol.getToken() != wrkMast.getWrkNo()) {
+ return false;
+ }
+
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
if (shuttleThread == null) {
@@ -2178,6 +2232,11 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleProtocol.isIdleNoCharge()) {
+ return false;
+ }
+
+ //鍒ゆ柇灏忚溅浠ょ墝鏄惁涓哄綋鍓嶄换鍔�
+ if (shuttleProtocol.getToken() != wrkMast.getWrkNo()) {
return false;
}
@@ -2233,6 +2292,15 @@
//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 108.灏忚溅绉诲姩涓�
if (wrkMast.getWrkSts() == 107) {
+ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
+ if (liftThread == null) {
+ return false;
+ }
+ LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+ if (liftProtocol == null) {
+ return false;
+ }
+
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
if (shuttleThread == null) {
@@ -2245,6 +2313,11 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleProtocol.isIdleNoCharge()) {
+ return false;
+ }
+
+ //鍒ゆ柇灏忚溅浠ょ墝鏄惁涓哄綋鍓嶄换鍔�
+ if (shuttleProtocol.getToken() != wrkMast.getWrkNo()) {
return false;
}
@@ -2283,6 +2356,7 @@
wrkMast.setWrkSts(108L);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 108.灏忚溅绉诲姩涓�
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
wrkMast.setModiTime(now);
+ liftProtocol.setToken(0);//閲婃斁鎻愬崌鏈轰护鐗�
if (wrkMastMapper.updateById(wrkMast) > 0) {
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
--
Gitblit v1.9.1