From 2cebd39fd1514c991da647f08124e18a0b02abe9 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期三, 26 六月 2024 15:19:44 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 1,181 insertions(+), 45 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 788004e..6f1a206 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -4414,7 +4414,7 @@ } /** - * Jar浠诲姟鍒涘缓 //瀹屾垚 + * Jar浠诲姟鍒涘缓 鍒濆 //瀹屾垚 */ public synchronized void jarMastGenerate() { for (JarSlave jarSlave : slaveProperties.getJar()) { @@ -4528,9 +4528,8 @@ } //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴 - if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 - && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0 - && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0 && jarOtherProtocol.leftDoorClose==0){ + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){ BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit); basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣 @@ -4790,7 +4789,7 @@ }}); //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){ + if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){ return false; } @@ -4903,7 +4902,7 @@ return false; } //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){ + if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){ return false; } @@ -4932,7 +4931,7 @@ //闂ㄤ綔涓� 鏃� if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.jarErr==0 - && !jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() + && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ //鍏宠繘鏂欓棬 if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),2,1})){ @@ -4975,7 +4974,7 @@ return false; } //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){ + if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ return false; } @@ -5045,7 +5044,7 @@ return false; } //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){ + if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ return false; } @@ -5116,7 +5115,7 @@ } //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){ + if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ return false; } @@ -5165,7 +5164,7 @@ * 2锛欱闈� 鍑烘枡闈� * 3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎 */ - public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type) { + public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType) { try{ //鍒ゆ柇灏忚溅鐘舵�� SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); @@ -5176,12 +5175,16 @@ if (steProtocol == null) { return false; } - if (steProtocol.getMode() == 0) { + if (steProtocol.getMode() != (short)1) { log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔"); return false; } - if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) { - log.error(steNo + "鍙峰皬杞︿笉鏄┖闂诧紝鏃犳硶鎿嶄綔"); + if (steProtocol.getChargeStatus()!=0){ + log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�...."); + return false; + } + if (!steProtocol.getStatusType().equals(steStatusType)) { + log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�...."); return false; } switch (type){ @@ -5251,7 +5254,8 @@ WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast); wrkMastExecute.setJarId(id); wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D - wrkMastExecute.setRgvId(digit[1]);//RGV ID + wrkMastExecute.setRgvId(basJar.getEnterRgvNo());//RGV ID enter + wrkMastExecute.setRgvEndId(basJar.getOutRgvNo());//RGV ID out wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A wrkMastExecute.setType(digit[3]);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲� return wrkMastExecuteService.insert(wrkMastExecute); @@ -5267,7 +5271,7 @@ * */ public synchronized void jarWrkMastExecuteAction(Integer sign) { try{ - List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.sselectWrkMastExecuteByTypeAndIoTyper(0, 0); + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,0); for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){ /* * 浠诲姟绫诲瀷 0: 鏈煡 @@ -5279,20 +5283,45 @@ * 10锛欰=>B 11:B=>A * */ switch (wrkMastExecute.getIoType()){ - case 1: - jarWrkMastExecuteActionExecute1(wrkMastExecute,sign); + case 1://1: 寮�杩涙枡闂� + case 3://3: 寮�鍑烘枡闂� + if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){ + break; + } + return; case 2: - case 3: case 4: + if (jarWrkMastExecuteActionExecute2(wrkMastExecute,sign)){ + break; + } + return; case 5: + if (jarWrkMastExecuteActionExecute5(wrkMastExecute,sign)){ + break; + } + return; case 6: + if (jarWrkMastExecuteActionExecute6(wrkMastExecute,sign)){ + break; + } + return; case 7: case 8: + if (jarWrkMastExecuteActionExecute7(wrkMastExecute,sign)){ + break; + } + return; case 9: + if (jarWrkMastExecuteActionExecute9(wrkMastExecute,sign)){ + break; + } + return; case 10: case 11: - case 12: - case 13: + if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){ + break; + } + return; } } } catch (Exception e){ @@ -5302,19 +5331,8 @@ } /** - * JarWrkMastExecute浠诲姟瀹屾垚 //鏈畬鎴� - */ - public synchronized void jarWrkMastExecuteGenerateComplete() { - try{ - - }catch (Exception e){ - log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); - } - } - - /** - * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂 //鏈畬鎴� - * 寮�杩涙枡闂� + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 1銆�3寮�杩涙枡闂� * 浠诲姟涓嬪彂 */ public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) { @@ -5340,10 +5358,10 @@ return false; } - //鍒ゆ柇灏忚溅鐘舵�� - if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ - return false; - } +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); if (staProtocolRGV == null) { @@ -5354,25 +5372,827 @@ if (staProtocolRGV == null) { return false; } - if (staProtocolRGV.rgvBoolean(1)){ + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } //闂ㄤ綔涓� 鏃� //鑷姩銆佺┖闂层�� 杩涙枡浠叧闂渶鎵撳紑 if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ - if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ - //绉昏蛋 == > 2 - } else { - //鐩存帴寮�闂� + if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){ + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else { + //鐩存帴寮�闂�/鍏抽棬 + if (jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + }else if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){ + //鐩存帴瀹屾垚 + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } } + + return true; } return false; } else { log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); return false; } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 2銆�4:鍏宠繘鏂欓棬 + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute2(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴 + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ + if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){ + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else { + //鐩存帴鍏抽棬 + if (jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + } else if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){ + //鐩存帴瀹屾垚 + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + return true; + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 5:鍏ョ~鍖栫綈 + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute5(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴 + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ + + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //鍒ゆ柇灏忚溅鐘舵�� + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){ + return false; + } + //璋冭溅 == > 鍙栬揣 + if (jarRgvGetTake(wrkMastExecute + ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==1 + ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else { + //璋冭溅 == > endRow + if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + return true; + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 6:鍏ュ喎鍗存Ы + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute6(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){ + + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //鍒ゆ柇灏忚溅鐘舵�� + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){ + return false; + } + //璋冭溅 == > 鍙栬揣 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else { + //璋冭溅 == > endRow + if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + return true; + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 7锛氱┛姊溅杩涘喎鍗存Ы\8锛氱┛姊溅绂诲紑鍐峰嵈妲� + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute7(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId())); + JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol(); + if (jarProtocolOther == null) { + return false; + } + if (jarProtocolOther.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo()); + if (Cools.isEmpty(basJarOther)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo()); + return false; + } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0 + && jarProtocolOther.isLeftDoor() && jarProtocolOther.isRightDoor() + ){ + + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){ + //鍒ゆ柇灏忚溅鐘舵�� + if (wrkMastExecute.getIoType()==7){ + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ + //璋冭溅 == > 绉诲姩 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){ + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + } else { + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){ + //璋冭溅 == > 绉诲姩 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + } + + } else { + //璋冭溅 == > endRow + if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + return true; + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 9锛氬嚭鍐峰嵈妲� + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute9(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + +// // 鑾峰彇纭寲缃愪俊鎭� +// JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); +// JarProtocol jarProtocol = jarThread.getJarProtocol(); +// if (jarProtocol == null) { +// return false; +// } +// if (jarProtocol.modeType != JarModeType.AUTO){ +// return false; +// } + + BasJar basJar = basJarMapper.selectByJarNo(wrkMastExecute.getJarId()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙峰喎鍗存Ы鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId()); + return false; + } + +// // 鑾峰彇纭寲缃愪俊鎭� +// JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId())); +// JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol(); +// if (jarProtocolOther == null) { +// return false; +// } +// if (jarProtocolOther.modeType != JarModeType.AUTO){ +// return false; +// } +// +// BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo()); +// if (Cools.isEmpty(basJarOther)){ +// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo()); +// return false; +// } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } +// + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(basJar.getStaNo()); + if (staProtocol == null) { + return false; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol == null) { + return false; + } + if (staProtocol.getWorkNo()!=0 || !staProtocol.isAutoing() || staProtocol.isLoading()){ + return false; + } +// +// StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); +// if (staProtocolRGVOther == null) { +// return false; +// } else { +// staProtocolRGVOther = staProtocolRGVOther.clone(); +// } +// if (staProtocolRGVOther == null) { +// return false; +// } +// +// if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ +// if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ +// //绉昏蛋 == > 2 +// if (jarRgvTake(wrkMastExecute,2)){ +// log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", +// wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); +// } +// return true; +// } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� +// if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() +// && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0 +// ){ + //鍒ゆ柇灏忚溅鐘舵�� + if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){ + //璋冭溅 == > 鍙栬揣 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT24.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign); + } + } + return true; +// } +// return false; +// } else { +// log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); +// return false; +// } + } catch (Exception e){ + log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚 + * 10锛欰=>B\11锛欱=>A + * 浠诲姟涓嬪彂 + */ + public synchronized boolean jarWrkMastExecuteActionExecute10(WrkMastExecute wrkMastExecute,Integer sign) { + try{ + List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId()); + if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){ + return false; + } + + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + return false; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + return false; + } + + BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + return false; + } + +// //鍒ゆ柇灏忚溅鐘舵�� +// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){ +// return false; +// } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo()); + if (staProtocolRGV == null) { + return false; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + return false; + } + + StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo()); + if (staProtocolRGVOther == null) { + return false; + } else { + staProtocolRGVOther = staProtocolRGVOther.clone(); + } + if (staProtocolRGVOther == null) { + return false; + } + + if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ + if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){ + //绉昏蛋 == > 2 + if (jarRgvMoveTake(wrkMastExecute,2)){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + return true; + } + //闂ㄤ綔涓� 鏃� + //鑷姩銆佺┖闂层�� + if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor() + && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0 + ){ + + if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){ + //鍒ゆ柇灏忚溅鐘舵�� + if (wrkMastExecute.getIoType()==10){ + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){ + //璋冭溅 == > 绉诲姩 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + } else { + if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ + //璋冭溅 == > 绉诲姩 + if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_WFQH_12,false)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(3); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){ + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + } + + } else { + //璋冭溅 == > endRow + if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ + log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + wrkMastExecute.setWrkType(1); + wrkMastExecute.setWrkSts(1); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}", + wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); + } + } + return true; + } + return false; + } else { + log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); + return false; + } } catch (Exception e){ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage()); } @@ -5380,9 +6200,9 @@ } /* - * Rgv 鍔ㄤ綔 + * Rgv 鍔ㄤ綔 绉诲姩 * */ - public synchronized boolean jarRgvTake(WrkMastExecute wrkMastExecute,Integer endRow){ + public synchronized boolean jarRgvMoveTake(WrkMastExecute wrkMastExecute,Integer endRow){ try { StaProtocol staProtocol = new StaProtocol(); staProtocol.setSiteId(wrkMastExecute.getRgvId()); @@ -5400,6 +6220,27 @@ } /* + * Rgv 鍔ㄤ綔 鍙栬揣 + * */ + public synchronized boolean jarRgvGetTake(WrkMastExecute wrkMastExecute,boolean RGV4,boolean RGV5){ + try { + StaProtocol staProtocol = new StaProtocol(); + staProtocol.setSiteId(wrkMastExecute.getRgvId()); + staProtocol.setRGV4(RGV4); + staProtocol.setRGV5(RGV5); + // 涓嬪彂绔欑偣淇℃伅 + if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(10, staProtocol))) { + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol)); + return false; + } + return true; + }catch (Exception e){ + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},RGV4={},RGV5={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(RGV4), JSON.toJSON(RGV5)); + } + return false; + } + + /* * Ste 鍔ㄤ綔 * */ public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete){ @@ -5410,6 +6251,7 @@ steCommand.setEndLoad(endLoad); steCommand.setTaskModeType(steTaskModeType); steCommand.setComplete(complete); + steCommand.setJarNo(wrkMastExecute.getJarId().shortValue()); if (!MessageQueue.offer(SlaveType.Ste, steCommand.getSteNo(), new Task(2, steCommand))) { log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={},complete={}", steCommand.getSteNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steCommand),complete); return false; @@ -5440,4 +6282,298 @@ return false; } + /** + * JarWrkMastExecute浠诲姟瀹屾垚 //鏈畬鎴� + */ + public synchronized void jarWrkMastExecuteGenerateComplete(Integer sign) { + try{ + switch (sign){ + case 1: + case 5: + case 9: + if (jarWrkMastExecuteGenerateSteComplete(sign)){ + break; + } + case 2: + case 6: + case 10: + if (jarWrkMastExecuteGenerateJarComplete(sign)){ + break; + } + case 3: + case 7: + case 11: + if (jarWrkMastExecuteGenerateRgvComplete1(sign)){ + break; + } + case 4: + case 8: + case 12: + if (jarWrkMastExecuteGenerateRgvComplete2(sign)){ + break; + } + default: + return; + } + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + } + + /** + * JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste //瀹屾垚 + */ + public synchronized boolean jarWrkMastExecuteGenerateSteComplete(Integer sign) { + try{ + for (SteSlave steSlave : slaveProperties.getSte()) { + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId()); + if (steThread == null) { + continue; + } + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { + continue; + } + if (steProtocol.getMode()==(short)1 && steProtocol.taskNo!=0 && steProtocol.getChargeStatus()==0){ + if (steProtocol.statusType.equals(SteStatusType.WAITING)){ + + } + WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(steProtocol.getTaskNo().longValue()); + if (!Cools.isEmpty(wrkMastExecute)){ + switch (wrkMastExecute.getIoType()){ + case 6: + if (wrkMastExecute.getWrkSts()==3){//==>4 + //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6 + //ste浠诲姟绛夊緟瀹屾垚 + if (steProtocol.statusType.equals(SteStatusType.WAITING2)){ + //ste浠诲姟瀹屾垚 + if (jarSteTake(wrkMastExecute,null,null,null,true)){ + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + } + } + } + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + return true; + } + case 5: + if (wrkMastExecute.getWrkSts()==5){ + //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 5 + //ste浠诲姟瀹屾垚 + if (wrkMastExecute.getWrkSts()==3){//==>4 + //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6 + //ste浠诲姟绛夊緟瀹屾垚 + if (steProtocol.statusType.equals(SteStatusType.WAITING)){ + //ste浠诲姟瀹屾垚 + if (jarSteTake(wrkMastExecute,null,null,null,true)){ + wrkMastExecute.setWrkSts(6); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + } + } + } + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + return true; + } + return true; + } + return false; + case 7: + case 8: + case 10: + case 11: + //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� + if (wrkMastExecute.getWrkSts()==3){ + //ste浠诲姟瀹屾垚 + if (steProtocol.statusType.equals(SteStatusType.WAITING)){ + //ste浠诲姟瀹屾垚 + if (jarSteTake(wrkMastExecute,null,null,null,true)){ + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + } + } + } + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + return true; + } + return false; + case 9: + if (wrkMastExecute.getWrkSts()==1){ + //1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴� //io_type = 9 + //ste浠诲姟瀹屾垚 + if (steProtocol.statusType.equals(SteStatusType.WAITING)){ + //ste浠诲姟瀹屾垚 + if (jarSteTake(wrkMastExecute,null,null,null,true)){ + wrkMastExecute.setWrkSts(2); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + } + } + } + log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); + return true; + } + default: return false; + } + } + } + } + return true; + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟瀹屾垚 ===>Jar //瀹屾垚 + * //纭寲瀹屾垚 淇敼浠诲姟鐘舵�� + */ + public synchronized boolean jarWrkMastExecuteGenerateJarComplete(Integer sign) { + try{ + for (JarSlave jarSlave : slaveProperties.getJar()) { + // 鑾峰彇纭寲缃愪俊鎭� + JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId()); + JarProtocol jarProtocol = jarThread.getJarProtocol(); + if (jarProtocol == null) { + continue; + } + if (jarProtocol.modeType != JarModeType.AUTO){ + continue; + } + BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo()); + if (Cools.isEmpty(basJar)){ + log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo()); + continue; + } + //WAITING2(4, "纭寲瀹屾垚"), + if (jarProtocol.getJarErr()==0 && jarProtocol.getStatusType().equals(JarStatusType.WAITING2) + && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() ){ + List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ + add(5);//纭寲涓� + }}); + if (basJarMastList.isEmpty()){ + continue; + } + Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 5, 6); + if (basJarMastList.size()!=integer){ + log.error("{}鍙风~鍖栫綈纭寲瀹屾垚淇敼纭寲妗f鐘舵�佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer); + } + } + } + return true; + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩 //瀹屾垚 + */ + public synchronized boolean jarWrkMastExecuteGenerateRgvComplete1(Integer sign) { + try{ + WrkMastExecute wrkMastExecuteSou = new WrkMastExecute(); + wrkMastExecuteSou.setWrkType(1); + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou); + for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){ + if (wrkMastExecute.getIoType() == 9){ + continue; + } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId()); + if (staProtocolRGV == null) { + continue; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + continue; + } + + StaProtocol staProtocolRGVEnd = devpThread.getStation().get(wrkMastExecute.getRgvEndId()); + if (staProtocolRGVEnd == null) { + continue; + } else { + staProtocolRGVEnd = staProtocolRGVEnd.clone(); + } + if (staProtocolRGVEnd == null) { + continue; + } + if (staProtocolRGV.getNowRow() == staProtocolRGVEnd.getNowRow() + && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){ + wrkMastExecute.setWrkSts(2); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign); + return false; + } + return true; + } + } + return true; + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + return false; + } + + /** + * JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣 //瀹屾垚 + */ + public synchronized boolean jarWrkMastExecuteGenerateRgvComplete2(Integer sign) { + try{ + WrkMastExecute wrkMastExecuteSou = new WrkMastExecute(); + wrkMastExecuteSou.setWrkType(3); + wrkMastExecuteSou.setIoType(5); + List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou); + for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){ + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId()); + if (staProtocolRGV == null) { + continue; + } else { + staProtocolRGV = staProtocolRGV.clone(); + } + if (staProtocolRGV == null) { + continue; + } + + StaProtocol staProtocolRGVEnd = devpThread.getStation().get(wrkMastExecute.getRgvEndId()); + if (staProtocolRGVEnd == null) { + continue; + } else { + staProtocolRGVEnd = staProtocolRGVEnd.clone(); + } + if (staProtocolRGVEnd == null) { + continue; + } + if (staProtocolRGV.getNowRow() == staProtocolRGVEnd.getNowRow() + && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){ + wrkMastExecute.setWrkSts(4); + if (wrkMastExecuteService.updateById(wrkMastExecute)){ + log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}", + wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign); + return false; + } + return true; + } + } + return true; + }catch (Exception e){ + log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); + } + return false; + } + } -- Gitblit v1.9.1