From e3239cbdfb12aa1d44128470f011714c30a98c76 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 21 六月 2024 09:34:42 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 2142 ++-------------------------------------------------------- 1 files changed, 99 insertions(+), 2,043 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 4145a99..a1284f4 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -620,62 +620,6 @@ } /** - * 缁勬墭 - * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿閫氱煡妗佹灦鐮佸灈 - */ - public synchronized void generateStoreWrkFileFull2LouM() { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鐮佸灈鍙� - for (DevpSlave.Sta driveSta : devp.getDriveSta()) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, driveSta.getBarcode()); - if (barcodeThread == null) { - continue; - } - String barcode = barcodeThread.getBarcode(); - - if (!Cools.isEmpty(barcode) && !barcode.equals("") && !barcode.equals(" ")) { - if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { - continue; - } - } else { - continue; - } - - // 鑾峰彇鐮佸灈鍙d俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && staProtocol.isEmptyMk() - && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) ) - ) { - try { - BasDevp basDevp = basDevpService.selectById(driveSta.getStaNo()); - if (basDevp.getReportSign()>0){ - continue; - } - basDevp.setBarcode(barcode); - basDevp.setReportSign(1); - basDevpService.updateById(basDevp); - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - } - } - } - - /** * wms鍏ュ簱 * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2 */ @@ -1029,164 +973,6 @@ } } - /** - * 2妤�212鍛煎彨绌烘澘 - */ - public synchronized void stnToCrnStnPick3Auto(Integer sign) { - try{ - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); - StaProtocol staProtocol = devpThread.getStation().get(212); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){ - switch (sign){ - //鎵ц灏忚溅璐х墿鎼繍浠诲姟 - case 1: - case 4: - stnToCrnStnPick3(); - return; - //鎵ц灏忚溅绌烘澘鎼繍浠诲姟 - case 2://鏀�//鎷嗙洏 - case 5://鏀�//鎷嗙洏 - stnToCrnStnPick4(); - return; - default: - return; - } - } else if (staProtocol.isAutoing() && staProtocol.isLoading()){ - switch (sign){ - case 3://婊℃斁 - case 6://婊℃斁 - stnToCrnStnPick5(); - return; - default: - return; - } - } - }catch (Exception e){ - log.error("2妤�212鍛煎彨绌烘澘"+e); - } - } - /** - * 2妤�212鍛煎彨绌烘澘 - */ - public synchronized void stnToCrnStnPick3() { - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); - if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉� - return; - } - for (DevpSlave devp : slaveProperties.getDevp()) { - for (DevpSlave.Sta driveSta : devp.getDriveSta()) { - if (driveSta.getStaNo()!=215){ - continue; - } - // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0 - || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){ - boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); - - staProtocol.setWorkNo(wrkMast.getWrkNo()-1); - staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221); - boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - if (!result2) { - log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); - } - wrkMast.setWrkSts(62L); - wrkMastMapper.updateById(wrkMast); - - boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); - return; - } - } - } - } - - /** - * 2妤�212鍛煎彨绌烘澘 - */ - public synchronized void stnToCrnStnPick4() { - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); - if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩� - return; - } - for (DevpSlave devp : slaveProperties.getDevp()) { - for (DevpSlave.Sta driveSta : devp.getInSta()) { - if (driveSta.getStaNo()!=217){ - continue; - } - // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - StaProtocol staProtocol212 = devpThread.getStation().get(212); - if (staProtocol212 == null) { - continue; - } else { - staProtocol212 = staProtocol212.clone(); - } - if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){ - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0 - || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){ -// boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); - - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(212); - boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - if (!result2) { - log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); - } - wrkMast.setWrkSts(63L); - wrkMastMapper.updateById(wrkMast); - -// boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); - return; - } - } - } - } - } - - /** - * 2妤�212鍛煎彨绌烘澘 - */ - public synchronized void stnToCrnStnPick5() { - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); - if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴� - return; - } - - // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); - StaProtocol staProtocol = devpThread.getStation().get(212); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading()){ -// boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol)); - - wrkMast.setWrkSts(64L); - wrkMastMapper.updateById(wrkMast); - -// boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol)); - return; - } - } /** * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 鎷嗗灈浣嶇疆 */ @@ -1776,126 +1562,6 @@ } } - /** - * 鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤 - */ - public synchronized Integer searchRgvNo(Integer staNo) { - try{ - BasDevp basDevp = basDevpService.selectById(staNo); - if (basDevp == null) { - return null;//鐩爣绔欎笉瀛樺湪 - } - //璺緞鍊� - int path = basDevp.getLocType3().intValue(); - - ArrayList<RgvThread> list = new ArrayList<>(); - for (RgvSlave rgv : slaveProperties.getRgv()) { - // 鑾峰彇RGV淇℃伅 - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - - continue; - } - BasRgv basRgv = basRgvService.selectById(rgv.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId()); - continue; - } - - list.add(rgvThread); - } - - if (list.size() > 1) { - //瓒呰繃涓ゅ彴杞︼紝鎸夌収閰嶇疆鐨勮鍒欒繘琛屽垎閰� - for (RgvThread rgvThread : list) { - //鑾峰彇杞﹁締閰嶇疆鐨勮矾寰勮鍒� - BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(rgvThread.getSlave().getId()); - if (basRgvPath == null) { - continue; - } - //鐩爣绔欐槸鍚﹀寘鍚綋鍓嶈矾寰勪腑 - List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class); - if (rgvPath.contains(path)) { - //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞� - return rgvThread.getSlave().getId(); - } - } - }else { - //灏忎簬鎴栫瓑浜�1鍙拌溅锛屽垎閰嶅叏璺緞 - BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞 - if (basRgvPath == null) { - return null; - } - List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class); - if (rgvPath.contains(path)) { - //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞� - return list.get(0).getSlave().getId(); - } - } - - return null; - }catch (Exception e){ - log.error("鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤"+e); - return null; - } - } - - /** - * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣 - */ - public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) { -// for (CrnSlave crn : slaveProperties.getCrn()) { -// // 鑾峰彇鍫嗗灈鏈轰俊鎭� -// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); -// CrnProtocol crnProtocol = crnThread.getCrnProtocol(); -// if (crnProtocol == null) { -// continue; -// } -// BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); -// if (basCrnp == null) { -// log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); -// continue; -// } - if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { - if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) { - return; - } - - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12 - if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) { - return; - } - - //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12 - if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) { - return; - } - - //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2 - if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) { - return; - } - log.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣"); - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo((short) 63333); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐� - crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); - } - crnThread.setBackHpFlag(true); - } -// } - } /** * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� @@ -3170,148 +2836,6 @@ } } - } - - /** - * 鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗� - * @param slave - * @return - */ - public synchronized List<WrkMast> getRgvInTask(RgvSlave slave){ - List<WrkMast> wrkMastTask = new ArrayList<>(); - List<Integer> staNos = new ArrayList<>(); - for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) { - staNos.add(rgvStn.getStaNo()); - } - if(staNos.size() < 1){ - return null; - } - List<WrkMast> wrkMasts = wrkMastMapper.selectRgvInStep1(slave.getId(), staNos); - for(WrkMast wrkMast : wrkMasts){ - Integer plcId = 0; - for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) { - if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){ - plcId = rgvStn.getDevpPlcId(); - break; - } - } - - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId); - //鍒ゆ柇RGV鍏ュ簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑� - boolean flag1 = false; - StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo()); - if (staProtocol1 == null) { - continue; - } else { - staProtocol1 = staProtocol1.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo()); - if (staDetl1 == null) { - log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo()); - continue; - } - if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo() - && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) { - flag1 = true; - } - - //鍒ゆ柇RGV鍏ュ簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆 - boolean flag2 = false; - StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo()); - if (staProtocol2 == null) { - continue; - } else { - staProtocol2 = staProtocol2.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo()); - if (staDetl2 == null) { - log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo()); - continue; - } - if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo() - && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) { - flag2 = true; - } - - if(flag1 && flag2){ - wrkMastTask.add(wrkMast); - if(wrkMastTask.size() >= 2) break; - } - } - return wrkMastTask; - } - - /** - * 鏌ユ壘宸ヤ綔鐘舵�佷负14锛堝嚭搴撳畬鎴愶級,涓擱GV鍑哄簱鎺ラ┏绔欑鍚堢殑鐨勫嚭搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗� - * @param slave - * @return - */ - public synchronized List<WrkMast> getRgvOutTask(RgvSlave slave){ - List<WrkMast> wrkMastTask = new ArrayList<>(); - List<Integer> staNos = new ArrayList<>(); - for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) { - staNos.add(rgvStn.getStaNo()); - } - if(staNos.size() < 1){ - return null; - } - List<WrkMast> wrkMasts = wrkMastMapper.selectRgvOutStep1(slave.getId(), staNos); - for(WrkMast wrkMast : wrkMasts){ - Integer plcId = 0; - for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) { - if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){ - plcId = rgvStn.getDevpPlcId(); - break; - } - } - - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId); - //鍒ゆ柇RGV鍑哄簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑� - boolean flag1 = false; - StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo()); - if (staProtocol1 == null) { - continue; - } else { - staProtocol1 = staProtocol1.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo()); - if (staDetl1 == null) { - log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo()); - continue; - } - if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo() - && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) { - flag1 = true; - } - - //鍒ゆ柇RGV鍑哄簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆 - boolean flag2 = false; - StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo()); - if (staProtocol2 == null) { - continue; - } else { - staProtocol2 = staProtocol2.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo()); - if (staDetl2 == null) { - log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo()); - continue; - } - if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo() - && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) { - flag2 = true; - } - - if(flag1 && flag2){ - wrkMastTask.add(wrkMast); - if(wrkMastTask.size() >= 2) break; - } - } - return wrkMastTask; } /** @@ -4612,27 +4136,6 @@ } } -// /** -// * 鍒濆鍖朢GV鍦板浘 -// */ -// public synchronized void initRgvMap() { -// Object data = redisUtil.get("rgv_map"); -// if (data == null) { -// //閲嶆柊鑾峰彇鍏ㄨ矾寰勫湴鍥� -// BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞 -// if (basRgvPath != null) { -// ArrayList<RgvNode> rgvNodes = new ArrayList<>(); -// List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class); -// for (Integer integer : rgvPath) { -// RgvNode rgvNode = new RgvNode(integer); -// rgvNodes.add(rgvNode); -// } -// //灏嗘暟鎹簱鍦板浘鏁版嵁瀛樺叆redis -// redisUtil.set("rgv_map", JSON.toJSONString(rgvNodes)); -// } -// } -// } - /** * 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆 */ @@ -4731,1552 +4234,6 @@ log.error("鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆澶辫触", e); e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - - /** - * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵�� - */ - public synchronized void crnIoWrkMast() { - for (CrnSlave crn : slaveProperties.getCrn()) { - // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { - continue; - } - Date now = new Date(); - // 鍫嗗灈鏈烘鍦ㄨ繍琛� - if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { - // 鑾峰彇宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo()); - if (wrkMast == null) { - continue; - } - // 鍏ュ簱 - if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) { - log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo()); - // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� - wrkMast.setWrkSts(3L); - wrkMast.setCrnStrTime(now); - wrkMast.setModiTime(now); - if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); - } - log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo()); - } - // 鍑哄簱銆佺Щ搴� - if (wrkMast.getWrkSts() == 11) { - log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo()); - // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� - wrkMast.setWrkSts(12L); - wrkMast.setCrnStrTime(now); - wrkMast.setModiTime(now); - if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); - } - log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo()); - } - - - } - - } - } - - /** - * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� - */ - public synchronized void ioConvert() { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - - for (DevpSlave.Sta inSta : devp.getInSta()) { - if (inSta.getStaNo() == 2) { - continue; - } - WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo()); - switch (inSta.getStaNo()) { - case 203://1F - if (pakout != null) { - if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { - // 鍑哄簱鍒囨崲涓� - devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { - // 鍑哄簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; - } - } - } else { - // 鍏ュ簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; - } - break; - case 401://1F - if (pakout != null) { - if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { - // 鍑哄簱鍒囨崲涓� - devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { - // 鍑哄簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; - } - } - } else { - // 鍏ュ簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; - } - break; - } - } - - } - - } catch (Exception e) { - e.printStackTrace(); - } - - - } - -// /** -// * 鍏朵粬 ===>> 鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩� -// */ -// public synchronized void dischargingMachineOutputTray() { -// try { -// List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray(); -// if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){ -// return; -// } -// -// // 鑾峰彇鍏ュ簱绔欎俊鎭� -// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); -// StaProtocol staProtocol = devpThread.getStation().get(213); -// if (staProtocol == null) { -// log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规煡璇㈠け璐�"); -// return; -// } else { -// staProtocol = staProtocol.clone(); -// } -// -// if (!staProtocol.isLoading()){ -// log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规棤鐗╋紝姝e湪鑷姩璋冨嚭绌烘澘锛�"); -// int i = wrkMastMapper.selectConfigCount10468N(); -// if (i==1){ -// wrkMastMapper.updateConfig10468Y(); -// } -// return; -// }else { -// int i = wrkMastMapper.selectConfigCount10468N(); -// if (i==0){ -// return; -// } -// } -// StaProtocol staProtocol214 = devpThread.getStation().get(214); -// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 -// if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) { -// staProtocol.setWorkNo((short)9999); -// staProtocol.setStaNo((short)214); -// devpThread.setPakMk(staProtocol.getSiteId(), false); -// boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); -// if (!result) { -// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紒"); -// } -// log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂鎴愬姛锛氬伐浣滃彿9999銆佺洰鏍囩珯214锛�"); -// }else { -// log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐圭姸鎬佷笉绗﹀悎锛�"); -// } -// }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// } -// } - -// /** -// * 鍏朵粬 ===>> 鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴� -// */ -// public synchronized void scanBarcodeEmptyBoard() { -// try { -// -// }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// } -// } - - /** - * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級 - */ - public synchronized void stackingCompletionDriveTray() { - try { - int[] staNos=new int[]{215,219};//(2妤间袱涓叆搴撶爜鍨涚珯) - for (int staNo : staNos){ - BasDevp basDevp = basDevpService.selectById(staNo); - if ((basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)) || Cools.isEmpty(basDevp.getBarcode())){ - continue; - } - Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N")); - if (zpallet<=0){ - continue; - } - // 鑾峰彇鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } -// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { -// continue; -// } - - if (!staProtocol.isLoading()){ - log.info("{}绔欑偣鏃犵墿锛屾鍦ㄨ嚜鍔ㄨ皟鍑虹┖鏉匡紒",staNo); - continue; - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() - && (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()>=9900 && basDevp.getWrkNo()<=9999)) - ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { - int workNo = commonService.getWorkNo(5); - staProtocol.setWorkNo(workNo); - staProtocol.setStaNo(staNo + 2); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); - } - - } - } - }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error("鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級"+e); - } - } - /** - * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝� - */ - public synchronized void stackingCompletionDriveTray2() { - try { - int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼) - for (int staNo : staNos){ - BasDevp basDevp = basDevpService.selectById(staNo); - if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ - continue; - } - if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){ - continue; - } - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); - if (Cools.isEmpty(wrkMast)){ - continue; - } - // 鑾峰彇绔欑偣淇℃伅 - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } -// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { -// continue; -// } - - if (!staProtocol.isLoading()){ - log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo); - continue; - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) - ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { - - //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); - Thread.sleep(100); - - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(144); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); - } - wrkMast.setWrkSts(52L); - wrkMastMapper.updateById(wrkMast); - Thread.sleep(100); - - //浠诲姟瀹屾垚 - boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol)); - - } - } - }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error("鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e); - } - } - - /** - * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝� - */ - public synchronized void stackingCompletionDriveTrayOk2() { - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鎷f枡鍏ュ簱鍙� - for (DevpSlave.Sta pickSta : devp.getPickSta2()) { - - // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0 && staProtocol.isOutEnable()) {// - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); - - if (wrkMast == null) { - log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�"); - // 鏃犳嫞鏂欐暟鎹� - continue; - } - if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){ - continue; - } - if (wrkMast.getIoType()==101){ - //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); - wrkMast.setSheetNo("3"); - wrkMastMapper.updateById(wrkMast); - }else { - if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) - || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { - continue; - } - //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); - wrkMast.setSheetNo("3"); - wrkMastMapper.updateById(wrkMast); - - try{ - Thread.sleep(100); - }catch (Exception e){ - - } - - boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol)); - - } - } - } - } - } - /** - * 鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝� - */ - public synchronized void stackingCompletionDriveTray3() { - try { - int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼) - for (int staNo : staNos){ - BasDevp basDevp = basDevpService.selectById(staNo); - if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){ - continue; - } - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); - if (Cools.isEmpty(wrkMast)){ - continue; - } - // 鑾峰彇绔欑偣淇℃伅 - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } -// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { -// continue; -// } - - if (!staProtocol.isLoading()){ - log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo); - continue; - } - if (!staProtocol.getWorkNo().equals(wrkMast.getWrkNo())){ - log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast.getWrkNo().shortValue()); - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { - - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); - } - wrkMast.setWrkSts(55L); - wrkMastMapper.updateById(wrkMast); - - } - } - }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e); - } - } - - /** - * 鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝� - */ - public synchronized void stackingCompletionDriveTrayOk3() { - try { - int[] staNos=new int[]{118}; - for (int staNo : staNos){ - BasDevp basDevp = basDevpService.selectById(staNo); - if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()!=0 || basDevp.getReportSign()!=3){ - continue; - } - WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne145(145); - if (Cools.isEmpty(wrkMast)){ - continue; - } - // 鑾峰彇绔欑偣淇℃伅 - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - StaProtocol staProtocol147 = devpThread.getStation().get(147); - if (staProtocol147 == null) { - continue; - } else { - staProtocol147 = staProtocol147.clone(); - } - - if (!staProtocol.isLoading()){ - log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo); - continue; - } - - if (staProtocol147.isLoading()){ - log.info("{}绔欑偣鏈夌墿锛�",staProtocol147.getSiteId()); - continue; - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && !staProtocol.isEmptyMk() - ) { - - boolean result3 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147)); - - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); - } - - wrkMast.setSheetNo("5"); - wrkMastMapper.updateById(wrkMast); - - boolean result4 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147)); - - } - } - }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error("鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�"+e); - } - } - - /** - * 鍏朵粬 ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝� 杩愯閫斾腑鑷姩閬胯绌烘澘 - */ - public synchronized void stackingCompletionDriveTray4() { - try { - int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯) - for (int staNo : staNos){ - BasDevp basDevp = basDevpService.selectById(staNo); - BasDevp basDevp135 = basDevpService.selectById(135); - if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){ - continue; - } - if (basDevp135.getReportSign()!=0){ - continue; - } - WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131); - if (Cools.isEmpty(wrkMast131)){ - continue; - } - // 鑾峰彇绔欑偣淇℃伅 - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol135 = devpThread.getStation().get(135); - if (staProtocol135 == null) { - continue; - } else { - staProtocol135 = staProtocol135.clone(); - } - if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0 - || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){ - continue; - } - StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - - if (!staProtocol.isLoading()){ - continue; - } -// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){ -// log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue()); -// } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && basDevp.getReportSign()==0 - ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { -// if (true){ -// return; -// } - - //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); - try{ - Thread.sleep(100); - }catch (Exception e){ } - basDevp135.setReportSign(2); - basDevpService.updateById(basDevp135); - int workNo = commonService.getWorkNo(5); - staProtocol135.setWorkNo(workNo); - staProtocol135.setStaNo(144); - devpThread.setPakMk(staProtocol135.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); - } - boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135)); - - } - } - }catch (Exception e){ -// e.printStackTrace(); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e); - } - } - - /** - * 瀹屾垚灏忚溅浠诲姟 - */ - public synchronized void rgvCompleteWrkMastSta() { - try{ - for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - continue; - } - - // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔� - if (rgvProtocol.getStatusType() == RgvStatusType.WORKING - && rgvProtocol.getModeType() == RgvModeType.AUTO - && ((rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING ) || - (rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING )) - ) { - log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); - if (rgvProtocol.getTaskNo1()!=0 && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING)){ - if (rgvProtocol.getTaskNo1()==(short)32222){ - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - break; - } - WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue()); - if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){ - log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); - continue; - } - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); - if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){ - Thread.sleep(200); - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ - continue; - } - // 涓嬪彂绔欑偣淇℃伅 - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo()); - if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) { - continue; - } - log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol); -// try{ -// Thread.sleep(1000); -// DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); -// StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd()); -// log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd); -// if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo()) -// staProtocolEnd.setWorkNo(wrkMast.getWrkNo()); -// staProtocolEnd.setStaNo(wrkMast.getStaNo()); -// if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) { -// continue; -// } -// log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd); -// } -// }catch (Exception e){ -// -// } - } - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - break; - } - wrkMastSta.setWrkSts(3); - wrkMastStaMapper.updateById(wrkMastSta); - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - }else if (rgvProtocol.getTaskNo2()!=0 && (rgvProtocol.getStatusType2()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING)){ - if (rgvProtocol.getTaskNo2()==(short)32222){ - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - break; - } - WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue()); - if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){ - log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); - continue; - } - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); - if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){ - Thread.sleep(200); - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd()); - if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ - continue; - } - // 涓嬪彂绔欑偣淇℃伅 - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo()); - if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) { - continue; - } - log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol); -// try{ -// Thread.sleep(1000); -// DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); -// StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd()); -// log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd); -// if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo()) -// staProtocolEnd.setWorkNo(wrkMast.getWrkNo()); -// staProtocolEnd.setStaNo(wrkMast.getStaNo()); -// if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) { -// continue; -// } -// log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd); -// } -// }catch (Exception e){ -// -// } - } - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - break; - } - wrkMastSta.setWrkSts(3); - wrkMastStaMapper.updateById(wrkMastSta); - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - }else { - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo()); - } - } - } - }catch (Exception e){ - log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); - } - } - /** - * 鍏ュ嚭搴� ===>> 灏忚溅浣滀笟涓嬪彂 - */ - public synchronized boolean rgvIoExecute(Integer sign) { - boolean rgvIoExecuteSign = false; - try{ - for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - // 鑾峰彇灏忚溅淇℃伅 - boolean signWork = false; - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - ) { - switch (sign){ - //鎵ц灏忚溅璐х墿鎼繍浠诲姟 - case 1: - signWork = rgvRunWrkMastFullSta(rgvSlave); - break; - //鎵ц灏忚溅绌烘澘鎼繍浠诲姟 - case 2://鏀�//鎷嗙洏 - signWork = rgvRunWrkMastEmptyStaPut(rgvSlave); - break; - case 3://婊℃斁 - signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave); - break; - case 4://鍙栧彔鐩� - signWork = rgvRunWrkMastEmptyStaTake(rgvSlave); - break; - case 5:////婊″彇 - signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave); - break; - case 6:////鎻愬崌 -// signWork = qwe(); - break; - case 7:////浣嶇Щ - break; - default: - break; - } - for (int signCount = 1;!signWork && signCount<7;signCount++){ - switch (signCount){ - case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟 - signWork = rgvRunWrkMastFullSta(rgvSlave); - break; - case 2://鏀�//鎷嗙洏 - signWork = rgvRunWrkMastEmptyStaPut(rgvSlave); - break; - case 3://婊℃斁 - signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave); - break; - case 4://鍙栧彔鐩� - signWork = rgvRunWrkMastEmptyStaTake(rgvSlave); - break; - case 5:////婊″彇 - signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave); - break; - case 6:////鎻愬崌 -// signWork = rgvRunWrkMastEmptyStaPut(); - break; - case 7:////浣嶇Щ - break; - default: - break; - } - } - }else { - continue; - } - if (!rgvIoExecuteSign){ - rgvIoExecuteSign = signWork; - } - } -// if (!rgvIoExecuteSign){ -// if (sign>6){ -// -// } -// } - }catch (Exception e){ - log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e); - } - return rgvIoExecuteSign; - } - /** - * 鎵ц灏忚溅鎼繍浠诲姟 - */ - public synchronized boolean rgvRunWrkMastFullSta(RgvSlave rgvSlave) { - try{ -// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return false; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - return false; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - return false; - } - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=1 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀� - continue; - } - BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd()); - if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){ - continue; - } - boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); - if (sign){ - boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd()); - if (signMap){ - wrkMastSta.setWrkSts(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - return true; - }else { - log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - } - }else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - break; - } - } -// } - }catch (Exception e){ - log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�"); - log.error("3875琛�"+e); - } - return false; - } - /** - * 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏 - */ - public synchronized boolean rgvRunWrkMastEmptyStaPut(RgvSlave rgvSlave) {//鎷嗙洏 - try{ -// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return false; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - return false; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - && (rgvProtocol.getLoaded2()==3 || rgvProtocol.getLoaded2()==1 || rgvProtocol.getLoaded2()==4)////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗�() 锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - return false; - } - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿 - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔� - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀� - continue; - } - boolean sign = false; - if ( wrkMastSta.getStaEnd()!=0){//鏀� - BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd()); - if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){ - continue; - } - sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏 - }else { - continue; - } - if (sign){ - boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd()); - if (signMap){ - wrkMastSta.setWrkSts(2); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - return true; - }else { - log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - } - }else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - break; - } - } -// } - }catch (Exception e){ - log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触"); - log.error("3933琛�"+e); - } - return false; - } - - /** - * 鎵ц灏忚溅鎼繍浠诲姟 - */ - public synchronized boolean rgvRunWrkMastEmptyStaPutFull(RgvSlave rgvSlave) {//婊℃斁 - try{ -// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return false; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - return false; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - return false; - } - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿 - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔� - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀� 7:鎻愬崌 - continue; - } - boolean sign = false; - if ( wrkMastSta.getStaEnd()!=0){//婊℃斁 - BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd()); - if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){ - continue; - } - sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); - }else { - continue; - } - if (sign){ - boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd()); - if (signMap){ - wrkMastSta.setWrkSts(2); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - return true; - }else { - log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - } - }else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - break; - } - } -// } - }catch (Exception e){ - log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触"); - log.error("3933琛�"+e); - } - return false; - } - - public synchronized boolean rgvRunWrkMastEmptyStaTake(RgvSlave rgvSlave) {//鍙犵洏 - try{ -// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return false; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - return false; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - && (rgvProtocol.getLoaded2()==0 || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - return false; - } - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀� - continue; - } - boolean sign = false; - if ( wrkMastSta.getStaStart()!=0){//鍙� - BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart()); - if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){ - continue; - } - sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏 - }else { - continue; - } - if (sign){ - boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute()); - if (signMap){ - wrkMastSta.setWrkSts(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - return true; - }else { - log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - } - }else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - break; - } - } -// } - }catch (Exception e){ - log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触"); - log.error("3989琛�"+e); - } - return false; - } - - public synchronized boolean rgvRunWrkMastEmptyStaTakeFull(RgvSlave rgvSlave) {//婊″彇 - try{ -// for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - return false; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - return false; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0 - && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - return false; - } - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀� - continue; - } - boolean sign = false; - if (wrkMastSta.getStaStart()!=0){//婊″彇 - BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart()); - if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){ - continue; - } - sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); - }else { - continue; - } - if (sign){ - boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute()); - if (signMap){ - wrkMastSta.setWrkSts(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - return true; - }else { - log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - } - }else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - break; - } - } -// } - }catch (Exception e){ - log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触"); - log.error("3989琛�"+e); - } - return false; - } - - /* - * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃� - * */ - public synchronized void rgvRunWrkMastEmptyStaAvoidance() { - try{ - Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔� - if (integer==0){ - return; - } - for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && rgvProtocol.getTaskNo1()==0 - && rgvProtocol.getTaskNo2()==0 - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvProtocol.getStatusType2() == RgvStatusType.IDLE - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ - continue; - } - if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ - continue; - } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ - continue; - } - rgvAvoidanceXY(rgvProtocol.getRgvNo()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - } - } - }catch (Exception e){ - log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); - log.error("4109琛�"+e); - } - } - - /* - * 鍒锋柊鍦板浘鏁版嵁 - * */ - public synchronized void refreshRgvMap() { - try{ - for (RgvSlave rgvSlave:slaveProperties.getRgv()) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getId()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && rgvProtocol.getTaskNo1()==0 - && rgvProtocol.getTaskNo2()==0 - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); - } - } - }catch (Exception e){ - log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); - log.error("4109琛�"+e); - } - } - - /* - * 灏忚溅XY绉诲姩 閬胯 - * */ - public synchronized boolean rgvAvoidanceXY(Integer rgvId){ - if (rgvId==1){ - try{ - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� - //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)101); - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - - } - }else { - try{ - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐� - rgvCommand.setSourceStaNo2((short)117); - rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - - } - } - } - - - /* - * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔� - * */ - public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� - rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 - rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔� - * */ - public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣 - rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟 - * */ - public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣 - rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 鍙犵洏 - * */ - public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣 - rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣 - rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //鎷嗙洏 - * */ - public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣 - rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣 - rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 - * */ - public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡: 婊″彇 - rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣 - rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //婊℃斁 - * */ - public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� - rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡: 婊℃斁 - rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣 - rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } - - /* - * 灏忚溅澶嶄綅 - * */ - public synchronized boolean rgvComplete(Integer rgvId){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId); - return false; - } else { - log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId); - return true; - } - }catch (Exception e){ - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId); - return false; - } - } - - /* - * 灏忚溅鍦板浘鏇存柊 鏇存柊閿� - * */ - public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){ - if (true){ - basRgvMapMapper.updateById(basRgvMapCurrent); - return true; - } - -// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); - //鏇存柊褰撳墠灏忚溅閿� - try{ - Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐� - Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤� - basRgvMapCurrent.setLockEndRoute(fallMerge); - basRgvMapMapper.updateById(basRgvMapCurrent); - - //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥� - Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(); - BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); - List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); - Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� - basRgvMapOther.setEndRoute(lockEndRoute); - basRgvMapMapper.updateById(basRgvMapOther); - return true; - }catch (Exception e){ - log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛�"); - return false; } } @@ -6448,4 +4405,103 @@ } } + /** + * Jar浠诲姟鍒涘缓 + */ + public synchronized void jarGenerateWrkMastSta() { + try{ + + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + } + + /** + * Jar浠诲姟鎵ц + */ + public synchronized void jarExecuteWrkMastSta() { + try{ + + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + } + + /** + * Jar瀹屾垚 + */ + public synchronized void jarCompleteWrkMastSta() { + try{ + + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + } + + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake1(Integer rgvId,WrkMastSta wrkMastSta){ + try{ + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + RgvCommand rgvCommand = new RgvCommand(); + rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 + rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� + rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙� + rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡: 婊″彇 + rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣 + rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { + //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� + log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); + return false; + } else { + return true; + } + } catch (Exception e){ + return false; + } + } + /* + * Rgv 绉诲姩 + * */ + public synchronized boolean jarRgvTake2(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake3(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake4(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake5(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake6(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake7(Integer rgvId,BasJarMast basJarMast){ + return false; + } + /* + * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇 + * */ + public synchronized boolean jarRgvTake8(Integer rgvId,BasJarMast basJarMast){ + return false; + } } -- Gitblit v1.9.1