From 00d2d5a6fbe30f011b34199606cfc7fa0465039e Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 12 一月 2025 16:17:42 +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