From 9c58ad1bbcff068694ea2fcd7fea468bf445a4d3 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 13 二月 2025 16:04:08 +0800
Subject: [PATCH] 通信中间件,启用消息推送测试代码

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java |   70 +++++++++++++++++++++++++++++-----
 1 files changed, 59 insertions(+), 11 deletions(-)

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 dc3f161..9caed79 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,11 +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 ;
@@ -43,8 +47,11 @@
      *  鍒濆鍖栭厤缃俊鎭�
      */
     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;
     }
 
     /**
@@ -62,8 +69,10 @@
                     this.task.forceOver();
                 }
                 this.task = new UpgradeTask();
-                this.task.initOption(this.failTryTimes, this.ugMaxRtuSameTime);
+                this.task.initOption(this.openNoUpgrade, 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() + "鍙�                            =") ;
@@ -111,9 +120,9 @@
      * @param protocolVersion 涓婅鏁版嵁瀵瑰簲鐨勫崗璁増鏈彿
      * @param callbackCom 鍥炶皟鍑芥暟锛屽鐞嗕笅琛屽懡浠�
      */
-    public void trigger(String rtuAddr, String code, String protocolName, Short protocolVersion, Callback callbackCom){
+    public void trigger(String rtuAddr, String code, String protocolName, Short protocolVersion, Callback callbackCom, Object ...objects){
         if(task != null && !task.taskIsOver){
-            this.task.trigger(rtuAddr, code, protocolName, protocolVersion, callbackCom);
+            this.task.trigger(rtuAddr, code, protocolName, protocolVersion, callbackCom, objects);
         }
     }
 
@@ -191,6 +200,13 @@
             this.stop() ;
         }else{
             if(!this.task.taskIsOver){
+                if(this.openNoUpgrade != null
+                        && this.openNoUpgrade.booleanValue()
+                        && this.monitorFirst){
+                    //绗竴娆¤繘鍏ワ紝杩涜闃�寮�涓嶅崌绾у鐞�
+                    this.task.openNoUpgrade() ;
+                }
+                this.nowNotifyTimesAfterOver = 0 ;
                 //鍗囩骇浠诲姟鏈畬鎴�
                 //宸ヤ綔1锛氬垽鏂槸鍚︽棤浠讳綍涓�涓猂TU杩涜杩囧崌绾э紝骞朵笖杈惧埌鏃堕檺锛屽垯璁や负褰撳墠鍗囩骇浠诲姟瀹屾垚
                 //-1:鏃犱竴RTU鍗囩骇涓旇秴鏃讹紝0锛氭棤RTU鍗囩骇浣嗘湭瓒呮椂绛夊緟锛�1鏈塕TU鍗囩骇姝e父鎵ц
@@ -208,27 +224,44 @@
                 }else if(temp == 1){
                     //褰撳墠鏈塕TU杩涜杩囧崌绾�
                     //宸ヤ綔2锛氱粺璁″綋鍓嶆鍦ㄥ崌绾х殑RTU鏁伴噺锛屼负鍚屾椂鍗囩骇鏁伴噺闄愬埗鍋氬噯澶�
-                    this.task.countRunningRtuCount() ;
+                    temp = this.task.countRunningRtuCount() ;
+                    if(temp > 0){
+                        //璇村墠褰撳墠杩樻湁鍗囩骇涓殑RTU
+                    }
 
                     //宸ヤ綔3锛氱粺璁¢渶瑕佸崌绾т絾褰撳墠绂荤嚎RTU鐨勬儏鍐碉紝瓒呰繃鏃堕檺鐨勮缃负鍗囩骇瀹屾垚
                     int tmp = this.task.countOffRtuAndSetIfOver() ;
                     if(tmp >= 1){
-                        //瓒呮椂锛屽己鍒惰缃竴浜汻TU鍗囩骇澶辫触骞朵笖鍗囩骇瀹屾垚锛�
+                        //瓒呮椂锛屽己鍒惰缃竴浜汻TU鍗囩骇澶辫触骞朵笖鍗囩骇瀹屾垚
                         log.info("======================================================") ;
                         log.info("=                                                    =") ;
                         log.info("=鍥犵绾胯秴鏃讹紝寮哄埗璁剧疆" + tmp + "鍙癛TU鍗囩骇澶辫触骞朵笖鍗囩骇瀹屾垚            =") ;
                         log.info("=                                                    =") ;
                         log.info("======================================================") ;
                     }else if(tmp == 0){
+                        /*
                         log.info("======================================================") ;
                         log.info("=                                                    =") ;
                         log.info("=绂荤嚎瓒呮椂锛屼絾鏃犱竴鍙癛TU鍥犵绾胯�岃璁剧疆鎴愬崌绾уけ璐ュ苟涓斿崌绾у畬鎴�     =") ;
                         log.info("=                                                    =") ;
                         log.info("======================================================") ;
+                         */
                     }else{//tmp = -1
                         //鏃犱换鍔¢�昏緫
                     }
-                    //宸ヤ綔4锛氱粺璁℃槸鍚﹀叏閮ㄥ崌绾у畬鎴�
+
+                    //宸ヤ綔4锛氱粺璁¤繘琛屽崌绾ц繃绋嬭�屽悗鍙堝仠姝㈠崌绾э紝鍙戝憜涓�瀹氭椂闀跨殑璁惧
+                    tmp = this.task.countRunningIdleRtuAndSetIfOver() ;
+                    if(tmp >= 1){
+                        //鍗囩骇鍙戝憜瓒呮椂锛屽己鍒惰缃竴浜汻TU鍗囩骇澶辫触骞朵笖鍗囩骇瀹屾垚
+                        log.info("======================================================") ;
+                        log.info("=                                                    =") ;
+                        log.info("=鍥犲崌绾у彂鍛嗚秴鏃讹紝寮哄埗璁剧疆" + tmp + "鍙癛TU鍗囩骇澶辫触骞朵笖鍗囩骇瀹屾垚          =") ;
+                        log.info("=                                                    =") ;
+                        log.info("======================================================") ;
+                    }
+
+                    //宸ヤ綔5锛氱粺璁℃槸鍚﹀叏閮ㄥ崌绾у畬鎴�
                     this.task.taskIsOver = this.task.countIsAllOver() ;
                     if(this.task.taskIsOver){
                         log.info("==================================================") ;
@@ -247,24 +280,38 @@
                         this.task.taskOverDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;//浠诲姟瀹屾垚鏃堕棿(yyyy-mm-dd HH:MM:SS)
                     }
                     //浠诲姟瀹屾垚锛屾墽琛屾渶鍚庝竴娆″崌绾х姸鎬侀�氱煡
-                    //宸ヤ綔5锛氬崌绾х姸鎬侀�氱煡
+                    //宸ヤ綔6锛氬崌绾х姸鎬侀�氱煡
                     //if(!first){
                     //    this.notifyUpgradeStatus() ;
                     //}
                 }else{
                     //浠诲姟鏈畬鎴愶紝缁х画鎵ц鍗囩骇鐘舵�侀�氱煡
-                    //宸ヤ綔5锛� 鍗囩骇鐘舵�侀�氱煡
+                    //宸ヤ綔6锛� 鍗囩骇鐘舵�侀�氱煡
                     //if(!first){
                     //    this.notifyUpgradeStatus() ;
                     //}
                 }
-                //宸ヤ綔5锛氬崌绾х姸鎬侀�氱煡
+                //宸ヤ綔6锛氬崌绾х姸鎬侀�氱煡
                 if(!this.monitorFirst){
                     this.notifyUpgradeStatus() ;
                 }
             }else{
                 //浠诲姟宸茬粡瀹屾垚
-                this.stop();
+                //宸ヤ綔6锛氫换鍔$粨鏉熷悗锛屾渶鍚庡彂鍗囩骇鐘舵�侀�氱煡
+                if(this.nowNotifyTimesAfterOver == 0){
+                    this.nowNotifyTimesAfterOver++ ;
+                    this.notifyUpgradeStatus() ;//蹇呴』閫氱煡涓�娆�
+                }else{
+                    //鐒跺悗閲嶅閫氱煡
+                    if(this.nowNotifyTimesAfterOver <= this.notifyTimesAfterOver){
+                        //淇濊瘉涓婇潰蹇呴』閫氱煡涓�娆★紝閭f澶勪笂闈f涓氨寰楃敤<=
+                        this.nowNotifyTimesAfterOver++ ;
+                        this.notifyUpgradeStatus() ;
+                    }else{
+                        this.stop();
+                    }
+                }
+
             }
         }
         if(this.monitorFirst){
@@ -273,6 +320,7 @@
         return true ;
     }
 
+
     /**
      * 鍗囩骇鐘舵�侀�氱煡
      */

--
Gitblit v1.8.0