From c4281fca922cfdda53dec5dfe79890db7671d19d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 14 一月 2025 16:53:19 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1255 +++++++++++++++++++++++++++++------------------------------
1 files changed, 611 insertions(+), 644 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 bbf300e..ba01141 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -43,9 +43,9 @@
@Autowired
private WrkMastService wrkMastService;
@Autowired
- private LocMastService locMastService;
+ private WrkMastLogMapper wrkMastLogMapper;
@Autowired
- private StaDescService staDescService;
+ private LocMastService locMastService;
@Autowired
private BasDevpService basDevpService;
@Autowired
@@ -54,6 +54,8 @@
private BasLiftErrLogService basLiftErrLogService;
@Autowired
private BasShuttleErrService basShuttleErrService;
+ @Autowired
+ private BasLiftErrService basLiftErrService;
@Autowired
private CommonService commonService;
@Autowired
@@ -64,8 +66,6 @@
private ShuttleDispatchUtils shuttleDispatchUtils;
@Autowired
private RedisUtil redisUtil;
- @Autowired
- private WrkMastLogMapper wrkMastLogMapper;
@Autowired
private BasLiftOptService basLiftOptService;
@Autowired
@@ -523,7 +523,7 @@
*/
public synchronized void initRealtimeBasMap() {
try {
- for (int i = 1; i <= 10; i++) {//鎬诲叡鍥涘眰妤�
+ for (int i = 1; i <= 4; i++) {//鎬诲叡鍥涘眰妤�
Object data = redisUtil.get(RedisKeyType.MAP.key + i);
if (data == null) {//redis鍦板浘鏁版嵁涓虹┖锛屼粠鏁版嵁搴撲腑鑾峰彇
BasMap basMap = basMapService.selectLatestMap(i);
@@ -819,116 +819,93 @@
// return true;
// }
-// /**
-// * 鍥涘悜绌挎杞︿换鍔″畬鎴�
-// */
-// public synchronized void shuttleFinished() {
-// try {
-// for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
-// //鑾峰彇鍥涘悜绌挎杞︿俊鎭�
-// NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
-// NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-// if (shuttleProtocol == null) {
-// continue;
-// }
-//
-// //鍥涘悜绌挎杞︾姸鎬佷负绛夊緟纭銆佸皬杞﹀浜庣┖闂茬姸鎬�
-// if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id //浠诲姟瀹屾垚绛夊緟纭
-// && shuttleProtocol.getTaskNo() != 0
-// && shuttleProtocol.getFree() == ShuttleStatusType.IDLE.id
-// ) {
-// //灏嗕换鍔℃。鏍囪涓哄畬鎴�
-// WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo());
-// if (wrkMast != null) {
+ /**
+ * 鍥涘悜绌挎杞︿换鍔″畬鎴�
+ */
+ public synchronized void shuttleFinished() {
+ try {
+ for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+ //鑾峰彇鍥涘悜绌挎杞︿俊鎭�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ //鍥涘悜绌挎杞︾姸鎬佷负绛夊緟纭銆佸皬杞﹀浜庣┖闂茬姸鎬�
+ if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id //浠诲姟瀹屾垚绛夊緟纭
+ && shuttleProtocol.getTaskNo() != 0
+ ) {
+ //灏嗕换鍔℃。鏍囪涓哄畬鎴�
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo());
+ if (wrkMast != null) {
+ if (wrkMast.getWrkSts() == WrkStsType.MOVE_SITE.sts) {
+ //302.灏忚溅绉诲姩鑷崇珯鐐� ==> 303.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴�
+ wrkMast.setWrkSts(WrkStsType.MOVE_SITE_COMPLETE.sts);
+ } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) {
+ //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚
+ wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
+ shuttleThread.setSyncTaskNo(0);
+ } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_WORKING.sts) {
+ //204.灏忚溅鍏呯數涓� ==> 205.灏忚溅鍏呯數瀹屾垚
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
+ shuttleThread.setSyncTaskNo(0);
+ }
// switch (wrkMast.getWrkSts().intValue()) {
-// case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
-// wrkMast.setWrkSts(9L);
-// shuttleProtocol.setTaskNo(0);
-// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁灏忚溅浠ょ墝
-// shuttleProtocol.setToken(0);
-// }
+//// case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
+//// wrkMast.setWrkSts(9L);
+//// shuttleProtocol.setTaskNo(0);
+//// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
+//// //閲婃斁灏忚溅浠ょ墝
+//// shuttleProtocol.setToken(0);
+//// }
+//// break;
+//// case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
+//// wrkMast.setWrkSts(23L);
+//// shuttleProtocol.setTaskNo(0);
+//// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
+//// //閲婃斁灏忚溅浠ょ墝
+//// shuttleProtocol.setToken(0);
+//// }
+//// break;
+// case 302:
+// wrkMast.setWrkSts(WrkStsType.MOVE_SITE_COMPLETE.sts);
// break;
-// case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
-// wrkMast.setWrkSts(23L);
-// shuttleProtocol.setTaskNo(0);
-// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁灏忚溅浠ょ墝
-// shuttleProtocol.setToken(0);
-// }
-// break;
-// case 102://102.灏忚溅绉诲姩鑷崇珯鐐� ==> 103.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴�
-// wrkMast.setWrkSts(103L);
-// break;
-// case 104://104.灏忚溅杩佸叆鎻愬崌鏈轰腑 ==> 105.灏忚溅杩佸叆鎻愬崌鏈哄畬鎴�
-// wrkMast.setWrkSts(105L);
-// shuttleProtocol.setTaskNo(0);//娓呯悊宸ヤ綔鍙�
-// break;
-// case 108://108.灏忚溅杩佸嚭鎻愬崌鏈轰腑 ==> 109.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴�
-// wrkMast.setWrkSts(109L);
-// break;
-// case 110://110.灏忚溅绉诲姩涓� ==> 111.灏忚溅绉诲姩瀹屾垚
-// wrkMast.setWrkSts(111L);
-// shuttleProtocol.setTaskNo(0);
-// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁灏忚溅浠ょ墝
-// shuttleProtocol.setToken(0);
-// }
+// case WrkStsType.MOVE_SHUTTLE.sts:
+// wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
+// shuttleThread.setSyncTaskNo(0);
// break;
// default:
// }
-//
-// if (wrkMastMapper.updateById(wrkMast) > 0) {
-// if (wrkMast.getWrkSts() == 111) {
-// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-// if (wrkMastLogMapper.save(wrkMast.getWrkNo()) <= 0) {
-// log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
-// }
-// // 鍒犻櫎宸ヤ綔涓绘。
-// if (!wrkMastService.deleteById(wrkMast)) {
-// log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
-// }
-// }
-//
-// //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
-// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-// //婧愬簱浣嶆竻闆�
-// shuttleProtocol.setSourceLocNo(null);
-// //鐩爣搴撲綅娓呴浂
-// shuttleProtocol.setLocNo(null);
-// //浠诲姟鎸囦护娓呴浂
-// shuttleProtocol.setAssignCommand(null);
-// News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-// } 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());
-// }
-// }
-//
-// }
-//
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
+
+ if (wrkMastService.updateById(wrkMast)) {
+ //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
+ shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
+ } else {
+ News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
+ }
+ } else {
+ Object object = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + shuttleProtocol.getTaskNo());
+ if(object != null){
+ ShuttleAssignCommand assignCommand = JSON.parseObject(object.toString(), ShuttleAssignCommand.class);
+ if (!assignCommand.getAuto()) {
+ //鎵嬪姩妯″紡
+ //宸ヤ綔鍙锋竻闆�
+ shuttleThread.setTaskNo(0);
+ //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
+ shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
+ }
+ }
+ }
+ }
+
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
// /**
// * 鎻愬崌鏈轰换鍔�
@@ -1253,37 +1230,27 @@
// return true;
// }
//
-// /**
-// * 鎻愬崌鏈轰换鍔″畬鎴�
-// */
-// public synchronized void liftFinished() {
-// try {
-// for (LiftSlave liftSlave : slaveProperties.getLift()) {
-// //鑾峰彇鎻愬崌鏈轰俊鎭�
-// LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId());
-// LiftProtocol liftProtocol = liftThread.getLiftProtocol();
-// if (liftProtocol == null) {
-// continue;
-// }
-//
-// //鎻愬崌鏈轰负绛夊緟纭涓旂┖闂�
-// if (liftProtocol.getProtocolStatus() == LiftProtocolStatusType.WAITING.id
-// && liftProtocol.getTaskNo() != 0
-// && !liftProtocol.getBusy()
-// ) {
-// int taskNo = liftProtocol.getTaskNo().intValue();
-// if (taskNo >= 20000 && taskNo <= 30000) {
-// //鎻愬崌鏈鸿澶囧伐浣滃彿锛岄渶瑕佹煡璇㈠搴斾换鍔″彿
-// BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString(), liftSlave.getId());
-// if (basLiftOpt != null) {
-// taskNo = basLiftOpt.getWrkNo();
-// }
-// }
-//
-// //灏嗕换鍔℃。鏍囪涓哄畬鎴�
-// WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(taskNo);
-// if (wrkMast != null) {
-// switch (wrkMast.getWrkSts().intValue()) {
+ /**
+ * 璐у弶鎻愬崌鏈轰换鍔″畬鎴�
+ */
+ public synchronized void forkLiftFinished() {
+ try {
+ for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) {
+ //鑾峰彇鎻愬崌鏈轰俊鎭�
+ ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, forkLiftSlave.getId());
+ ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
+ if (forkLiftProtocol == null) {
+ continue;
+ }
+
+ //鎻愬崌鏈轰负绛夊緟纭涓旂┖闂�
+ if (forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.WAITING.id
+ && forkLiftProtocol.getWrkNo() != 0
+ ) {
+ //灏嗕换鍔℃。鏍囪涓哄畬鎴�
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(forkLiftProtocol.getWrkNo());
+ if (wrkMast != null) {
+ switch (wrkMast.getWrkSts().intValue()) {
// case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
// wrkMast.setWrkSts(4L);
// wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
@@ -1305,263 +1272,186 @@
// wrkMast.setModiTime(new Date());
// }
// }
-//
-// if (liftProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁鎻愬崌鏈轰护鐗�
-// liftProtocol.setToken(0);
-// }
-//
// break;
-// case 106://106.鎻愬崌鏈烘惉杩愪腑 ==> 107.鎻愬崌鏈烘惉杩愬畬鎴�
-// wrkMast.setWrkSts(107L);
-// break;
-// default:
-// }
-//
-// if (wrkMastMapper.updateById(wrkMast) > 0) {
-// //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-// //浠诲姟鎸囦护娓呴浂
-// liftProtocol.setAssignCommand(null);
-// News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
-// } else {
-// News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
-// }
-// } else {
-// LiftAssignCommand assignCommand = liftProtocol.getAssignCommand();
-// if (assignCommand != null) {
-// if (!assignCommand.getAuto()) {
-// //鎵嬪姩鎿嶄綔
-// //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
-// liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-// //浠诲姟鎸囦护娓呴浂
-// liftProtocol.setAssignCommand(null);
-// News.info("鎻愬崌鏈哄凡纭鎵嬪姩鎿嶄綔銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
-// }
-// }
-// }
-// }
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
+ case 306://306.鎻愬崌鏈烘惉杩愪腑 ==> 307.鎻愬崌鏈烘惉杩愬畬鎴�
+ wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_RUN_COMPLETE.sts);
+ //璐у弶鎻愬崌鏈洪渶瑕佽烦杩囪縼鍑烘彁鍗囨満娴佺▼
+ wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts);
+ break;
+ default:
+ }
-// /**
-// * 寮傚父淇℃伅璁板綍
-// */
-// public void recErr() {
-// try {
-// this.recShuttleErr();
-// this.recLiftErr();
-// } catch (Exception e) {
-// News.error("recErr fail", e);
-// }
-// }
+ wrkMast.setModiTime(new Date());
+ if (wrkMastService.updateById(wrkMast)) {
+ forkLiftThread.reset();
+ News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", forkLiftProtocol.getLiftNo());
+ } else {
+ News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", forkLiftProtocol.getLiftNo(), forkLiftProtocol.getWrkNo());
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
-// /**
-// * 鍥涘悜绌挎杞﹀紓甯镐俊鎭褰�
-// */
-// private void recShuttleErr() {
-// Date now = new Date();
-// for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
-// // 鑾峰彇鍥涘悜绌挎杞︿俊鎭�
-// NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId());
-// if (shuttleThread == null) {
-// continue;
-// }
-// NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-// if (shuttleProtocol == null) {
-// continue;
-// }
-//
-// if (shuttleProtocol.getTaskNo() != 0) {
-// //鏈変换鍔�
-// BasShuttleErrLog latest = basShuttleErrLogService.findLatestByTaskNo(shuttleSlave.getId(), shuttleProtocol.getTaskNo());
-// // 鏈夊紓甯�
-// if (latest == null) {
-// if (shuttleProtocol.getErrState() != null && shuttleProtocol.getErrState() == 1) {
-// WrkMast wrkMast = wrkMastMapper.selectById(shuttleProtocol.getTaskNo());
-// if (wrkMast == null) {
-// continue;
-// }
-// BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(shuttleProtocol.getErrCode());
-// String errName = basShuttleErr==null? "鏈煡寮傚父":basShuttleErr.getErrName();
-// BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(
-// null, // 缂栧彿
-// wrkMast.getWrkNo(), // 宸ヤ綔鍙�
-// now, // 鍙戠敓鏃堕棿
-// null, // 缁撴潫鏃堕棿
-// wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
-// wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
-// shuttleSlave.getId(), // 鍥涘悜绌挎杞�
-// null, // plc
-// wrkMast.getLocNo(), // 鐩爣搴撲綅
-// wrkMast.getStaNo(), // 鐩爣绔�
-// wrkMast.getSourceStaNo(), // 婧愮珯
-// wrkMast.getSourceLocNo(), // 婧愬簱浣�
-// wrkMast.getBarcode(), // 鏉$爜
-// shuttleProtocol.getErrCode(), // 寮傚父鐮�
-// errName, // 寮傚父
-// 1, // 寮傚父鎯呭喌
-// now, // 娣诲姞鏃堕棿
-// null, // 娣诲姞浜哄憳
-// now, // 淇敼鏃堕棿
-// null, // 淇敼浜哄憳
-// "浠诲姟涓紓甯�", // 澶囨敞
-// JSON.toJSONString(shuttleProtocol) // 绯荤粺鐘舵�佹暟鎹�
-// );
-// if (!basShuttleErrLogService.insert(basShuttleErrLog)) {
-// News.error("鍥涘悜绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", shuttleSlave.getId(), errName);
-// }
-// }
-// } else {
-// // 寮傚父淇
-// if (shuttleProtocol.getErrState() == null || shuttleProtocol.getErrState() == 0) {
-// latest.setEndTime(now);
-// latest.setUpdateTime(now);
-// latest.setStatus(2);
-// if (!basShuttleErrLogService.updateById(latest)) {
-// News.error("鍥涘悜绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", shuttleSlave.getId(), latest.getId());
-// }
-// }
-// }
-// }else {
-//// //鏃犱换鍔�
-//// BasShuttleErrLog latest = basShuttleErrLogService.findLatest(shuttleSlave.getId());
-//// // 鏈夊紓甯�
-//// if (shuttleProtocol.getStatusErrorCode() != null && shuttleProtocol.getStatusErrorCode() > 0) {
-//// // 璁板綍鏂板紓甯�
-//// if (latest == null || (latest.getErrCode() != shuttleProtocol.getStatusErrorCode().intValue())) {
-//// BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(shuttleProtocol.getStatusErrorCode().intValue());
-//// String errName = basShuttleErr==null? "鏈煡寮傚父":basShuttleErr.getErrName();
-//// BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(
-//// null, // 缂栧彿
-//// null, // 宸ヤ綔鍙�
-//// now, // 鍙戠敓鏃堕棿
-//// null, // 缁撴潫鏃堕棿
-//// null, // 宸ヤ綔鐘舵��
-//// null, // 鍏ュ嚭搴撶被鍨�
-//// shuttleSlave.getId(), // 鍥涘悜绌挎杞�
-//// null, // plc
-//// null, // 鐩爣搴撲綅
-//// null, // 鐩爣绔�
-//// null, // 婧愮珯
-//// null, // 婧愬簱浣�
-//// null, // 鏉$爜
-//// (int)shuttleProtocol.getStatusErrorCode(), // 寮傚父鐮�
-//// errName, // 寮傚父
-//// 1, // 寮傚父鎯呭喌
-//// now, // 娣诲姞鏃堕棿
-//// null, // 娣诲姞浜哄憳
-//// now, // 淇敼鏃堕棿
-//// null, // 淇敼浜哄憳
-//// "鏃犱换鍔″紓甯�" // 澶囨敞
-//// );
-//// if (!basShuttleErrLogService.insert(basShuttleErrLog)) {
-//// News.error("鍥涘悜绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", shuttleSlave.getId(), errName);
-//// }
-//// }
-//// // 鏃犲紓甯�
-//// } else {
-//// // 寮傚父淇
-//// if (latest != null && latest.getStatus() == 1) {
-//// latest.setEndTime(now);
-//// latest.setUpdateTime(now);
-//// latest.setStatus(2);
-//// if (!basShuttleErrLogService.updateById(latest)) {
-//// News.error("鍥涘悜绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", shuttleSlave.getId(), latest.getId());
-//// }
-//// }
-//// }
-// }
-// }
-// }
-//
-// /**
-// * 鎻愬崌鏈哄紓甯镐俊鎭褰�
-// */
-// private void recLiftErr() {
-// Date now = new Date();
-// for (LiftSlave liftSlave : slaveProperties.getLift()) {
-// // 鑾峰彇鎻愬崌鏈轰俊鎭�
-// LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftSlave.getId());
-// if (liftThread == null) {
-// continue;
-// }
-// LiftProtocol liftProtocol = liftThread.getLiftProtocol();
-// if (liftProtocol == null) {
-// continue;
-// }
-//
-// if (liftProtocol.getTaskNo() != 0) {
-// //鏈変换鍔�
-// BasLiftErrLog latest = basLiftErrLogService.findLatestByTaskNo(liftSlave.getId(), liftProtocol.getTaskNo().intValue());
-// // 鏈夊紓甯�
-// if (latest == null) {
-// if (liftProtocol.getDeviceError() != null && liftProtocol.getDeviceError()) {
-// WrkMast wrkMast = wrkMastMapper.selectById(liftProtocol.getTaskNo());
-// if (wrkMast == null) {
-// continue;
-// }
-//
-// String errName = "";
-// if (liftProtocol.getFrontOverrun()) {
-// errName = "鍓嶈秴闄�";
-// } else if (liftProtocol.getBackOverrun()) {
-// errName = "鍚庤秴闄�";
-// } else if (liftProtocol.getLeftOverrun()) {
-// errName = "宸﹁秴闄�";
-// } else if (liftProtocol.getRightOverrun()) {
-// errName = "鍙宠秴闄�";
-// } else if (liftProtocol.getOverHeight()) {
-// errName = "瓒呴珮";
-// } else if (liftProtocol.getOverWeight()) {
-// errName = "瓒呴噸";
-// }
-//
-// BasLiftErrLog basLiftErrLog = new BasLiftErrLog(
-// null, // 缂栧彿
-// wrkMast.getWrkNo(), // 宸ヤ綔鍙�
-// now, // 鍙戠敓鏃堕棿
-// null, // 缁撴潫鏃堕棿
-// wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
-// wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
-// liftSlave.getId(), // 鎻愬崌鏈�
-// null, // plc
-// wrkMast.getLocNo(), // 鐩爣搴撲綅
-// wrkMast.getStaNo(), // 鐩爣绔�
-// wrkMast.getSourceStaNo(), // 婧愮珯
-// wrkMast.getSourceLocNo(), // 婧愬簱浣�
-// wrkMast.getBarcode(), // 鏉$爜
-// null, // 寮傚父鐮�
-// errName, // 寮傚父
-// 1, // 寮傚父鎯呭喌
-// now, // 娣诲姞鏃堕棿
-// null, // 娣诲姞浜哄憳
-// now, // 淇敼鏃堕棿
-// null, // 淇敼浜哄憳
-// "浠诲姟涓紓甯�", // 澶囨敞
-// JSON.toJSONString(liftProtocol) // 绯荤粺鐘舵�佹暟鎹�
-// );
-// if (!basLiftErrLogService.insert(basLiftErrLog)) {
-// News.error("鎻愬崌鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", liftSlave.getId(), errName);
-// }
-// }
-// } else {
-// // 寮傚父淇
-// if (liftProtocol.getDeviceError() == null || !liftProtocol.getDeviceError()) {
-// latest.setEndTime(now);
-// latest.setUpdateTime(now);
-// latest.setStatus(2);
-// if (!basLiftErrLogService.updateById(latest)) {
-// News.error("鎻愬崌鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", liftSlave.getId(), latest.getId());
-// }
-// }
-// }
-// }
-// }
-// }
+ /**
+ * 寮傚父淇℃伅璁板綍
+ */
+ public void recErr() {
+ try {
+ this.recShuttleErr();
+ this.recLiftErr();
+ } catch (Exception e) {
+ News.error("recErr fail", e);
+ }
+ }
+
+ /**
+ * 鍥涘悜绌挎杞﹀紓甯镐俊鎭褰�
+ */
+ private void recShuttleErr() {
+ Date now = new Date();
+ for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
+ // 鑾峰彇鍥涘悜绌挎杞︿俊鎭�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId());
+ if (shuttleThread == null) {
+ continue;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ if (shuttleProtocol.getTaskNo() != 0) {
+ //鏈変换鍔�
+ BasShuttleErrLog latest = basShuttleErrLogService.findLatestByTaskNo(shuttleSlave.getId(), shuttleProtocol.getTaskNo());
+ // 鏈夊紓甯�
+ if (latest == null) {
+ if (shuttleProtocol.getErrorCode() != null && Integer.parseInt(shuttleProtocol.getErrorCode()) != 0) {
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo());
+ if (wrkMast == null) {
+ continue;
+ }
+ int errorCode = Integer.parseInt(shuttleProtocol.getErrorCode());
+ BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(errorCode);
+ String errName = basShuttleErr==null? "鏈煡寮傚父":basShuttleErr.getErrName();
+ BasShuttleErrLog basShuttleErrLog = new BasShuttleErrLog(
+ null, // 缂栧彿
+ wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+ wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ shuttleSlave.getId(), // 鍥涘悜绌挎杞�
+ null, // plc
+ wrkMast.getLocNo(), // 鐩爣搴撲綅
+ wrkMast.getStaNo(), // 鐩爣绔�
+ wrkMast.getSourceStaNo(), // 婧愮珯
+ wrkMast.getSourceLocNo(), // 婧愬簱浣�
+ wrkMast.getBarcode(), // 鏉$爜
+ errorCode, // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�", // 澶囨敞
+ JSON.toJSONString(shuttleProtocol) // 绯荤粺鐘舵�佹暟鎹�
+ );
+ if (!basShuttleErrLogService.insert(basShuttleErrLog)) {
+ News.error("鍥涘悜绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", shuttleSlave.getId(), errName);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (shuttleProtocol.getErrorCode() == null || Integer.parseInt(shuttleProtocol.getErrorCode()) == 0) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basShuttleErrLogService.updateById(latest)) {
+ News.error("鍥涘悜绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", shuttleSlave.getId(), latest.getId());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 鎻愬崌鏈哄紓甯镐俊鎭褰�
+ */
+ private void recLiftErr() {
+ Date now = new Date();
+ for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) {
+ // 鑾峰彇鎻愬崌鏈轰俊鎭�
+ ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, forkLiftSlave.getId());
+ if (forkLiftThread == null) {
+ continue;
+ }
+ ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
+ if (forkLiftProtocol == null) {
+ continue;
+ }
+
+ if (forkLiftProtocol.getTaskNo() != 0) {
+ //鏈変换鍔�
+ BasLiftErrLog latest = basLiftErrLogService.findLatestByTaskNo(forkLiftSlave.getId(), forkLiftProtocol.getTaskNo());
+ // 鏈夊紓甯�
+ if (latest == null) {
+ if (forkLiftProtocol.getErrorCode() != null && forkLiftProtocol.getErrorCode() != 0) {
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(forkLiftProtocol.getWrkNo());
+ if (wrkMast == null) {
+ continue;
+ }
+
+ BasLiftErr basLiftErr = basLiftErrService.queryByCode(forkLiftProtocol.getErrorCode());
+ String errName = basLiftErr==null? "鏈煡寮傚父":basLiftErr.getErrName();
+
+ BasLiftErrLog basLiftErrLog = new BasLiftErrLog(
+ null, // 缂栧彿
+ wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+ now, // 鍙戠敓鏃堕棿
+ null, // 缁撴潫鏃堕棿
+ wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+ wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+ forkLiftSlave.getId(), // 鎻愬崌鏈�
+ null, // plc
+ wrkMast.getLocNo(), // 鐩爣搴撲綅
+ wrkMast.getStaNo(), // 鐩爣绔�
+ wrkMast.getSourceStaNo(), // 婧愮珯
+ wrkMast.getSourceLocNo(), // 婧愬簱浣�
+ wrkMast.getBarcode(), // 鏉$爜
+ null, // 寮傚父鐮�
+ errName, // 寮傚父
+ 1, // 寮傚父鎯呭喌
+ now, // 娣诲姞鏃堕棿
+ null, // 娣诲姞浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 淇敼浜哄憳
+ "浠诲姟涓紓甯�", // 澶囨敞
+ JSON.toJSONString(forkLiftProtocol) // 绯荤粺鐘舵�佹暟鎹�
+ );
+ if (!basLiftErrLogService.insert(basLiftErrLog)) {
+ News.error("鎻愬崌鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", forkLiftSlave.getId(), errName);
+ }
+ }
+ } else {
+ // 寮傚父淇
+ if (forkLiftProtocol.getErrorCode() == null || forkLiftProtocol.getErrorCode() == 0) {
+ latest.setEndTime(now);
+ latest.setUpdateTime(now);
+ latest.setStatus(2);
+ if (!basLiftErrLogService.updateById(latest)) {
+ News.error("鎻愬崌鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", forkLiftSlave.getId(), latest.getId());
+ }
+ }
+ }
+ }
+ }
+ }
// -------------------------------------------------------------------------------
@@ -1864,220 +1754,304 @@
// }
}
-// /**
-// * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數
-// */
-// public synchronized void loopShuttleCharge() {
-// try {
-// for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
-// //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
-// NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
-// NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-// if (shuttleProtocol == null) {
-// continue;
-// }
-//
-// //鍒ゆ柇褰撳墠灏忚溅鏄惁婊¤冻闇�瑕佸厖鐢佃姹�
-// if (!shuttleProtocol.isRequireCharge()) {
-// continue;
-// }
-//
-// WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue());
-// if (wrkCharge != null) {//宸叉湁鍏呯數浠诲姟
-// continue;
-// }
-//
-// //灏忚溅鎵�鍦ㄦゼ灞�
-// int lev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
-// ShuttleChargeType shuttleCharge = null;
-//
-// //鎼滅储灏忚溅鎵�鍦ㄦゼ灞傛湁娌℃湁鍏呯數妗�
-// for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
-// if (lev != Utils.getLev(chargeType.locNo)) {
-// continue;//灏忚溅鍜屽厖鐢垫々涓嶅湪鍚屼竴灞�
-// }
-//
-// //灏忚溅鍜屽厖鐢垫々鍦ㄥ悓涓�灞�
-// if (wrkChargeService.selectWorkingOfCharge(chargeType.id) == null) {
-// shuttleCharge = chargeType;
-// break;
-// }
-// }
-//
-// if (shuttleCharge == null) {
-// //鍚屾ゼ灞傛病鏈夋壘鍒板厖鐢垫々锛屾壘鍙敤鍏呯數妗�
-// //灏忚溅鍚屾ゼ灞傛病鏈夊厖鐢垫々锛屽彧瑕佸厖鐢垫々鍙敤灏辩敓鎴愬厖鐢典换鍔�
-// for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
-// if (wrkChargeService.selectWorkingOfCharge(chargeType.id) == null) {
-// //鍒ゆ柇褰撳墠鍏呯數妗╂ゼ灞傛槸鍚︽湁灏忚溅锛屽鏈夊皬杞︼紝涓嶅垎閰嶈鍏呯數妗�
-// int chargeLev = Utils.getLev(chargeType.locNo);//鍏呯數妗╂ゼ灞�
-// boolean checkLevHasShuttle = Utils.checkLevHasShuttle(chargeLev);//妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
-// if (checkLevHasShuttle) {
-// //褰撳墠鍏呯數妗╂ゼ灞傛湁绌挎杞︼紝涓嶅垎閰嶈鍏呯數妗�
-// continue;
-// }
-//
-// shuttleCharge = chargeType;
-// break;
-// }
-// }
-// }
-//
-// if (shuttleCharge == null) {
-// continue;
-// }
-//
-// String chargeLocNo = shuttleCharge.locNo;
-// wrkCharge = new WrkCharge();
-// wrkCharge.setShuttleNo(shuttle.getId());
-// wrkCharge.setCharge(shuttleCharge.id);
-// wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
-// wrkCharge.setWrkSts(51L); // 51.鍑嗗鍏呯數
-// wrkCharge.setIoPri((double) 10);
-// wrkCharge.setLocNo(chargeLocNo);
-// wrkCharge.setMemo("charge");
-// wrkCharge.setAppeTime(new Date());
-// if (!wrkChargeService.insert(wrkCharge)) {
-// News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", shuttle.getId());
-// continue;
-// }
-//
-// News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId());
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
-//
-// /**
-// * 鎵ц鍥涘悜绌挎杞﹀厖鐢典换鍔�
-// */
-// public synchronized void executeShuttleCharge() {
-// try {
-// for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
-// WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttle.getId());
-// if (wrkCharge == null) {
-// continue;
-// }
-//
-// NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkCharge.getShuttleNo());
-// if (shuttleThread == null) {
-// continue;
-// }
-// NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-// if (shuttleProtocol == null) {
-// continue;
-// }
-//
-// if (wrkCharge.getWrkSts() == 51) {
-// if (!shuttleProtocol.isIdleNoCharge()) {
-// continue;
-// }
-//
-// if (shuttleProtocol.getSuspendState() == 1) {
-// continue;//绠″埗涓�
-// }
-//
-// if (!shuttleProtocol.getCurrentLocNo().equals(wrkCharge.getLocNo())) {
-// //灏忚溅涓嶅湪鍏呯數妗╀綅缃�
-// shuttleDispatchUtils.dispatchShuttle(wrkCharge.getWrkNo(), wrkCharge.getLocNo(), shuttle.getId());//璋冨害灏忚溅鍘诲厖鐢垫々
-// continue;
-// }
-//
-// //灏忚溅宸茬粡鍦ㄥ厖鐢垫々浣嶇疆锛屼笅鍙戝厖鐢靛懡浠�
-// NyShuttleHttpCommand chargeCommand = NyHttpUtils.getChargeCommand(shuttle.getId(), wrkCharge.getWrkNo(), true);
-// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
-// commands.add(chargeCommand);
-// //鍒涘缓鍒嗛厤鍛戒护
-// ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-// assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
-// assignCommand.setTaskNo(wrkCharge.getWrkNo().shortValue());//浠诲姟鍙�
-// assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id.shortValue());//鍑哄簱妯″紡
-// assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
-// assignCommand.setCommands(commands);//杩愯鍛戒护
-//
-// wrkCharge.setWrkSts(52L);//51.鐢熸垚鍏呯數浠诲姟 => 52.灏忚溅鍘诲厖鐢典腑
-// wrkCharge.setModiTime(new Date());
-// if (wrkChargeMapper.updateById(wrkCharge) > 0) {
-// //涓嬪彂浠诲姟
-// MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
-// }
-// } else if (wrkCharge.getWrkSts() == 52) {
-// //妫�娴嬪皬杞︽槸鍚︽弧鐢�
-//
-// //鑾峰彇婊$數闃堝��
-// int maxPower = 95;
-// EntityWrapper<Config> wrapper = new EntityWrapper<>();
-// wrapper.eq("code", "chargeMaxValue");
-// Config config = configService.selectOne(wrapper);
-// if (config != null) {
-// maxPower = Integer.parseInt(config.getValue());
-// }
-//
-// if (shuttleProtocol.getPowerPercent() < maxPower) {
-// continue;
-// }
-//
-// //***************鍒ゆ柇鏄惁婊″厖鏍″噯***************
-// EntityWrapper<Config> wrapper1 = new EntityWrapper<>();
-// wrapper.eq("code", "shuttleMaxPowerVerify");
-// Config config1 = configService.selectOne(wrapper1);
-// if (config1 != null) {
-// if (config1.getValue().equals("true")) {
-// if (shuttleProtocol.getVoltage() < 5630) {
-// continue;//鐢靛帇涓嶅缁х画鍏呯數
-// }
-// }
-// }
-// //***************鍒ゆ柇鏄惁婊″厖鏍″噯***************
-//
-// //灏忚溅婊$數锛岀粨鏉熷厖鐢典换鍔�
-// NyShuttleHttpCommand chargeCommand = NyHttpUtils.getChargeCommand(shuttle.getId(), wrkCharge.getWrkNo(), false);
-// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
-// commands.add(chargeCommand);
-// //鍒涘缓鍒嗛厤鍛戒护
-// ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-// assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
-// assignCommand.setTaskNo(wrkCharge.getWrkNo().shortValue());//浠诲姟鍙�
-// assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id.shortValue());//鍑哄簱妯″紡
-// assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
-// assignCommand.setCommands(commands);//杩愯鍛戒护
-//
-// //涓嬪彂浠诲姟
-// MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
-// try {
-// Thread.sleep(3000);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-//
-// wrkCharge.setWrkSts(53L);//52.灏忚溅鍘诲厖鐢典腑 => 53.灏忚溅鍏呯數瀹屾垚
-// wrkCharge.setModiTime(new Date());
-// if (wrkChargeMapper.updateById(wrkCharge) > 0) {
-// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE.id);
-// shuttleProtocol.setTaskNo(0);
-// shuttleProtocol.setPakMk(false);
-// }
-// } else if (wrkCharge.getWrkSts() == 53) {
-// if (shuttleProtocol.getChargState() == 0) {//灏忚溅澶勪簬鏈厖鐢电姸鎬�
-// boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkCharge.getLocNo()), shuttleThread.getSlave().getId(), shuttleThread);
-// if (!result) {
-// continue;
-// }
-//
-// wrkCharge.setWrkSts(60L);//53.灏忚溅鍏呯數瀹屾垚 => 60.鍏呯數浠诲姟瀹屾垚
-// wrkCharge.setModiTime(new Date());
-// if (wrkChargeMapper.updateById(wrkCharge) > 0) {
-//
-// }
-// }
-// }
-//
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
+ /**
+ * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數
+ */
+ public synchronized void loopShuttleCharge() {
+ try {
+ for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+ //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ //鍒ゆ柇褰撳墠灏忚溅鏄惁婊¤冻闇�瑕佸厖鐢佃姹�
+ if (!shuttleThread.isRequireCharge()) {
+ continue;
+ }
+
+ WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo());
+ if (wrkMast != null) {//宸叉湁鍏呯數浠诲姟
+ continue;
+ }
+
+ //灏忚溅鎵�鍦ㄦゼ灞�
+ int lev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
+ ShuttleChargeType shuttleCharge = null;
+
+ //鎼滅储灏忚溅鎵�鍦ㄦゼ灞傛湁娌℃湁鍏呯數妗�
+ for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
+ if (lev != Utils.getLev(chargeType.locNo)) {
+ continue;//灏忚溅鍜屽厖鐢垫々涓嶅湪鍚屼竴灞�
+ }
+
+ //灏忚溅鍜屽厖鐢垫々鍦ㄥ悓涓�灞�
+ if (wrkMastService.selectChargeWorkingByChargeSta(chargeType.id) == null) {
+ shuttleCharge = chargeType;
+ break;
+ }
+ }
+
+ if (shuttleCharge == null) {
+ //鍚屾ゼ灞傛病鏈夋壘鍒板厖鐢垫々锛屾壘鍙敤鍏呯數妗�
+ //灏忚溅鍚屾ゼ灞傛病鏈夊厖鐢垫々锛屽彧瑕佸厖鐢垫々鍙敤灏辩敓鎴愬厖鐢典换鍔�
+ for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
+ if (wrkMastService.selectChargeWorkingByChargeSta(chargeType.id) == null) {
+ //鍒ゆ柇褰撳墠鍏呯數妗╂ゼ灞傛槸鍚︽湁灏忚溅锛屽鏈夊皬杞︼紝涓嶅垎閰嶈鍏呯數妗�
+ int chargeLev = Utils.getLev(chargeType.locNo);//鍏呯數妗╂ゼ灞�
+ boolean checkLevHasShuttle = Utils.checkLevHasShuttle(chargeLev);//妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
+ if (checkLevHasShuttle) {
+ //褰撳墠鍏呯數妗╂ゼ灞傛湁绌挎杞︼紝涓嶅垎閰嶈鍏呯數妗�
+ continue;
+ }
+
+ shuttleCharge = chargeType;
+ break;
+ }
+ }
+ }
+
+ if (shuttleCharge == null) {
+ continue;
+ }
+
+ String chargeLocNo = shuttleCharge.locNo;
+ wrkMast = new WrkMast();
+ wrkMast.setMk(String.valueOf(shuttleCharge.id));
+ wrkMast.setWrkNo(commonService.getWorkNo(WrkIoType.SHUTTLE_CHARGE.id));
+ wrkMast.setWrkSts(WrkStsType.NEW_CHARGE.sts);
+ wrkMast.setIoType(WrkIoType.SHUTTLE_CHARGE.id);//300.鍏呯數
+ wrkMast.setIoPri((double) 999);
+ wrkMast.setLocNo(chargeLocNo);
+ wrkMast.setShuttleNo(shuttle.getId());
+ wrkMast.setMemo("charge");
+ wrkMast.setAppeTime(new Date());
+ if (!wrkMastService.insert(wrkMast)) {
+ News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", shuttle.getId());
+ continue;
+ }
+
+ News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鎵ц鍥涘悜绌挎杞﹀厖鐢典换鍔�
+ */
+ public synchronized void executeShuttleCharge() {
+ try {
+ //鏌ヨ灏忚溅鍏呯數浠诲姟
+ for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+ WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttle.getId());
+ if(wrkMast == null) {
+ continue;
+ }
+
+ boolean result1 = this.executeShuttleChargeStepGoToChargeSta(wrkMast);//灏忚溅绛夊緟鍏呯數妗�
+ if (!result1) {
+ continue;
+ }
+
+ boolean result2 = this.executeShuttleChargeStepArrivalChargeSta(wrkMast);//灏忚溅鍒拌揪鍏呯數妗�
+ if (!result2) {
+ continue;
+ }
+
+ boolean result3 = this.executeShuttleChargeStepStartCharge(wrkMast);//灏忚溅寮�濮嬪厖鐢�
+ if (!result3) {
+ continue;
+ }
+
+ boolean result4 = this.executeShuttleChargeStepStopCharge(wrkMast);//灏忚溅鍋滄鍏呯數
+ if (!result4) {
+ continue;
+ }
+
+ boolean result5 = this.executeShuttleChargeStepLeaveCharge(wrkMast);//灏忚溅绂诲紑鍏呯數妗�
+ if (!result5) {
+ continue;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 灏忚溅鍓嶅線鍏呯數妗�
+ */
+ private synchronized boolean executeShuttleChargeStepGoToChargeSta(WrkMast wrkMast) {
+ if (wrkMast.getWrkSts() == WrkStsType.NEW_CHARGE.sts) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return false;
+ }
+
+ if (shuttleProtocol.getCurrentLocNo().equals(wrkMast.getLocNo())) {
+ //灏忚溅鍦ㄥ厖鐢垫々浣嶇疆
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_RUN_COMPLETE.sts);
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ return false;
+ }
+
+ //璋冨害灏忚溅鍘诲厖鐢垫々
+ boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getLocNo(), wrkMast.getShuttleNo());
+ if (!dispatched) {
+ return false;
+ }
+
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_RUN.sts);//灏忚溅鍓嶅線鍏呯數妗�
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 灏忚溅鍒拌揪鍏呯數妗�
+ */
+ private synchronized boolean executeShuttleChargeStepArrivalChargeSta(WrkMast wrkMast) {
+ if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_RUN.sts) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return false;
+ }
+
+ //鍒ゆ柇鏄惁瀛樺湪鏈畬鎴愮殑绉诲姩浠诲姟
+ WrkMast moveWrk = wrkMastService.selectShuttleHasMoveWorking(wrkMast.getShuttleNo());
+ if(moveWrk != null) {
+ return false;
+ }
+
+ if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getLocNo())) {
+ return false;
+ }
+
+ //灏忚溅鍦ㄥ厖鐢垫々浣嶇疆
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_RUN_COMPLETE.sts);//灏忚溅鍒拌揪鍏呯數妗�
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+
+ return false;
+ }
+ return true;
+ }
+
+ //灏忚溅寮�濮嬪厖鐢�
+ private synchronized boolean executeShuttleChargeStepStartCharge(WrkMast wrkMast) {
+ if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_RUN_COMPLETE.sts) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return false;
+ }
+
+ //灏忚溅宸茬粡鍦ㄥ厖鐢垫々浣嶇疆锛屼笅鍙戝厖鐢靛懡浠�
+ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+ assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
+ assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
+ assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
+ assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
+
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, true);
+ assignCommand.setCommands(commands);//杩愯鍛戒护
+
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_WORKING.sts);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ return false;
+ }
+
+ //涓嬪彂浠诲姟
+ shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
+ return false;
+ }
+ return true;
+ }
+
+ //灏忚溅鍋滄鍏呯數
+ private synchronized boolean executeShuttleChargeStepStopCharge(WrkMast wrkMast) {
+ if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_WORKING.sts) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return false;
+ }
+
+ if (!shuttleThread.isChargingCompleted()) {
+ return false;
+ }
+
+ //灏忚溅宸茬粡鍦ㄥ厖鐢垫々浣嶇疆锛屼笅鍙戝仠姝㈠厖鐢靛懡浠�
+ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+ assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
+ assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
+ assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
+ assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
+
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, false);
+ assignCommand.setCommands(commands);//杩愯鍛戒护
+
+ //涓嬪彂浠诲姟
+ shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
+ return false;
+ }
+ return true;
+ }
+
+ //灏忚溅绂诲紑鍏呯數妗�
+ private synchronized boolean executeShuttleChargeStepLeaveCharge(WrkMast wrkMast) {
+ if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts) {
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return false;
+ }
+
+ ShuttleChargeType chargeType = ShuttleChargeType.get(Integer.parseInt(wrkMast.getMk()));
+ if(chargeType == null) {
+ return false;
+ }
+
+ //璋冨害灏忚溅鍘诲緟鏈轰綅
+ boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), chargeType.waitLocNo, wrkMast.getShuttleNo());
+ if (!dispatched) {
+ return false;
+ }
+
+ wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
+ wrkMast.setModiTime(new Date());
+ if (wrkMastService.updateById(wrkMast)) {
+ return false;
+ }
+ return false;
+ }
+ return true;
+ }
/**
* 鎵ц灏忚溅绉诲簱浠诲姟
@@ -2131,7 +2105,7 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
- News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
@@ -2155,7 +2129,7 @@
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftSta.getLiftNo());
if (liftWrkMast != null) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getLiftNo());
return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
@@ -2168,33 +2142,34 @@
//鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
if (commands == null) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;//璺緞瑙i攣澶辫触
}
assignCommand.setCommands(commands);
- //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
- List<NavigateNode> targetNodes = ForkLiftUtils.getLiftStaNodes(wrkMast.getStaNo());
- if (targetNodes == null) {
- return false;//鏈幏鍙栧埌鑺傜偣
- }
- boolean checkPathIsAvailable = navigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo(), Utils.getLev(wrkMast.getLocNo()));
- if (!checkPathIsAvailable) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岀洰鏍囩珯鐐硅矾寰勮鍗犵敤锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
- return false;//妫�娴嬬洰鏍囩珯鐐硅矾寰勬槸鍚︽湭琚崰鐢�
- }
- //灏濊瘯閿佸畾鐩爣绔欒矾寰�
- boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo(), targetNodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
- if (!result2) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勯攣瀹氬け璐ワ紝绂佹娲惧彂", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
- return false;//璺緞閿佸畾澶辫触
- }
- //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
+// //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
+// List<NavigateNode> targetNodes = ForkLiftUtils.getLiftStaNodes(wrkMast.getStaNo());
+// if (targetNodes == null) {
+// return false;//鏈幏鍙栧埌鑺傜偣
+// }
+// boolean checkPathIsAvailable = navigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo(), Utils.getLev(wrkMast.getLocNo()));
+// if (!checkPathIsAvailable) {
+// News.info("{}浠诲姟锛寋}灏忚溅锛岀洰鏍囩珯鐐硅矾寰勮鍗犵敤锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+// return false;//妫�娴嬬洰鏍囩珯鐐硅矾寰勬槸鍚︽湭琚崰鐢�
+// }
+// //灏濊瘯閿佸畾鐩爣绔欒矾寰�
+// boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo(), targetNodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
+// if (!result2) {
+// News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勯攣瀹氬け璐ワ紝绂佹娲惧彂", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+// return false;//璺緞閿佸畾澶辫触
+// }
+// //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
wrkMast.setWrkSts(WrkStsType.MOVE_SITE.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 302.灏忚溅绉诲姩鑷崇珯鐐�
wrkMast.setModiTime(now);
wrkMast.setLiftNo(liftSta.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
// shuttleProtocol.setToken(wrkMast.getWrkNo());//鐙崰璇ュ皬杞︿护鐗�
if (wrkMastService.updateById(wrkMast)) {
//涓嬪彂浠诲姟
@@ -2226,14 +2201,14 @@
return false;
}
if (!forkLiftThread.isIdle()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
return false;
}
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
if (liftWrkMast != null) {
if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
}
@@ -2243,7 +2218,7 @@
//鑾峰彇鐩爣绔�
ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
if (sourceLiftSta == null || liftSta == null) {
- News.info("{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
return false;//缂哄皯绔欑偣淇℃伅
}
@@ -2261,6 +2236,7 @@
assignCommand.setTaskMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_RUN.sts);//鎻愬崌鏈烘惉杩愪腑 303.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 306.鎻愬崌鏈烘惉杩愪腑
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
//涓嬪彂浠诲姟
@@ -2294,7 +2270,7 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
- News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
@@ -2304,17 +2280,6 @@
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
wrkMast.setModiTime(now);
wrkMastService.updateById(wrkMast);
-
- if (wrkMast.getWrkSts() == WrkStsType.COMPLETE_MOVE.sts) {
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastLogMapper.save(wrkMast.getWrkNo()) <= 0) {
- log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔涓绘。
- if (!wrkMastService.deleteById(wrkMast)) {
- log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
- }
- }
return false;
}
@@ -2353,6 +2318,7 @@
}
if (commands == null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;//璺緞璁$畻澶辫触
}
@@ -2374,6 +2340,7 @@
wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 309.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 310.灏忚溅绉诲姩涓�
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
--
Gitblit v1.9.1