| | |
| | | } |
| | | |
| | | /** |
| | | * Jar任务创建 //完成 |
| | | * Jar任务创建 初始 //完成 |
| | | */ |
| | | public synchronized void jarMastGenerate() { |
| | | for (JarSlave jarSlave : slaveProperties.getJar()) { |
| | |
| | | } |
| | | |
| | | //自动、空闲、右门关闭、 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);//入硫化罐站点 |
| | |
| | | }}); |
| | | |
| | | //判断小车状态 |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){ |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){ |
| | | return false; |
| | | } |
| | | |
| | |
| | | return false; |
| | | } |
| | | //判断小车状态 |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){ |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){ |
| | | return false; |
| | | } |
| | | |
| | |
| | | |
| | | //门作业 无 |
| | | 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})){ |
| | |
| | | return false; |
| | | } |
| | | //判断小车状态 |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){ |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ |
| | | return false; |
| | | } |
| | | |
| | |
| | | return false; |
| | | } |
| | | //判断小车状态 |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){ |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ |
| | | return false; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | //判断小车状态 |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){ |
| | | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ |
| | | return false; |
| | | } |
| | | |
| | |
| | | * 2:B面 出料面 |
| | | * 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); |
| | |
| | | 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){ |
| | |
| | | WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast); |
| | | wrkMastExecute.setJarId(id); |
| | | wrkMastExecute.setSteId(digit[0]);//穿梭板ID |
| | | 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:A=>B 11:B=>A |
| | | wrkMastExecute.setType(digit[3]);//设备 0: 未知 1: 硫化罐 2: 冷却槽 3: 硫化罐==>冷却槽 |
| | | return wrkMastExecuteService.insert(wrkMastExecute); |
| | |
| | | * */ |
| | | 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: 未知 |
| | |
| | | * 10:A=>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){ |
| | |
| | | } |
| | | |
| | | /** |
| | | * JarWrkMastExecute任务完成 //未完成 |
| | | */ |
| | | public synchronized void jarWrkMastExecuteGenerateComplete() { |
| | | try{ |
| | | |
| | | }catch (Exception e){ |
| | | log.error("小车复位线程报错!"+e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * JarWrkMastExecute任务创建==>下发 //未完成 |
| | | * 开进料门 |
| | | * JarWrkMastExecute任务==>下发 //完成 |
| | | * 1、3开进料门 |
| | | * 任务下发 |
| | | */ |
| | | public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) { |
| | |
| | | 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) { |
| | |
| | | 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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } else { |
| | | //直接开门/关门 |
| | | if (jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){ |
| | | log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } else { |
| | | //直接关门 |
| | | if (jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){ |
| | | log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } else { |
| | | //调车 == > endRow |
| | | if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ |
| | | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } else { |
| | | //调车 == > endRow |
| | | if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ |
| | | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",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("{}号硫化罐查询设备档案无信息!!!",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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | //调车 == > endRow |
| | | if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ |
| | | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",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("{}号冷却槽查询设备档案无信息!!!",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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},冷却槽数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},冷却槽数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign); |
| | | } |
| | | } |
| | | return true; |
| | | // } |
| | | // return false; |
| | | // } else { |
| | | // log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | // return false; |
| | | // } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",wrkMastExecute,e.getMessage()); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * JarWrkMastExecute任务==>下发 //完成 |
| | | * 10:A=>B\11:B=>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("{}号硫化罐查询设备档案无信息!!!",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("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(3); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},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("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | //调车 == > endRow |
| | | if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ |
| | | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | wrkMastExecute.setWrkType(1); |
| | | wrkMastExecute.setWrkSts(1); |
| | | if (wrkMastExecuteService.updateById(wrkMastExecute)){ |
| | | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", |
| | | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | } else { |
| | | log.error("jarWrkMastExecuteActionExecute1===>执行异常===》RGV不满足条件,等待===》异常数据:BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute)); |
| | | return false; |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("jarWrkMastExecuteActionExecute1任务执行下发异常==》wrkMastExecute={},异常原因={}",wrkMastExecute,e.getMessage()); |
| | | } |
| | |
| | | } |
| | | |
| | | /* |
| | | * 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()); |
| | |
| | | } |
| | | |
| | | /* |
| | | * 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("平衡车Rgv命令下发失败,堆垛机号={},任务数据={},下发数据={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol)); |
| | | return false; |
| | | } |
| | | return true; |
| | | }catch (Exception e){ |
| | | log.error("平衡车Rgv命令下发失败,Rgv号={},任务数据={},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){ |
| | |
| | | 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("穿梭车Ste命令下发失败,堆垛机号={},任务数据={},下发数据={},complete={}", steCommand.getSteNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steCommand),complete); |
| | | return false; |
| | |
| | | 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:RGV小车移动、2:RGV小车到位、3:Ste穿梭版取货、4:取货完成等待下一步、5:Ste穿梭版放货至冷却池、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("穿梭车Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | log.error("穿梭车Ste命令下发失败===>下发异常,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | return true; |
| | | } |
| | | case 5: |
| | | if (wrkMastExecute.getWrkSts()==5){ |
| | | //1:RGV小车移动、2:RGV小车到位、3:rgv取货、4:rgv取货完成、5:Ste穿梭版入硫化罐、6:入罐完成、7:更新完成 //io_type = 5 |
| | | //ste任务完成 |
| | | if (wrkMastExecute.getWrkSts()==3){//==>4 |
| | | //1:RGV小车移动、2:RGV小车到位、3:Ste穿梭版取货、4:取货完成等待下一步、5:Ste穿梭版放货至冷却池、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("穿梭车Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | log.error("穿梭车Ste命令下发失败===>下发异常,jar号={},任务数据={},穿梭车数据={},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:RGV小车移动、2:RGV小车到位、3:Ste穿梭版移动中、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("穿梭车Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | log.error("穿梭车Ste命令下发失败===>下发异常,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | return true; |
| | | } |
| | | return false; |
| | | case 9: |
| | | if (wrkMastExecute.getWrkSts()==1){ |
| | | //1:Ste穿梭版取放货中、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("穿梭车Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},穿梭车数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign); |
| | | } |
| | | } |
| | | } |
| | | log.error("穿梭车Ste命令下发失败===>下发异常,jar号={},任务数据={},穿梭车数据={},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("{}号硫化罐查询设备档案无信息!!!",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("{}号硫化罐硫化完成修改硫化档案状态结果数量不一致!!!查询资料数量={},更新返回数量={}",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("平衡车Rgv命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},平衡车Rgv数据={},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("平衡车Rgv命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},平衡车Rgv数据={},sign={}", |
| | | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | } |
| | | return true; |
| | | }catch (Exception e){ |
| | | log.error("小车复位线程报错!"+e); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |