From a27fab527ce7d4aa8c9c8f0645cb8c2520590407 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 01 七月 2024 14:20:51 +0800
Subject: [PATCH] 1、靳总协议解析与构造修改完善; 2、靳总协议上行数据处理修改完善; 3、增加UserTokenFilter非过滤(放行)URL功能实现。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com38Vo.java                         |   10 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java       |   79 --
 pipIrr-platform/pom.xml                                                                                                       |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Up.java                          |   67 ++
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java  |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com37Vo.java                         |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com39Vo.java                         |   10 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java                       |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java                            |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java                        |   81 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Up.java                          |   70 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java                       |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java                        |   81 +-
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java       |  152 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java                              |   48 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java                        |   82 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java                        |   81 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd5EVo.java                        |   30 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java                                      |   56 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd51Vo.java                        |   24 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Down.java                        |   86 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java                        |   88 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Down.java                        |   86 +++
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java        |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java                              |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java                        |   81 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com21Vo.java                         |   14 
 pipIrr-platform/pipIrr-web/pom.xml                                                                                            |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenNoFilter.java                                    |   27 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/CommandP206V202404Ctrl.java |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CommandResultCtrl.java               |    2 
 /dev/null                                                                                                                     |   69 --
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java                        |   82 +-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3AVo.java                         |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3BVo.java                         |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3CVo.java                         |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_B0_Down.java                        |   93 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java                           |   46 +
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java             |    2 
 pipIrr-platform/pipIrr-common/pom.xml                                                                                         |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                       |    7 
 42 files changed, 1,232 insertions(+), 413 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/pom.xml b/pipIrr-platform/pipIrr-common/pom.xml
index c000009..cbb2762 100644
--- a/pipIrr-platform/pipIrr-common/pom.xml
+++ b/pipIrr-platform/pipIrr-common/pom.xml
@@ -31,7 +31,11 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
index 02b993f..2d05741 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
@@ -8,20 +8,20 @@
 	public static final String cd_12 = "12" ;//璁剧疆宸ヤ綔妯″紡锛堟湭瀹炵幇锛�
 	public static final String cd_1F = "1F" ;//璁剧疆娴侀噺鍙傛暟涓婇檺鍊硷紙鏈疄鐜帮級
 	public static final String cd_21 = "21" ;//璁剧疆鏈嶅姟绔疘P鍜岀鍙�
-	public static final String cd_36 = "36" ;//璁剧疆涓讳俊閬揑P鍜岀鍙�
+	public static final String cd_36 = "36" ;//璁剧疆涓讳俊閬揑P鍜岀鍙�(鏃犳鍛戒护)
 	public static final String cd_37 = "37" ;//璁剧疆娴侀噺閲囬泦鍛ㄦ湡
 	public static final String cd_38 = "38" ;//璁剧疆鐢ㄦ埛浣欓鎶ヨ鍊�
 	public static final String cd_39 = "39" ;//璁剧疆鐢垫睜鐢靛帇鎶ヨ鍊�
 	public static final String cd_3A = "3A" ;//璁剧疆闃�闂ㄥ牭杞數娴�
 	public static final String cd_3B = "3B" ;//璁剧疆闃�闂ㄨ秴鏃舵椂闂�
     public static final String cd_3C = "3C" ;//璁剧疆鑷姤鍛ㄦ湡
-    public static final String cd_3D = "3D" ;//璁剧疆闃舵姘翠环
+    public static final String cd_3D = "3D" ;//璁剧疆闃舵姘翠环锛圧TU鏈疄鐜帮級
     public static final String cd_3E = "3E" ;//璁剧疆榛戝悕鍗曪紙鏈疄鐜帮級
 	public static final String cd_50 = "50" ;//鏌ヨ閬ユ祴绔欑粓绔湴鍧�
-    public static final String cd_51 = "51" ;//鏌ヨ鏃堕挓锛堟湭瀹炵幇锛�
+    public static final String cd_51 = "51" ;//鏌ヨ鏃堕挓
     public static final String cd_52 = "52" ;//鏌ヨ宸ヤ綔妯″紡锛堟湭瀹炵幇锛�
     public static final String cd_53 = "53" ;//鏌ヨ鑷姤绉嶇被鍙婃椂闂撮棿闅旓紙鏈疄鐜帮級
-    public static final String cd_5E = "5E" ;//鏌ヨ缁堢鐘舵�佸拰鎶ヨ鐘舵�侊紙鏈疄鐜帮級
+    public static final String cd_5E = "5E" ;//鏌ヨ缁堢鐘舵�佸拰鎶ヨ鐘舵��
 	public static final String cd_65 = "65" ;//鏌ヨ鑷姤鍛ㄦ湡
 	public static final String cd_66 = "66" ;//鏌ヨIP鍜岀鍙�
 	public static final String cd_67 = "67" ;//鏌ヨ娴侀噺閲囬泦鍛ㄦ湡
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
index c2964d5..0817c1b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
@@ -153,6 +153,7 @@
 	 */
 	public static String icCardType(byte type){
 		return switch (type) {
+			case 0 -> "鏃犲崱";
 			case 1 -> "鐢ㄦ埛鍗�";
 			case 2 -> "绠$悊鍛樺崱";
 			case 3 -> "璋冭瘯鍗�";
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com21Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com21Vo.java
new file mode 100644
index 0000000..2f616b4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com21Vo.java
@@ -0,0 +1,14 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+import lombok.Data;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:00
+ * @Description
+ */
+@Data
+public class Com21Vo {
+    public String ip ;//IP锛堜緥濡� 125.235.35.89锛�
+    public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com37Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com37Vo.java
new file mode 100644
index 0000000..a86e91f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com37Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com37Vo {
+    public Integer seconds ;//娴侀噺閲囬泦鍛ㄦ湡锛堢锛�(澶т簬1)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com38Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com38Vo.java
new file mode 100644
index 0000000..988e996
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com38Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com38Vo {
+    public Double remainMoneyAlarm ;//鐢ㄦ埛浣欓鎶ヨ鍊�(澶т簬1.0)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com39Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com39Vo.java
new file mode 100644
index 0000000..a94b03b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com39Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com39Vo {
+    public Double batteryVoltAlarm ;//鐢垫睜鐢靛帇鎶ヨ鍊�(澶т簬0.1)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3AVo.java
new file mode 100644
index 0000000..c94e3c5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3AVo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com3AVo {
+    public Double current ;//闃�闂ㄥ牭杞數娴�(澶т簬0)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3BVo.java
new file mode 100644
index 0000000..49a21c3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3BVo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com3BVo {
+    public Integer second ;//闃�闂ㄨ秴鏃舵椂闂�(绉�)(澶т簬1)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3CVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3CVo.java
new file mode 100644
index 0000000..643dfc2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3CVo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V1_0_0.downVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 7:08
+ * @Description
+ */
+public class Com3CVo {
+    public Integer minute ;//鑷姤鍛ㄦ湡(鍒嗛挓)(澶т簬0)
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
index 3e518e0..4cf5ecc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
@@ -1,11 +1,15 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com21Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
 
@@ -52,57 +56,69 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
-
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
-
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
-
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
-
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
-
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
-
-        /*
-        鍙傛暟鏍煎紡锛� ip1,ip2,ip3,ip4,port
-         */
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
         }else{
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com21Vo cvo = JSON.parseObject(json, Com21Vo.class);
+            if(cvo == null){
+                throw new Exception("json杞珻om21Vo涓簄ull") ;
+            }
+            if(cvo.ip == null || cvo.ip.equals("")){
+                throw new Exception("IP涓嶈兘涓虹┖") ;
+            }
+            if(cvo.ip.length() > 15){
+                throw new Exception("IP鏈�澶ч暱搴︽槸15涓瓧绗�") ;
+            }
+            if(cvo.port < 0 || cvo.port > 65535){
+                throw new Exception("绔彛鍙峰繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+            byte[] bytes ;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+            byte index = 0 ;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+            index++ ;
+            bsHead[index] = 0 ;//甯ч暱搴�
+
+            index++ ;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+            index++ ;
+            bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+            index++ ;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5 ;
+
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
             index = 0 ;
             byte[] bs = new byte[13] ;
-            String ipPort = (String)para.param ;
-            String[] ipPorts = ipPort.split(",") ;
+            String[] ipPorts = cvo.ip.split(".") ;
             ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[0]), index++);
             ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[1]), index++);
             ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[2]), index++);
             ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[3]), index++);
-            ByteUtilUnsigned.short2Bytes_LE(bs, Integer.parseInt(ipPorts[4]), index);
+            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.port, index);
             index += 2 ;
             GlCreate.createPw(bs, index);
             index += 2 ;
             GlCreate.createTp(bs, index);
 
             bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+            return bytes ;
         }
 
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
index d9e1c7f..25a28d6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
@@ -1,10 +1,14 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com21Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com37Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,48 +56,59 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com37Vo cvo = JSON.parseObject(json, Com37Vo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.seconds == null) {
+                throw new Exception("閲囬泦鍛ㄦ湡涓嶈兘涓虹┖");
+            }
+            if (cvo.seconds < 1) {
+                throw new Exception("閲囬泦鍛ㄦ湡涓嶈兘灏忎簬1");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[10] ;
-            Integer second = (Integer)para.param ;
-            ByteUtilUnsigned.short2Bytes_LE(bs, second.shortValue(), index);
-            index += 2 ;
+            index = 0;
+            byte[] bs = new byte[10];
+            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.seconds.shortValue(), index);
+            index += 2;
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
index 3279544..3f18c40 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
@@ -1,10 +1,13 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com38Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,49 +55,61 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com38Vo cvo = JSON.parseObject(json, Com38Vo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.remainMoneyAlarm == null) {
+                throw new Exception("鐢ㄦ埛浣欓鎶ヨ鍊间笉鑳戒负绌�");
+            }
+            if (cvo.remainMoneyAlarm < 1.0) {
+                throw new Exception("鐢ㄦ埛浣欓鎶ヨ鍊间笉鑳藉皬浜�1.0");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[10] ;
-            Double remainMoneyAlarmDb = ((Double)para.param) * 100 ;
-            Integer remainMoneyAlarmInt = remainMoneyAlarmDb.intValue() ;
+            index = 0;
+            byte[] bs = new byte[10];
+            Double remainMoneyAlarmDb = cvo.remainMoneyAlarm * 100.0;
+            Integer remainMoneyAlarmInt = remainMoneyAlarmDb.intValue();
             ByteUtilUnsigned.short2Bytes_LE(bs, remainMoneyAlarmInt.shortValue(), index);
-            index += 2 ;
+            index += 2;
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
index 93a35ef..b414160 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
@@ -1,10 +1,14 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com38Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com39Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,49 +56,61 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com39Vo cvo = JSON.parseObject(json, Com39Vo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.batteryVoltAlarm == null) {
+                throw new Exception("鐢垫睜鐢靛帇鎶ヨ鍊间笉鑳戒负绌�");
+            }
+            if (cvo.batteryVoltAlarm < 0.1) {
+                throw new Exception("鐢垫睜鐢靛帇鎶ヨ鍊间笉鑳藉皬浜�0.1");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[10] ;
-            Double batteryvoltAlarmDb = ((Double)para.param) * 100 ;
-            Integer batteryvoltAlarmInt = batteryvoltAlarmDb.intValue() ;
+            index = 0;
+            byte[] bs = new byte[10];
+            Double batteryvoltAlarmDb = cvo.batteryVoltAlarm * 100;
+            Integer batteryvoltAlarmInt = batteryvoltAlarmDb.intValue();
             ByteUtilUnsigned.short2Bytes_LE(bs, batteryvoltAlarmInt.shortValue(), index);
-            index += 2 ;
+            index += 2;
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
index 42aafdc..b546e74 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
@@ -1,10 +1,14 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com39Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3AVo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,49 +56,61 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com3AVo cvo = JSON.parseObject(json, Com3AVo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.current == null) {
+                throw new Exception("闃�闂ㄥ牭杞數娴佷笉鑳戒负绌�");
+            }
+            if (cvo.current < 0) {
+                throw new Exception("闃�闂ㄥ牭杞數娴佷笉鑳藉皬浜�0");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[11] ;
-            Double currentDb = ((Double)para.param) * 100 ;
-            Integer currentInt = currentDb.intValue() ;
+            index = 0;
+            byte[] bs = new byte[11];
+            Double currentDb = cvo.current * 100;
+            Integer currentInt = currentDb.intValue();
             ByteUtilUnsigned.int2Bytes_LE(bs, currentInt.shortValue(), index);
-            index += 3 ;//涓婇潰鏄笁byte鐨勬暟鍊�
+            index += 3;//涓婇潰鏄笁byte鐨勬暟鍊�
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
index a4edba7..761a475 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
@@ -1,10 +1,14 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3AVo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3BVo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,48 +56,59 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com3BVo cvo = JSON.parseObject(json, Com3BVo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.second == null) {
+                throw new Exception("闃�闂ㄨ秴鏃舵椂闂翠笉鑳戒负绌�");
+            }
+            if (cvo.second < 1) {
+                throw new Exception("闃�闂ㄨ秴鏃舵椂闂翠笉鑳藉皬浜�0");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[10] ;
-            Integer second = (Integer)para.param;
-            ByteUtilUnsigned.short2Bytes_LE(bs, second.shortValue(), index);
-            index += 2 ;
+            index = 0;
+            byte[] bs = new byte[10];
+            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.second.shortValue(), index);
+            index += 2;
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
index 96bf643..60c3ee4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
@@ -1,10 +1,14 @@
 package com.dy.common.mw.protocol.p206V1_0_0.parse;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3BVo;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3CVo;
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
@@ -52,48 +56,59 @@
      * @throws Exception 寮傚父
      */
     public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
-        byte[] bytes ;
-        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
-        byte index = 0 ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+        if(para.param == null) {
+            throw new Exception("鍛戒护鍙傛暟涓簄ull") ;
+        }else {
+            JSONObject obj = (JSONObject) para.param;
+            String json = obj.toJSONString();
+            Com3CVo cvo = JSON.parseObject(json, Com3CVo.class);
+            if (cvo == null) {
+                throw new Exception("json杞珻om21Vo涓簄ull");
+            }
+            if (cvo.minute == null) {
+                throw new Exception("鑷姤鍛ㄦ湡涓嶈兘涓虹┖");
+            }
+            if (cvo.minute < 1) {
+                throw new Exception("鑷姤鍛ㄦ湡涓嶈兘灏忎簬1");
+            }
+            CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1();
+            byte[] bytes;
+            byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code];
+            byte index = 0;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = 0 ;//甯ч暱搴�
+            index++;
+            bsHead[index] = 0;//甯ч暱搴�
 
-        index++ ;
-        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+            index++;
+            bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte;
 
-        index++ ;
-        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+            index++;
+            bsHead[index] = commonV1_0_1.createCtrl((byte) 0, (byte) 0);
 
-        index++ ;
-        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
-        index += 5 ;
+            index++;
+            GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+            index += 5;
 
-        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+            ByteUtil.hex2Bytes(para.commandCode, bsHead, index);
 
-        if(para.param == null){
-            throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ;
-        }else{
-            index = 0 ;
-            byte[] bs = new byte[10] ;
-            Integer minute = (Integer)para.param ;
-            ByteUtilUnsigned.short2Bytes_LE(bs, minute.shortValue(), index);
-            index += 2 ;
+            index = 0;
+            byte[] bs = new byte[10];
+            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.minute.shortValue(), index);
+            index += 2;
             GlCreate.createPw(bs, index);
-            index += 2 ;
+            index += 2;
             GlCreate.createTp(bs, index);
-            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+            bytes = ByteUtil.bytesMerge(bsHead, bs);
+
+            GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+            byte[] bsTail = GlCreate.createCrcTail(bytes);//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+            bytes = ByteUtil.bytesMerge(bytes, bsTail);
+
+            return bytes;
         }
-
-        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
-
-        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
-
-        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
-
-        return bytes ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Down.java
new file mode 100644
index 0000000..92943a0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Down.java
@@ -0,0 +1,86 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:51
+ * @LastEditTime 2024/4/10 18:51
+ * @Description
+ */
+@AnnotationCodeDown(ifAny={
+        CodeV1_0_1.cd_51
+})
+public class Cd_51_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
+        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+        byte[] bytes ;
+        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+        byte index = 0 ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = 0 ;//甯ч暱搴�
+
+        index++ ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+        index++ ;
+        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+        index += 5 ;
+
+        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+        bytes = bsHead ;
+
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Up.java
new file mode 100644
index 0000000..2b80960
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_51_Up.java
@@ -0,0 +1,67 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd51Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:42
+ * @LastEditTime 2024/4/10 18:42
+ * @Description
+ */
+@AnnotationCodeUp(ifAny={
+        CodeV1_0_1.cd_51
+})
+public class Cd_51_Up implements CodeParse {
+
+    private static final Logger log = LogManager.getLogger(Cd_51_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
+        int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽鍛戒护搴旂瓟鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//鍛戒护搴旂瓟
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
+        DataCd51Vo cdData = new DataCd51Vo() ;
+        dV1.subData = cdData ;
+        cdData.rtuDt = GlParse.parseRtuDt(bs, ProtocolConstantV206V1_0_0.dataIndex) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Down.java
new file mode 100644
index 0000000..ef312a9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Down.java
@@ -0,0 +1,86 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:51
+ * @LastEditTime 2024/4/10 18:51
+ * @Description
+ */
+@AnnotationCodeDown(ifAny={
+        CodeV1_0_1.cd_5E
+})
+public class Cd_5E_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
+        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+        byte[] bytes ;
+        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+        byte index = 0 ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = 0 ;//甯ч暱搴�
+
+        index++ ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+        index++ ;
+        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+        index += 5 ;
+
+        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+        bytes = bsHead ;
+
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Up.java
new file mode 100644
index 0000000..66720f0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_5E_Up.java
@@ -0,0 +1,70 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd51Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd5EVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:42
+ * @LastEditTime 2024/4/10 18:42
+ * @Description
+ */
+@AnnotationCodeUp(ifAny={
+        CodeV1_0_1.cd_5E
+})
+public class Cd_5E_Up implements CodeParse {
+
+    private static final Logger log = LogManager.getLogger(Cd_5E_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
+        int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽鍛戒护搴旂瓟鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//鍛戒护搴旂瓟
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
+        DataCd5EVo cdData = new DataCd5EVo() ;
+        dV1.subData = cdData ;
+        short index = ProtocolConstantV206V1_0_0.dataIndex ;
+        cdData.alarmVo = com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse.parseAlarm(bs, index) ;
+        index += 2 ;
+        cdData.stateVo = com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse.parseState(bs, index) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_B0_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_B0_Down.java
new file mode 100644
index 0000000..5bd0087
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_B0_Down.java
@@ -0,0 +1,93 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/06/29 7:55
+ * @LastEditTime 2024/06/29 7:55
+ * @Description
+ */
+@AnnotationCodeDown(ifAny={
+        CodeV1_0_1.cd_B0
+})
+public class Cd_B0_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
+        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+        byte[] bytes ;
+        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+        byte index = 0 ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = 0 ;//甯ч暱搴�
+
+        index++ ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ;
+
+        index++ ;
+        GlCreate.createRtuAddr(para.rtuAddr, bsHead, index);
+        index += 5 ;
+
+        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+        byte index1 = 0 ;
+        byte[] bs = new byte[9] ;
+        bs[index1++] = (byte)0xF0 ;
+        GlCreate.createPw(bs, index1);
+        index1 += 2 ;
+        GlCreate.createTp(bs, index1);
+
+        bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd51Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd51Vo.java
new file mode 100644
index 0000000..6318537
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd51Vo.java
@@ -0,0 +1,24 @@
+package com.dy.common.mw.protocol.p206V1_0_0.upVos;
+
+import lombok.Data;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:44
+ * @LastEditTime 2024/4/10 18:44
+ * @Description
+ */
+@Data
+public class DataCd51Vo {
+    public String rtuDt ;
+
+    public String toString(){
+        StringBuilder sb = new StringBuilder() ;
+        sb.append("   鏌ヨ缁堢鏃堕挓搴旂瓟:\n");
+        sb.append("      鏃堕挓锛�");
+        sb.append(rtuDt);
+        sb.append("\n");
+
+        return sb.toString() ;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd5EVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd5EVo.java
new file mode 100644
index 0000000..db92ff2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd5EVo.java
@@ -0,0 +1,30 @@
+package com.dy.common.mw.protocol.p206V1_0_0.upVos;
+
+import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
+import lombok.Data;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/4/10 18:44
+ * @LastEditTime 2024/4/10 18:44
+ * @Description
+ */
+@Data
+public class DataCd5EVo {
+    public DataAlarmVo alarmVo ;
+    public DataStateVo stateVo ;
+
+    public String toString(){
+        StringBuilder sb = new StringBuilder() ;
+        sb.append("   鏌ヨ缁堢鐘舵�佸拰鎶ヨ鐘舵�佸簲绛�:\n");
+        if(alarmVo != null){
+            sb.append(alarmVo.toString());
+            sb.append("\n");
+        }
+        if(stateVo != null){
+            sb.append(stateVo.toString());
+            sb.append("\n");
+        }
+        return sb.toString() ;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
index 0dc5904..9d5dab4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
@@ -10,7 +10,7 @@
 public class DataCd84Vo {
 
     public Byte opType;//寮�鍏抽榾绫诲瀷(1:鍒峰崱寮�闃�锛�2:鍒峰崱鍏抽榾锛�3:涓績绔欏紑闃�锛�4:涓績绔欏叧闃�锛�5:娆犺垂鍏抽榾锛�6:娴侀噺璁℃晠闅滃叧闃�锛�7:绱ф�ュ叧闂紱8:鐢ㄦ埛杩滅▼寮�闃�锛�9:鐢ㄦ埛杩滅▼鍏抽榾锛�10:寮�鍏抽榾鍗″叧闃�锛�11:寮�鍏抽榾鍗″埛鍗″崱寮�闃�锛�)
-    public Byte cardType ;//鍗$被鍨�(1:鐢ㄦ埛鍗★紱2锛氱鐞嗗憳鍗★紱3锛氳皟璇曞崱锛�4锛氬紑鍏抽榾鍗★紱5锛氭竻绌哄崱)
+    public Byte cardType ;//鍗$被鍨�(0:鏃犲崱锛�1:鐢ㄦ埛鍗★紱2锛氱鐞嗗憳鍗★紱3锛氳皟璇曞崱锛�4锛氬紑鍏抽榾鍗★紱5锛氭竻绌哄崱)
     public String cardAddr ;//IC鍗″湴鍧�锛�8浣嶅瓧绗︼級
     public String cardNo ;//IC鍗$紪鍙�
     public Double remainMoney ;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java
index 7fc1185..164f7f5 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java
@@ -9,43 +9,53 @@
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
-
 import java.io.IOException;
 import java.io.PrintWriter;
 
 @Slf4j
 public class UserTokenFilter implements Filter {
+
+
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
     }
 
     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-        HttpServletRequest request = (HttpServletRequest) servletRequest;
-        HttpServletResponse response = (HttpServletResponse) servletResponse;
-        String token = request.getHeader(Constant.UserTokenKeyInHeader);
-        if(!StringUtils.isNullOrEmpty(token)){
-            UserTokenContext.set(token);
+        HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
+        String requestURI = httpRequest.getRequestURI();
+        // 妫�鏌ヨ姹傛槸鍚︿负闈炶繃婊ら」
+        if (UserTokenNoFilter.urls != null && UserTokenNoFilter.urls.stream().anyMatch(url -> requestURI.startsWith(url))) {
+            // 濡傛灉鏄潪杩囨护椤癸紝鐩存帴璋冪敤涓嬩竴涓繃婊ゅ櫒鎴杝ervlet
             filterChain.doFilter(servletRequest, servletResponse);
-        }else{
-            PrintWriter pw = null ;
-            try {
-                BaseResponse<?> res = BaseResponseUtils.buildToLogin() ;
-                String jsonString = JSON.toJSONString(res);
-                response.setCharacterEncoding("UTF-8");
-                response.setContentType("application/json; charset=utf-8");
-                pw = response.getWriter() ;
-                pw.write(jsonString);
-                pw.flush();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }finally {
-                if(pw != null){
-                    pw.close();
+        } else {
+            // 濡傛灉涓嶆槸闈炶繃婊ら」锛屾墽琛岃繃婊ら�昏緫
+            HttpServletRequest request = (HttpServletRequest) servletRequest;
+            HttpServletResponse response = (HttpServletResponse) servletResponse;
+            String token = request.getHeader(Constant.UserTokenKeyInHeader);
+            if(!StringUtils.isNullOrEmpty(token)){
+                UserTokenContext.set(token);
+                filterChain.doFilter(servletRequest, servletResponse);
+            }else{
+                PrintWriter pw = null ;
+                try {
+                    BaseResponse<?> res = BaseResponseUtils.buildToLogin() ;
+                    String jsonString = JSON.toJSONString(res);
+                    response.setCharacterEncoding("UTF-8");
+                    response.setContentType("application/json; charset=utf-8");
+                    pw = response.getWriter() ;
+                    pw.write(jsonString);
+                    pw.flush();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }finally {
+                    if(pw != null){
+                        pw.close();
+                    }
                 }
+                //request.setAttribute(Constant.ErrorKeyInRequest, "鏈緱鍒扮敤鎴穞oken");
+                //response.sendRedirect("/error");
             }
-            //request.setAttribute(Constant.ErrorKeyInRequest, "鏈緱鍒扮敤鎴穞oken");
-            //response.sendRedirect("/error");
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenNoFilter.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenNoFilter.java
new file mode 100644
index 0000000..cae7094
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenNoFilter.java
@@ -0,0 +1,27 @@
+package com.dy.common.webFilter;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/1 14:01
+ * @Description
+ */
+@Configuration
+@ConfigurationProperties(prefix = "tokennofilter")
+public class UserTokenNoFilter {
+
+    public static List<String> urls ;
+
+    public List<String> getUrls(){
+        return urls ;
+    }
+
+    public void setUrls(List<String> urls){
+        UserTokenNoFilter.urls = urls ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
index 8cc409c..433f9cc 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
@@ -5,7 +5,10 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
 import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -164,4 +167,47 @@
     @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date closeDt;
 
+    public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+        this.opType = dataCd83OpenVo.type ;
+        this.opTotalAmount = dataCd83OpenVo.totalAmount ;
+        this.opIcCardNo = dataCd83OpenVo.icCardNo ;
+        this.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
+        this.opRemainMoney = dataCd83OpenVo.remainMoney ;
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
+        this.clDt = null ;
+        this.clType = null ;
+        this.clTotalAmount = null ;
+        this.clIcCardNo = null ;
+        this.clIcCardAddr = null ;
+        this.clRemainMoney = null ;
+        this.clThisAmount = null ;
+        this.clThisMoney = null ;
+        this.clThisTime = null ;
+        this.clOpenDt = null ;
+        this.closeDt = null ;
+    }
+
+    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve)throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+        this.opType = dataCd83OpenVo.type ;
+        this.opTotalAmount = dataCd83OpenVo.totalAmount ;
+        this.opIcCardNo = dataCd83OpenVo.icCardNo ;
+        this.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
+        this.opRemainMoney = dataCd83OpenVo.remainMoney ;
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
+        if(clearCloseValve){
+            this.clDt = null ;
+            this.clType = null ;
+            this.clTotalAmount = null ;
+            this.clIcCardNo = null ;
+            this.clIcCardAddr = null ;
+            this.clRemainMoney = null ;
+            this.clThisAmount = null ;
+            this.clThisMoney = null ;
+            this.clThisTime = null ;
+            this.clOpenDt = null ;
+            this.closeDt = null ;
+        }
+    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
index 949b6e1..91272a4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
@@ -5,7 +5,10 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
 import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -173,4 +176,49 @@
     @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date closeDt;
 
+    public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+        this.opType = dataCd83OpenVo.type ;
+        this.opTotalAmount = dataCd83OpenVo.totalAmount ;
+        this.opIcCardNo = dataCd83OpenVo.icCardNo ;
+        this.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
+        this.opRemainMoney = dataCd83OpenVo.remainMoney ;
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
+        this.clDt = null ;
+        this.clType = null ;
+        this.clTotalAmount = null ;
+        this.clIcCardNo = null ;
+        this.clIcCardAddr = null ;
+        this.clRemainMoney = null ;
+        this.clThisAmount = null ;
+        this.clThisMoney = null ;
+        this.clThisTime = null ;
+        this.clOpenDt = null ;
+        this.closeDt = null ;
+    }
+
+    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        this.opType = dataCd83OpenVo.type ;
+        this.opTotalAmount = dataCd83OpenVo.totalAmount ;
+        this.opIcCardNo = dataCd83OpenVo.icCardNo ;
+        this.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
+        this.opRemainMoney = dataCd83OpenVo.remainMoney ;
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
+
+        if(clearCloseValve) {
+            this.clDt = null;
+            this.clType = null;
+            this.clTotalAmount = null;
+            this.clIcCardNo = null;
+            this.clIcCardAddr = null;
+            this.clRemainMoney = null;
+            this.clThisAmount = null;
+            this.clThisMoney = null;
+            this.clThisTime = null;
+            this.clOpenDt = null;
+            this.closeDt = null;
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index edd5c60..87f3780 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -131,4 +131,9 @@
 #    pj: 101
 
 #閫氳鍗忚
-#protocol: DYJS_2023,DYJS_2024
\ No newline at end of file
+#protocol: DYJS_2023,DYJS_2024
+
+#涓嶈繘琛寀serToken杩囨护鐨刄RL锛孈ConfigurationProperties瑕佹眰tokennofilter涓墍鏈夊瓧姣嶉兘灏忓啓
+tokennofilter:
+    urls:
+        - /sso/sso
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index dd8d58a..ec3519d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -67,6 +67,7 @@
             //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
             if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt).equals(poLast.openDt)){
                 //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊
+                //log.error("娴嬭瘯寮�闃�鏃ユ湡涓�鑷�");
             }else{
                 if(poLast.opType != null){
                     //鍘熻褰曞瓨鍦ㄥ紑闃�鏁版嵁锛岄鍏堣繘琛屾椂闂村姣�
@@ -149,16 +150,11 @@
      * @throws Exception
      */
     private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
-        RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-                rtuAddr,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                dataCd83OpenVo.type,
-                dataCd83OpenVo.totalAmount,
-                dataCd83OpenVo.icCardNo,
-                dataCd83OpenVo.icCardAddr,
-                dataCd83OpenVo.remainMoney,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt),
-                null, null, null, null, null, null, null, null, null, null, null) ;
+        RmOpenCloseValveLast po = new RmOpenCloseValveLast() ;
+        po.controllerId = controller==null?null:controller.getId() ;
+        po.intakeId = controller==null?null:controller.getIntakeId() ;
+        po.rtuAddr = rtuAddr ;
+        po.valueFrom(dV1_0_1, dataCd83OpenVo);
         return po ;
     }
 
@@ -173,16 +169,11 @@
      * @throws Exception
      */
     private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
-        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-                rtuAddr,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                dataCd83OpenVo.type,
-                dataCd83OpenVo.totalAmount,
-                dataCd83OpenVo.icCardNo,
-                dataCd83OpenVo.icCardAddr,
-                dataCd83OpenVo.remainMoney,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt),
-                null, null, null, null, null, null, null, null, null, null, null) ;
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory() ;
+        po.controllerId = controller==null?null:controller.getId() ;
+        po.intakeId = controller==null?null:controller.getIntakeId() ;
+        po.rtuAddr = rtuAddr ;
+        po.valueFrom(dV1_0_1, dataCd83OpenVo);
         return po ;
     }
 
@@ -200,56 +191,12 @@
     private void updateOpenValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
         poLast.controllerId = controller==null?null:controller.getId();
         poLast.intakeId = controller==null?null:controller.getIntakeId();
-
-        poLast.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
-        poLast.opType = dataCd83OpenVo.type ;
-        poLast.opTotalAmount = dataCd83OpenVo.totalAmount ;
-        poLast.opIcCardNo = dataCd83OpenVo.icCardNo ;
-        poLast.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
-        poLast.opRemainMoney = dataCd83OpenVo.remainMoney ;
-        poLast.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
+        poLast.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve);
 
         if(poHistory != null){
             poHistory.controllerId = controller==null?null:controller.getId();
             poHistory.intakeId = controller==null?null:controller.getIntakeId();
-
-            poHistory.opDt = poLast.opDt;
-            poHistory.opType = dataCd83OpenVo.type ;
-            poHistory.opTotalAmount = dataCd83OpenVo.totalAmount ;
-            poHistory.opIcCardNo = dataCd83OpenVo.icCardNo ;
-            poHistory.opIcCardAddr = dataCd83OpenVo.icCardAddr ;
-            poHistory.opRemainMoney = dataCd83OpenVo.remainMoney ;
-            poHistory.openDt = poLast.openDt ;
+            poHistory.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve);
         }
-
-        if(clearCloseValve){
-            poLast.clDt = null ;
-            poLast.clType = null ;
-            poLast.clTotalAmount = null ;
-            poLast.clIcCardNo = null ;
-            poLast.clIcCardAddr = null ;
-            poLast.clRemainMoney = null ;
-            poLast.clThisAmount = null ;
-            poLast.clThisMoney = null ;
-            poLast.clThisTime = null ;
-            poLast.clOpenDt = null ;
-            poLast.closeDt = null ;
-
-            if(poHistory != null) {
-                poHistory.clDt = null;
-                poHistory.clType = null;
-                poHistory.clTotalAmount = null;
-                poHistory.clIcCardNo = null;
-                poHistory.clIcCardAddr = null;
-                poHistory.clRemainMoney = null;
-                poHistory.clThisAmount = null;
-                poHistory.clThisMoney = null;
-                poHistory.clThisTime = null;
-                poHistory.clOpenDt = null;
-                poHistory.closeDt = null;
-            }
-
-        }
-
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
index 5567368..7a6aef6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
@@ -1,6 +1,6 @@
 package com.dy.pipIrrMwTestWeb;
 
-import com.dy.pipIrrMwTestWeb.test.CommandP206V202404Ctrl;
+import com.dy.pipIrrMwTestWeb.p206V202404test.CommandP206V202404Ctrl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CodeLocal.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
similarity index 87%
rename from pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CodeLocal.java
rename to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
index e6c29c8..b4135de 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
@@ -1,4 +1,4 @@
-package com.dy.pipIrrMwTestWeb.test;
+package com.dy.pipIrrMwTestWeb.common;
 
 public class CodeLocal {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CommandResultCtrl.java
similarity index 95%
rename from pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java
rename to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CommandResultCtrl.java
index 11047f9..4c443d9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CommandResultCtrl.java
@@ -1,4 +1,4 @@
-package com.dy.pipIrrMwTestWeb.test;
+package com.dy.pipIrrMwTestWeb.common;
 
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.webUtil.BaseResponse;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V100.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
similarity index 91%
rename from pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V100.java
rename to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
index 5273464..78aa00a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V100.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
@@ -1,4 +1,4 @@
-package com.dy.pipIrrMwTestWeb.test;
+package com.dy.pipIrrMwTestWeb.p206V1_0_0;
 
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.CommandType;
@@ -14,16 +14,16 @@
 
 /**
  * @Author: liurunyu
- * @Date: 2024/5/14 17:32
+ * @Date: 2024/6/29 6:47
  * @Description
  */
-public class ComSupportP206V100 {
+public class ComSupportP206V1_0_0 {
     protected static String mwUrlTest = "http://127.0.0.1:8070/rtuMw/com/test" ;
     protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
 
-    protected static String rtuAddr = "620201000029" ;
+    protected static String rtuAddr = "532328059995" ;
     protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ;
-    protected static String icCardNo = "37142501020500001" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
+    protected static String icCardNo = "7044010686" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
 
 
     @Autowired
@@ -84,4 +84,4 @@
         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/p206V1_0_0/CommandP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
new file mode 100644
index 0000000..b15fe11
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -0,0 +1,152 @@
+package com.dy.pipIrrMwTestWeb.p206V1_0_0;
+
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandType;
+import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.downVos.*;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrMwTestWeb.common.CodeLocal;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/29 6:46
+ * @Description
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="comP206V1_0_0")
+@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
+public class CommandP206V1_0_0Ctrl extends ComSupportP206V1_0_0 {
+
+    @GetMapping(path = "test")
+    public BaseResponse<String> test(String com) {
+        BaseResponse<String> rt = null ;
+        if(com == null){
+            rt = this.connect() ;//杩炴帴閫氫俊涓棿浠舵祴璇�
+        }else{
+            if(com.equals("21")){
+                rt = this.cd21() ;
+            }else if(com.equals("37")){
+                rt = this.cd37() ;
+            }else if(com.equals("38")){
+                rt = this.cd38() ;
+            }else if(com.equals("39")){
+                rt = this.cd39() ;
+            }else if(com.equals("3A")){
+                rt = this.cd3A() ;
+            }else if(com.equals("3B")){
+                rt = this.cd3B() ;
+            }else if(com.equals("3C")){
+                rt = this.cd3C() ;
+            }else if(com.equals("92")){
+                rt = this.cd92() ;
+            }else if(com.equals("93")){
+                rt = this.cd93() ;
+            }else if(com.equals("97")){
+                rt = this.cd97() ;
+            }else if(com.equals("98")){
+                rt = this.cd98() ;
+            }else if(com.equals("B0")){
+                rt = this.cdB0() ;
+            }
+        }
+        return rt ;
+    }
+
+    /**
+     * 娴嬭瘯杩為�氭��
+     * @return
+     */
+    private BaseResponse connect(){
+        return this.sendTest() ;
+    }
+
+    private BaseResponse cd21(){
+        Com21Vo comVo = new Com21Vo() ;
+        comVo.ip = "8.140.180.59" ;//IP锛堜緥濡� 125.235.35.89锛�
+        comVo.port = 6001 ;///绔彛鍙凤紙0~65536锛�
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_21, comVo, null)) ;
+    }
+
+    private BaseResponse cd37(){
+        Com37Vo comVo = new Com37Vo() ;
+        comVo.seconds = 20 ;
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_37, comVo, null)) ;
+    }
+
+    private BaseResponse cd38(){
+        Com38Vo comVo = new Com38Vo() ;
+        comVo.remainMoneyAlarm = 10.0 ;//鐢ㄦ埛浣欓鎶ヨ鍊�(澶т簬1.0)
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_38, comVo, null)) ;
+    }
+
+    private BaseResponse cd39(){
+        Com39Vo comVo = new Com39Vo() ;
+        comVo.batteryVoltAlarm = 1.0 ;//鐢垫睜鐢靛帇鎶ヨ鍊�(澶т簬0.1)
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_39, comVo, null)) ;
+    }
+
+    private BaseResponse cd3A(){
+        Com3AVo comVo = new Com3AVo() ;
+        comVo.current = 1.0 ;//闃�闂ㄥ牭杞數娴�(澶т簬0)
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3A, comVo, null)) ;
+    }
+
+    private BaseResponse cd3B(){
+        Com3BVo comVo = new Com3BVo() ;
+        comVo.second = 30 ;//闃�闂ㄨ秴鏃舵椂闂�(绉�)(澶т簬1)
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3B, comVo, null)) ;
+    }
+
+    private BaseResponse cd3C(){
+        Com3CVo comVo = new Com3CVo() ;
+        comVo.minute = 10 ;//鑷姤鍛ㄦ湡(鍒嗛挓)(澶т簬0)
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3C, comVo, null)) ;
+    }
+
+    private BaseResponse cd92(){
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_92, null, null)) ;
+    }
+
+    private BaseResponse cd93(){
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_93, null, null)) ;
+    }
+
+    //APP杩滅▼寮�闃�
+    private BaseResponse cd97(){
+        Com97Vo comVo = new Com97Vo() ;
+        comVo.icCardNo = CommandP206V1_0_0Ctrl.icCardNo ;
+        comVo.moneyRemain = 234.56 ;
+        comVo.waterPrice = 1.2 ;
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_97, comVo, null)) ;
+    }
+    //APP杩滅▼鍏抽榾
+    private BaseResponse cd98(){
+        Com98Vo comVo = new Com98Vo() ;
+        comVo.icCardNo = CommandP206V1_0_0Ctrl.icCardNo ;
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_98, comVo, null)) ;
+    }
+
+    private BaseResponse cdB0(){
+        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_B0, null, null)) ;
+    }
+
+    //鍦ㄧ嚎鎯呭喌
+    private BaseResponse online(){
+        Command com = new Command() ;
+        com.id = Command.defaultId;//瀹為檯搴旂敤涓紝鏇挎崲鎴愭暟鎹簱璁板綍id
+        com.protocol = ProtocolConstantV206V1_0_0.protocolName ;
+        com.code = CodeLocal.onLine ;
+        com.type = CommandType.innerCommand ;
+        com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
+        return this.sendCom2Mw(com) ;
+    }
+
+
+}
+
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V202404.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
similarity index 97%
rename from pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V202404.java
rename to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
index 71a73e5..2496adb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupportP206V202404.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/ComSupportP206V202404.java
@@ -1,8 +1,7 @@
-package com.dy.pipIrrMwTestWeb.test;
+package com.dy.pipIrrMwTestWeb.p206V202404test;
 
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.CommandType;
-import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
 import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.webUtil.BaseResponse;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V202404Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/CommandP206V202404Ctrl.java
similarity index 99%
rename from pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V202404Ctrl.java
rename to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/CommandP206V202404Ctrl.java
index f911f5b..a7e9eb7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V202404Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V202404test/CommandP206V202404Ctrl.java
@@ -1,4 +1,4 @@
-package com.dy.pipIrrMwTestWeb.test;
+package com.dy.pipIrrMwTestWeb.p206V202404test;
 
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.downVos.*;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java
deleted file mode 100644
index cff7e63..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandP206V100Ctrl.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.dy.pipIrrMwTestWeb.test;
-
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.CommandType;
-import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
-import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
-import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
-import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo;
-import com.dy.common.webUtil.BaseResponse;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Author: liurunyu
- * @Date: 2024/5/29 09:17
- * @Description
- */
-@Slf4j
-@RestController
-@RequestMapping(path="comP206V100")
-@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
-public class CommandP206V100Ctrl extends ComSupportP206V100 {
-
-    @GetMapping(path = "test")
-    public BaseResponse<String> test() {
-        //return this.connect() ;//杩炴帴閫氫俊涓棿浠舵祴璇�
-        //return this.cd97() ;
-        //return this.cd98() ;
-        return this.online() ;
-    }
-
-    /**
-     * 娴嬭瘯杩為�氭��
-     * @return
-     */
-    private BaseResponse connect(){
-        return this.sendTest() ;
-    }
-
-    //APP杩滅▼寮�闃�
-    private BaseResponse cd97(){
-        Com97Vo comVo = new Com97Vo() ;
-        comVo.icCardNo = CommandP206V100Ctrl.icCardNo ;
-        comVo.moneyRemain = 234.56 ;
-        comVo.waterPrice = 1.2 ;
-
-        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_97, comVo, null)) ;
-    }
-    //APP杩滅▼鍏抽榾
-    private BaseResponse cd98(){
-        Com98Vo comVo = new Com98Vo() ;
-        comVo.icCardNo = CommandP206V100Ctrl.icCardNo ;
-        return this.sendCom2Mw(this.command(CodeV1_0_1.cd_98, comVo, null)) ;
-    }
-    //鍦ㄧ嚎鎯呭喌
-    private BaseResponse online(){
-        Command com = new Command() ;
-        com.id = Command.defaultId;//瀹為檯搴旂敤涓紝鏇挎崲鎴愭暟鎹簱璁板綍id
-        com.protocol = ProtocolConstantV206V1_0_0.protocolName ;
-        com.code = CodeLocal.onLine ;
-        com.type = CommandType.innerCommand ;
-        com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
-        return this.sendCom2Mw(com) ;
-    }
-
-
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java
index 4736088..41a4699 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java
@@ -1,7 +1,6 @@
 package com.dy.sso.config;
 
 import com.dy.common.webListener.ConfigListener;
-import com.dy.sso.util.SsoListener;
 import jakarta.servlet.ServletContextListener;
 import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
 import org.springframework.context.annotation.Bean;
diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml
index 1f1dd86..ef476fa 100644
--- a/pipIrr-platform/pipIrr-web/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pom.xml
@@ -64,6 +64,11 @@
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>
             <scope>runtime</scope>
         </dependency>
diff --git a/pipIrr-platform/pom.xml b/pipIrr-platform/pom.xml
index bc6e48a..c195141 100644
--- a/pipIrr-platform/pom.xml
+++ b/pipIrr-platform/pom.xml
@@ -74,7 +74,14 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
-
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-configuration-processor</artifactId>
+                <version>3.1.3</version>
+                <type>pom</type>
+                <scope>import</scope>
+                <optional>true</optional>
+            </dependency>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-devtools</artifactId>

--
Gitblit v1.8.0