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/WrkMastExecuteServiceImpl.java | 15 src/main/java/com/zy/core/thread/JarThread.java | 3 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1226 +++++++++++++++++++++++++++++++++++++++++++- src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java | 10 src/main/resources/mapper/BasJarMastMapper.xml | 8 src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java | 5 src/main/java/com/zy/asrs/service/BasJarMastService.java | 2 src/main/resources/mapper/WrkMastExecuteMapper.xml | 46 + src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 15 src/main/java/com/zy/core/model/protocol/StaProtocol.java | 4 src/main/java/com/zy/core/model/command/SteCommand.java | 3 src/main/java/com/zy/core/thread/SteThread.java | 5 src/main/java/com/zy/core/model/protocol/SteProtocol.java | 4 src/main/java/com/zy/asrs/service/WrkMastExecuteService.java | 6 src/main/java/com/zy/core/enums/SlaveType.java | 3 src/main/java/com/zy/core/MainProcess.java | 9 src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java | 4 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 159 +++++ src/main/java/com/zy/asrs/utils/SteAndJarUtil.java | 68 ++ src/main/java/com/zy/core/enums/SteStatusType.java | 7 20 files changed, 1,529 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java index ab3248a..895f5bf 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java +++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java @@ -102,6 +102,13 @@ private Integer rgvId; /** + * RGV + */ + @ApiModelProperty(value= "RGV") + @TableField("rgv_end_id") + private Integer rgvEndId; + + /** * 浣滀笟鏃堕棿 */ @ApiModelProperty(value= "浣滀笟鏃堕棿") @@ -134,6 +141,14 @@ /** * 宸ヤ綔鐘舵�� + * 0:鍒濆 wrk_type + * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬紑闂ㄤ腑銆�4锛氬紑闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 1銆�3 + * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬叧闂ㄤ腑銆�4锛氬叧闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 2銆�4 + * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 5 + * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6 + * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 7銆�8 + * 1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴� //io_type = 9 + * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 10銆�11 */ @ApiModelProperty(value= "宸ヤ綔鐘舵��") @TableField("wrk_sts") diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java index 23ed3a8..d2c7770 100644 --- a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.Date; import java.util.List; @Mapper @@ -26,4 +27,7 @@ Integer selectJarMastOperationByStatusList(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); + Integer updateStatus(@Param("jarId") Integer jarId, @Param("status") Integer status, @Param("statusUpdate") Integer statusUpdate); + + } diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java index ba97d72..a87b6de 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java @@ -16,11 +16,15 @@ List<WrkMastExecute> getWrkMastByJarId(@Param("jarId") Integer jarId); - List<WrkMastExecute> sselectWrkMastExecuteByType(@Param("type") Integer type); + List<WrkMastExecute> selectWrkMastExecuteByType(@Param("type") Integer type); - List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(@Param("type")Integer type,@Param("ioType")Integer ioType); + List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(@Param("type")Integer type,@Param("ioType")Integer ioType,@Param("wrkType")Integer wrkType); + + List<WrkMastExecute> selectWrkMastExecuteByWrk(@Param("type")Integer type,@Param("ioType")Integer ioType, + @Param("wrkType")Integer wrkType,@Param("steNo")Integer steNo, + @Param("jarNo")Integer jarNo,@Param("rgvNo")Integer rgvNo); - Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId); + Integer getWrkMastExecuteByJarIdCount(@Param("jarId") Integer jarId); } diff --git a/src/main/java/com/zy/asrs/service/BasJarMastService.java b/src/main/java/com/zy/asrs/service/BasJarMastService.java index b128dfa..924f6af 100644 --- a/src/main/java/com/zy/asrs/service/BasJarMastService.java +++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java @@ -33,4 +33,6 @@ Integer selectJarMastOperation(Integer jarId,Integer type); + Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate); + } diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java index 50bd6ef..ada23c3 100644 --- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java +++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java @@ -11,9 +11,11 @@ List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId); - List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type); + List<WrkMastExecute> selectWrkMastExecuteByType(Integer type); - List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType); + List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType); + + List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute); Integer getWrkMastExecuteByJarIdCount(Integer jarId); diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java index ee80b66..d0f5819 100644 --- a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java @@ -204,4 +204,9 @@ return this.baseMapper.selectJarMastOperationByStatusList(jarId,statusList); } + @Override + public Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate) { + return this.baseMapper.updateStatus(jarId,status,statusUpdate); + } + } 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; + } + } diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java index 072b583..d540eb7 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java @@ -22,17 +22,22 @@ } @Override - public List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type) { - return this.baseMapper.sselectWrkMastExecuteByType(type); + public List<WrkMastExecute> selectWrkMastExecuteByType(Integer type) { + return this.baseMapper.selectWrkMastExecuteByType(type); } @Override - public List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType) { - return this.baseMapper.sselectWrkMastExecuteByTypeAndIoTyper(type,ioType); + public List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType) { + return this.baseMapper.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(type,ioType,wrkType); + } + + @Override + public List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute) { + return this.baseMapper.selectWrkMastExecuteByWrk(wrkMastExecute.getType(),wrkMastExecute.getIoType(),wrkMastExecute.getWrkType(),wrkMastExecute.getSteId(),wrkMastExecute.getJarId(),wrkMastExecute.getRgvId()); } @Override public Integer getWrkMastExecuteByJarIdCount(Integer jarId) { - return this.baseMapper.getWrkMastByJarIdCount(jarId); + return this.baseMapper.getWrkMastExecuteByJarIdCount(jarId); } } diff --git a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java index 91eb37b..22d1cfa 100644 --- a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java +++ b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java @@ -11,6 +11,74 @@ return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3)); } + /** + * RGV浣嶇疆姝e鑾峰彇 + */ + public static Integer getRgvJarNowRow(Integer jarNo){ + switch (jarNo){ + case 1: + case 3: + return 3; + case 2: + case 4: + case 5: + case 6: + return 1; + } + return 2; + } + + /** + * RGV浣嶇疆姝e鑾峰彇 + */ + public static boolean getRgvJarNowRow(Integer staNo,short nowRow){ + switch (staNo){ + case 615: + case 622: + case 628: + case 627: + return nowRow==(short) 1; + case 612: + case 619: + return nowRow==(short) 2; + } + return false; + } + + /** + * RGV浣嶇疆姝e鑾峰彇 + */ + public static Integer getRgvStaRow(Integer staNo){ + switch (staNo){ + case 615: + case 622: + case 628: + case 627: + return 1; + case 612: + case 619: + return 2; + } + return 0; + } + + /** + * 鑾峰彇姝e鍐峰嵈妲界~鍖栫綈 + */ + public static Integer getRgvJarNo(Integer jarNo){ + switch (jarNo){ + case 1: + case 2: + return 2; + case 3: + case 4: + case 5: + case 6: + return 4; + } + return 0; + } + public static void main(String[] args) { } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 399f0e7..a0ff888 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -90,19 +90,18 @@ mainService.storeEmptyPltLarge(); // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� mainService.ledExecute(); - // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 + // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 mainService.ledReset(); /************************************JAR璋冨害************************************/ + //JarWrkMastExecute浠诲姟瀹屾垚 + mainService.jarWrkMastExecuteGenerateComplete(k); //JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃� mainService.jarWrkMastExecuteGenerate(k); - + //JarWrkMastExecute浠诲姟鎵ц mainService.jarWrkMastExecuteAction(k); //Jar浠诲姟鍒涘缓 //瀹屾垚 mainService.jarMastGenerate(); - - - /************************************JAR璋冨害************************************/ diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java index 2896dc6..8372df4 100644 --- a/src/main/java/com/zy/core/enums/SlaveType.java +++ b/src/main/java/com/zy/core/enums/SlaveType.java @@ -10,7 +10,8 @@ Car, Rgv, Ste, - Jar + Jar, + JarB ; public static SlaveType findInstance(String s){ diff --git a/src/main/java/com/zy/core/enums/SteStatusType.java b/src/main/java/com/zy/core/enums/SteStatusType.java index c757c52..129e005 100644 --- a/src/main/java/com/zy/core/enums/SteStatusType.java +++ b/src/main/java/com/zy/core/enums/SteStatusType.java @@ -2,11 +2,14 @@ public enum SteStatusType { + OFF_LINE(-1, "鏈煡"), IDLE(0, "绌洪棽"), MOVING(1, "浣滀笟涓�"), - SOS(2, "鎶ヨ"), + SOS(2, "鍋滄涓�"), + SOS2(3, "鎶ヨ锛氭晠闅滀腑"), + SOS3(4, "澶嶄綅涓�"), WAITING(10, "绛夊緟纭"), - OFF_LINE(-1, "鏈煡"), + WAITING2(11, "鏈夌墿寰呬綔涓�"), OTHER(100, "鍏跺畠"), ; diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java index 365370e..58471f3 100644 --- a/src/main/java/com/zy/core/model/command/SteCommand.java +++ b/src/main/java/com/zy/core/model/command/SteCommand.java @@ -32,6 +32,9 @@ // @JSONField(serialize = false) private SteTaskModeType taskModeType; + + private Short jarNo; + // // // 璧峰璁惧鍙� // private Short startSsbm; diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 9fd2f8f..b353b8d 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -83,8 +83,8 @@ private boolean RGV1;//灏忚溅鏃犺揣绌洪棽 private boolean RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅 private boolean RGV3;//灏忚溅杩愯涓� - private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗� - private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗� + private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗� 锛堥潰鏈濆叆鏂欏彛锛� + private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗� 锛堥潰鏈濆叆鏂欏彛锛� private boolean RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡 public BasDevp toSqlModel(){ diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java index 4986894..f9734cf 100644 --- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java @@ -33,7 +33,9 @@ IDLE(0, "绌洪棽"), MOVING(1, "浣滀笟涓�"), SOS(2, "鎶ヨ"), - WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"), + WAITING(10, "绛夊緟纭"), + OFF_LINE(-1, "鏈煡"), + OTHER(100, "鍏跺畠"), */ public Short status; diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java index 311d53d..9471b80 100644 --- a/src/main/java/com/zy/core/thread/JarThread.java +++ b/src/main/java/com/zy/core/thread/JarThread.java @@ -118,6 +118,9 @@ */ private void readStatus(){ try { + if (slave.getId()>4){ + return; + } OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26); if (result.IsSuccess) { if (null == jarProtocol) { diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index cd891bc..3850d4e 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -313,8 +313,8 @@ staProtocol.setRGV1(status[0]); // 鑷姩 staProtocol.setRGV2(status[1]); // 鏈夌墿 staProtocol.setRGV3(status[2]); // 鍙叆 - staProtocol.setRGV4(status[3]);// 鍙嚭 - staProtocol.setRGV5(status[4]); // 绌烘澘淇″彿 + staProtocol.setRGV4(status[3]);// + staProtocol.setRGV5(status[4]); // staProtocol.setRGV6(status[5]); // 婊℃墭鐩� } } @@ -541,30 +541,148 @@ /** * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� */ + private void write10(StaProtocol staProtocol) throws InterruptedException { + if (null == staProtocol) { + return; + } + boolean rgv4 = staProtocol.isRGV4(); + boolean rgv5 = staProtocol.isRGV5(); + OperateResult result1 = null; + OperateResult result2 = null; + String resultV1 = ""; + String resultV2 = ""; + switch (staProtocol.getSiteId()){ + case 623: + resultV1 = "1804"; + resultV2 = "1804"; + break; + case 624: + resultV1 = "1810"; + resultV2 = "1810"; + break; + case 625: + resultV1 = "1816"; + resultV2 = "1816"; + break; + case 626: + resultV1 = "1822"; + resultV2 = "1822"; + break; + default: + return; + } + result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + int writeCount = 1; + do { + try{ + if(!result1.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1); + boolean status1 = status[rgv4? 4:3]; + if (status1 == rgv4?rgv5:rgv4){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + + result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + writeCount = 1; + do { + try{ + if(!result2.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 1); + if (resultRead2.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead2.Content, 0, 1); + boolean status1 = status[rgv4? 3:4]; + if (status1 == rgv4?rgv4:rgv5){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + } private void write9(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; } short resultS1 = staProtocol.getEndRow(); OperateResult result1 = null; + OperateResult result2 = null; String resultV1 = ""; + String resultV2 = ""; switch (staProtocol.getSiteId()){ case 623: resultV1 = "1800"; + resultV2 = "1812"; break; case 624: resultV1 = "1806"; + resultV2 = "1818"; break; case 625: resultV1 = "1812"; + resultV2 = "1800"; break; case 626: resultV1 = "1818"; + resultV2 = "1806"; break; default: return; } result1 = siemensS7Net.Write(resultV1, resultS1); + result2 = siemensS7Net.Write(resultV2, resultS1); //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� try { Thread.sleep(200); @@ -585,7 +703,7 @@ OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); if (resultRead1.IsSuccess) { short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); - if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){ + if (transInt16 == resultS1){ break; } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); @@ -607,6 +725,41 @@ writeCount++; } while (writeCount<6); + writeCount = 1; + do { + try{ + if(!result2.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2); + if (resultRead2.IsSuccess) { + short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0); + if (transInt16 == resultS1){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV2, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + if (!result1.IsSuccess) { staProtocol = station.get(staProtocol.getSiteId()); OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java index 41ef4d8..4483c28 100644 --- a/src/main/java/com/zy/core/thread/SteThread.java +++ b/src/main/java/com/zy/core/thread/SteThread.java @@ -226,7 +226,7 @@ siemensS7Net.Write("DB100.12", (short) 0);//璧峰鐐逛綅 siemensS7Net.Write("DB100.14", (short) 0);//鐩殑鐐逛綅 siemensS7Net.Write("DB100.16.0", false);//浠诲姟寮�濮嬬‘璁や綅 - siemensS7Net.Write("DB100.16.1", false);//浠诲姟瀹屾垚纭 +// siemensS7Net.Write("DB100.18", (short) 0);//纭寲缃愬彿 // 1.浠诲姟鍙� OperateResult result0 = siemensS7Net.Write("DB100.2", command.getTaskNo().shortValue()); try { @@ -240,8 +240,9 @@ OperateResult result1 = siemensS7Net.Write("DB100.4", command.getTaskMode()); OperateResult result2 = siemensS7Net.Write("DB100.12", (short) command.getStartLoad().shortValue());//璧峰鐐逛綅 OperateResult result3 = siemensS7Net.Write("DB100.14", (short) command.getEndLoad().shortValue());//鐩殑鐐逛綅 + OperateResult result4 = siemensS7Net.Write("DB100.18", (short) command.getJarNo());//鐩殑鐐逛綅 // 3.纭寮�濮嬩换鍔� - if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess) { + if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess && result4.IsSuccess) { result = siemensS7Net.Write("DB100.16.0", true); try { diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml index dd70c8b..9eab836 100644 --- a/src/main/resources/mapper/BasJarMastMapper.xml +++ b/src/main/resources/mapper/BasJarMastMapper.xml @@ -101,4 +101,12 @@ order by jar_loc_digit desc </select> + <update id="updateStatus"> + update asr_bas_jar_mast + set status = #{statusUpdate} + where 1=1 + and jar_id = #{jarId} + and status = #{status} + </update> + </mapper> diff --git a/src/main/resources/mapper/WrkMastExecuteMapper.xml b/src/main/resources/mapper/WrkMastExecuteMapper.xml index ca69ed5..2e3950d 100644 --- a/src/main/resources/mapper/WrkMastExecuteMapper.xml +++ b/src/main/resources/mapper/WrkMastExecuteMapper.xml @@ -22,8 +22,39 @@ <result column="wrk_sts" property="wrkSts" /> <result column="io_type" property="ioType" /> <result column="type" property="type" /> + <result column="rgv_end_id" property="rgvEndId" /> </resultMap> + + <sql id="batchSeq"> + <if test="type != null"> + and type = #{type} + </if> + <if test="ioType != null"> + and io_type = #{ioType} + </if> + <if test="wrkType != null"> + and wrk_type = #{wrkType} + </if> + <if test="steNo != null"> + and ste_id = #{steNo} + </if> + <if test="jarNo != null"> + and jar_id = #{jarNo} + </if> + <if test="rgvNo != null"> + and rgv_id = #{rgvNo} + </if> + <!-- <choose>--> + <!-- <when test="type != null and type != ''">--> + <!-- and type = #{type}--> + <!-- </when>--> + <!-- <otherwise>--> + <!-- and (type IS NULL OR type = '')--> + <!-- </otherwise>--> + <!-- </choose>--> + + </sql> <select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap"> select top 1 * from jar_wrk_mast_execute @@ -37,14 +68,25 @@ and jar_id = #{jarId} </select> - <select id="sselectWrkMastExecuteByType" resultMap="BaseResultMap"> + <select id="selectWrkMastExecuteByType" resultMap="BaseResultMap"> select * from jar_wrk_mast_execute where 1=1 and type = #{type} - and io_type = #{iotype} and wrk_type = 0; </select> + <select id="selectWrkMastExecuteByTypeAndIoTyperAndWrkType" resultMap="BaseResultMap"> + select * from jar_wrk_mast_execute + where 1=1 + <include refid="batchSeq"></include> + </select> + + <select id="selectWrkMastExecuteByWrk" resultMap="BaseResultMap"> + select * from jar_wrk_mast_execute + where 1=1 + <include refid="batchSeq"></include> + </select> + <select id="getWrkMastExecuteByJarIdCount" resultType="Integer"> select count(1) from jar_wrk_mast_execute where 1=1 -- Gitblit v1.9.1