From f913e0bef379c480805046ae8cd09532f530cf31 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 28 十一月 2024 16:25:00 +0800 Subject: [PATCH] 升级任务结束后,更新数据库,update任务完成状态 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 39 insertions(+), 14 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 897e5a7..a235a0c 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 @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -48,15 +49,8 @@ @Hidden //涓嶅叕寮�鎺ュ彛锛屽叾鍙湁閫氫俊涓棿浠惰皟鐢� @PostMapping(path = "/receive") 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){ for (UpgradeRtu rtuVo : info.ugRtuStateList) { @@ -64,12 +58,22 @@ } } } + */ + + //杩涜鎺掑簭 + 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(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); } } @@ -78,7 +82,11 @@ if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){ //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList); - cache = info; + } + //cache璧嬪�煎繀椤绘斁鍦ㄤ笂闈㈠鐞嗙殑鍚庨潰锛屽惁鍒欎笂闈㈢殑姣旇緝涓嶆垚鍔� + cache = info; + if(info.ugOverallState != null && info.ugOverallState.allOver){ + this.saveTaskOver(info.ugTaskId) ; } } return null; @@ -103,15 +111,28 @@ */ private void save2Db(String taskId, List<UpgradeRtu> newList, List<UpgradeRtu> oldList){ List<UpgradeRtu> newOverList = newList.stream().filter(vo -> vo.isOver).collect(Collectors.toList()) ; + List<UpgradeRtu> oldNoOverList = newList.stream().filter(vo -> !vo.isOver).collect(Collectors.toList()) ; for(UpgradeRtu nvo : newOverList){ if(nvo != null) { - if(oldList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr) && vo.isOver == false)){ + if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){ //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡 this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo); } } } } + + /** + * 淇濆瓨鍗囩骇浠诲姟宸茬粡鎵ц瀹屾垚 + * @param taskId + */ + private void saveTaskOver(String taskId){ + this.sv.updateTaskOver(taskId) ; + } + + + + ///////////////////////////////////////////////////// // // 浠ヤ笅妯℃嫙鏁版嵁 @@ -154,7 +175,7 @@ @Override public Object execute() throws Exception { while(!this.stop){ - if(!runDemo()){ + if(!runInDemo()){ this.stop = true ; }else{ try { @@ -188,7 +209,7 @@ } } } - private boolean runDemo(){ + private boolean runInDemo(){ for(UpgradeRtu rtu : cache.ugRtuStateList){ this.rtuUpgrade(rtu) ; } @@ -296,6 +317,7 @@ 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){ @@ -304,9 +326,10 @@ }else if(rtu.state == UpgradeRtu.STATE_SUCCESS) { cache.ugOverallState.successTotal++; }else if(rtu.state == UpgradeRtu.STATE_FAILONE) { - cache.ugOverallState.failOneTotal++; + cache.ugOverallState.dieOneTotal++; cache.ugOverallState.failTotal++; }else if(rtu.state == UpgradeRtu.STATE_FAIL) { + cache.ugOverallState.dieMultiTotal++; cache.ugOverallState.failTotal++; } if(rtu.isOver){ @@ -318,9 +341,11 @@ 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++; } } } -- Gitblit v1.8.0