From 3f02e208daff9a760d3a0ea5680a0138e0a23e03 Mon Sep 17 00:00:00 2001 From: tqs <56479841@qq.com> Date: 星期六, 03 十二月 2022 14:32:26 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 137 insertions(+), 3 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 40d0589..7769479 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -9,6 +9,7 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; +import com.zy.asrs.mapper.BasRgvErrMapper; import com.zy.asrs.mapper.WaitPakinMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; @@ -68,8 +69,6 @@ @Autowired private WrkDetlService wrkDetlService; @Autowired - private WaitPakinMapper waitPakinMapper; - @Autowired private LocMastService locMastService; @Autowired private StaDescService staDescService; @@ -85,6 +84,10 @@ private BasErrLogService basErrLogService; @Autowired private BasCrnErrorMapper basCrnErrorMapper; + @Autowired + private BasRgvErrMapper basRgvErrMapper; + @Autowired + private BasRgvErrLogService basRgvErrLogService; @Value("${wms.url}") private String wmsUrl; @@ -1736,6 +1739,138 @@ } /** + * 寮傚父淇℃伅璁板綍 + */ + public synchronized void recErr() { + try { + this.recCrnErr(); + this.recRgvErr(); + } catch (Exception e) { + log.error("recErr fail", e); + } + } + + /** + * RGV寮傚父淇℃伅璁板綍 + */ + public synchronized void recRgvErr() { + Date now = new Date(); + for (RgvSlave rgv : slaveProperties.getRgv()) { + // 鑾峰彇RGV淇℃伅 + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { + continue; + } + if (true) { + // 鏈変换鍔� + if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getTaskNo2() != 0) { + Integer taskNo = rgvProtocol.getTaskNo1() > 0 ? rgvProtocol.getTaskNo1().intValue() : rgvProtocol.getTaskNo2().intValue(); + BasRgvErrLog latest = basRgvErrLogService.findLatestByTaskNo(rgv.getId(), taskNo); + // 鏈夊紓甯� + if (latest == null) { + if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) { + WrkMast wrkMast = wrkMastMapper.selectById(taskNo); + if (wrkMast == null) { + continue; + } + BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm()); + String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName(); + BasRgvErrLog basRgvErrLog = new BasRgvErrLog( + null, // 缂栧彿 + wrkMast.getWrkNo(), // 宸ヤ綔鍙� + now, // 鍙戠敓鏃堕棿 + null, // 缁撴潫鏃堕棿 + wrkMast.getWrkSts(), // 宸ヤ綔鐘舵�� + wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨� + rgv.getId(), // 鍫嗗灈鏈� + null, // plc + wrkMast.getLocNo(), // 鐩爣搴撲綅 + wrkMast.getStaNo(), // 鐩爣绔� + wrkMast.getSourceStaNo(), // 婧愮珯 + wrkMast.getSourceLocNo(), // 婧愬簱浣� + wrkMast.getBarcode(), // 鏉$爜 + (int) rgvProtocol.getAlarm(), // 寮傚父鐮� + errName, // 寮傚父 + 1, // 寮傚父鎯呭喌 + now, // 娣诲姞鏃堕棿 + null, // 娣诲姞浜哄憳 + now, // 淇敼鏃堕棿 + null, // 淇敼浜哄憳 + "浠诲姟涓紓甯�" // 澶囨敞 + ); + + if (!basRgvErrLogService.insert(basRgvErrLog)) { + log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName); + } + } + } else { + // 寮傚父淇 + if (rgvProtocol.getAlarm() == null || rgvProtocol.getAlarm() == 0) { + latest.setEndTime(now); + latest.setUpdateTime(now); + latest.setStatus(2); + if (!basRgvErrLogService.updateById(latest)) { + log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId()); + } + } + } + // 鏃犱换鍔� + } else { + BasRgvErrLog latest = basRgvErrLogService.findLatest(rgv.getId()); + // 鏈夊紓甯� + if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) { + // 璁板綍鏂板紓甯� + if (latest == null || (latest.getErrCode() != rgvProtocol.getAlarm().intValue())) { + BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm()); + String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName(); + BasRgvErrLog basRgvErrLog = new BasRgvErrLog( + null, // 缂栧彿 + null, // 宸ヤ綔鍙� + now, // 鍙戠敓鏃堕棿 + null, // 缁撴潫鏃堕棿 + null, // 宸ヤ綔鐘舵�� + null, // 鍏ュ嚭搴撶被鍨� + rgv.getId(), // 鍫嗗灈鏈� + null, // plc + null, // 鐩爣搴撲綅 + null, // 鐩爣绔� + null, // 婧愮珯 + null, // 婧愬簱浣� + null, // 鏉$爜 + (int) rgvProtocol.getAlarm(), // 寮傚父鐮� + errName, // 寮傚父 + 1, // 寮傚父鎯呭喌 + now, // 娣诲姞鏃堕棿 + null, // 娣诲姞浜哄憳 + now, // 淇敼鏃堕棿 + null, // 淇敼浜哄憳 + "鏃犱换鍔″紓甯�" // 澶囨敞 + ); + + if (!basRgvErrLogService.insert(basRgvErrLog)) { + log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName); + } + } + // 鏃犲紓甯� + } else { + // 寮傚父淇 + if (latest != null && latest.getStatus() == 1) { + latest.setEndTime(now); + latest.setUpdateTime(now); + latest.setStatus(2); + if (!basRgvErrLogService.updateById(latest)) { + log.error("RGV寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId()); + } + } + } + } + } + + } + } + + /** * 鍫嗗灈鏈哄紓甯镐俊鎭褰� */ public synchronized void recCrnErr() { @@ -1852,7 +1987,6 @@ } } - // ------------------------------------------------------------------------------- -- Gitblit v1.9.1