From 5ad25a2233c76a5da8077a6862d5ddc3f94f5ad6 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 12 一月 2025 16:16:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 399 ++++++++++++++++++++++----------------------------------
1 files changed, 160 insertions(+), 239 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 bcd44a1..0cee555 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -55,6 +55,8 @@
@Autowired
private BasShuttleErrService basShuttleErrService;
@Autowired
+ private BasLiftErrService basLiftErrService;
+ @Autowired
private CommonService commonService;
@Autowired
private BasMapService basMapService;
@@ -865,17 +867,6 @@
}
if (wrkMastService.updateById(wrkMast)) {
- 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());
- }
- }
-
//璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
@@ -1293,221 +1284,162 @@
}
}
-// /**
-// * 寮傚父淇℃伅璁板綍
-// */
-// public void recErr() {
-// try {
-// this.recShuttleErr();
-// this.recLiftErr();
-// } catch (Exception e) {
-// News.error("recErr fail", e);
-// }
-// }
+ /**
+ * 寮傚父淇℃伅璁板綍
+ */
+ 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()) {
-// // 鑾峰彇鍥涘悜绌挎杞︿俊鎭�
-// 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());
-// }
-// }
-// }
-// }
-// }
-// }
+ /**
+ * 鍥涘悜绌挎杞﹀紓甯镐俊鎭褰�
+ */
+ 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());
+ }
+ }
+ }
+ }
+ }
+ }
// -------------------------------------------------------------------------------
@@ -2027,7 +1959,7 @@
assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
- List<ShuttleCommand> commands = shuttleOperaUtils.shuttleChargeCommand(assignCommand, shuttleThread, true);
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, true);
assignCommand.setCommands(commands);//杩愯鍛戒护
wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_WORKING.sts);
@@ -2066,7 +1998,7 @@
assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
- List<ShuttleCommand> commands = shuttleOperaUtils.shuttleChargeCommand(assignCommand, shuttleThread, false);
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, false);
assignCommand.setCommands(commands);//杩愯鍛戒护
wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
@@ -2099,7 +2031,7 @@
return false;
}
- wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
+ wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
wrkMast.setModiTime(new Date());
if (wrkMastService.updateById(wrkMast)) {
//璋冨害灏忚溅鍘诲緟鏈轰綅
@@ -2340,17 +2272,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;
}
--
Gitblit v1.9.1