From 9998b685bb080dc212d2861bfba819da2e79be8e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 23 九月 2022 13:32:32 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 73 insertions(+), 43 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 93dcf7a..5086a4b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -869,6 +869,11 @@ if (steNo != null) { // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣 if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { + // 鏍囪绉诲簱褰撳墠娴佺▼ + wrkMast.setMk("I"); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("鏍囪绉诲簱褰撳墠娴佺▼ I 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo()); } // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 6.灏忚溅寰呭叆 ===>> 7.鍚婅溅鍏ュ簱涓� @@ -1000,7 +1005,7 @@ if (wrkMastMapper.updateById(wrkMast) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 15.绛夊緟鍚婅溅 => 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } - wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()); +// wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()); } } else { @@ -1543,6 +1548,37 @@ } else { log.error("淇敼宸ヤ綔妗g姸鎬� 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } + } else if (wrkMast.getWrkSts() == 4) { + // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆 + wrkMast.setWrkSts(6L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkMast.getSteNo()); + if (!steThread.confirmPos()) { + log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); + } + // 绌挎杞﹀幓寰呮満浣� + BasSte basSte = basSteService.selectById(wrkMast.getSteNo()); + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙� + steCommand.setTaskNo(9999); // 宸ヤ綔鍙� + steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙� +// steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); +// steCommand.setBay(steProtocol.getBay()); +// steCommand.setLev(steProtocol.getLev()); + if (!MessageQueue.offer(SlaveType.Ste, wrkMast.getSteNo(), new Task(2, steCommand))) { + log.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand)); + } + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚 } else if (wrkMast.getWrkSts() == 7){ // 鍒ゆ柇鏄惁闇�瑕佸皬杞﹀叆搴� if (locMastService.isOutMost(wrkMast.getLocNo())) { @@ -1655,46 +1691,12 @@ steThread.setResetFlag(true); } } else if (wrkCharge.getWrkSts() == 25) { - // 25.灏忚溅琛岄┒ ===>> 26.绛夊緟鍏呯數 + // 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 wrkCharge.setWrkSts(26L); if (!wrkChargeService.updateById(wrkCharge)) { - log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅琛岄┒ ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); + log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); } else { steThread.setResetFlag(true); - } - } else if (wrkCharge.getWrkSts() == 26) { - if (steProtocol.getChargeStatus() == 0) { continue; } - // 绌挎杞﹀厖鐢靛懡浠や笅鍙戝尯 -------------------------------------------------------------------------- - SteCommand steCommand = new SteCommand(); - steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙� - steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙� - steCommand.setTaskMode(SteTaskModeType.CHARGE); - if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) { - log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 ===> 27.杈撻�佺嚎涓婄數 - wrkCharge.setWrkSts(27L); - wrkCharge.setModiTime(now); - if (!wrkChargeService.updateById(wrkCharge)) { - log.error("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 27.杈撻�佺嚎涓婄數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); - } - } - } else if (wrkCharge.getWrkSts() == 27) { - // 缁欒緭閫佺嚎涓嬪彂鍏呯數浠诲姟 - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo()); - if (null != steChargeType) { - if (devpThread.charge(steChargeType.ssbm - 1, true)) { - // 淇敼宸ヤ綔妗g姸鎬� 27.杈撻�佺嚎涓婄數 ===> 28.瀹屾垚鍏呯數 - wrkCharge.setWrkSts(28L); - if (!wrkChargeService.updateById(wrkCharge)) { - log.error("淇敼鍏呯數浠诲姟鐘舵�� 27.杈撻�佺嚎涓婄數 ===> 28.瀹屾垚鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); - } else { - steThread.setResetFlag(true); - } - } - } else { - log.error("鑾峰彇鍏呯數妗╁彿澶辫触锛岃В鏋愬簱浣嶏細{}", wrkCharge.getLocNo()); } } } @@ -2084,15 +2086,19 @@ /** * 灏忚溅鐢甸噺妫�娴� ===>> 鍙戣捣鍏呯數 */ - public void loopSteCharge() { + public synchronized void loopSteCharge() { for (SteSlave ste : slaveProperties.getSte()) { SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); SteProtocol steProtocol = steThread.getSteProtocol(); BasSte basSte = basSteService.selectById(ste.getId()); if (Cools.isEmpty(steProtocol, basSte)) { continue; } try { - // 绌洪棽 鏃犱綔涓氭爣璁� 涓嶅湪鍏呯數 - if (!steProtocol.statusType.equals(SteStatusType.IDLE) || basSte.getPakMk().equals("Y") || steProtocol.getChargeStatus() == 1) { + // 鍦ㄧ嚎 绌洪棽 鏃犱綔涓氭爣璁� 涓嶅湪鍏呯數 + if (steProtocol.getMode() == 0 + || !steProtocol.statusType.equals(SteStatusType.IDLE) + || basSte.getPakMk().equals("Y") +// || steProtocol.getChargeStatus() == 1 + ) { continue; } if (!steProtocol.isEnable()) { @@ -2103,7 +2109,7 @@ } WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue()); - if (wrkCharge == null) { + if (wrkCharge == null && steProtocol.getChargeStatus() == 0) { String idleLoc = basSte.getIdleLoc(); wrkCharge = new WrkCharge(); wrkCharge.setSteNo(ste.getId()); @@ -2130,6 +2136,11 @@ } } else { + // filter + if (wrkCharge == null || (wrkCharge.getWrkSts() < 26 && steProtocol.getChargeStatus() == 1)) { + continue; + } + // 22.灏忚溅寰呮惉 if (wrkCharge.getWrkSts() == 22) { // 鎼皬杞﹁嚦鍏呯數搴撲綅 @@ -2165,6 +2176,7 @@ } else if (wrkCharge.getWrkSts() == 24L) { // 灏忚溅琛岄┒鑷冲厖鐢典綅 if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) { + if (steProtocol.getChargeStatus() == 1) { continue; } // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- SteCommand steCommand = new SteCommand(); steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙� @@ -2173,16 +2185,34 @@ if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) { log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand)); } else { - // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅琛岄┒ + // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢� wrkCharge.setWrkSts(25L); Date now = new Date(); wrkCharge.setCrnEndTime(now); wrkCharge.setModiTime(now); if (!wrkChargeService.updateById(wrkCharge)) { - log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅琛岄┒ 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); + log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); } } } + } else if (wrkCharge.getWrkSts() == 26) { + if (steProtocol.getChargeStatus() == 0) { continue; } + // 缁欒緭閫佺嚎涓嬪彂鍏呯數浠诲姟 + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); + SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo()); + if (null != steChargeType) { + if (devpThread.charge(steChargeType.ssbm - 1, true)) { + // 淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 + wrkCharge.setWrkSts(28L); + if (!wrkChargeService.updateById(wrkCharge)) { + log.error("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); + } else { + steThread.setResetFlag(true); + } + } + } else { + log.error("鑾峰彇鍏呯數妗╁彿澶辫触锛岃В鏋愬簱浣嶏細{}", wrkCharge.getLocNo()); + } } } } catch (Exception e) { -- Gitblit v1.9.1