From 6b016cef0828cbd8ead4a2ff43d5bcb6e266a584 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 09 五月 2023 15:33:23 +0800
Subject: [PATCH] ShuttleThread and LiftThread task restart
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 164 ++++++++++++++++--------------------------------------
1 files changed, 50 insertions(+), 114 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 3b92522..50cab14 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -606,115 +606,56 @@
}
}
-// /**
-// * 鍏ュ簱 ===>> 鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
-// */
-// public synchronized void shuttleIoInExecute() {
-// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-// for (DevpSlave devp : slaveProperties.getDevp()) {
-// // 閬嶅巻鍏ュ簱绔�
-// for (DevpSlave.StaRack rackInStn : devp.getRackInStn()) {
-// // 鑾峰彇鍏ュ簱绔欎俊鎭�
-// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-//
-// StaProtocol staProtocol = devpThread.getStation().get(rackInStn.getStaNo());
-// StaProtocol staProtocol105 = devpThread.getStation().get(105);
-// staProtocol105.setWorkNo((short) 752);
-// staProtocol105.setStaNo((short) 100);
-//
-// StaProtocol staProtocol106 = devpThread.getStation().get(106);
-// staProtocol106.setWorkNo((short) 753);
-// staProtocol106.setStaNo((short) 100);
-//
-// if (staProtocol == null) {
-// continue;
-// } else {
-// staProtocol = staProtocol.clone();
-// }
-// Short workNo = staProtocol.getWorkNo();
-//
-// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-// if (true || staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) {
-// WrkMast wrkMast = wrkMastMapper.selectRackInStep48(workNo, staProtocol.getSiteId());
-// if (wrkMast != null) {
-// if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 8) {
-// ShuttleThread shuttleThread = null;
-// HashMap<String, Object> searchIdleShuttle = null;
-// if (wrkMast.getWrkSts() == 4) {
-// //瀵绘壘鏈�杩戜笖绌洪棽鐨勫洓鍚戠┛姊溅
-// searchIdleShuttle = this.searchIdleShuttle(wrkMast);
-// shuttleThread = (ShuttleThread) searchIdleShuttle.get("result");
-// }else {
-// //鐘舵��8锛屽洓鍚戠┛姊溅宸插湪鎻愬崌鏈哄彛锛岀瓑寰呭懡浠よ繘琛屽叆搴撴惉杩愬姩浣�
-// Integer shuttleNo = wrkMast.getShuttleNo();//鍥涘悜绌挎杞﹀彿
-// shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
-// }
-//
-// if (shuttleThread == null) {
-// continue;
-// }
-//
-// ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-// if (!shuttleProtocol.isIdle()) {
-// continue;
-// }
-//
-// wrkMast.setShuttleNo(shuttleProtocol.getShuttleNo().intValue());//缁欏伐浣滄。鍒嗛厤鍥涘悜绌挎杞﹀彿
-//
-// //鍒嗛厤浠诲姟鍙�
-// shuttleProtocol.setTaskNo(wrkMast.getWrkNo().shortValue());
-// //鍒嗛厤婧愬簱浣�
-// shuttleProtocol.setSourceLocNo(wrkMast.getSourceLocNo());
-//
-// ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-// //鍥涘悜绌挎杞﹀彿
-// assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());
-// //浠诲姟鍙�
-// assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());
-// //鍏ュ嚭搴撴ā寮�
-// assignCommand.setTaskMode(ShuttleTaskModeType.PAK_IN.id.shortValue());
-// //婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
-// String currentLocNo = shuttleProtocol.getCurrentLocNo();
-// assignCommand.setSourceLocNo(currentLocNo);
-//
-// if (wrkMast.getWrkSts() == 8 || Boolean.parseBoolean(searchIdleShuttle.get("sameLay").toString())) {
-// //鍚屼竴灞�
-// //鍒嗛厤鐩爣搴撲綅
-// shuttleProtocol.setLocNo(wrkMast.getLocNo());
-// //鐩爣搴撲綅
-// assignCommand.setLocNo(wrkMast.getLocNo());
-// wrkMast.setWrkSts(9L);//灏忚溅鍏ュ簱涓�
-//
-// //鑾峰彇浠庡皬杞�
-// }else {
-// //涓嶅悓灞傦紝灏嗙洰鏍囧簱浣嶅垎閰嶆垚鎻愬崌鏈哄簱浣嶅彿
-//
-// //灏忚溅褰撳墠灞傞珮
-// Integer currentLev = Integer.parseInt(currentLocNo.substring(currentLocNo.length() - 2, currentLocNo.length()));
-//
-// //鑾峰彇鎻愬崌鏈�
-// LiftSlave liftSlave = slaveProperties.getLift().get(0);
-// //鎻愬崌鏈哄簱浣嶅彿
-// String liftLocNo = liftSlave.getLiftLocNo(currentLev);
-// shuttleProtocol.setLocNo(liftLocNo);
-// //鐩爣搴撲綅
-// assignCommand.setLocNo(liftLocNo);
-// wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵��
-// }
-//
-// if (wrkMastMapper.updateById(wrkMast) > 0) {
-// //涓嬪彂浠诲姟
-// MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
-// }
-// }
-//
-// }
-// }
-//
-// }
-// }
-//
-// }
+ /**
+ * 浠巖edis涓噸鍚换鍔�
+ */
+ public synchronized void restartTaskFromRedis() {
+ HashMap<Object, Object> map = redisUtil.getRedis();
+ for (Object key : map.keySet()) {
+ if (key.toString().contains("lift_wrk_no_")) {//鎻愬崌鏈轰换鍔�
+ LiftRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), LiftRedisCommand.class);
+ if (redisCommand == null) {
+ continue;
+ }
+
+ Short liftNo = redisCommand.getLiftNo();
+ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo.intValue());
+ if (liftThread == null) {
+ continue;
+ }
+ LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+ if (!liftProtocol.isIdle()) {
+ continue;
+ }
+
+ //鎻愬崌鏈哄浜庣┖闂茬姸鎬侊紝杩涜浠诲姟鐨勬仮澶�
+ liftProtocol.setTaskNo(redisCommand.getWrkNo());//灏嗘彁鍗囨満绾跨▼鍒嗛厤浠诲姟鍙�
+ liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
+ liftProtocol.setLiftLock(true);//鎻愬崌鏈洪攣瀹�
+
+ }else {//鍥涘悜绌挎杞︿换鍔�
+ ShuttleRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), ShuttleRedisCommand.class);
+ if (redisCommand == null) {
+ continue;
+ }
+
+ Short shuttleNo = redisCommand.getShuttleNo();
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo.intValue());
+ if (shuttleThread == null) {
+ continue;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ if (!shuttleProtocol.isIdle()) {
+ continue;
+ }
+
+ //鍥涘悜绌挎杞﹀浜庣┖闂茬姸鎬侊紝杩涜浠诲姟鐨勬仮澶�
+ shuttleProtocol.setTaskNo(redisCommand.getWrkNo());//灏嗗洓鍚戠┛姊溅绾跨▼鍒嗛厤浠诲姟鍙�
+ shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
+ }
+ }
+
+ }
/**
* 鍏ュ簱 ===>> 鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
@@ -807,7 +748,6 @@
moveCommand.setStartToDistDistance(1300);
moveCommand.setMiddleToDistDistance(0);
moveCommand.setRunDirection(commands.get(0).getRunDirection());
- moveCommand.setRunSpeed((short) 1000);
moveCommand.setCommandEnd((short) 1);
commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
}
@@ -883,7 +823,6 @@
command.setForceMoveDistance(0);
command.setChargeSwitch((short) 2);
command.setIOControl((short) 0);
- command.setRunSpeed((short) 1000);
command.setRadarTmp((short) 0);
command.setCommandEnd((short) 1);
commands.add(command);
@@ -930,7 +869,6 @@
command.setForceMoveDistance(0);
command.setChargeSwitch((short) 2);
command.setIOControl((short) 0);
- command.setRunSpeed((short) 1000);
command.setRadarTmp((short) 0);
command.setCommandEnd((short) 1);
commands.add(command);
@@ -978,7 +916,6 @@
command.setForceMoveDistance(0);
command.setChargeSwitch((short) 2);
command.setIOControl((short) 0);
- command.setRunSpeed((short) 1000);
command.setRadarTmp((short) 0);
command.setCommandEnd((short) 1);
commands.add(command);
@@ -1103,7 +1040,6 @@
moveCommand.setStartToDistDistance(1300);
moveCommand.setMiddleToDistDistance(0);
moveCommand.setRunDirection(commands.get(0).getRunDirection());
- moveCommand.setRunSpeed((short) 1000);
moveCommand.setCommandEnd((short) 1);
commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
--
Gitblit v1.9.1