From 1da5c464f48dca0be85647b1d4f284d92c9b3eba Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 10 十月 2022 10:52:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 158 insertions(+), 6 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 4f320b2..1a9d2c7 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -74,11 +74,15 @@ @Autowired private BasErrLogService basErrLogService; @Autowired + private BasSteErrLogService basSteErrLogService; + @Autowired private BasCrnErrorMapper basCrnErrorMapper; @Autowired private BasSteService basSteService; @Autowired private WrkChargeService wrkChargeService; + @Autowired + private BasSteErrService basSteErrService; @Autowired private CommonService commonService; @@ -314,9 +318,9 @@ try { // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。 - if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) { - throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触"); - } +// if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) { +// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触"); +// } // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) { throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�"); @@ -527,6 +531,12 @@ continue; } + // 杩囨护 + if (null != wrkMastMapper.selectPakout(slave.getId(), null)) { + log.error("{}鍏ュ簱浠诲姟鏃犳硶浣滀笟锛屽洜瀛樺湪鍑哄簱涓换鍔�!", wrkMast.getWrkNo()); + continue; + } + // 缃《浠诲姟 wrkMast.setIoPri((double) 9999); wrkMastMapper.updateById(wrkMast); @@ -534,11 +544,14 @@ // 鐩爣搴撲綅 ===>> 鏈�澶栧眰搴撲綅 if (locMastService.isOutMost(wrkMast.getLocNo())) { // 鍒ゆ柇灏忚溅鏄惁鍦ㄦ渶澶栧眰搴撲綅锛屽鏋滄槸鍒欐惉璧帮紝濡傛灉涓嶆槸锛屽垯鐩存帴鍫嗗灈鏈哄叆搴� - Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo()); + Integer steNo = this.hasCar(wrkMast.getLocNo()); // 鏈夊皬杞� if (steNo != null) { // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣 if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) { +// if (null != wrkMastMapper.selectPakin(slave.getId(), steNo)) { +// continue; +// } this.letCarBeReady(wrkMast, steNo, wrkMast.getLocNo()); } // 灏忚溅鎼蛋 @@ -699,6 +712,12 @@ // 鍫嗗灈鏈烘帶鍒惰繃婊� if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } + + // 杩囨护 + if (null != wrkMastMapper.selectPakin(slave.getId(), null)) { + log.error("{}鍑哄簱浠诲姟鏃犳硶浣滀笟锛屽洜瀛樺湪鍏ュ簱涓换鍔�!", wrkMast.getWrkNo()); continue; } @@ -881,6 +900,8 @@ if (locMastService.isOutMost(wrkMast.getSourceLocNo())) { // 鐩爣搴撲綅 ===>> 鏈�澶栧眰搴撲綅 if (locMastService.isOutMost(wrkMast.getLocNo())) { + // todo:luxiaotao 鍒ゆ柇鐩爣搴撲綅鏄惁瀛樺湪灏忚溅锛屽鏋滃瓨鍦紝鍒欐惉璧板皬杞� + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� @@ -1120,6 +1141,22 @@ } } } + } + + /** + * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞� + */ + public Integer hasCar(String locNo) { + for (SteSlave ste : slaveProperties.getSte()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) { + return steProtocol.getSteNo().intValue(); + } + } + return null; } /** @@ -1838,7 +1875,7 @@ continue; } BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + String errName = crnError==null? "鏈煡寮傚父":crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� @@ -1885,7 +1922,7 @@ // 璁板綍鏂板紓甯� if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + String errName = crnError==null? "鏈煡寮傚父":crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 null, // 宸ヤ綔鍙� @@ -1931,6 +1968,121 @@ } } + /** + * 绌挎杞﹀紓甯镐俊鎭褰� + */ + @Async + public void recSteErr(){ + Date now = new Date(); + for (SteSlave ste : slaveProperties.getSte()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { + continue; + } + // 鏈変换鍔� + if (steProtocol.getTaskNo() != 0) { + BasSteErrLog latest = basSteErrLogService.findLatestByTaskNo(ste.getId(), steProtocol.getTaskNo().intValue()); + // 鏈夊紓甯� + if (latest == null) { + if (steProtocol.getAlarm() != null && steProtocol.isAlarm()) { + WrkMast wrkMast = wrkMastMapper.selectById(steProtocol.getTaskNo()); + if (wrkMast == null) { + continue; + } + BasSteErr steErr = basSteErrService.selectById(steProtocol.getAlarm()); + String errName = steErr==null? "鏈煡寮傚父":steErr.getErrName(); + BasSteErrLog basSteErrLog = new BasSteErrLog( + null, // 缂栧彿 + wrkMast.getWrkNo(), // 宸ヤ綔鍙� + now, // 鍙戠敓鏃堕棿 + null, // 缁撴潫鏃堕棿 + wrkMast.getWrkSts(), // 宸ヤ綔鐘舵�� + wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨� + ste.getId(), // 鍫嗗灈鏈� + null, // plc + wrkMast.getLocNo(), // 鐩爣搴撲綅 + wrkMast.getStaNo(), // 鐩爣绔� + wrkMast.getSourceStaNo(), // 婧愮珯 + wrkMast.getSourceLocNo(), // 婧愬簱浣� + wrkMast.getBarcode(), // 鏉$爜 + (int) steProtocol.getAlarm(), // 寮傚父鐮� + errName, // 寮傚父 + 1, // 寮傚父鎯呭喌 + now, // 娣诲姞鏃堕棿 + null, // 娣诲姞浜哄憳 + now, // 淇敼鏃堕棿 + null, // 淇敼浜哄憳 + "浠诲姟涓紓甯�" // 澶囨敞 + ); + if (!basSteErrLogService.insert(basSteErrLog)) { + log.error("绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", ste.getId(), errName); + } + } + } else { + // 寮傚父淇 + if (steProtocol.getAlarm() == null || !steProtocol.isAlarm()) { + latest.setEndTime(now); + latest.setUpdateTime(now); + latest.setStatus(2); + if (!basSteErrLogService.updateById(latest)) { + log.error("绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", ste.getId(), latest.getId()); + } + } + } + // 鏃犱换鍔� + } else { + BasSteErrLog latest = basSteErrLogService.findLatest(ste.getId()); + // 鏈夊紓甯� + if (steProtocol.getAlarm() != null && steProtocol.isAlarm()) { + // 璁板綍鏂板紓甯� + if (latest == null || (latest.getErrCode() != steProtocol.getAlarm().intValue())) { + BasSteErr steErr = basSteErrService.selectById(steProtocol.getAlarm()); + String errName = steErr==null? "鏈煡寮傚父":steErr.getErrName(); + BasSteErrLog basSteErrLog = new BasSteErrLog( + null, // 缂栧彿 + null, // 宸ヤ綔鍙� + now, // 鍙戠敓鏃堕棿 + null, // 缁撴潫鏃堕棿 + null, // 宸ヤ綔鐘舵�� + null, // 鍏ュ嚭搴撶被鍨� + ste.getId(), // 鍫嗗灈鏈� + null, // plc + null, // 鐩爣搴撲綅 + null, // 鐩爣绔� + null, // 婧愮珯 + null, // 婧愬簱浣� + null, // 鏉$爜 + (int)steProtocol.getAlarm(), // 寮傚父鐮� + errName, // 寮傚父 + 1, // 寮傚父鎯呭喌 + now, // 娣诲姞鏃堕棿 + null, // 娣诲姞浜哄憳 + now, // 淇敼鏃堕棿 + null, // 淇敼浜哄憳 + "鏃犱换鍔″紓甯�" // 澶囨敞 + ); + if (!basSteErrLogService.insert(basSteErrLog)) { + log.error("绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", ste.getId(), errName); + } + } + // 鏃犲紓甯� + } else { + // 寮傚父淇 + if (latest != null && latest.getStatus() == 1) { + latest.setEndTime(now); + latest.setUpdateTime(now); + latest.setStatus(2); + if (!basSteErrLogService.updateById(latest)) { + log.error("绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", ste.getId(), latest.getId()); + } + } + } + } + } + } + // ------------------------------------------------------------------------------- -- Gitblit v1.9.1