From e3b8bc50db4cf9d5fcac58b56d1cb7e25154c3a6 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 09 八月 2024 10:34:26 +0800 Subject: [PATCH] #改造 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 250 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 235 insertions(+), 15 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 62cd994..c2293c8 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -241,6 +241,22 @@ String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); } + } else if (code == 1000){ + if (inSta.getStaNo().equals(103)){ + staProtocol.setWorkNo((short)9996); + staProtocol.setStaNo((short)203); + }else { + staProtocol.setWorkNo((short)9996); + staProtocol.setStaNo((short)103); + } + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + // led 寮傚父鏄剧ず + if (ledThread != null) { + String errorMsg = barcode + "闇�瑕佹崲鍏ュ簱绔欍�傜洰鏍囩珯锛�"+staProtocol.getStaNo(); + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } } } catch (Exception e) { e.printStackTrace(); @@ -387,9 +403,17 @@ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(staNo); devpThread.setPakMk(staProtocol.getSiteId(), false); + if (staProtocol.getStaNo().equals(300)){ + BasDevp basDevp = basDevpMapper.selectByDevNo(300); + basDevp.setWrkNo1(wrkMast.getWrkNo()); + basDevpService.selectById(basDevp); + News.info("300绔欏幓鍏ュ簱绔欎换鍔′笅鍙戯紝鏇存柊绔欑偣琛紝[浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo); + } boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); + } else { + News.info("300绔欏幓鍏ュ簱绔欎换鍔″凡涓嬪彂锛孾浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo); } } } @@ -566,6 +590,11 @@ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + if (staProtocol.getStaNo().equals(300)){ + BasDevp basDevp = basDevpMapper.selectByDevNo(300); + basDevp.setWrkNo1(wrkMast.getWrkNo()); + basDevpService.selectById(basDevp); + } boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); @@ -815,6 +844,29 @@ // 鏌ヨ宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep16(staProtocol.getSiteId()); if (wrkMast == null) { + // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { + // 绉诲姩涓� + continue; + } + // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� + if (crnProtocol.modeType == CrnModeType.AUTO + && crnProtocol.statusType == CrnStatusType.WAITING + && crnProtocol.forkPosType == CrnForkPosType.HOME + && crnProtocol.getBay().equals(crnStn.getBay().shortValue()) && crnProtocol.getLevel().equals(crnStn.getLev().shortValue())) { + News.info("鍫嗗灈鏈烘帴椹充换鍔″畬鎴愶紝宸ヤ綔鍙凤細"+crnProtocol.getTaskNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+crnSlave.getId()+"锛涙帴椹虫斁璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹宠璧扮洰鏍囩珯锛�"+Utils.getStaNoConvertCentreOther2(crnStn.getStaNo())); + // 涓嬪彂绔欑偣淇℃伅 + staProtocol.setWorkNo(crnProtocol.getTaskNo()); + staProtocol.setStaNo(Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()).shortValue()); + if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { + continue; + } + // 澶嶄綅鍫嗗灈鏈� + crnThread.setResetFlag(true); + continue; + } continue; } // 鍒ゆ柇宸ヤ綔妗f潯浠� @@ -837,7 +889,7 @@ // 涓嬪彂绔欑偣淇℃伅 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + staProtocol.setStaNo(wrkMast.getStaNoConvert(crnProtocol.getCrnNo()).shortValue()); if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -940,15 +992,48 @@ // 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。 WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo()); - if(null == wrkMast) { + if(null == wrkMast || (wrkMast.getCrnNo()==2 && wrkMast.getWrkSts()==2 && crnProtocol.getCrnNo()!=2)) { // News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo()); + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + continue; + } + // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� + if (crnProtocol.modeType == CrnModeType.AUTO + && crnProtocol.statusType == CrnStatusType.IDLE + && crnProtocol.forkPosType == CrnForkPosType.HOME) { + News.info("鍫嗗灈鏈烘帴椹充换鍔℃墽琛岋紝宸ヤ綔鍙凤細"+staProtocol.getWorkNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+slave.getId()+"锛涙帴椹冲彇璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹虫斁璐т綅锛�"+staProtocol.getSiteId()); + // 鍫嗗灈鏈烘帴椹充换鍔″懡浠や笅鍙戝尯 -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setCommand((short) 0); + crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 浠诲姟妯″紡: 绔欎綅杞Щ + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId())); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId())); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId())); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { + News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSONString(crnCommand)); + } + return true; + } continue; } - // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙 + // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙 锛� Q銆丳銆丷銆丼锛� if (wrkMastMapper.selectShallowLoc(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)),Integer.parseInt(wrkMast.getLocNo().substring(2, 5)),Integer.parseInt(wrkMast.getLocNo().substring(5, 7)))!=null){ - continue; + //妫�鏌ュ叆搴撳簱浣嶆槸鍚︽槸鍦ㄥ爢鍨涙満杈瑰簱浣� + ArrayList<Integer> outLoc = new ArrayList<>(); + outLoc.add(3);outLoc.add(4);outLoc.add(11);outLoc.add(12);outLoc.add(18);outLoc.add(19); + if (!outLoc.contains(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)))) { + continue; + } } + //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔� WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); @@ -1154,6 +1239,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� @@ -1222,10 +1308,21 @@ public synchronized boolean locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){ Collections.shuffle(slave.getCrnOutStn()); for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { - // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗� + // 鑾峰彇宸ヤ綔鐘舵�佷负11,12,13,14,15, 16锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep111215(slave.getId(), crnStn.getStaNo()); if (wrkMast == null) { continue; + } + + /* + * 100銆�200瀛樺湪杩涜涓殑鐩樼偣浠诲姟锛屽垯涓嶆墽琛岀洏鐐逛换鍔� + * */ + if (wrkMast.getIoType().equals(107)){ + Integer countPan = wrkMastMapper.selectWrkStsAndIoType107Count(wrkMast.getSourceStaNo(),wrkMast.getWrkNo()); + if (countPan > 0){ + News.error("MainServiceImpl locToCrnStn 1271琛�"+"鐩樼偣鍑哄簱璺宠繃锛屽瓨鍦ㄨ繘琛屼腑鍙兘鍫靛浠诲姟鏁皗}涓�",countPan); + continue; + } } // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 @@ -1251,7 +1348,7 @@ Integer sour = wrkMast.getSourceStaNo(); List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour); if (wrkMasts.size() > 0){ - News.error("MainServiceImpl 1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�"); + News.error("MainServiceImpl 1300琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�"); return false; } @@ -1260,7 +1357,7 @@ .eq("sta_no",300) .last(" and wrk_sts>11 and io_type in (103,107) ")); if(!Cools.isEmpty(one)){ - News.error("MainServiceImpl 1099琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�"); + News.error("MainServiceImpl 1309琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�"); continue; } } @@ -1334,13 +1431,11 @@ }else { waitWrkMast.setIoPri(9999d); } - if(wrkMast.getIoPri()>=9000.0){ - wrkMast.setIoPri(9999d); - }else if (wrkMast.getIoPri()>20.0){ - wrkMast.setIoPri(wrkMast.getIoPri()-10.0); - }else { - wrkMast.setIoPri(13.0d); - } +// if (wrkMast.getIoPri()>23.0){ +// wrkMast.setIoPri(wrkMast.getIoPri()-10.0); +// }else { + wrkMast.setIoPri(15.0d); +// } if (wrkMastMapper.updateById(wrkMast)==0){ News.error("璋冩暣浼樺厛绾уけ璐�"); } @@ -1481,6 +1576,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { //灏忚溅鍙兘缁戝畾涓�绗斾綔涓氫腑浠诲姟 @@ -2502,6 +2598,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) 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(); } @@ -2518,6 +2615,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) { return steProtocol.getSteNo().intValue(); @@ -2936,6 +3034,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } +// if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- SteCommand steCommand = new SteCommand(); @@ -3028,6 +3127,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } +// if (steProtocol.loca==0) continue; // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 if (!steThread.confirmPos()) { News.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); @@ -3100,6 +3200,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } +// if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- SteCommand steCommand = new SteCommand(); @@ -3296,6 +3397,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; if (steProtocol.isIdle()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- SteCommand steCommand = new SteCommand(); @@ -3325,6 +3427,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 if (!steThread.confirmPos()) { News.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); @@ -3366,6 +3469,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.loca==0) continue; if (steProtocol.getWaiting() && steProtocol.getTaskNo() == 0){ News.info("ste[id={}] 鏀跺埌绛夊緟WCS纭淇″彿锛屼絾鏄换鍔″彿(鍦板潃V824)涓�0", steProtocol.getSteNo()); } @@ -4362,6 +4466,75 @@ break; } LocMast loc = null; + + if(shallowLoc.getLocType2() == 3){ //浣庨娣风洿鎺ュ嚭搴� + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.鍏ㄦ澘鍑哄簱 + wrkMast.setIoPri((double) 9999); + wrkMast.setCrnNo(crn.getId()); + wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣� + if (shallowLoc.getCrnNo()==1){ + wrkMast.setStaNo(100); + wrkMast.setSourceStaNo(108); + }else if (shallowLoc.getCrnNo()==2){ + wrkMast.setStaNo(100); + wrkMast.setSourceStaNo(104); + }else { + wrkMast.setStaNo(200); + wrkMast.setSourceStaNo(208); + } + + +// wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 + wrkMast.setFullPlt("Y"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘 + wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + if (shallowLoc.getLocSts().equals("F")) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(new Date()); + wrkDetl.setAnfme(locDetl.getAnfme()); + wrkDetl.setAppeTime(new Date()); + wrkDetl.setModiTime(new Date()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + } + // 淇敼婧愬簱浣嶇姸鎬� + if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { + shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + shallowLoc.setModiTime(now); + if (!locMastService.updateById(shallowLoc)) { + throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); + } + + return; + } + List<LocMast> locs = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no",crn.getId()) .eq("loc_type1",shallowLoc.getLocType1()) .eq("loc_type2",shallowLoc.getLocType2()) @@ -4397,7 +4570,7 @@ if (null == loc) { News.error("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); -// return; + return; // throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); } @@ -4528,4 +4701,51 @@ } } + public synchronized void automaticallyTurnOffCharging() { + // 鑾峰彇褰撳墠鏃堕棿鎴� + long timestamp = System.currentTimeMillis(); + Date date = new Date(timestamp); + TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai"); + java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone); + calendar.setTime(date); + int hour = calendar.get(java.util.Calendar.HOUR_OF_DAY); + if (hour>8 && hour<18){ + 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.getMode() == 0 + || !steProtocol.statusType.equals(SteStatusType.IDLE) + || basSte.getPakMk().equals("Y") + || steProtocol.getChargeStatus() == 0 + ) { + continue; + } + if (!steProtocol.isEnable()) { + continue; + } + if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) { + WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue()); + if (wrkCharge == null) { + if (steProtocol.getChargeStatus() == 1){ + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(ste.getId()); // 绌挎杞︾紪鍙� + steCommand.setTaskNo(9999); // 宸ヤ綔鍙� + steCommand.setTaskMode(SteTaskModeType.CLOSE_CHARGE); + if (!MessageQueue.offer(SlaveType.Ste, ste.getId(), new Task(2, steCommand))) { + News.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", ste.getId(), JSON.toJSON(steCommand)); + } + } + } + } + }catch (Exception e){ + News.error("鑷姩鍏抽棴鍏呯數鍑洪敊锛岃仈绯荤鐞嗗憳锛�"+hour+"鐐�;"+ste.getId()+"鍙峰皬杞�;"); + } + } + } + } + } -- Gitblit v1.9.1