From 02d9502caf71d1b40fdec03c19d63f58c7b593ec Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期六, 23 十一月 2024 11:57:01 +0800 Subject: [PATCH] 改一下 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java | 133 +++++++++++++++++++++++++++++++++----------- 1 files changed, 99 insertions(+), 34 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java index abf7883..abfdc1b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java @@ -1,5 +1,7 @@ package com.dy.pipIrrRemote.rtuUpgrage; +import com.dy.common.contant.Constant; +import com.dy.common.multiDataSource.DataSourceContext; import com.dy.common.softUpgrade.state.UpgradeInfo; import com.dy.common.softUpgrade.state.UpgradeRtu; import com.dy.common.softUpgrade.state.UpgradeState; @@ -12,6 +14,8 @@ import com.dy.pipIrrGlobal.pojoUg.UgRtuTask; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,11 +47,15 @@ */ @Hidden //涓嶅叕寮�鎺ュ彛锛屽叾鍙湁閫氫俊涓棿浠惰皟鐢� @PostMapping(path = "/receive") - public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo info){ - log.info("鎺ユ敹鍒扮殑RTU杩滅▼鍗囩骇鐘舵�佹暟鎹负锛歿}", info.toString()); + public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo info, HttpServletRequest req, HttpServletResponse rep){ + log.info("鎺ユ敹鍒扮殑RTU杩滅▼鍗囩骇鐘舵�佹暟鎹负锛歿}", info.toString("532328000214")); //杩涜鎺掑簭 //Comparator<UpgradeRtu> comparator = Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder()); //info.ugRtuStateList = info.ugRtuStateList.stream().sorted(comparator).collect(Collectors.toList()); + + //閫氫俊涓棿浠朵紶杩囨潵鐨勬満鏋則ag锛屼互鐢ㄤ簬鏌ユ壘鏁版嵁婧� + String token = req.getHeader(Constant.UserTokenKeyInHeader); + DataSourceContext.set(token); if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ if(info.ugRtuStateList.size() < 10){ @@ -57,20 +65,20 @@ } } 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; //褰揷ache涓湁鍊兼椂锛岃繘琛屾瘮瀵瑰瓨鍌紝瀵规瘮鐩殑鏄槻姝㈤噸澶嶆搷浣滄暟鎹簱 if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList); - cache = info; } } return null; @@ -112,6 +120,14 @@ private static ThreadJob threadJob ; + protected void resetDemo(){ + if(threadJob != null){ + threadJob.stop() ; + threadJob = null ; + } + cache = null ; + } + protected void demo(){ if(cache == null){ UgRtuTask tpo = this.sv.selectLastTask() ; @@ -137,7 +153,17 @@ threadJob = new ThreadJob() { @Override public Object execute() throws Exception { - runDemo() ; + while(!this.stop){ + if(!runInDemo()){ + this.stop = true ; + }else{ + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } return null; } }; @@ -162,22 +188,11 @@ } } } - private void runDemo(){ - boolean hasRunning = true ; - while (true){ - for(UpgradeRtu rtu : cache.ugRtuStateList){ - this.rtuUpgrade(rtu) ; - } - hasRunning = this.statisticsNowUpgradeState() ; - if(!hasRunning){ - break ; - } - try { - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } + private boolean runInDemo(){ + for(UpgradeRtu rtu : cache.ugRtuStateList){ + this.rtuUpgrade(rtu) ; } + return this.statisticsNowUpgradeState() ; } private void rtuUpgrade(UpgradeRtu rtu){ if(rtu.lastDownDt == null){ @@ -211,27 +226,62 @@ //绂荤嚎鐨勶紝涓嶅鐞� return ; } - int n = Integer.parseInt(new CreateRandom().create(2)) ; - if(n == 44 || n == 45 || n == 54){ - if(rtu.currentPackage == 1){ - //1鍖呮 - rtu.state = UpgradeRtu.STATE_FAILONE ; - return ; - } - } + if(rtu.currentPackage == rtu.totalPackage){ //鍗囩骇缁撴潫 rtu.state = UpgradeRtu.STATE_SUCCESS ; rtu.isOver = true ; return ; } + if(rtu.reTryTimes >= 2){ + //閲嶈瘯娆℃暟杈惧埌鏈�澶у�� + if(rtu.state == UpgradeRtu.STATE_FAILONE || + rtu.state == UpgradeRtu.STATE_FAIL){ + //鍙堝け璐ヤ簡锛岃涓虹粨鏉熶簡 + rtu.isOver = true ; + return ; + } + } - rtu.state = UpgradeRtu.STATE_RUNNING ; - rtu.currentPackage += 1 ; - rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ; - rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; - rtu.reTryTimes = 0 ; - rtu.isOver = false ; + int n = Integer.parseInt(new CreateRandom().create(3)) ; + 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 ; + return ; + } + } + + if(n == 450 || n == 451 || n == 452 || n == 453 || n == 454 || n == 455){ + if(rtu.currentPackage != 1){ + //鍗囨 + rtu.state = UpgradeRtu.STATE_FAIL ; + return ; + } + } + + if(rtu.state == UpgradeRtu.STATE_FAILONE || + rtu.state == UpgradeRtu.STATE_FAIL){ + if(rtu.reTryTimes < 2){ + rtu.state = UpgradeRtu.STATE_RUNNING ; + rtu.currentPackage = 1 ; + rtu.currentRamAddr = 0x00 ; + rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; + rtu.reTryTimes++ ; + rtu.isOver = false ; + return ; + } + } + + if(rtu.state != UpgradeRtu.STATE_FAILONE && + rtu.state != UpgradeRtu.STATE_FAIL){ + rtu.state = UpgradeRtu.STATE_RUNNING ; + rtu.currentPackage += 1 ; + rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ; + rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; + rtu.isOver = false ; + } + } /** @@ -242,9 +292,11 @@ boolean hasRunning = false ; if(cache.ugRtuStateList != null && cache.ugRtuStateList.size() > 0){ cache.ugOverallState.init(); + cache.ugOverallState.rtuTotal = cache.ugRtuStateList.size() ; 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){ @@ -256,6 +308,7 @@ cache.ugOverallState.failOneTotal++; cache.ugOverallState.failTotal++; }else if(rtu.state == UpgradeRtu.STATE_FAIL) { + cache.ugOverallState.failMultiTotal++; cache.ugOverallState.failTotal++; } if(rtu.isOver){ @@ -263,6 +316,18 @@ } } } + 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 ; } } -- Gitblit v1.8.0