From 14d7f0df63340ede75458c0e91b902376ef4dd64 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 20 十一月 2024 11:26:32 +0800
Subject: [PATCH] 1、优化代码;2、修改长级测试中发现的bug;3、通信中间件配置文件配置项修改

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java                        |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java                |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java                      |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java   |   12 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                               |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java                        |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnitConfigVo.java                   |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_83_Up.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java                        |   43 ++-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java                                                 |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/CommonV1.java                                   |    7 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ym元谋).xml                                                  |   76 +++---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_C0_Up.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_84_Up.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java                           |   55 ++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_C0_Up.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                        |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9602_Up.java                           |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java                         |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/upData/UpData.java                    |    4 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java |   15 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java                         |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java                                        |   15 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_02_Up.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java                                   |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(sp沙盘).xml                                                  |   76 +++---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_84_Up.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoPowerAspect.java                                            |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java                        |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeRtuDev.java                         |   34 ++-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java                        |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1/ComSupportP206V1.java               |   15 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java                        |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test测试).xml                                                |   76 +++---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_81_Up.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC16.java                                                    |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java                         |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/global/GlCreate.java                      |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9601_Up.java                           |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java                                                 |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_83_Up.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java                        |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_81_Up.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9603_Up.java                           |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java                                 |   21 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_02_Up.java                             |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/rtuLog/RtuLogSupport.java                  |    8 
 50 files changed, 359 insertions(+), 208 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
index b837f44..5180006 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
@@ -111,9 +111,13 @@
                 response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, SsoVo.class);
             } catch (Exception e) {
                 e.printStackTrace();
+                return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
             }
-            assert response != null;
-            return response.getBody();
+            if(response == null){
+                return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
+            }else{
+                return response.getBody();
+            }
         }else {
             return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌SsoCheckUrl");
         }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoPowerAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoPowerAspect.java
index 6535d5e..0458c3f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoPowerAspect.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoPowerAspect.java
@@ -129,9 +129,13 @@
                 response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, SsoVo.class);
             } catch (Exception e) {
                 e.printStackTrace();
+                return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
             }
-            assert response != null;
-            return response.getBody();
+            if(response == null){
+                return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
+            }else{
+                return response.getBody();
+            }
         }else {
             return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌SsoCheckUrl");
         }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/CommonV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/CommonV1.java
index d77f480..9c147bf 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/CommonV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/CommonV1.java
@@ -75,7 +75,7 @@
 			int len = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV206V1.dataLenIndex);
 			return len + ProtocolConstantV206V1.lenHead2ctrl + ProtocolConstantV206V1.lenTail;
 		}else{
-			int len = ByteUtilUnsigned.bytes2Short_BE(bs, ProtocolConstantV206V1.UG_dataLenIndex_start);
+			int len = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1.UG_dataLenIndex_start);
 			return len + ProtocolConstantV206V1.UG_lenHead2Cmd + ProtocolConstantV206V1.UG_lenTail;
 		}
 	}
@@ -176,8 +176,9 @@
 				return "璁$畻CRC鏄�:" + crcCompute + "锛屼笂浼燙RC鏄�" + crcInBs ;
 			}
 		}else{
-			int crcCompute = (byte)new CRC16().CRC(bs, ProtocolConstantV206V1.ctrlIndex, bs.length - 3) ;
-			int crcInBs = ByteUtilUnsigned.bytes2Short_BE(bs, bs.length - 3) ;
+			short crcCompute = new CRC16().CRC(bs, 0, bs.length - 4) ;
+			short crcInBs = ByteUtil.bytes2Short_BE(bs,bs.length - 3) ;
+			//int crcInBs = ByteUtilUnsigned.bytes2Short_BE(bs, bs.length - 3) ;
 			if(crcCompute == crcInBs){
 				return null ;
 			}else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
index 2bd47f6..2d4b816 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
@@ -112,7 +112,10 @@
 			isFail = true ;
 			return new MidResult[]{(new MidResultError(ProtocolConstantV206V1.protocolName, rtuAddr, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ;
 		} finally{
-			callback.callback(rtuAddr, upCode, CodeV1.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr);
+			if(upCode != null){
+				//CRC楠岃瘉澶辫触鏃讹紝upCode涓簄ull锛屾鏃朵笉杩涜鍥炶皟
+				callback.callback(rtuAddr, upCode, CodeV1.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr);
+			}
 		}
 	}
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_02_Up.java
index b93e73b..fab35eb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_02_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_02_Up.java
@@ -76,7 +76,7 @@
             confirmCommand.isQuickSend = true ;
         }
         callback.callback(midRs.reportOrResponse_trueOrFalse);
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
index 207cabb..845a90a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
@@ -33,7 +33,7 @@
         midRs.downCodeName = CodeV1.getCodeName(para.commandCode) ;//涓嬭鍛戒护鍔熻兘鐮佸悕绉�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
         midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
-        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
         midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
         midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
 
@@ -75,7 +75,7 @@
         if(para.param == null){
             throw new Exception("鍙傛暟涓虹┖") ;
         }
-        if(para.param instanceof Com1601Vo){
+        if(!(para.param instanceof Com1601Vo)){
             throw new Exception("鍙傛暟绫诲瀷闈濩om1601Vo") ;
         }
         Com1601Vo vo = (Com1601Vo) para.param ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
index 41c64e4..8c90752 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
@@ -33,7 +33,7 @@
         midRs.downCodeName = CodeV1.getCodeName(para.commandCode) ;//涓嬭鍛戒护鍔熻兘鐮佸悕绉�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
         midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
-        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
         midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
         midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
index 616e749..672e40c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
@@ -32,7 +32,7 @@
         midRs.downCodeName = CodeV1.getCodeName(para.commandCode) ;//涓嬭鍛戒护鍔熻兘鐮佸悕绉�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
         midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
-        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
         midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
         midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_81_Up.java
index 8bb04f1..1b59ec8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_81_Up.java
@@ -84,7 +84,7 @@
             }
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_83_Up.java
index 4512ccb..dd3e55f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_83_Up.java
@@ -86,7 +86,7 @@
         }
 
         callback.callback(midRs.reportOrResponse_trueOrFalse);
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_84_Up.java
index 50c923d..cc63104 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_84_Up.java
@@ -91,7 +91,7 @@
             */
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9601_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9601_Up.java
index 598d671..434583b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9601_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9601_Up.java
@@ -43,7 +43,7 @@
         midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
         midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
 
-        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+        midRs.reportOrResponse_trueOrFalse = true ;//鍗囩骇鐨勶紝涓嶈涓烘槸鍛戒护搴旂瓟
 
         callback.callback(midRs.reportOrResponse_trueOrFalse);
         if(para.data != null && para.data.getSubData() != null){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9602_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9602_Up.java
index 7c145ac..4981e54 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9602_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9602_Up.java
@@ -43,7 +43,7 @@
         midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
         midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
 
-        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+        midRs.reportOrResponse_trueOrFalse = true ;//鍗囩骇鐨勶紝涓嶈涓烘槸鍛戒护搴旂瓟
 
         callback.callback(midRs.reportOrResponse_trueOrFalse);
         if(para.data != null && para.data.getSubData() != null){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9603_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9603_Up.java
index e820660..4c5fa6c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9603_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_9603_Up.java
@@ -43,7 +43,7 @@
         midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
         midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
 
-        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+        midRs.reportOrResponse_trueOrFalse = true ;//鍗囩骇鐨勶紝涓嶈涓烘槸鍛戒护搴旂瓟
 
         callback.callback(midRs.reportOrResponse_trueOrFalse);
         if(para.data != null && para.data.getSubData() != null){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_C0_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_C0_Up.java
index 7a1545d..9e16294 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_C0_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_C0_Up.java
@@ -84,7 +84,7 @@
             }
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/global/GlCreate.java
index c4a784d..634534a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/global/GlCreate.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/global/GlCreate.java
@@ -92,9 +92,9 @@
     }
 
     public static byte[] createCrcTail4Ug(byte[] bsNoTail) throws Exception {
-        int crc = new CRC16().CRC(bsNoTail, 0, bsNoTail.length -1) ;
+        short crc = new CRC16().CRC(bsNoTail, 0, bsNoTail.length -1) ;
         byte[] bytes = new byte[ProtocolConstantV206V1.UG_lenTail] ;
-        ByteUtilUnsigned.short2Bytes_BE(bytes, crc, 0);
+        ByteUtil.short2Bytes_BE(bytes, crc, 0);
         bytes[2] = ProtocolConstantV206V1.P_Tail_Byte ;
         return bytes ;
     }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_02_Up.java
index 30652a0..148d2d6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_02_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_02_Up.java
@@ -85,7 +85,7 @@
             }
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_81_Up.java
index ddb2004..f01ab6f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_81_Up.java
@@ -83,7 +83,7 @@
                 callback.notify(new ValveStateInfo(cdData.stateVo.valveState.byteValue()== 1?false:true));
             }
         }
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_83_Up.java
index 1321221..22394bd 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_83_Up.java
@@ -86,7 +86,7 @@
                 callback.notify(new ValveStateInfo(false));
             }
         }
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_84_Up.java
index 51b8a5a..4709cd6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_84_Up.java
@@ -92,7 +92,7 @@
             */
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_C0_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_C0_Up.java
index 655c0b5..4d6c2eb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_C0_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_C0_Up.java
@@ -84,7 +84,7 @@
             }
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
index 0e89801..33b3d8c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
@@ -75,7 +75,7 @@
             confirmCommand.isQuickSend = true ;
         }
         callback.callback(midRs.reportOrResponse_trueOrFalse);
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
index 522d2dc..a3d3203 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
@@ -82,7 +82,7 @@
             callback.notify(new ValveStateInfo(true)) ;
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
index 0a92089..d29b1ec 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
@@ -84,7 +84,7 @@
                 callback.notify(new ValveStateInfo(cdData.statePump.byteValue()== 1?true:false));
             }
         }
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
index 2bb9721..7248381 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
@@ -79,7 +79,7 @@
         }
         callback.callback(midRs.reportOrResponse_trueOrFalse);
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
index 5ef45a9..b328650 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
@@ -80,7 +80,7 @@
             callback.notify(new ValveStateInfo(true));
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
index 53cae94..16f2010 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
@@ -81,7 +81,7 @@
             callback.notify(new ValveStateInfo(false));
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
index 78c68dd..a96b095 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
@@ -75,7 +75,7 @@
             confirmCommand.isQuickSend = true ;
         }
         callback.callback(midRs.reportOrResponse_trueOrFalse);
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
index 037cf9c..2408a64 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
@@ -90,7 +90,7 @@
             }
         }
 
-        return new MidResult[]{midRs, confirmCommand} ;
+        return new MidResult[]{confirmCommand, midRs} ;
     }
     /**
      * 鎵ц鍒嗘瀽
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java
index 0f3437b..c7f876e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java
@@ -3,6 +3,7 @@
 import lombok.Data;
 
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * @Author: liurunyu
@@ -17,13 +18,29 @@
     public UpgradeState ugOverallState;
     //鍗囩骇浠诲姟RTU鐘舵�佸垪琛�
     public List<UpgradeRtu> ugRtuStateList;
-
     public String toString(){
+        return this.toString(null) ;
+    }
+
+    public String toString(String logRtuAddr){
         StringBuilder sb = new StringBuilder() ;
         sb.append("RTU杩滅▼鍗囩骇鐘舵�侊細") ;
         sb.append("  \n浠诲姟id锛�" + ugTaskId) ;
         sb.append("  \n" + ugOverallState.toString()) ;
-        //sb.append("  \n鍗囩骇鐨勬帶鍒跺櫒鎬绘暟锛�" + ugRtuStateList.size()) ;
+        if(ugRtuStateList != null && ugRtuStateList.size() > 0){
+            sb.append("  \n鍗囩骇鐨勬帶鍒跺櫒鎬绘暟锛�" + ugRtuStateList.size()) ;
+            sb.append("  \n鍏朵腑涓�涓帶鍒跺櫒鍗囩骇鎯呭喌锛�") ;
+            AtomicBoolean exist = new AtomicBoolean(false);
+            if(logRtuAddr != null){
+                ugRtuStateList.stream().filter(ur -> ur.getRtuAddr().equals(logRtuAddr)).forEach(ur -> {
+                    sb.append("  \n" + ur.toString()) ;
+                    exist.set(true);
+                }) ;
+            }
+            if(!exist.get()){
+                sb.append("  \n" + ugRtuStateList.get(0).toString()) ;
+            }
+        }
         return sb.toString() ;
     }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
index a42953c..5f05861 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
@@ -703,8 +703,7 @@
 			// s1涓嶅彉
 			s0 <<= 8;
 			s = s0 | s1;
-			return (short) s;
-
+			return (short)s ;
 		} else {
 			throw new Exception("byte2Short鏃舵暟缁勮秺鐣�");
 		}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC16.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC16.java
index 09f307c..e056bdc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC16.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC16.java
@@ -34,7 +34,7 @@
 	 * @return CRC
 	 */
 	@SuppressWarnings("unused")
-	public int CRC(byte[] b, int startIndex, int endIndex) {
+	public short CRC(byte[] b, int startIndex, int endIndex) {
 		int crc = 0xFFFF;
 		for (int j = startIndex ; j <= endIndex; j++) {
 			crc = crc ^ ((b[j] + 256) % 256) ;//杞崲鎴愭棤绗﹀彿鏁帮紝鍥犱负缁堢瀹炵幇(C璇█鎴栨眹缂栬瑷�)閮界敤鐨勬槸鏃犵鍙锋暟
@@ -46,7 +46,7 @@
 				}
 			}
 		}
-		return crc;
+		return (short)crc;
 	}
 	
 	
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
index dbe7d40..ac71d4c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
@@ -5,6 +5,7 @@
 import com.dy.common.mw.protocol.CommandType;
 import com.dy.common.softUpgrade.state.UpgradeTaskVo;
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import org.springframework.core.env.Environment;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -90,8 +91,13 @@
             response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
 
@@ -114,7 +120,12 @@
             response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 }
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 346dc92..72902e7 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,12 +336,14 @@
 			//RTU杩滅▼鍗囩骇妯″潡
 			UpgradeUnitConfigVo ugVo = new UpgradeUnitConfigVo();
 			ugVo.enable = conf.getSetAttrBoolean(doc, "config.upgrade", "enable", null, null) ;
+			ugVo.noOneRtuUpgradeMaxDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "noOneRtuUpgradeMaxDuration", null, 5, 3600, null);
+			ugVo.noOneRtuUpgradeMaxDuration = ugVo.noOneRtuUpgradeMaxDuration * 1000 ;//鍙樻垚姣
 			ugVo.failTryTimes = conf.getSetAttrPlusInt(doc, "config.upgrade", "failTryTimes", null, 0, 100, null);
 			ugVo.ugMaxRtuAtOnce = conf.getSetAttrPlusInt(doc, "config.upgrade", "ugMaxRtuAtOnce", null, 0, 1000000, null);
 			ugVo.rtuOffLineWaitDuration = conf.getSetAttrPlusInt(doc, "config.upgrade", "rtuOffLineWaitDuration", null, 1, 36000, null);
-			ugVo.rtuOffLineWaitDuration = ugVo.rtuOffLineWaitDuration + 1000;//鍙樻垚姣
+			ugVo.rtuOffLineWaitDuration = ugVo.rtuOffLineWaitDuration * 1000;//鍙樻垚姣
 			ugVo.notifyStateInterval = conf.getSetAttrPlusInt(doc, "config.upgrade", "notifyStateInterval", null, 1, 300, null);
-			ugVo.notifyStateInterval = ugVo.notifyStateInterval + 1000;//鍙樻垚姣
+			ugVo.notifyStateInterval = ugVo.notifyStateInterval * 1000;//鍙樻垚姣
 			ugVo.showStartInfo = showStartInfo ;
 			AdapterImp_UpgradeUnit ugAdap = new AdapterImp_UpgradeUnit();
 			ugAdap.setConfig(ugVo);
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 acfc12e..09b5f9b 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
@@ -192,15 +192,24 @@
             }else{
                 if(!this.task.taskIsOver){
                     //鍗囩骇浠诲姟鏈畬鎴�
-                    //宸ヤ綔1锛氱粺璁″綋鍓嶆鍦ㄥ崌绾х殑RTU鏁伴噺锛屼负鍙楅檺鍚屾椂鍗囩骇鏁伴噺鍋氬噯澶�
-                    this.task.statisticsRunningRtuCount() ;
+                    //宸ヤ綔1锛氬垽鏂槸鍚︽棤浠讳綍涓�涓猂TU杩涜杩囧崌绾э紝骞朵笖杈惧埌鏃堕檺锛屽垯璁や负褰撳墠鍗囩骇浠诲姟瀹屾垚
+                    int temp = this.task.countNoOneRtuUpgrade() ;
+                    if(temp == -1){
+                        this.task.taskIsOver = true ;
+                        //浠诲姟宸茬粡瀹屾垚
+                        this.stop();
+                    }else if(temp == 1){
+                        //宸ヤ綔2锛氱粺璁″綋鍓嶆鍦ㄥ崌绾х殑RTU鏁伴噺锛屼负鍚屾椂鍗囩骇鏁伴噺闄愬埗鍋氬噯澶�
+                        this.task.statisticsRunningRtuCount() ;
 
-                    //宸ヤ綔2锛氱粺璁¢渶瑕佸崌绾т絾褰撳墠绂荤嚎RTU鐨勬儏鍐�
-                    this.task.statisticsOffRtuCountAndSet() ;
+                        //宸ヤ綔3锛氱粺璁¢渶瑕佸崌绾т絾褰撳墠绂荤嚎RTU鐨勬儏鍐�
+                        this.task.statisticsOffRtuCountAndSet() ;
 
-                    //宸ヤ綔3锛氱粺璁℃槸鍚﹀叏閮ㄥ崌绾у畬鎴�
-                    this.task.taskIsOver = this.task.statisticsIsAllOver() ;
-
+                        //宸ヤ綔4锛氱粺璁℃槸鍚﹀叏閮ㄥ崌绾у畬鎴�
+                        this.task.taskIsOver = this.task.statisticsIsAllOver() ;
+                    }else if(temp == 0){
+                        //涓嶄綔涓�
+                    }
                     if(this.task.taskIsOver){
                         if(!this.task.taskOverType.equals(UpgradeTask.TaskOverType_Force)){
                             //浠诲姟涓嶆槸寮哄埗缁撴潫鐨�
@@ -208,16 +217,20 @@
                             this.task.taskOverDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;//浠诲姟瀹屾垚鏃堕棿(yyyy-mm-dd HH:MM:SS)
                         }
                         //浠诲姟瀹屾垚锛屾墽琛屾渶鍚庝竴娆″崌绾х姸鎬侀�氱煡
-                        //宸ヤ綔4锛氬崌绾х姸鎬侀�氱煡
-                        if(!first){
-                            this.notifyUpgradeStatus() ;
-                        }
+                        //宸ヤ綔5锛氬崌绾х姸鎬侀�氱煡
+                        //if(!first){
+                        //    this.notifyUpgradeStatus() ;
+                        //}
                     }else{
                         //浠诲姟鏈畬鎴愶紝缁х画鎵ц鍗囩骇鐘舵�侀�氱煡
-                        //宸ヤ綔4锛� 鍗囩骇鐘舵�侀�氱煡
-                        if(!first){
-                            this.notifyUpgradeStatus() ;
-                        }
+                        //宸ヤ綔5锛� 鍗囩骇鐘舵�侀�氱煡
+                        //if(!first){
+                        //    this.notifyUpgradeStatus() ;
+                        //}
+                    }
+                    //宸ヤ綔5锛氬崌绾х姸鎬侀�氱煡
+                    if(!first){
+                        this.notifyUpgradeStatus() ;
                     }
                 }else{
                     //浠诲姟宸茬粡瀹屾垚
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeRtuDev.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeRtuDev.java
index e62b19a..4490827 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeRtuDev.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeRtuDev.java
@@ -5,6 +5,7 @@
 import com.dy.common.mw.protocol.CommandType;
 import com.dy.common.softUpgrade.Com1601Vo;
 import com.dy.common.softUpgrade.state.UpgradeRtu;
+import com.dy.common.softUpgrade.state.UpgradeTaskVo;
 import com.dy.common.util.Callback;
 import com.dy.common.util.DateTime;
 import lombok.Data;
@@ -20,14 +21,19 @@
 public class UpgradeRtuDev extends UpgradeRtu {
 
     @JSONField(serialize = false)
-    private UpgradeTask task ;
+    private Integer failTryTimes ;//鍗囩骇澶辫触鍚庯紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛�0琛ㄧず涓嶉噸鏂板伩璇曞崌绾�
+
+    @JSONField(serialize = false)
+    public UpgradeTaskVo taskVo ;//鍗囩骇浠诲姟鍊煎璞�
 
     private UpgradeRtuDev(){
     }
 
-    public UpgradeRtuDev(UpgradeTask task, String rtuAddr, int totalPackage) {
+    public UpgradeRtuDev(UpgradeTaskVo taskVo, Integer failTryTimes , String rtuAddr, int totalPackage) {
         super();
-        this.task = task ;
+        //this.task = task ;
+        this.taskVo = taskVo ;
+        this.failTryTimes = failTryTimes ;
         this.rtuAddr = rtuAddr ;
         this.state = STATE_UNSTART ;
         this.totalPackage = totalPackage ;
@@ -38,9 +44,11 @@
         this.isOver = false ;
     }
 
-    public UpgradeRtuDev(UpgradeTask task, String rtuAddr, int totalPackage, int state) {
+    public UpgradeRtuDev(UpgradeTaskVo taskVo, Integer failTryTimes, String rtuAddr, int totalPackage, int state) {
         super();
-        this.task = task ;
+        //this.task = task ;
+        this.taskVo = taskVo ;
+        this.failTryTimes = failTryTimes ;
         this.rtuAddr = rtuAddr ;
         this.state = state ;
         this.totalPackage = totalPackage ;
@@ -65,11 +73,11 @@
             callbackCom.call(createCommand1601(protocolName, protocolVersion));
         }else if(this.state == STATE_RUNNING){
             //褰撳墠鍗囩骇杩囩▼涓�
-            if(code.equals(UpgradeCode.cd_1601)){
+            if(code.equals(UpgradeCode.cd_9601)){
                 //涓嬪彂閰嶇疆杩斿洖
                 this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
                 callbackCom.call(createCommand1602(protocolName, protocolVersion, currentPackage, currentRamAddr, softData));//涓嬪彂鏁版嵁鍖呮寚浠�
-            }else if(code.equals(UpgradeCode.cd_1602)){
+            }else if(code.equals(UpgradeCode.cd_9602)){
                 //涓嬪彂鏁版嵁鍖呰繑鍥�
                 currentPackage++ ;
                 currentRamAddr += RAMADDRADD ;
@@ -80,7 +88,7 @@
                     this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
                     callbackCom.call(createCommand1603(protocolName, protocolVersion));//涓嬪彂鏍¢獙鎸囦护
                 }
-            }else if(code.equals(UpgradeCode.cd_1603)){
+            }else if(code.equals(UpgradeCode.cd_9603)){
                 //涓嬪彂鏍¢獙杩斿洖
                 this.isOver = true ;//鍗囩骇瀹屾垚
                 this.state = STATE_SUCCESS ;
@@ -91,7 +99,7 @@
                     //鍗囩骇鏈畬鎴�
                     if(this.state == STATE_FAILONE || this.state == STATE_FAIL){
                         //宸茬粡鏄崌绾уけ璐ユ��
-                        if(this.reTryTimes < task.failTryTimes){
+                        if(this.reTryTimes < this.failTryTimes){
                             //閲嶈瘯娆℃暟鏈揪鍒颁笂闄愶紝缁х画閲嶈瘯
                             this.reTryTimes += 1 ;
                             this.setStateAtCom1601Time();
@@ -141,10 +149,10 @@
         com.rtuResultSendWebUrl = Command.ignoreRtuResultSendWebUrl ;
 
         Com1601Vo vo = new Com1601Vo() ;
-        vo.softStoreAddr = this.task.taskVo.softStoreAddr ;
-        vo.softStartAddr = this.task.taskVo.softStartAddr ;
-        vo.totalByte =  this.task.taskVo.softBytesCalculate ;
-        vo.softCrc = this.task.taskVo.softByteSrc16;
+        vo.softStoreAddr = this.taskVo.softStoreAddr ;
+        vo.softStartAddr = this.taskVo.softStartAddr ;
+        vo.totalByte =  this.taskVo.softBytesCalculate ;
+        vo.softCrc = this.taskVo.softByteSrc16;
         com.param = vo ;
         return com ;
     }
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 77e5baf..68d6305 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
@@ -8,8 +8,11 @@
 import com.dy.common.util.Callback;
 import com.dy.common.util.DateTime;
 import lombok.Data;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @Author: liurunyu
@@ -18,6 +21,8 @@
  */
 @Data
 public class UpgradeTask {
+
+    private static final Logger log = LogManager.getLogger(UpgradeTask.class.getName());
 
     protected static final String TaskOverType_Natural = "鑷劧" ;
     protected static final String TaskOverType_Force = "寮哄埗" ;
@@ -37,7 +42,7 @@
     protected byte[][] softFileDataGrp ;//浠�512瀛楄妭涓哄崟浣嶆妸鍗囩骇绋嬪簭鏁版嵁鍒嗙粍
 
     @JSONField(serialize = false)
-    protected Map<String, UpgradeRtu> upgradeRtus;//鍗囩骇鐘舵��
+    protected ConcurrentHashMap<String, UpgradeRtu> upgradeRtus;//鍗囩骇鐘舵��
 
     public boolean taskIsOver = false ;//浠诲姟鏄惁瀹屾垚
     public String taskOverType = "" ;//浠诲姟瀹屾垚鏂瑰紡锛堣嚜鐒讹紝寮哄埗锛�
@@ -95,15 +100,19 @@
         this.setupDtLong = System.currentTimeMillis() ;
         this.taskVo = taskVo ;
 
-        this.upgradeRtus = new HashMap<>();
-        if(taskVo.softFileData64 != null && taskVo.softFileData64.trim().equals("")){
+        this.upgradeRtus = new ConcurrentHashMap<>();
+        if(taskVo.softFileData64 != null && !taskVo.softFileData64.trim().equals("")){
             taskVo.softFileData = Base64.getDecoder().decode(taskVo.softFileData64);
             List<byte[]> listBytes = new HexFileParse().splitBytesByUnit512(taskVo.softFileData);
             this.softFileDataGrp = listBytes.toArray(new byte[0][]);
-            for(String rtuAddr : this.taskVo.rtuAddrList){
-                //姝ゆ椂鐘舵�佽缃垚绂荤嚎鐘舵��
-                UpgradeRtuDev ugRtu = new UpgradeRtuDev(this, rtuAddr, this.softFileDataGrp.length, UpgradeRtuDev.STATE_OFFLINE) ;
-                this.upgradeRtus.put(rtuAddr, ugRtu) ;
+            try{
+                for(String rtuAddr : this.taskVo.rtuAddrList){
+                    //姝ゆ椂鐘舵�佽缃垚绂荤嚎鐘舵��
+                    UpgradeRtuDev ugRtu = new UpgradeRtuDev(this.taskVo, this.failTryTimes, rtuAddr, this.softFileDataGrp.length, UpgradeRtuDev.STATE_OFFLINE) ;
+                    this.upgradeRtus.put(rtuAddr, ugRtu) ;
+                }
+            }catch (Exception e){
+                log.error(e);
             }
         }
     }
@@ -121,7 +130,7 @@
                 //鏍规嵁鏂规硶setTask鐨勯�昏緫锛屽彧瑕丷TU鍦ㄥ崌绾т箣鍒楋紝姝ゅugRtuState涓�瀹氫笉涓簄ull
                 //涓轰繚闄╋紝瀹炵幇涓嬮潰閫昏緫
                 if(taskVo.rtuAddrList.contains(rtuAddr)){
-                    ugRtu = new UpgradeRtuDev(this, rtuAddr, this.taskVo.softFileData.length) ;
+                    ugRtu = new UpgradeRtuDev(this.taskVo, this.failTryTimes, rtuAddr, this.taskVo.softFileData.length) ;
                     upgradeRtus.put(rtuAddr, ugRtu) ;
                 }else{
                     //rtu涓嶅湪鍗囩骇涔嬪垪
@@ -257,8 +266,36 @@
     ///////////////////////////////////////////////////////////
     //浠ヤ笅鏂规硶涓哄唴閮ㄦ湇鍔★紝涓嶅澶栨彁渚涙湇鍔�
     ///////////////////////////////////////////////////////////
+
     /**
-     * 缁熻褰撳墠姝e湪鍗囩骇鐨凴TU鏁伴噺锛屼负鍙楅檺鍚屾椂鍗囩骇鏁伴噺鍋氬噯澶�
+     * 鍒ゆ柇鏄惁娌$敤浠讳綍涓�涓猂TU杩涜杩囧崌绾э紝鑰屼笖瓒呰繃浜嗘椂闄�
+     * @return -1:鏃犱竴RTU鍗囩骇涓旇秴鏃讹紝0锛氭棤RTU鍗囩骇浣嗘湭瓒呮椂绛夊緟锛�1鏈塕TU鍗囩骇姝e父鎵ц
+     */
+    protected int countNoOneRtuUpgrade(){
+        if(this.upgradeRtus == null || upgradeRtus.size() == 0){
+            //褰撳墠娌℃湁浠讳綍涓�涓澶囪繘琛岃繃鍗囩骇
+            Long now = System.currentTimeMillis() ;
+            if(now - this.setupDtLong > UpgradeUnit.confVo.noOneRtuUpgradeMaxDuration){
+                return -1 ;
+            }
+        }else{
+            Collection<UpgradeRtu> col = this.upgradeRtus.values() ;
+            for(UpgradeRtu info : col){
+                if(info.currentPackage > 0){
+                    //褰撳墠鏈夎澶囪繘琛岃繃鍗囩骇
+                    return 1 ;
+                }
+            }
+            Long now = System.currentTimeMillis() ;
+            if(now - this.setupDtLong > UpgradeUnit.confVo.noOneRtuUpgradeMaxDuration){
+                return -1 ;
+            }
+        }
+        return 0 ;
+    }
+
+    /**
+     * 缁熻褰撳墠姝e湪鍗囩骇鐨凴TU鏁伴噺锛屼负鍚屾椂鍗囩骇鏁伴噺闄愬埗鍋氬噯澶�
      */
     protected void statisticsRunningRtuCount(){
         int runningTotal = 0 ;
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 5cc3ea9..45462aa 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,7 @@
 
     public Boolean showStartInfo ;
     public Boolean enable ;//妯″潡鏄惁鍚姩
+    public Integer noOneRtuUpgradeMaxDuration ;//鍗囩骇浠诲姟璁剧疆鍚庯紝娌℃湁璁惧鍗囩骇鏈�澶ф椂闀匡紙姣锛夛紝瓒呰繃杩欎釜鏃堕暱锛岃涓哄崌绾т换鍔″畬鎴愶紝鍙栧�艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
     public Integer failTryTimes ;//鍗囩骇澶辫触鍚庯紙閽堝鐨勬槸鍦ㄧ嚎杩涜浜嗗崌绾т笅鍙戝懡浠わ級锛岄噸鏂板伩璇曞崌绾ф鏁帮紝0琛ㄧず涓嶉噸鏂板伩璇曞崌绾�
     public Integer ugMaxRtuAtOnce;//涓轰簡缂撹В閫氫俊涓棿浠剁殑鍘嬪姏锛屽悓鏃舵敮鎸佸崌绾х殑RTU鍙版暟
     public Integer rtuOffLineWaitDuration;//rtu绂荤嚎锛岀瓑寰呭叾鍗囩骇鐨勬椂闀�(姣)锛岃秴杩囪繖涓椂闂达紝璁剧疆鍏跺崌绾уけ璐ワ紝涓旇缃崌绾т换鍔″畬鎴�
@@ -16,6 +17,7 @@
 
     public UpgradeUnitConfigVo(){
         this.enable = false ;
+        this.noOneRtuUpgradeMaxDuration = 10 * 60 * 1000 ;
         this.failTryTimes = 0 ;
         this.ugMaxRtuAtOnce = Integer.MAX_VALUE ;
         this.rtuOffLineWaitDuration = 10 * 60 * 60 * 1000 ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
index 4049247..2973292 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
@@ -1,7 +1,9 @@
 package com.dy.rtuMw.web.comResult;
 
+import com.dy.common.contant.Constant;
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.Data;
+import com.dy.rtuMw.server.ServerProperties;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +19,7 @@
  * @Author liurunyu
  * @Date 2023/12/21 20:28
  * @LastEditTime 2023/12/21 20:28
- * @Description
+ * @Description 閫氫俊涓棿浠跺澶栬繘琛寃eb璋冪敤锛屾妸鍛戒护缁撴灉鍙戦�佸嚭鍘�
  */
 @Component()
 public class CommandResultDeal {
@@ -41,6 +43,7 @@
             restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
             HttpHeaders headers = new HttpHeaders();
             headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
+            headers.set(Constant.UserTokenKeyInHeader, ServerProperties.orgTag);
             HttpEntity<?> httpEntity = new HttpEntity<>(data, headers);
             ResponseEntity<WebResponseVo> response = null;
             try {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java
index a371bde..e07ad00 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java
@@ -1,7 +1,9 @@
 package com.dy.rtuMw.web.webRequest;
 
+import com.dy.common.contant.Constant;
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.rtuMw.server.ServerProperties;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +47,7 @@
             restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
             HttpHeaders headers = new HttpHeaders();
             headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
+            headers.set(Constant.UserTokenKeyInHeader, ServerProperties.orgTag);
             HttpEntity<?> httpEntity = new HttpEntity<>(obj, headers);
             ResponseEntity<BaseResponse> response = null;
             try {
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 50849b5..a84ad5e 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"
@@ -24,22 +24,22 @@
     sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級
      -->
 	<base
-		orgTag="sp"
-		isLowPower="false"
-		onlyDealRtus=""
-		onlyOneProtocol="false"
-		downComandMaxResendTimes="1"
-		commandSendInterval="10"
-		cachWaitResultTimeout="120"
-		offLineCachTimeout="86400"
-		lastUpDataTimeLive="500"
-		dbDataIdSuffix="0"
-		cacheUpDownDataWarnCount="100000"
-		cacheUpDownDataMaxCount="110000"
-		disconnectedByNoUpDataMinutes="3"
-		workReportDealOneByTimes="5"
-		intakeAlarmLossMinValue="1.0"
-		sendDingDingAlarmMsInterval="60"
+			orgTag="sp"
+			isLowPower="false"
+			onlyDealRtus=""
+			onlyOneProtocol="false"
+			downComandMaxResendTimes="1"
+			commandSendInterval="3"
+			cachWaitResultTimeout="120"
+			offLineCachTimeout="86400"
+			lastUpDataTimeLive="500"
+			dbDataIdSuffix="0"
+			cacheUpDownDataWarnCount="100000"
+			cacheUpDownDataMaxCount="110000"
+			disconnectedByNoUpDataMinutes="3"
+			workReportDealOneByTimes="5"
+			intakeAlarmLossMinValue="1.0"
+			sendDingDingAlarmMsInterval="60"
 	/>
 
 	<!--
@@ -49,19 +49,21 @@
     synchroRtuClockTimepieces锛氬綋RTU涓庢湇鍔″櫒鏃堕挓鐩稿樊涓�瀹氭绉掞紙閰嶇疆鏂囦欢鏄閽燂級鍚庯紝杩涜鏍℃椂
      -->
 	<protocol
-		centerAddr="1"
-		synchroRtuClock="true"
-		synchroRtuClockTimepieces="300000"
+			centerAddr="1"
+			synchroRtuClock="true"
+			synchroRtuClockTimepieces="300000"
 	/>
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
 	ugMaxRtuAtOnce锛氫负浜嗙紦瑙i�氫俊涓棿浠剁殑鍘嬪姏锛屽悓鏃舵敮鎸佸崌绾х殑RTU鍙版暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉鍙楅檺鍒�
 	rtuOffLineWaitDuration: rtu绂荤嚎锛岀瓑寰呭叾鍗囩骇鐨勬椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闂达紝璁剧疆鍏跺崌绾уけ璐ワ紝涓旇缃崌绾т换鍔″畬鎴�
 	notifyStateInterval: 鍗囩骇鐘舵�侀�氱煡闂撮殧锛堢锛�
 	-->
 	<upgrade enable="true"
+			 noOneRtuUpgradeMaxDuration="600"
 			 failTryTimes="1"
 			 ugMaxRtuAtOnce="1000"
 			 rtuOffLineWaitDuration="1200"
@@ -83,15 +85,15 @@
     enableThreadPool锛氭槸鍚﹀惎鐢ㄧ嚎绋嬫睜
      -->
 	<support
-		short_maxThread="6"
-		short_minThread="6"
-		short_freeTimeout="60"
-		short_busyTimeout="5"
-		long_maxThread="6"
-		long_minThread="6"
-		long_freeTimeout="60"
-		long_busyTimeout="-1"
-		enableThreadPool="true"
+			short_maxThread="6"
+			short_minThread="6"
+			short_freeTimeout="60"
+			short_busyTimeout="5"
+			long_maxThread="6"
+			long_minThread="6"
+			long_freeTimeout="60"
+			long_busyTimeout="-1"
+			enableThreadPool="true"
 	/>
 
 	<!--
@@ -103,11 +105,11 @@
     saveDbInterval锛歊tu鐘舵�佸瓨鏁版嵁搴撻棿闅�(鍒嗛挓)
      -->
 	<resource
-		rtuLogDir="rtuLogs/"
-		rtuLogFileMaxSize="100000"
-		rtuLogFileMaxCount="2"
-		monitorInterval="2"
-		saveDbInterval="10"
+			rtuLogDir="rtuLogs/"
+			rtuLogFileMaxSize="100000"
+			rtuLogFileMaxCount="2"
+			monitorInterval="2"
+			saveDbInterval="10"
 	/>
 
 
@@ -128,10 +130,10 @@
     queueMaxSize: 缂撳瓨闃熷垪鑺傜偣鏁版渶澶ф暟閲�
      -->
 	<core
-		sleepBigBusy="100"
-		sleepSmallBusy="500"
-		queueWarnSize="100000"
-		queueMaxSize="300000"
+			sleepBigBusy="100"
+			sleepSmallBusy="500"
+			queueWarnSize="100000"
+			queueMaxSize="300000"
 	/>
 
 	<!--
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 7270793..a9648f9 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"
@@ -24,22 +24,22 @@
     sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級
      -->
 	<base
-		orgTag="test"
-		isLowPower="false"
-		onlyDealRtus=""
-		onlyOneProtocol="false"
-		downComandMaxResendTimes="1"
-		commandSendInterval="10"
-		cachWaitResultTimeout="120"
-		offLineCachTimeout="86400"
-		lastUpDataTimeLive="500"
-		dbDataIdSuffix="0"
-		cacheUpDownDataWarnCount="100000"
-		cacheUpDownDataMaxCount="110000"
-		disconnectedByNoUpDataMinutes="3"
-		workReportDealOneByTimes="5"
-		intakeAlarmLossMinValue="1.0"
-		sendDingDingAlarmMsInterval="60"
+			orgTag="test"
+			isLowPower="false"
+			onlyDealRtus=""
+			onlyOneProtocol="false"
+			downComandMaxResendTimes="1"
+			commandSendInterval="3"
+			cachWaitResultTimeout="120"
+			offLineCachTimeout="86400"
+			lastUpDataTimeLive="500"
+			dbDataIdSuffix="0"
+			cacheUpDownDataWarnCount="100000"
+			cacheUpDownDataMaxCount="110000"
+			disconnectedByNoUpDataMinutes="3"
+			workReportDealOneByTimes="5"
+			intakeAlarmLossMinValue="1.0"
+			sendDingDingAlarmMsInterval="60"
 	/>
 
 	<!--
@@ -49,19 +49,21 @@
     synchroRtuClockTimepieces锛氬綋RTU涓庢湇鍔″櫒鏃堕挓鐩稿樊涓�瀹氭绉掞紙閰嶇疆鏂囦欢鏄閽燂級鍚庯紝杩涜鏍℃椂
      -->
 	<protocol
-		centerAddr="1"
-		synchroRtuClock="true"
-		synchroRtuClockTimepieces="300000"
+			centerAddr="1"
+			synchroRtuClock="true"
+			synchroRtuClockTimepieces="300000"
 	/>
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
 	ugMaxRtuAtOnce锛氫负浜嗙紦瑙i�氫俊涓棿浠剁殑鍘嬪姏锛屽悓鏃舵敮鎸佸崌绾х殑RTU鍙版暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉鍙楅檺鍒�
 	rtuOffLineWaitDuration: rtu绂荤嚎锛岀瓑寰呭叾鍗囩骇鐨勬椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闂达紝璁剧疆鍏跺崌绾уけ璐ワ紝涓旇缃崌绾т换鍔″畬鎴�
 	notifyStateInterval: 鍗囩骇鐘舵�侀�氱煡闂撮殧锛堢锛�
 	-->
 	<upgrade enable="true"
+			 noOneRtuUpgradeMaxDuration="600"
 			 failTryTimes="1"
 			 ugMaxRtuAtOnce="1000"
 			 rtuOffLineWaitDuration="1200"
@@ -83,15 +85,15 @@
     enableThreadPool锛氭槸鍚﹀惎鐢ㄧ嚎绋嬫睜
      -->
 	<support
-		short_maxThread="6"
-		short_minThread="6"
-		short_freeTimeout="60"
-		short_busyTimeout="5"
-		long_maxThread="6"
-		long_minThread="6"
-		long_freeTimeout="60"
-		long_busyTimeout="-1"
-		enableThreadPool="true"
+			short_maxThread="6"
+			short_minThread="6"
+			short_freeTimeout="60"
+			short_busyTimeout="5"
+			long_maxThread="6"
+			long_minThread="6"
+			long_freeTimeout="60"
+			long_busyTimeout="-1"
+			enableThreadPool="true"
 	/>
 
 	<!--
@@ -103,11 +105,11 @@
     saveDbInterval锛歊tu鐘舵�佸瓨鏁版嵁搴撻棿闅�(鍒嗛挓)
      -->
 	<resource
-		rtuLogDir="rtuLogs/"
-		rtuLogFileMaxSize="100000"
-		rtuLogFileMaxCount="2"
-		monitorInterval="2"
-		saveDbInterval="10"
+			rtuLogDir="rtuLogs/"
+			rtuLogFileMaxSize="100000"
+			rtuLogFileMaxCount="2"
+			monitorInterval="2"
+			saveDbInterval="10"
 	/>
 
 
@@ -128,10 +130,10 @@
     queueMaxSize: 缂撳瓨闃熷垪鑺傜偣鏁版渶澶ф暟閲�
      -->
 	<core
-		sleepBigBusy="100"
-		sleepSmallBusy="500"
-		queueWarnSize="100000"
-		queueMaxSize="300000"
+			sleepBigBusy="100"
+			sleepSmallBusy="500"
+			queueWarnSize="100000"
+			queueMaxSize="300000"
 	/>
 
 	<!--
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 b061c20..3a54042 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"
@@ -24,22 +24,22 @@
     sendDingDingAlarmMsInterval: 鏈夋姤璀﹀彂鐢熸椂锛屽悜閽夐拤鍙戦�佹秷鎭殑闂撮殧鏃堕暱锛堝垎閽燂級
      -->
 	<base
-		orgTag="ym"
-		isLowPower="false"
-		onlyDealRtus=""
-		onlyOneProtocol="false"
-		downComandMaxResendTimes="1"
-		commandSendInterval="10"
-		cachWaitResultTimeout="120"
-		offLineCachTimeout="86400"
-		lastUpDataTimeLive="500"
-		dbDataIdSuffix="0"
-		cacheUpDownDataWarnCount="100000"
-		cacheUpDownDataMaxCount="110000"
-		disconnectedByNoUpDataMinutes="3"
-		workReportDealOneByTimes="5"
-		intakeAlarmLossMinValue="1.0"
-		sendDingDingAlarmMsInterval="60"
+			orgTag="ym"
+			isLowPower="false"
+			onlyDealRtus=""
+			onlyOneProtocol="false"
+			downComandMaxResendTimes="1"
+			commandSendInterval="3"
+			cachWaitResultTimeout="120"
+			offLineCachTimeout="86400"
+			lastUpDataTimeLive="500"
+			dbDataIdSuffix="0"
+			cacheUpDownDataWarnCount="100000"
+			cacheUpDownDataMaxCount="110000"
+			disconnectedByNoUpDataMinutes="3"
+			workReportDealOneByTimes="5"
+			intakeAlarmLossMinValue="1.0"
+			sendDingDingAlarmMsInterval="60"
 	/>
 
 	<!--
@@ -49,19 +49,21 @@
     synchroRtuClockTimepieces锛氬綋RTU涓庢湇鍔″櫒鏃堕挓鐩稿樊涓�瀹氭绉掞紙閰嶇疆鏂囦欢鏄閽燂級鍚庯紝杩涜鏍℃椂
      -->
 	<protocol
-		centerAddr="1"
-		synchroRtuClock="true"
-		synchroRtuClockTimepieces="300000"
+			centerAddr="1"
+			synchroRtuClock="true"
+			synchroRtuClockTimepieces="300000"
 	/>
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
 	ugMaxRtuAtOnce锛氫负浜嗙紦瑙i�氫俊涓棿浠剁殑鍘嬪姏锛屽悓鏃舵敮鎸佸崌绾х殑RTU鍙版暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉鍙楅檺鍒�
 	rtuOffLineWaitDuration: rtu绂荤嚎锛岀瓑寰呭叾鍗囩骇鐨勬椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闂达紝璁剧疆鍏跺崌绾уけ璐ワ紝涓旇缃崌绾т换鍔″畬鎴�
 	notifyStateInterval: 鍗囩骇鐘舵�侀�氱煡闂撮殧锛堢锛�
 	-->
 	<upgrade enable="true"
+			 noOneRtuUpgradeMaxDuration="600"
 			 failTryTimes="1"
 			 ugMaxRtuAtOnce="1000"
 			 rtuOffLineWaitDuration="1200"
@@ -83,15 +85,15 @@
     enableThreadPool锛氭槸鍚﹀惎鐢ㄧ嚎绋嬫睜
      -->
 	<support
-		short_maxThread="6"
-		short_minThread="6"
-		short_freeTimeout="60"
-		short_busyTimeout="5"
-		long_maxThread="6"
-		long_minThread="6"
-		long_freeTimeout="60"
-		long_busyTimeout="-1"
-		enableThreadPool="true"
+			short_maxThread="6"
+			short_minThread="6"
+			short_freeTimeout="60"
+			short_busyTimeout="5"
+			long_maxThread="6"
+			long_minThread="6"
+			long_freeTimeout="60"
+			long_busyTimeout="-1"
+			enableThreadPool="true"
 	/>
 
 	<!--
@@ -103,11 +105,11 @@
     saveDbInterval锛歊tu鐘舵�佸瓨鏁版嵁搴撻棿闅�(鍒嗛挓)
      -->
 	<resource
-		rtuLogDir="rtuLogs/"
-		rtuLogFileMaxSize="100000"
-		rtuLogFileMaxCount="2"
-		monitorInterval="2"
-		saveDbInterval="10"
+			rtuLogDir="rtuLogs/"
+			rtuLogFileMaxSize="100000"
+			rtuLogFileMaxCount="2"
+			monitorInterval="2"
+			saveDbInterval="10"
 	/>
 
 
@@ -128,10 +130,10 @@
     queueMaxSize: 缂撳瓨闃熷垪鑺傜偣鏁版渶澶ф暟閲�
      -->
 	<core
-		sleepBigBusy="100"
-		sleepSmallBusy="500"
-		queueWarnSize="100000"
-		queueMaxSize="300000"
+			sleepBigBusy="100"
+			sleepSmallBusy="500"
+			queueWarnSize="100000"
+			queueMaxSize="300000"
 	/>
 
 	<!--
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 d004b59..3a54042 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
@@ -29,7 +29,7 @@
 			onlyDealRtus=""
 			onlyOneProtocol="false"
 			downComandMaxResendTimes="1"
-			commandSendInterval="10"
+			commandSendInterval="3"
 			cachWaitResultTimeout="120"
 			offLineCachTimeout="86400"
 			lastUpDataTimeLive="500"
@@ -56,12 +56,14 @@
 
 	<!-- RTU 杞欢鍗囩骇
 	enable: 妯″潡鏄惁鍚姩
+	noOneRtuUpgradeMaxDuration锛氬崌绾т换鍔¤缃悗锛屾棤涓�璁惧鍗囩骇鏈�澶ф椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闀匡紝璁や负鍗囩骇浠诲姟瀹屾垚锛屽彇鍊艰寖鍥存槸5鍒嗛挓~60鍒嗛挓
 	failTryTimes锛氬崌绾уけ璐ュ悗锛堥拡瀵圭殑鏄湪绾胯繘琛屼簡鍗囩骇涓嬪彂鍛戒护锛夛紝閲嶆柊鍋胯瘯鍗囩骇娆℃暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉閲嶆柊鍋胯瘯鍗囩骇
 	ugMaxRtuAtOnce锛氫负浜嗙紦瑙i�氫俊涓棿浠剁殑鍘嬪姏锛屽悓鏃舵敮鎸佸崌绾х殑RTU鍙版暟锛屽綋璁剧疆涓�0鏃惰〃绀轰笉鍙楅檺鍒�
 	rtuOffLineWaitDuration: rtu绂荤嚎锛岀瓑寰呭叾鍗囩骇鐨勬椂闀匡紙绉掞級锛岃秴杩囪繖涓椂闂达紝璁剧疆鍏跺崌绾уけ璐ワ紝涓旇缃崌绾т换鍔″畬鎴�
 	notifyStateInterval: 鍗囩骇鐘舵�侀�氱煡闂撮殧锛堢锛�
 	-->
 	<upgrade enable="true"
+			 noOneRtuUpgradeMaxDuration="600"
 			 failTryTimes="1"
 			 ugMaxRtuAtOnce="1000"
 			 rtuOffLineWaitDuration="1200"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
index 33709d1..6211d7b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
@@ -12,7 +12,7 @@
 public class DownData {
 
     public void parseData(byte[] bs){
-        if(bs != null && bs.length >= ProtocolConstantV206V1.lenHead2Code){
+        if(bs != null && bs.length > 0){
             if(bs.length >= (ProtocolConstantV206V1.ctrlIndex)
                     && bs[0] == ProtocolConstantV206V1.P_Head_Byte
                     && bs[2] == ProtocolConstantV206V1.P_Head_Byte){
@@ -29,12 +29,12 @@
         //搴旇鏄摼璺娴嬫暟鎹�
     }
     private void dealUpgrade(byte[] bs){
-        String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.codeIndex, 1);
+        String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex, 1);
         if(cdPre.equals("16")){
             //鍗囩骇鍔熻兘鐮�
             UpHeartBeat.upHeartBeat = false ;//涓嶄笂琛屽績璺�
-            if(bs.length >= ProtocolConstantV206V1.lenHead2Code + 1){
-                String cdSuf = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.codeIndex + 1, 1);
+            if(bs.length >= ProtocolConstantV206V1.UG_lenHead2Cmd + 1){
+                String cdSuf = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex + 1, 1);
                 String cd = cdPre + cdSuf;
                 if(cd.equals("1601")){
                     //鍗囩骇閰嶇疆
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/upData/UpData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/upData/UpData.java
index f85a2fa..3db4a2a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/upData/UpData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/upData/UpData.java
@@ -52,7 +52,7 @@
     protected static byte[] creatHead4Upgrade(String rtuAddr, String preCode, String sufCode)throws Exception {
         byte[] bsHead = new byte[12] ;
         byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1.P_Head_Byte ;
+        bsHead[index] = ProtocolConstantV206V1.UG_P_Head_Byte ;
 
         index++ ;
         bsHead[index] = 0 ;//甯ч暱搴�
@@ -60,7 +60,7 @@
         bsHead[index] = 0 ;//甯ч暱搴�
 
         index++ ;
-        bsHead[index] = ProtocolConstantV206V1.P_Head_Byte ;
+        bsHead[index] = ProtocolConstantV206V1.UG_P_Head_Byte ;
 
         index++ ;
         bsHead[index] = ByteUtil.hex2Bytes(preCode)[0]; //鍔熻兘鐮佸煙
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1/ComSupportP206V1.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1/ComSupportP206V1.java
index 08de40a..7c82e02 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1/ComSupportP206V1.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1/ComSupportP206V1.java
@@ -4,6 +4,7 @@
 import com.dy.common.mw.protocol.CommandType;
 import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -82,8 +83,13 @@
             response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
     /**
@@ -102,8 +108,13 @@
             response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
index 285cd06..64b94fa 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
@@ -5,6 +5,7 @@
 import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
 import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -78,8 +79,13 @@
             response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
     /**
@@ -98,8 +104,13 @@
             response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/rtuLog/RtuLogSupport.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/rtuLog/RtuLogSupport.java
index 2266d33..39a7040 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/rtuLog/RtuLogSupport.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/rtuLog/RtuLogSupport.java
@@ -1,6 +1,7 @@
 package com.dy.pipIrrMwTestWeb.rtuLog;
 
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.web.client.RestTemplate;
@@ -61,7 +62,12 @@
             response = restTemplate.exchange(fullUrl, HttpMethod.GET, httpEntity, BaseResponse.class);
         } catch (Exception e) {
             e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
         }
-        return response.getBody();
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 }
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 1d35d06..7d5409d 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,12 +47,16 @@
      */
     @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){
                 for (UpgradeRtu rtuVo : info.ugRtuStateList) {

--
Gitblit v1.8.0