From 1878514e0f33afba547955bd1bbc66318a05af88 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 22 十一月 2024 10:09:20 +0800
Subject: [PATCH] 升级演示程序逻辑修改

---
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java |   76 ++++++++++++++++++++++++++++++--------
 1 files changed, 60 insertions(+), 16 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 c32acaa..b1361a7 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){
@@ -218,27 +226,59 @@
             //绂荤嚎鐨勶紝涓嶅鐞�
             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){
+            //鍗囩骇缁撴潫
+            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){
+            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.reTryTimes = 0 ;
+            rtu.isOver = false ;
+        }
+
     }
 
     /**
@@ -249,6 +289,7 @@
         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 ++ ;
@@ -270,6 +311,9 @@
                 }
             }
         }
+        if(!hasRunning){
+            cache.ugOverallState.allOver = true ;
+        }
         return hasRunning ;
     }
 }

--
Gitblit v1.8.0