From 0cbe3bf67b051b6e66861ea97da2aea08e1fb2ad Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 05 十二月 2024 17:40:37 +0800
Subject: [PATCH] 实现RTU阀开状态不长级功能设置与实现

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                 |    3 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                          |    6 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java                  |    3 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(sp沙盘).xml                                    |    4 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test测试).xml                                  |    4 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java     |    4 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ym元谋).xml                                    |    4 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java          |   16 +++++++-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java             |   33 ++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java |    8 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java                    |   10 ++++
 11 files changed, 90 insertions(+), 5 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
index ef50911..41b06f6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
@@ -14,6 +14,8 @@
 public class UpgradeRtu {
 
     @JSONField(serialize = false)
+    public static final int STATE_OPEN = -2 ;//-1-闃�寮�锛堟车寮�锛変笉鑳藉崌绾�
+    @JSONField(serialize = false)
     public static final int STATE_OFFLINE = -1 ;//-1-绂荤嚎
     @JSONField(serialize = false)
     public static final int STATE_UNSTART = 0 ;//0-鏈紑濮�
@@ -28,10 +30,12 @@
     @JSONField(serialize = false)
     public static final int STATE_FAILOFFLINE = 5 ;//4-鍗囩骇澶辫触锛堢绾匡級
     @JSONField(serialize = false)
+    public static final int STATE_FAILOPEN = 6 ;//4-鍗囩骇澶辫触锛堥榾寮�锛�
+    @JSONField(serialize = false)
     public static final int RAMADDRADD = 0x200 ;//绋嬪簭瀛樺偍鍐呭瓨鍦ㄥ潃澧為噺
 
     public String rtuAddr ;
-    public int state ;// -1-绂荤嚎锛�0-鏈紑濮嬶紝1-鍗囩骇涓紝2-鍗囩骇鎴愬姛锛�3-鍗囩骇澶辫触锛�1鍖呮锛夛紝4-鍗囩骇澶辫触锛堥潪1鍖呮锛夛紝5-鍗囩骇澶辫触锛堢绾匡級
+    public int state ;// -1-绂荤嚎锛�0-鏈紑濮嬶紝1-鍗囩骇涓紝2-鍗囩骇鎴愬姛锛�3-鍗囩骇澶辫触锛�1鍖呮锛夛紝4-鍗囩骇澶辫触锛堥潪1鍖呮锛夛紝5-鍗囩骇澶辫触锛堢绾匡級锛�6-鍗囩骇澶辫触锛堥榾寮�锛�
     public int totalPackage ;// 鎬诲寘鏁�
     public int currentPackage ;// 褰撳墠涓嬪彂鍗囩骇鍖呮暟
     public int currentRamAddr ;// 褰撳墠涓嬪彂鍗囩骇鍖匯TU瀛樺偍鍦板潃
@@ -55,6 +59,8 @@
 
     public static String getStateName(int state){
         switch (state) {
+            case STATE_OPEN:
+                return "闃�寮�";
             case STATE_OFFLINE:
                 return "绂荤嚎";
             case STATE_UNSTART:
@@ -69,6 +75,8 @@
                 return "澶氬寘姝�";
             case STATE_FAILOFFLINE:
                 return "绂荤嚎澶辫触";
+            case STATE_FAILOPEN:
+                return "闃�寮�澶辫触";
             default:
                 return "鏈煡";
         }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
index 9c98e77..eaefce6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
@@ -20,6 +20,7 @@
     public int dieOneTotal;//鎵�鏈変竴鍖呮
     public int dieMultiTotal;//鎵�鏈夊鍖呮
     public int failOffTotal ;//鎵�鏈夌绾垮け璐�
+    public int failOpenTotal ;//鎵�鏈夐榾寮�澶辫触
 
     public Boolean allOver ;//鎵�鏈夐兘缁撴潫锛坱rue:鏄紝false:鍚︼級
 
@@ -38,6 +39,7 @@
         this.dieOneTotal = 0;
         this.dieMultiTotal = 0;
         this.failOffTotal = 0;
+        this.failOpenTotal = 0;
         this.allOver = false ;
     }
 
@@ -54,6 +56,7 @@
         sb.append("    \n涓�鍖呮澶辫触鎬绘暟锛�" + dieOneTotal) ;
         sb.append("    \n澶氬寘姝诲け璐ユ�绘暟锛�" + dieMultiTotal) ;
         sb.append("    \n绂荤嚎澶辫触鎬绘暟锛�" + failOffTotal) ;
+        sb.append("    \n闃�寮�澶辫触鎬绘暟锛�" + failOpenTotal) ;
         sb.append("    \n鍏ㄧ粨鏉燂細" + allOver) ;
         return sb.toString() ;
     }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 816c25a..09521d0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -336,6 +336,9 @@
 			//RTU杩滅▼鍗囩骇妯″潡
 			UpgradeUnitConfigVo ugVo = new UpgradeUnitConfigVo();
 			ugVo.enable = conf.getSetAttrBoolean(doc, "config.upgrade", "enable", null, null) ;
+			ugVo.openNoUpgrade = conf.getSetAttrBoolean(doc, "config.upgrade", "openNoUpgrade", null, null) ;
+			ugVo.lastOpenMaxGoOn = conf.getSetAttrPlusInt(doc, "config.upgrade", "lastOpenMaxGoOn", null, 5, 360000, null);
+			ugVo.lastOpenMaxGoOn = ugVo.lastOpenMaxGoOn * 1000 ;//鍙樻垚姣
 			ugVo.noOneRtuUpgradeMaxDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "noOneRtuUpgradeMaxDuration", null, 5, 360000, null);
 			ugVo.noOneRtuUpgradeMaxDuration = ugVo.noOneRtuUpgradeMaxDuration * 1000 ;//鍙樻垚姣
 			ugVo.runningAndIdleDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "runningAndIdleDuration", null, 5, 360000, null);
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
index bd52b71..39943c2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -25,13 +25,15 @@
 
     private static final UpgradeManager INSTANCE = new UpgradeManager();
 
+    private Boolean openNoUpgrade ;//闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+    private Integer lastOpenMaxGoOn ;//闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
     private Integer failTryTimes ;//鍗囩骇澶辫触鍚庯紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛�0琛ㄧず涓嶉噸鏂板伩璇曞崌绾�
     private Integer ugMaxRtuSameTime ;//鍚屾椂鍗囩骇RTU鏈�澶т釜鏁�
     private Integer notifyTimesAfterOver; //鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
     private int nowNotifyTimesAfterOver; //鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
 
     private UpgradeTask task ;//鍗囩骇浠诲姟
-    private boolean monitorFirst = true ;//鏄惁鏄涓�娆$洃瑙�
+    private boolean monitorFirst ;//鏄惁鏄涓�娆$洃瑙�
 
     private UpgradeManager(){
         monitorFirst = true ;
@@ -45,6 +47,8 @@
      *  鍒濆鍖栭厤缃俊鎭�
      */
     public void initOption(UpgradeUnitConfigVo configVo) {
+        this.openNoUpgrade = configVo.openNoUpgrade;
+        this.lastOpenMaxGoOn = configVo.lastOpenMaxGoOn;
         this.failTryTimes = configVo.failTryTimes;
         this.ugMaxRtuSameTime = configVo.ugMaxRtuAtOnce;
         this.notifyTimesAfterOver = configVo.notifyTimesAfterOver;
@@ -65,9 +69,10 @@
                     this.task.forceOver();
                 }
                 this.task = new UpgradeTask();
-                this.task.initOption(this.failTryTimes, this.ugMaxRtuSameTime);
+                this.task.initOption(this.lastOpenMaxGoOn, this.failTryTimes, this.ugMaxRtuSameTime);
                 this.task.setTask(vo);
                 this.nowNotifyTimesAfterOver = 0 ;
+                this.monitorFirst = true ;
                 log.info("======================================================") ;
                 log.info("=                                                    =") ;
                 log.info("=璁剧疆浜嗗崌绾т换鍔★紝娑夊強RTU" + vo.rtuAddrList.size() + "鍙�                            =") ;
@@ -195,6 +200,12 @@
             this.stop() ;
         }else{
             if(!this.task.taskIsOver){
+                if(this.openNoUpgrade != null
+                        && this.openNoUpgrade.booleanValue()
+                        && this.monitorFirst){
+                    //绗竴娆¤繘鍏ワ紝杩涜闃�寮�涓嶅崌绾у鐞�
+                    this.task.openNoUpgrade() ;
+                }
                 this.nowNotifyTimesAfterOver = 0 ;
                 //鍗囩骇浠诲姟鏈畬鎴�
                 //宸ヤ綔1锛氬垽鏂槸鍚︽棤浠讳綍涓�涓猂TU杩涜杩囧崌绾э紝骞朵笖杈惧埌鏃堕檺锛屽垯璁や负褰撳墠鍗囩骇浠诲姟瀹屾垚
@@ -309,6 +320,7 @@
         return true ;
     }
 
+
     /**
      * 鍗囩骇鐘舵�侀�氱煡
      */
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
index 81fa856..c5d795e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -1,12 +1,14 @@
 package com.dy.rtuMw.server.upgrade;
 
 import com.alibaba.fastjson2.annotation.JSONField;
+import com.dy.common.mw.protocol.rtuState.RtuStatus;
 import com.dy.common.softUpgrade.parse.HexFileParse;
 import com.dy.common.softUpgrade.state.UpgradeRtu;
 import com.dy.common.softUpgrade.state.UpgradeState;
 import com.dy.common.softUpgrade.state.UpgradeTaskVo;
 import com.dy.common.util.Callback;
 import com.dy.common.util.DateTime;
+import com.dy.rtuMw.server.forTcp.RtuStatusDealer;
 import lombok.Data;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -32,6 +34,8 @@
     protected Integer failTryTimes ;//鍗囩骇澶辫触鍚庯紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛�0琛ㄧず涓嶉噸鏂板伩璇曞崌绾�
     @JSONField(serialize = false)
     protected Integer ugMaxRtuSameTime ;//鍚屾椂鍗囩骇RTU鏈�澶т釜鏁�
+    @JSONField(serialize = false)
+    private Integer lastOpenMaxGoOn ;//闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
 
     public String setupDt ;//璁剧疆鏃堕棿(yyyy-mm-dd HH:MM:SS)
     @JSONField(serialize = false)
@@ -60,7 +64,8 @@
     /**
      *  鍒濆鍖栭厤缃俊鎭�
      */
-    public void initOption(Integer failTryTimes, Integer ugMaxRtuSameTime) {
+    public void initOption(Integer lastOpenMaxGoOn, Integer failTryTimes, Integer ugMaxRtuSameTime) {
+        this.lastOpenMaxGoOn = lastOpenMaxGoOn;
         this.failTryTimes = failTryTimes;
         this.ugMaxRtuSameTime = ugMaxRtuSameTime;
     }
@@ -222,6 +227,9 @@
                     }else if(info.state == UpgradeRtu.STATE_FAILOFFLINE) {
                         state.failTotal++;
                         state.failOffTotal++;
+                    }else if(info.state == UpgradeRtu.STATE_FAILOPEN) {
+                        state.failTotal++;
+                        state.failOpenTotal++;
                     }
                     if(info.isOver){
                         state.overTotal++;
@@ -282,6 +290,29 @@
     ///////////////////////////////////////////////////////////
 
     /**
+     * 闃�寮�锛堟车寮�锛変笉鍗囩骇澶勭悊
+     */
+    protected void openNoUpgrade(){
+        if(this.upgradeRtus != null && this.upgradeRtus.size() > 0){
+            Map<String, RtuStatus> rsAllMap = RtuStatusDealer.allStatus() ;
+            Long now = System.currentTimeMillis() ;
+            this.upgradeRtus.values().stream().forEach(a -> {
+                RtuStatus rs = rsAllMap.get(a.rtuAddr) ;
+                if(rs != null
+                        && rs.valveOpenTrueCloseFalse != null && rs.valveOpenTrueCloseFalse.booleanValue() == true
+                        && rs.valveStatusLastTimeStamp != null){
+                    //鏈夌姸鎬侊紝骞朵笖鏄榾寮�锛堟车寮�锛�
+                    Long gap = now - rs.valveStatusLastTimeStamp ;
+                    if(gap < this.lastOpenMaxGoOn){
+                        //杩欐椂閲囩撼闃�闂ㄦ墦寮�鐘舵�佷笉鑳藉崌绾�
+                        a.isOver = true ;
+                        a.state = UpgradeRtu.STATE_FAILOPEN ;
+                    }
+                }
+            });
+        }
+    }
+    /**
      * 鍒ゆ柇鏄惁娌$敤浠讳綍涓�涓猂TU杩涜杩囧崌绾э紝鑰屼笖瓒呰繃浜嗘椂闄�
      * @return -1:鏃犱竴RTU鍗囩骇涓旇秴鏃讹紝0锛氭棤RTU鍗囩骇浣嗘湭瓒呮椂绛夊緟锛�1鏈塕TU鍗囩骇姝e父鎵ц
      */
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java
index dcd84f7..6adbf52 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java
@@ -9,6 +9,8 @@
 
     public Boolean showStartInfo ;
     public Boolean enable ;//妯″潡鏄惁鍚姩
+    public Boolean openNoUpgrade ;//闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+    public Integer lastOpenMaxGoOn; //闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
     public Integer noOneRtuUpgradeMaxDuration ;//鍗囩骇浠诲姟璁剧疆鍚庯紝娌℃湁璁惧鍗囩骇鏈�澶ф椂闀匡紙姣锛夛紝瓒呰繃杩欎釜鏃堕暱锛岃涓哄崌绾т换鍔″畬鎴愶紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
     public Integer runningAndIdleDuration ;//rtu鍗囩骇鍚姩鍚庤繘鍏ュ崌绾т腑鐘舵�侊紝浣嗘煇绉嶆儏鍐典笅RTU涓嶅啀閫氫俊浜嗭紝涓�鐩村浜庣瓑寰呯姸鎬侊紝绛夊緟杈惧埌涓�瀹氭椂闀匡紙绉掞級璁や负鍗囩骇澶辫触锛堜竴鍖呮鎴栧鍖呮锛夛紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
     public Integer failTryTimes ;//鍗囩骇澶辫触鍚庯紙閽堝鐨勬槸鍦ㄧ嚎杩涜浜嗗崌绾т笅鍙戝懡浠わ級锛岄噸鏂板伩璇曞崌绾ф鏁帮紝0琛ㄧず涓嶉噸鏂板伩璇曞崌绾�
@@ -19,6 +21,8 @@
 
     public UpgradeUnitConfigVo(){
         this.enable = false ;
+        this.openNoUpgrade = true ;
+        this.lastOpenMaxGoOn = 30 * 60 * 1000 ;
         this.noOneRtuUpgradeMaxDuration = 10 * 60 * 1000 ;
         this.runningAndIdleDuration = 10 * 60 * 1000 ;
         this.failTryTimes = 0 ;
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
index 0dc339e..9a6b456 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
@@ -56,6 +56,8 @@
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+	lastOpenMaxGoOn: 闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
 	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	runningAndIdleDuration锛歳tu鍗囩骇鍚姩鍚庤繘鍏ュ崌绾т腑鐘舵�侊紝浣嗘煇绉嶆儏鍐典笅RTU涓嶅啀閫氫俊浜嗭紝涓�鐩村浜庣瓑寰呯姸鎬侊紝绛夊緟杈惧埌涓�瀹氭椂闀匡紙绉掞紝涓�鑸笌noOneRtuUpgradeMaxDuration鐩哥瓑锛夎涓哄崌绾уけ璐ワ紙涓�鍖呮鎴栧鍖呮锛夛紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
@@ -65,6 +67,8 @@
 	notifyTimesAfterOver: 鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
 	-->
 	<upgrade enable="true"
+			 openNoUpgrade="true"
+			 lastOpenMaxGoOn="1800"
 			 noOneRtuUpgradeMaxDuration="1200"
 			 runningAndIdleDuration="1200"
 			 failTryTimes="2"
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
index e51b322..f399cc7 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
@@ -56,6 +56,8 @@
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+	lastOpenMaxGoOn: 闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
 	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	runningAndIdleDuration锛歳tu鍗囩骇鍚姩鍚庤繘鍏ュ崌绾т腑鐘舵�侊紝浣嗘煇绉嶆儏鍐典笅RTU涓嶅啀閫氫俊浜嗭紝涓�鐩村浜庣瓑寰呯姸鎬侊紝绛夊緟杈惧埌涓�瀹氭椂闀匡紙绉掞紝涓�鑸笌noOneRtuUpgradeMaxDuration鐩哥瓑锛夎涓哄崌绾уけ璐ワ紙涓�鍖呮鎴栧鍖呮锛夛紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
@@ -65,6 +67,8 @@
 	notifyTimesAfterOver: 鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
 	-->
 	<upgrade enable="true"
+			 openNoUpgrade="true"
+			 lastOpenMaxGoOn="1800"
 			 noOneRtuUpgradeMaxDuration="1200"
 			 runningAndIdleDuration="1200"
 			 failTryTimes="2"
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
index 289bac9..dcd78cc 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
@@ -56,6 +56,8 @@
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+	lastOpenMaxGoOn: 闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
 	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	runningAndIdleDuration锛歳tu鍗囩骇鍚姩鍚庤繘鍏ュ崌绾т腑鐘舵�侊紝浣嗘煇绉嶆儏鍐典笅RTU涓嶅啀閫氫俊浜嗭紝涓�鐩村浜庣瓑寰呯姸鎬侊紝绛夊緟杈惧埌涓�瀹氭椂闀匡紙绉掞紝涓�鑸笌noOneRtuUpgradeMaxDuration鐩哥瓑锛夎涓哄崌绾уけ璐ワ紙涓�鍖呮鎴栧鍖呮锛夛紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
@@ -65,6 +67,8 @@
 	notifyTimesAfterOver: 鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
 	-->
 	<upgrade enable="true"
+			 openNoUpgrade="true"
+			 lastOpenMaxGoOn="1800"
 			 noOneRtuUpgradeMaxDuration="1200"
 			 runningAndIdleDuration="1200"
 			 failTryTimes="2"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index 181dafb..dcd78cc 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -56,6 +56,8 @@
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
+	lastOpenMaxGoOn: 闃�寮�锛堟车寮�锛夌姸鎬佽缃互鏉ユ寔缁渶闀挎椂闂达紙绉掗挓锛夛紝瓒呰繃杩欎釜鏃堕棿璁や负鐘舵�佹棤鏁堬紙杩欎釜鏃堕暱鍙栧喅浜庡伐浣滄姤闂撮殧锛�
 	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	runningAndIdleDuration锛歳tu鍗囩骇鍚姩鍚庤繘鍏ュ崌绾т腑鐘舵�侊紝浣嗘煇绉嶆儏鍐典笅RTU涓嶅啀閫氫俊浜嗭紝涓�鐩村浜庣瓑寰呯姸鎬侊紝绛夊緟杈惧埌涓�瀹氭椂闀匡紙绉掞紝涓�鑸笌noOneRtuUpgradeMaxDuration鐩哥瓑锛夎涓哄崌绾уけ璐ワ紙涓�鍖呮鎴栧鍖呮锛夛紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
@@ -65,6 +67,8 @@
 	notifyTimesAfterOver: 鍗囩骇缁撴潫鍚庯紝鍐嶅悜web鏈嶅姟绯荤粺閫氱煡鐘舵�佺殑娆℃暟
 	-->
 	<upgrade enable="true"
+			 openNoUpgrade="true"
+			 lastOpenMaxGoOn="1800"
 			 noOneRtuUpgradeMaxDuration="1200"
 			 runningAndIdleDuration="1200"
 			 failTryTimes="2"
@@ -73,6 +77,8 @@
 			 notifyStateInterval="2"
 			 notifyTimesAfterOver="1"
 	/>
+
+
 	<!--
     鏀寔妯″潡
     鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
index 03c204d..9e7d9cc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeResSv.java
@@ -87,7 +87,8 @@
                         ok = rtu.state == UpgradeRtu.STATE_OFFLINE
                                 || rtu.state == UpgradeRtu.STATE_FAILONE
                                 || rtu.state == UpgradeRtu.STATE_FAIL
-                                || rtu.state == UpgradeRtu.STATE_FAILOFFLINE;
+                                || rtu.state == UpgradeRtu.STATE_FAILOFFLINE
+                                || rtu.state == UpgradeRtu.STATE_FAILOPEN;
                     }
                 }
                 if(qvoRtuAddr != null && !qvoRtuAddr.trim().equals("")){
@@ -117,6 +118,11 @@
                             vo.rtuAddr = rtu.rtuAddr ;
                             vo.result = "绂荤嚎" ;
                             list.add(vo);
+                        }else if(rtu.state == UpgradeRtu.STATE_FAILOPEN){
+                            VoUgRtuResult vo = new VoUgRtuResult() ;
+                            vo.rtuAddr = rtu.rtuAddr ;
+                            vo.result = "闃�寮�" ;
+                            list.add(vo);
                         }else if(rtu.state == UpgradeRtu.STATE_FAILONE){
                             VoUgRtuResult vo = new VoUgRtuResult() ;
                             vo.rtuAddr = rtu.rtuAddr ;

--
Gitblit v1.8.0