From cb757218ff35e8b302de2d6cc5a95b842acd8ea2 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 20 九月 2023 12:33:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/LiftThread.java | 12 +++-
src/main/java/com/zy/common/utils/NyLiftUtils.java | 6 +-
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 30 ++++++++-
src/main/java/com/zy/core/thread/NyShuttleThread.java | 79 +++++++++++++++----------
src/main/java/com/zy/asrs/controller/LiftController.java | 20 +-----
src/main/webapp/views/lift.html | 4 +
6 files changed, 92 insertions(+), 59 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LiftController.java b/src/main/java/com/zy/asrs/controller/LiftController.java
index a2199df..0104c32 100644
--- a/src/main/java/com/zy/asrs/controller/LiftController.java
+++ b/src/main/java/com/zy/asrs/controller/LiftController.java
@@ -234,24 +234,14 @@
//绉诲姩鎵樼洏
int workNo = commonService.getWorkNo(3);//鑾峰彇浠诲姟鍙�
- Integer startSta = null;
- Integer targetSta = null;
- for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) {
- if (liftStaProtocol.getStaNo() == param.getSourceStaNo()) {
- startSta = liftStaProtocol.getStaNo();
- }
-
- if (liftStaProtocol.getLev() == param.getStaNo()) {
- targetSta = liftStaProtocol.getStaNo();
- }
- }
-
- if (startSta == null || targetSta == null) {
- throw new CoolException("璧风偣鎴栫洰鏍囩偣涓嶅瓨鍦�");
+ LiftStaProtocol sourceLiftSta = NyLiftUtils.getLiftStaByStaNo(param.getSourceStaNo());
+ LiftStaProtocol liftSta = NyLiftUtils.getLiftStaByStaNo(param.getStaNo());
+ if (sourceLiftSta == null || liftSta == null) {
+ throw new CoolException("婧愮珯鎴栫洰鏍囩珯涓嶅瓨鍦�");
}
//鑾峰彇鎻愬崌鏈哄懡浠�
- NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, startSta, targetSta, workNo);
+ NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, sourceLiftSta.getStaNo(), liftSta.getStaNo(), workNo);
ArrayList<NyLiftCommand> commands = new ArrayList<>();
commands.add(liftCommand);
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 45ab344..4b61f61 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -928,12 +928,17 @@
break;
case 110://110.灏忚溅绉诲姩涓� ==> 111.灏忚溅绉诲姩瀹屾垚
wrkMast.setWrkSts(111L);
+ shuttleProtocol.setTaskNo(0);
if (shuttleProtocol.getToken() == wrkMast.getWrkNo()) {
//閲婃斁灏忚溅浠ょ墝
shuttleProtocol.setToken(0);
}
break;
- case 111:
+ default:
+ }
+
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ if (wrkMast.getWrkSts() == 111) {
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (wrkMastLocMapper.save(wrkMast.getWrkNo()) <= 0) {
log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
@@ -942,11 +947,8 @@
if (!wrkMastService.deleteById(wrkMast)) {
log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
}
- break;
- default:
- }
+ }
- if (wrkMastMapper.updateById(wrkMast) > 0) {
//璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
//婧愬簱浣嶆竻闆�
@@ -959,6 +961,24 @@
} else {
News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
}
+ }else {
+ ShuttleAssignCommand assignCommand = shuttleProtocol.getAssignCommand();
+ if (!assignCommand.getAuto()) {
+ //鎵嬪姩妯″紡
+ //宸ヤ綔鍙锋竻闆�
+ shuttleProtocol.setTaskNo(0);
+ //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
+ shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ //婧愬簱浣嶆竻闆�
+ shuttleProtocol.setSourceLocNo(null);
+ //鐩爣搴撲綅娓呴浂
+ shuttleProtocol.setLocNo(null);
+ //浠诲姟鎸囦护娓呴浂
+ shuttleProtocol.setAssignCommand(null);
+ //娓呴浂浠ょ墝
+ shuttleProtocol.setToken(0);
+ News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
+ }
}
}
diff --git a/src/main/java/com/zy/common/utils/NyLiftUtils.java b/src/main/java/com/zy/common/utils/NyLiftUtils.java
index 93cc8da..6909cd2 100644
--- a/src/main/java/com/zy/common/utils/NyLiftUtils.java
+++ b/src/main/java/com/zy/common/utils/NyLiftUtils.java
@@ -39,7 +39,7 @@
}
for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) {
- if (liftStaProtocol.getStaNo() == staNo) {
+ if (liftStaProtocol.getStaNo().equals(staNo)) {
return liftStaProtocol;
}
}
@@ -56,7 +56,7 @@
}
for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) {
- if (liftStaProtocol.getStaNo() == staNo) {
+ if (liftStaProtocol.getStaNo().equals(staNo)) {
return liftStaProtocol;
}
}
@@ -72,7 +72,7 @@
}
for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) {
- if (liftStaProtocol.getLev() == lev) {
+ if (liftStaProtocol.getLev().equals(lev)) {
return liftStaProtocol;
}
}
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 83f3c8d..0c92bb3 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -132,7 +132,7 @@
//鎻愬崌鏈哄浜庢湭杩愯銆佸氨缁�佹爣璁皌rue銆佹湁浠诲姟鍙�
if (!liftProtocol.getBusy()
- && liftProtocol.getPakMk()
+ && !liftProtocol.getPakMk()
&& liftProtocol.getTaskNo() != 0) {
//杩樻湁鏈畬鎴愮殑鍛戒护
executeWork(liftProtocol.getTaskNo());
@@ -184,7 +184,13 @@
//宸插畬鎴愪换鍔″彿
liftProtocol.setCompleteTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
//褰撳墠妤煎眰
- liftProtocol.setLev(siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
+ short lev = siemensS7Net.getByteTransform().TransInt16(result1.Content, 8);
+ if (lev >=5 && lev <= 7) {
+ lev += 2;
+ } else if (lev >= 8 && lev <= 10) {
+ lev += 4;
+ }
+ liftProtocol.setLev(lev);
//灏嗘彁鍗囨満鐘舵�佷繚瀛樿嚦鏁版嵁搴�
BasLiftService liftService = SpringUtils.getBean(BasLiftService.class);
@@ -358,7 +364,7 @@
News.info("鎻愬崌鏈哄懡浠や笅鍙戞垚鍔燂紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));
//灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
- liftProtocol.setPakMk(false);
+ liftProtocol.setPakMk(true);
//淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index ab325f7..5bce024 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -95,7 +95,7 @@
//鍥涘悜绌挎杞︾┖闂层�佹湁浠诲姟銆佹爣璁颁负true銆佸瓨鍦ㄤ换鍔℃寚浠わ紝闇�瑕佹墽琛屼换鍔$殑涓嬩竴鏉℃寚浠�
if (shuttleProtocol.getFree() == ShuttleStatusType.IDLE.id
&& shuttleProtocol.getTaskNo() != 0
- && shuttleProtocol.getPakMk()) {
+ && !shuttleProtocol.getPakMk()) {
//鎵ц涓嬩竴姝ユ寚浠�
executeWork(shuttleProtocol.getTaskNo().shortValue());
}
@@ -173,9 +173,9 @@
//闈炶嚜鍔ㄧ姸鎬佹椂闂磋鏃�
shuttleProtocol.setErrTime(jsonObject.getInteger("errTime"));
- //灏忚溅澶勪簬杩愯涓紝灏嗘爣璁扮疆涓簍rue
+ //灏忚溅澶勪簬杩愯涓紝灏嗘爣璁扮疆涓篺alse
if (shuttleProtocol.getFree() == 0) {
- shuttleProtocol.setPakMk(true);
+ shuttleProtocol.setPakMk(false);
}
//灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴�
@@ -355,8 +355,12 @@
}
NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo()));
+
//鍙栧嚭鍛戒护
- NyShuttleHttpCommand command = commands.get(commandStep);//褰撳墠鍛戒护
+ NyShuttleHttpCommand command = null;
+ if (commandStep < commands.size()) {
+ command = commands.get(commandStep);//褰撳墠鍛戒护
+ }
if (commandStep != 0) {
//鍒ゆ柇涓婁竴鏉℃寚浠ゆ槸鍚﹀畬鎴�
NyShuttleHttpCommand lastCommand = commands.get(commandStep - 1);
@@ -369,7 +373,9 @@
lastCommand.setComplete(true);
//瑙i攣閿佸畾璺緞锛屼笂涓�鏉¤矾寰勫拰褰撳墠璺緞
List<NavigateNode> nodes = lastCommand.getNodes();
- nodes.addAll(command.getNodes());
+ if (command != null) {
+ nodes.addAll(command.getNodes());
+ }
navigateMapData.writeNavigateNodeToRedisMap(nodes, false);//瑙i攣璺緞
}
}else {
@@ -395,7 +401,7 @@
}else {
shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING);
}
- News.info("鍥涘悜绌挎杞︿换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
+ News.info("鍥涘悜绌挎杞︿换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(commands));
return false;//绂佹鍐嶄笅鍙戝懡浠�
}
@@ -441,7 +447,7 @@
News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙戞垚鍔燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
//灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
- shuttleProtocol.setPakMk(false);
+ shuttleProtocol.setPakMk(true);
//淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
BasShuttleOptService shuttleOptService = SpringUtils.getBean(BasShuttleOptService.class);
@@ -463,33 +469,42 @@
shuttleOptService.insert(opt);
}
- //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚
- if (commandStep < commands.size() - 1) {
- //鏇存柊redis鏁版嵁
- //姝ュ簭澧炲姞
- commandStep++;
- redisCommand.setCommandStep(commandStep);
- //浠诲姟鏁版嵁淇濆瓨鍒皉edis
- redisUtil.set("shuttle_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
- }else {
- //宸叉墽琛屽畬鎴�
+ commandStep++;
+ //鏇存柊redis鏁版嵁
+ redisCommand.setCommandStep(commandStep);
+ //浠诲姟鏁版嵁淇濆瓨鍒皉edis
+ redisUtil.set("shuttle_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
- commandStep++;
-// //鏈�鍚庝竴娈靛懡浠や负绉诲姩鍛戒护锛屽垯鏆傜紦鍒犻櫎redis绛夊緟娓呴櫎璺緞鏃朵竴娆℃�у垹闄�
-// //鏈�鍚庝竴娈靛懡浠や负涓嶆槸绉诲姩鍛戒护锛屽垯鍒犻櫎redis
-// if (!command.getRequest().getBody().get("requestType").equals("move")) {
-// //鍒犻櫎redis
-// redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo());
-// }
+// //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚
+// if (commandStep < commands.size() - 1) {
+// commandStep++;
+// //鏇存柊redis鏁版嵁
+// redisCommand.setCommandStep(commandStep);
+// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
+// redisUtil.set("shuttle_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
+// }else {
+// //宸叉墽琛屽畬鎴�
//
-// if (!assignCommand.getCharge()) {
-// //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
-// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
-// }else {
-// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING);
-// }
-// News.info("鍥涘悜绌挎杞︿换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
- }
+// commandStep = commands.size();
+// //鏇存柊redis鏁版嵁
+// redisCommand.setCommandStep(commandStep);
+// //浠诲姟鏁版嵁淇濆瓨鍒皉edis
+// redisUtil.set("shuttle_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
+//// //鏈�鍚庝竴娈靛懡浠や负绉诲姩鍛戒护锛屽垯鏆傜紦鍒犻櫎redis绛夊緟娓呴櫎璺緞鏃朵竴娆℃�у垹闄�
+//// //鏈�鍚庝竴娈靛懡浠や负涓嶆槸绉诲姩鍛戒护锛屽垯鍒犻櫎redis
+//// if (!command.getRequest().getBody().get("requestType").equals("move")) {
+//// //鍒犻櫎redis
+//// redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo());
+//// }
+////
+//// if (!assignCommand.getCharge()) {
+//// //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting
+//// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
+//// }else {
+//// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING);
+//// }
+//// News.info("鍥涘悜绌挎杞︿换鍔℃墽琛屼笅鍙戝畬鎴愮瓑寰呮墽琛岀粨鏉燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
+// }
return true;
}
diff --git a/src/main/webapp/views/lift.html b/src/main/webapp/views/lift.html
index f6b281f..ab7d7e0 100644
--- a/src/main/webapp/views/lift.html
+++ b/src/main/webapp/views/lift.html
@@ -354,7 +354,9 @@
http.post(baseUrl+"/lift/operator/lift", {
liftNo: $('input[name="liftSelect"]:checked').val(),
liftTaskMode: liftTaskMode,
- lev: $("#liftLev").val()
+ lev: $("#liftLev").val(),
+ sourceStaNo: $("#sourceStaNo").val(),
+ staNo: $("#staNo").val()
}, function (res) {
layer.msg(res.msg, {icon: 1});
});
--
Gitblit v1.9.1