From 7cd8c743cb1f377a3102d9a154669fb2bc10535c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 26 六月 2023 18:10:58 +0800
Subject: [PATCH] lift
---
src/main/java/com/zy/core/thread/ShuttleThread.java | 53 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index f8e571e..7aeff9c 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -915,14 +915,19 @@
qrCodeValues.add(Short.parseShort(basDevp.getQrCodeValue()));
}
- //閬嶅巻鎵�鏈夋寚浠わ紝鍒ゆ柇鏄惁鏈夊埌鎻愬崌鏈哄彛鐨勬寚浠わ紝骞惰幏鍙栧埌杈捐鎻愬崌鏈哄彛鎵�闇�姝ュ簭
+ //閬嶅巻鎵�鏈夋寚浠わ紝鍒ゆ柇鏄惁鏈夊埌鎻愬崌鏈哄彛鐨勬寚浠ゆ垨浠庢彁鍗囨満鍙e墠寰�鎻愬崌鏈哄唴鐨勬寚浠わ紝骞惰幏鍙栧埌杈捐鎻愬崌鏈哄彛鎵�闇�姝ュ簭
int step = 0;
Integer siteNo = null;//绔欑偣鍙�
ShuttleCommand command = null;
for (int i = 0; i < commands.size(); i++) {
command = commands.get(i);
for (Short qrCodeValue : qrCodeValues) {
- if (qrCodeValue.intValue() == command.getDistCodeNum().intValue()) {
+ //鐩爣浣嶇疆鏄彁鍗囨満鍙o紝鎴栬捣鐐逛綅缃槸鎻愬崌鏈哄彛涓旂洰鏍囨槸鍘绘彁鍗囨満鍐�
+ if (command.getDistCodeNum() == null || command.getStartCodeNum() == null) {
+ continue;
+ }
+
+ if (qrCodeValue.intValue() == command.getDistCodeNum().intValue() || (qrCodeValue.intValue() == command.getStartCodeNum().intValue() && command.getDistCodeNum().intValue() == liftProtocol.getBarcode().intValue())) {
//瀛樺湪
step = i + 1;
BasDevp basDevp = basDevpService.queryByQrCode(qrCodeValue.intValue());
@@ -937,11 +942,21 @@
return true;
}
- //鍒ゆ柇涓嬩竴姝ユ槸鍚︿负鎻愬崌鏈哄彛
- if (commandStep + 1 != step) {
- //涓嬩竴姝ヤ笉鏄彁鍗囨満鍙o紝璺宠繃鍚庣画娴佺▼
- return true;
+ //鍒ゆ柇涓嬩竴姝ユ槸鍚︿负鎻愬崌鏈哄彛鎴栨彁鍗囨満鍐�
+ if (commandStep < commands.size()) {
+ ShuttleCommand command1 = commands.get(commandStep);
+ Short distCodeNum = command1.getDistCodeNum();
+ if (distCodeNum != null) {
+ BasDevp basDevp = basDevpService.queryByQrCode(Integer.valueOf(distCodeNum));
+ if (basDevp == null && distCodeNum.intValue() != liftProtocol.getBarcode().intValue()) {
+ return true;//涓嬩竴姝ヤ笉鏄彁鍗囨満鍙o紝璺宠繃鍚庣画娴佺▼
+ }
+ }
}
+// if (commandStep + 1 != step) {
+// //涓嬩竴姝ヤ笉鏄彁鍗囨満鍙o紝璺宠繃鍚庣画娴佺▼
+// return true;
+// }
//鑾峰彇鍥涘悜绌挎杞﹀綋鍓嶆ゼ灞�
String shuttleLocNo = shuttleProtocol.getCurrentLocNo();//浜岀淮鐮佸搴斿簱浣嶅彿
@@ -956,13 +971,28 @@
if (siteNo != null) {
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(siteNo);
- if (staProtocol.isLiftArrival()
- && liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) {
- //杈撻�佺嚎鍙嶉鎻愬崌鏈哄埌浣嶄笖鎻愬崌鏈烘ゼ灞傚弽棣堜负鍚屼竴灞傦紝鐩存帴鏀捐
+ if (!staProtocol.isLiftArrival()) {
+ //杈撻�佺嚎鍙嶉鎻愬崌鏈烘病鏈夊埌浣�
+ executeLift(liftThread, liftProtocol, redisCommand, shuttleLocNoLev);//璋冨害鎻愬崌鏈�
+ return false;
+ }
+
+ if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) {
+ //灏忚溅澶勪簬鎻愬崌鏈哄唴
return true;
+ }else {
+ if (liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) {
+ return true;//鎻愬崌鏈哄埌浣�
+ }
+ executeLift(liftThread, liftProtocol, redisCommand, shuttleLocNoLev);//璋冨害鎻愬崌鏈�
+ return false;//鎻愬崌鏈烘病鏈夊埌浣�
}
}
+ return false;
+ }
+
+ private boolean executeLift(LiftThread liftThread, LiftProtocol liftProtocol, ShuttleRedisCommand redisCommand, Integer shuttleLocNoLev) {//璋冨害鎻愬崌鏈�
if (liftProtocol.getRunning()) {
//鎻愬崌鏈鸿繍琛屼腑锛岀姝笅鍙�
return false;
@@ -980,7 +1010,7 @@
liftProtocol.setSecurityMk(true);//鏍囪缃负true锛岄槻姝㈠叾浠栦换鍔″崰鐢ㄥ綋鍓嶆彁鍗囨満
redisCommand.setLiftSecurityMk(true);//鏍囪缃负true锛岄槻姝㈠叾浠栦换鍔″崰鐢ㄥ綋鍓嶆彁鍗囨満
//浠诲姟鏁版嵁淇濆瓨鍒皉edis
- redisUtil.set("shuttle_wrk_no_" + wrkNo, JSON.toJSONString(redisCommand));
+ redisUtil.set("shuttle_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
//鍛戒护list
ArrayList<LiftCommand> liftCommands = new ArrayList<>();
@@ -993,8 +1023,7 @@
liftAssignCommand.setTaskNo(liftProtocol.getTaskNo());
//涓嬪彂浠诲姟
MessageQueue.offer(SlaveType.Lift, liftProtocol.getLiftNo().intValue(), new Task(3, liftAssignCommand));
-
- return false;
+ return true;
}
/**
--
Gitblit v1.9.1