|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(cache == null){ | 
|---|
|  |  |  | cache = info; | 
|---|
|  |  |  | //此时不做任务操作,只保障cache不为空, 等待下次发来数据 | 
|---|
|  |  |  | if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ | 
|---|
|  |  |  | List<UpgradeRtu> overList = info.ugRtuStateList.stream().filter(itemVo -> itemVo.isOver).collect(Collectors.toList()) ; | 
|---|
|  |  |  | if(overList != null && overList.size() > 0){ | 
|---|
|  |  |  | cache = info; | 
|---|
|  |  |  | this.save2Db(info.ugTaskId, overList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | cache = info; | 
|---|
|  |  |  | //当cache中有值时,进行比对存储,对比目的是防止重复操作数据库 | 
|---|
|  |  |  | if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ | 
|---|
|  |  |  | //此时保证两个集合都不为null | 
|---|
|  |  |  | this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList); | 
|---|
|  |  |  | cache = info; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Object execute() throws Exception { | 
|---|
|  |  |  | while(!this.stop){ | 
|---|
|  |  |  | if(!runDemo()){ | 
|---|
|  |  |  | if(!runInDemo()){ | 
|---|
|  |  |  | this.stop = true ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private boolean runDemo(){ | 
|---|
|  |  |  | private boolean runInDemo(){ | 
|---|
|  |  |  | for(UpgradeRtu rtu : cache.ugRtuStateList){ | 
|---|
|  |  |  | this.rtuUpgrade(rtu) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int n = Integer.parseInt(new CreateRandom().create(3)) ; | 
|---|
|  |  |  | if(n == 540 || n == 541 || n == 542 || n == 543 || n == 544 || n == 545){ | 
|---|
|  |  |  | if(n == 540 || n == 541 || n == 542 || n == 543 || n == 544 || n == 545 || n == 546 || n == 547 || n == 548 || n == 549 ){ | 
|---|
|  |  |  | if(rtu.currentPackage == 1){ | 
|---|
|  |  |  | //1包死 | 
|---|
|  |  |  | rtu.state = UpgradeRtu.STATE_FAILONE ; | 
|---|
|  |  |  | 
|---|
|  |  |  | rtu.currentPackage += 1 ; | 
|---|
|  |  |  | rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ; | 
|---|
|  |  |  | rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; | 
|---|
|  |  |  | rtu.reTryTimes = 0 ; | 
|---|
|  |  |  | rtu.isOver = false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | for(UpgradeRtu rtu : cache.ugRtuStateList){ | 
|---|
|  |  |  | if(rtu.state == UpgradeRtu.STATE_OFFLINE){ | 
|---|
|  |  |  | cache.ugOverallState.offLineTotal ++ ; | 
|---|
|  |  |  | cache.ugOverallState.failTotal++; | 
|---|
|  |  |  | }else if(rtu.state == UpgradeRtu.STATE_UNSTART){ | 
|---|
|  |  |  | cache.ugOverallState.unStartTotal ++ ; | 
|---|
|  |  |  | }else if(rtu.state == UpgradeRtu.STATE_RUNNING){ | 
|---|
|  |  |  | 
|---|
|  |  |  | cache.ugOverallState.failOneTotal++; | 
|---|
|  |  |  | cache.ugOverallState.failTotal++; | 
|---|
|  |  |  | }else if(rtu.state == UpgradeRtu.STATE_FAIL) { | 
|---|
|  |  |  | cache.ugOverallState.failMultiTotal++; | 
|---|
|  |  |  | cache.ugOverallState.failTotal++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(rtu.isOver){ | 
|---|
|  |  |  | 
|---|
|  |  |  | if(!hasRunning){ | 
|---|
|  |  |  | cache.ugOverallState.allOver = true ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(cache.ugOverallState.allOver){ | 
|---|
|  |  |  | cache.ugOverallState.overTotal = 0; | 
|---|
|  |  |  | if(cache.ugRtuStateList != null && cache.ugRtuStateList.size() > 0){ | 
|---|
|  |  |  | for(UpgradeRtu rtu : cache.ugRtuStateList){ | 
|---|
|  |  |  | rtu.isOver = true ; | 
|---|
|  |  |  | cache.ugOverallState.overTotal++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return hasRunning ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|