From 854e951894deaa54b26590f8575474ed7a5f5b88 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期二, 02 七月 2024 10:32:30 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pom.xml                                                                                                          |    9 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java |   16 
 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_5E_Up.java                             |   70 +
 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                                 |  147 +++
 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/upVos/DataCd5EVo.java                           |   30 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java                                         |   56 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java  |   16 
 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/p206V202404/upVos/DataCd84Vo.java                          |    4 
 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/downVos/Com21Vo.java                            |   14 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java                            |   28 
 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/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/Com3BVo.java                            |   10 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                                           |  127 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_B0_Down.java                           |   93 ++
 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                                                          |    9 
 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/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java      |    4 
 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/parse/Cd_37_Down.java                           |   81 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/config/WebListenerConfiguration.java                          |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java                         |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                                 |   45 -
 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/p206V202404/parse/Cd_84_Up.java                            |    2 
 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-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                                        |  102 ++
 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/parse/Cd_38_Down.java                           |   81 +
 pipIrr-platform/pipIrr-web/pom.xml                                                                                               |    5 
 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 
 /dev/null                                                                                                                        |   69 -
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CommandResultCtrl.java                  |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3AVo.java                            |   10 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/log4j2.yml                                                      |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/downVos/Com3CVo.java                            |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java                              |  234 ++++-
 53 files changed, 1,712 insertions(+), 573 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/mw/protocol/p206V202404/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
index db78c79..a515e88 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
@@ -106,7 +106,7 @@
         cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
 
         index += 8 ;
-        cdData.opDt = GlParse.parseRtuDt(bs, index) ;
+        cdData.openDt = GlParse.parseRtuDt(bs, index) ;
 
         index += 6 ;
         cdData.waterTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
index 86bc1a7..d1b8e04 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
@@ -8,10 +8,10 @@
 
 	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
 	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public String openDt;//寮�娉�/闃�鏃堕棿(yyyy-mm-dd HH:MM:SS)
 	public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
 	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
 	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-	public String opDt ;//寮�娉�/闃�鏃堕棿(yyyy-mm-dd HH:MM:SS)
 	public Double waterTotalAmount ;//姘磋〃绱姘撮噺锛屽崟浣�0.01绔嬫柟绫�
 	public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺锛屽崟浣�0.01搴�
 	public Double moneyRemainUser ;//鐢ㄦ埛鍓╀綑閲戦锛� 鍗曚綅0.01鍏�
@@ -42,7 +42,7 @@
 		sb.append(orderNo == null?"鏈煡":orderNo) ;
 		sb.append("\n") ;
 		sb.append("      寮�娉�/闃�鏃堕棿 : ") ;
-		sb.append(opDt == null?"鏈煡":opDt) ;
+		sb.append(openDt == null?"鏈煡": openDt) ;
 		sb.append("\n") ;
 		sb.append("      姘磋〃绱姘撮噺 : ") ;
 		sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
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/daoBa/BaPrivilegeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaPrivilegeMapper.java
deleted file mode 100644
index 9c9cca4..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaPrivilegeMapper.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.dy.pipIrrGlobal.daoBa;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoBa.BaPrivilege;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-public interface BaPrivilegeMapper extends BaseMapper<BaPrivilege> {
-
-     /**
-     * 鏌ヨ鍏ㄩ儴
-     * @return List<BaPrivilege>
-     */
-    List<BaPrivilege> selectAll() ;
-
-    /**
-     * 鏌ヨ鏌愪釜鐢ㄦ埛鎵�闅跺睘鎵�鏈夎鑹茬殑鎵�鏈夋潈闄�
-     * @param userId 鐢ㄦ埛ID
-     * @return List<Integer>
-     */
-    List<Integer> selectPrivilegeByUserId(@Param("userId") Long userId) ;
-
-    /**
-     * 鏌ヨ鏌愪釜瑙掕壊鎵�闅跺睘浜庤瑙掕壊鐨勬墍鏈夋潈闄�
-     * @param roleId 鐢ㄦ埛ID
-     * @return List<Integer>
-     */
-    List<Integer> selectPrivilegeByRoleId(@Param("roleId") Long roleId) ;
-
-    /**
-     * insert record to table
-     * @param record the record
-     * @return insert count
-     */
-    int putin(BaPrivilege record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(BaPrivilege record);
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java
deleted file mode 100644
index ea41c94..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.dy.pipIrrGlobal.daoBa;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-@Mapper
-public interface BaRolePrivilegeMapper extends BaseMapper<BaRolePrivilege> {
-
-    /**
-     * insert record to table
-     * @param record the record
-     * @return insert count
-     */
-    int putin(BaRolePrivilege record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(BaRolePrivilege record);
-
-    /**
-     * delete by primary key
-     * @param roleId primaryKey
-     * @param privilegeId primaryKey
-     * @return deleteCount
-     */
-    int deleteByPrimaryKey(@Param("roleId") Long roleId, @Param("privilegeId") Long privilegeId);
-
-    /**
-     * delete by roleId
-     * @param roleId 瑙掕壊ID
-     * @return deleteCount
-     */
-    int deleteByRoleId(@Param("roleId") Long roleId);
-
-    /**
-     * delete by roleId
-     * @param privilegeId 鏉冮檺ID
-     * @return deleteCount
-     */
-    int deleteByPrivilegeId(@Param("privilegeId") Long privilegeId);
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java
deleted file mode 100644
index 39c2f2d..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-06-20 10:34
- * @LastEditTime 2024-06-20 10:34
- * @Description
- */
-
-@Mapper
-public interface RmOpenCloseHistoryMapper extends BaseMapper<RmOpenCloseHistory> {
-    int deleteByPrimaryKey(Long id);
-
-    int insert(RmOpenCloseHistory record);
-
-    int insertSelective(RmOpenCloseHistory record);
-
-    RmOpenCloseHistory selectByPrimaryKey(Long id);
-
-    int updateByPrimaryKeySelective(RmOpenCloseHistory record);
-
-    int updateByPrimaryKey(RmOpenCloseHistory record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java
deleted file mode 100644
index c94b41e..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-06-20 10:34
- * @LastEditTime 2024-06-20 10:34
- * @Description
- */
-
-@Mapper
-public interface RmOpenCloseLastMapper extends BaseMapper<RmOpenCloseLast> {
-    int deleteByPrimaryKey(Long id);
-
-    int insert(RmOpenCloseLast record);
-
-    int insertSelective(RmOpenCloseLast record);
-
-    RmOpenCloseLast selectByPrimaryKey(Long id);
-
-    int updateByPrimaryKeySelective(RmOpenCloseLast record);
-
-    int updateByPrimaryKey(RmOpenCloseLast record);
-
-    /**
-     * 鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇寮�鍏抽榾涓婃姤鏈�鏂版暟鎹�
-     * @param rtuAddr
-     * @return
-     */
-    List<RmOpenCloseLast> getRmOpenCloseReportLast(String rtuAddr);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
index ab59ab4..b59ab04 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -4,9 +4,8 @@
 import org.apache.ibatis.annotations.Mapper;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/23 15:42
- * @LastEditTime 2024/2/23 15:42
+ * @Author: liurunyu
+ * @Date: 2024/7/1 15:28
  * @Description
  */
 @Mapper
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
index 8dbadd4..bc9d4eb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -6,15 +6,15 @@
 import java.util.List;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/23 16:00
- * @LastEditTime 2024/2/23 16:00
+ * @Author: liurunyu
+ * @Date: 2024/7/1 15:29
  * @Description
- */   
+ */
 @Mapper
 public interface RmOpenCloseValveLastMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -22,6 +22,7 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
@@ -29,6 +30,7 @@
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
@@ -36,20 +38,15 @@
 
     /**
      * select by primary key
+     *
      * @param id primary key
      * @return object by primary key
      */
     RmOpenCloseValveLast selectByPrimaryKey(Long id);
 
     /**
-     * select by rtuAddr
-     * @param rtuAddr rtuAddr
-     * @return object by rtuAddr
-     */
-    List<RmOpenCloseValveLast> selectByRtuAddr(String rtuAddr);
-
-    /**
      * update record selective
+     *
      * @param record the updated record
      * @return update count
      */
@@ -57,8 +54,17 @@
 
     /**
      * update record
+     *
      * @param record the updated record
      * @return update count
      */
     int updateByPrimaryKey(RmOpenCloseValveLast record);
+
+    /**
+     * select by rtuAddr
+     *
+     * @param rtuAddr rtuAddr
+     * @return object by rtuAddr
+     */
+    List<RmOpenCloseValveLast> selectByRtuAddr(String rtuAddr);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java
deleted file mode 100644
index bbedf86..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.dy.pipIrrGlobal.pojoBa;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.po.BaseEntity;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
-/**
- * 鏉冮檺瀹炰綋
- */
-@TableName(value="ba_privilege", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鏉冮檺瀹炰綋")
-public class BaPrivilege implements BaseEntity {
-
-    public static final long serialVersionUID = 202310211551001L;
-
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    private Long id;
-    /**
-     * 鏉冮檺缂栧彿
-     */
-    public Integer num;
-    /**
-     * 鏉冮檺鍚嶇О
-     */
-    public String name;
-    /**
-     * 鏉冮檺绫诲埆
-     */
-    public String type;
-
-}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
deleted file mode 100644
index ccf3c1a..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.dy.pipIrrGlobal.pojoBa;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.po.BaseEntity;
-import lombok.*;
-/**
- * 瑙掕壊涓庢潈闄愬叧绯诲疄浣�
- */
-@TableName(value="ba_role_privilege", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-public class BaRolePrivilege implements BaseEntity {
-
-    public static final long serialVersionUID = 202311062027001L;
-
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableField(value = "roleId")
-    public Long roleId;
-
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableField(value = "privilegeId")
-    public Long privilegeId;
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java
deleted file mode 100644
index 060b01f..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package com.dy.pipIrrGlobal.pojoRm;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.mw.protocol.p206V202404.DataV202404;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
-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.*;
-
-import java.util.Date;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-06-20 10:34
- * @LastEditTime 2024-06-20 10:34
- * @Description
- */
-/**
- * 寮�鍏抽榾鎶ュ巻鍙叉暟鎹〃
- */
-
-@TableName(value="rm_open_close_history", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "寮�鍏抽榾鎶ュ巻鍙叉暟鎹〃")
-public class RmOpenCloseHistory implements BaseEntity {
-    public static final long serialVersionUID = 202406201040001L;
-
-    /**
-     * 涓婚敭
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    public Long id;
-
-    /**
-     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controllerId;
-
-    /**
-     * 鍙栨按鍙e疄浣揑D锛堝閿級
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeId;
-
-    /**
-     * 鎺у埗鍣ㄥ湴鍧�
-     */
-    public String rtuAddr;
-
-    /**
-     * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date opDt;
-
-    /**
-     * 寮�闃�鎺у埗鍣ㄦ椂閽�
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date opRtuDt;
-
-    /**
-     * IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
-     */
-    public String opIcCardAddr;
-
-    /**
-     * IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
-     */
-    public String opIcCardNo;
-
-    /**
-     * 寮�闃�璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-     */
-    public String opOrderNo;
-
-    /**
-     * 寮�娉�/闃�鏃堕棿
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date openDt;
-
-    /**
-     * 寮�闃�姘磋〃绱姘撮噺
-     */
-    public Double opWaterTotalAmount;
-
-    /**
-     * 寮�闃�鐢佃〃绱鐢甸噺
-     */
-    public Double opEleTotalAmount;
-
-    /**
-     * 寮�闃�鐢ㄦ埛鍓╀綑閲戦
-     */
-    public Double opMoneyRemainUser;
-
-    /**
-     * 寮�闃�鐢ㄦ埛鍓╀綑姘撮噺
-     */
-    public Double opWaterRemainUser;
-
-    /**
-     * 鍏虫车/闃�鏂瑰紡
-     */
-    public Byte opType;
-
-    /**
-     * 鍏抽榾IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
-     */
-    public String clIcCardAddr;
-
-    /**
-     * 鍏抽榾IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
-     */
-    public String clIcCardNo;
-
-    /**
-     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-     */
-    public String clOrderNo;
-
-    /**
-     * 寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date startDt;
-
-    /**
-     * 缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date endDt;
-
-    /**
-     * 姘磋〃绱娴侀噺
-     */
-    public Double clWaterTotalAmount;
-
-    /**
-     * 鐢佃〃绱鐢甸噺
-     */
-    public Double clEleTotalAmount;
-
-    /**
-     * 鐢ㄦ埛鍓╀綑閲戦
-     */
-    public Double clMoneyRemainUser;
-
-    /**
-     * 鐢ㄦ埛鍓╀綑姘撮噺
-     */
-    public Double clWaterRemainUser;
-
-    /**
-     * 鏈浣跨敤鐢甸噺
-     */
-    public Double thisEle;
-
-    /**
-     * 鏈浣跨敤姘撮噺
-     */
-    public Double thisWater;
-
-    /**
-     * 鏈浣跨敤閲戦
-     */
-    public Double thisMoney;
-
-    /**
-     * 鏈浣跨敤鏃堕棿闀�
-     */
-    public Integer thisDuration;
-
-    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{
-        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
-        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
-        //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
-        this.opIcCardAddr = cdData.icCardAddr;
-        this.opIcCardNo = cdData.icCardNo;
-        this.opOrderNo = cdData.orderNo;
-        this.opWaterTotalAmount = cdData.waterTotalAmount;
-        this.opEleTotalAmount = cdData.eleTotalAmount;
-        this.opMoneyRemainUser = cdData.moneyRemainUser;
-        this.opWaterRemainUser = cdData.waterRemainUser;
-    }
-
-    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{
-        this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
-        this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
-        this.opType = cdData.opType;
-        this.clIcCardAddr = cdData.icCardAddr;
-        this.clIcCardNo = cdData.icCardNo;
-        this.clOrderNo = cdData.orderNo;
-        this.clWaterTotalAmount = cdData.waterTotalAmount;
-        this.clEleTotalAmount = cdData.eleTotalAmount;
-        this.clMoneyRemainUser = cdData.moneyRemain;
-        this.clWaterRemainUser = cdData.waterRemain;
-        this.thisEle = cdData.thisEle;
-        this.thisWater = cdData.thisWater;
-        this.thisMoney = cdData.thisMoney;
-        this.thisDuration = cdData.thisDuration;
-    }
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java
deleted file mode 100644
index 5c8723d..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package com.dy.pipIrrGlobal.pojoRm;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.mw.protocol.p206V202404.DataV202404;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
-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.*;
-
-import java.util.Date;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-06-20 10:34
- * @LastEditTime 2024-06-20 10:34
- * @Description
- */
-/**
- * 寮�鍏抽榾鎶ユ渶鏂版暟鎹〃
- */
-
-@TableName(value="rm_open_close_last", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "寮�鍏抽榾鎶ユ渶鏂版暟鎹〃")
-public class RmOpenCloseLast implements BaseEntity {
-    public static final long serialVersionUID = 202406201041001L;
-
-    /**
-     * 涓婚敭
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    public Long id;
-
-    /**
-     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controllerId;
-
-    /**
-     * 鍙栨按鍙e疄浣揑D锛堝閿級
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeId;
-
-    /**
-     * 鎺у埗鍣ㄥ湴鍧�
-     */
-    public String rtuAddr;
-
-    /**
-     * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date opDt;
-
-    /**
-     * 寮�闃�鎺у埗鍣ㄦ椂閽�
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date opRtuDt;
-
-    /**
-     * IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
-     */
-    public String opIcCardAddr;
-
-    /**
-     * IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
-     */
-    public String opIcCardNo;
-
-    /**
-     * 寮�闃�璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-     */
-    public String opOrderNo;
-
-    /**
-     * 寮�娉�/闃�鏃堕棿
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date openDt;
-
-    /**
-     * 寮�闃�姘磋〃绱姘撮噺
-     */
-    public Double opWaterTotalAmount;
-
-    /**
-     * 寮�闃�鐢佃〃绱鐢甸噺
-     */
-    public Double opEleTotalAmount;
-
-    /**
-     * 寮�闃�鐢ㄦ埛鍓╀綑閲戦
-     */
-    public Double opMoneyRemainUser;
-
-    /**
-     * 寮�闃�鐢ㄦ埛鍓╀綑姘撮噺
-     */
-    public Double opWaterRemainUser;
-
-    /**
-     * 鍏虫车/闃�鏂瑰紡
-     */
-    public Byte opType;
-
-    /**
-     * 鍏抽榾IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
-     */
-    public String clIcCardAddr;
-
-    /**
-     * 鍏抽榾IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
-     */
-    public String clIcCardNo;
-
-    /**
-     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-     */
-    public String clOrderNo;
-
-    /**
-     * 寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date startDt;
-
-    /**
-     * 缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date endDt;
-
-    /**
-     * 姘磋〃绱娴侀噺
-     */
-    public Double clWaterTotalAmount;
-
-    /**
-     * 鐢佃〃绱鐢甸噺
-     */
-    public Double clEleTotalAmount;
-
-    /**
-     * 鐢ㄦ埛鍓╀綑閲戦
-     */
-    public Double clMoneyRemainUser;
-
-    /**
-     * 鐢ㄦ埛鍓╀綑姘撮噺
-     */
-    public Double clWaterRemainUser;
-
-    /**
-     * 鏈浣跨敤鐢甸噺
-     */
-    public Double thisEle;
-
-    /**
-     * 鏈浣跨敤姘撮噺
-     */
-    public Double thisWater;
-
-    /**
-     * 鏈浣跨敤閲戦
-     */
-    public Double thisMoney;
-
-    /**
-     * 鏈浣跨敤鏃堕棿闀�
-     */
-    public Integer thisDuration;
-
-    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{
-        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
-        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
-        //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
-        this.opIcCardAddr = cdData.icCardAddr;
-        this.opIcCardNo = cdData.icCardNo;
-        this.opOrderNo = cdData.orderNo;
-        this.opWaterTotalAmount = cdData.waterTotalAmount;
-        this.opEleTotalAmount = cdData.eleTotalAmount;
-        this.opMoneyRemainUser = cdData.moneyRemainUser;
-        this.opWaterRemainUser = cdData.waterRemainUser;
-    }
-
-    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{
-        this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
-        this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
-        this.opType = cdData.opType;
-        this.clIcCardAddr = cdData.icCardAddr;
-        this.clIcCardNo = cdData.icCardNo;
-        this.clOrderNo = cdData.orderNo;
-        this.clWaterTotalAmount = cdData.waterTotalAmount;
-        this.clEleTotalAmount = cdData.eleTotalAmount;
-        this.clMoneyRemainUser = cdData.moneyRemain;
-        this.clWaterRemainUser = cdData.waterRemain;
-        this.thisEle = cdData.thisEle;
-        this.thisWater = cdData.thisWater;
-        this.thisMoney = cdData.thisMoney;
-        this.thisDuration = cdData.thisDuration;
-    }
-}
\ No newline at end of file
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..c86489c 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
@@ -1,5 +1,12 @@
 package com.dy.pipIrrGlobal.pojoRm;
 
+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.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.util.DateTime;
+import java.util.Date;
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -11,6 +18,12 @@
 import lombok.*;
 
 import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/1 15:28
+ * @Description
+ */
 
 /**
  * @Author liurunyu
@@ -36,132 +49,267 @@
     @TableId(type = IdType.INPUT)
     public Long id;
     /**
-    * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-    */
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
     @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long controllerId;
 
     /**
-    * 鍙栨按鍙e疄浣揑D锛堝閿級
-    */
+     * 鍙栨按鍙e疄浣揑D锛堝閿級
+     */
     @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long intakeId;
 
     /**
-    * 鎺у埗鍣ㄥ湴鍧�
-    */
+     * 鎺у埗鍣ㄥ湴鍧�
+     */
     @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
     public String rtuAddr;
 
     /**
-    * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
-    */
-    @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+     * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+     */
+    @Schema(description = "寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date opDt;
 
     /**
-    * 寮�闃�绫诲瀷
-    */
+     * 寮�闃�绫诲瀷
+     */
     @Schema(description = "寮�闃�绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Byte opType;
 
     /**
-    * 寮�闃�鏃剁疮璁℃祦閲�
-    */
+     * 寮�闃�鏃剁疮璁℃祦閲�
+     */
     @Schema(description = "寮�闃�鏃剁疮璁℃祦閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double opTotalAmount;
 
     /**
-    * 寮�闃�IC鍗$紪鍙�
-    */
+     * 寮�闃�IC鍗$紪鍙�
+     */
     @Schema(description = "寮�闃�IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String opIcCardNo;
 
     /**
-    * 寮�闃�ic鍗″湴鍧�
-    */
+     * 寮�闃�ic鍗″湴鍧�
+     */
     @Schema(description = "寮�闃�ic鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String opIcCardAddr;
 
     /**
-    * 寮�闃�鏃跺墿浣欓噾棰�
-    */
+     * 寮�闃�鏃跺墿浣欓噾棰�
+     */
     @Schema(description = "寮�闃�鏃跺墿浣欓噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double opRemainMoney;
 
     /**
-    * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
-    */
+     * 寮�闃�璁㈠崟鍙�
+     */
+    @Schema(description = "寮�闃�璁㈠崟鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String opOrderNo;
+
+    /**
+     * 寮�闃�鏃剁數琛ㄧ疮璁$數閲�
+     */
+    @Schema(description = "寮�闃�鏃剁數琛ㄧ疮璁$數閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double opEleTotalAmount;
+
+    /**
+     * 寮�闃�鏃剁敤姘存埛鍓╀綑姘撮噺
+     */
+    @Schema(description = "寮�闃�鏃剁敤姘存埛鍓╀綑姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double opWaterRemainUser;
+
+    /**
+     * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
+     */
     @Schema(description = "寮�闃�鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date openDt;
 
     /**
-    * 鍏抽榾鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
-    */
+     * 鍏抽榾鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+     */
     @Schema(description = "鍏抽榾鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date clDt;
 
     /**
-    * 鍏抽榾绫诲瀷
-    */
+     * 鍏抽榾绫诲瀷
+     */
     @Schema(description = "鍏抽榾绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Byte clType;
 
     /**
-    * 鍏抽榾鏃剁疮璁℃祦閲�
-    */
+     * 鍏抽榾鏃剁疮璁℃祦閲�
+     */
     @Schema(description = "鍏抽榾鏃剁疮璁℃祦閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double clTotalAmount;
 
     /**
-    * 鍏抽榾鏃禝C鍗$紪鍙�
-    */
+     * 鍏抽榾鏃禝C鍗$紪鍙�
+     */
     @Schema(description = "鍏抽榾鏃禝C鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String clIcCardNo;
 
     /**
-    * 鍏抽榾鏃禝C鍗″湴鍧�
-    */
+     * 鍏抽榾鏃禝C鍗″湴鍧�
+     */
     @Schema(description = "鍏抽榾鏃禝C鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String clIcCardAddr;
 
     /**
-    * 鍏抽榾鏃跺墿浣欓噾棰�
-    */
+     * 鍏抽榾鏃跺墿浣欓噾棰�
+     */
     @Schema(description = "鍏抽榾鏃跺墿浣欓噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double clRemainMoney;
 
     /**
-    * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按閲�
-    */
+     * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按閲�
+     */
     @Schema(description = "鍏抽榾鏃舵湰娆$敤姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double clThisAmount;
 
     /**
-    * 鍏抽榾鎶ヤ腑鏈娑堣垂閲戦
-    */
+     * 鍏抽榾鎶ヤ腑鏈娑堣垂閲戦
+     */
     @Schema(description = "鍏抽榾鏃舵湰娆℃秷璐归噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Double clThisMoney;
 
     /**
-    * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按鏃堕暱锛堝垎閽燂級
-    */
+     * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按鏃堕暱锛堝垎閽燂級
+     */
     @Schema(description = "鍏抽榾鏃舵湰娆$敤姘存椂闀匡紙鍒嗛挓锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Integer clThisTime;
 
     /**
-    * 鍏抽榾鎶ヤ腑鐨勫紑闃�鏃舵帶鍒跺櫒鏃堕挓
-    */
+     * 鍏抽榾鎶ヤ腑鐨勫紑闃�鏃舵帶鍒跺櫒鏃堕挓
+     */
     @Schema(description = "鍏抽榾鎶ヤ腑鐨勫紑闃�鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date clOpenDt;
 
     /**
-    * 鍏抽榾鏃舵帶鍒跺櫒鏃堕挓
-    */
+     * 鍏抽榾鏃舵帶鍒跺櫒鏃堕挓
+     */
     @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date closeDt;
 
+    /**
+     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String clOrderNo;
+
+    /**
+     * 鐢佃〃绱鐢甸噺
+     */
+    public Double clEleTotalAmount;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double clWaterRemainUser;
+
+    /**
+     * 鏈浣跨敤鐢甸噺
+     */
+    public Double thisEle;
+
+    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.opOrderNo = null; //姹熸捣鍗忚鐗规湁
+        this.opEleTotalAmount = null; //姹熸捣鍗忚鐗规湁
+        this.opWaterRemainUser = null; //姹熸捣鍗忚鐗规湁
+        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;
+
+        this.clOrderNo = null;//姹熸捣鍗忚鐗规湁
+        this.clEleTotalAmount = null;//姹熸捣鍗忚鐗规湁
+        this.clWaterRemainUser = null;//姹熸捣鍗忚鐗规湁
+        this.thisEle = null;//姹熸捣鍗忚鐗规湁
+    }
+
+    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.opType = null;
+        this.opTotalAmount = cdData.waterTotalAmount;
+        this.opIcCardNo = cdData.icCardNo;
+        this.opIcCardAddr = cdData.icCardAddr;
+        this.opRemainMoney = cdData.moneyRemainUser;
+        this.opOrderNo = cdData.orderNo; //姹熸捣鍗忚鐗规湁
+        this.opEleTotalAmount = cdData.eleTotalAmount; //姹熸捣鍗忚鐗规湁
+        this.opWaterRemainUser = cdData.waterRemainUser; //姹熸捣鍗忚鐗规湁
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.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;
+
+        this.clOrderNo = null;//姹熸捣鍗忚鐗规湁
+        this.clEleTotalAmount = null;//姹熸捣鍗忚鐗规湁
+        this.clWaterRemainUser = null;//姹熸捣鍗忚鐗规湁
+        this.thisEle = null;//姹熸捣鍗忚鐗规湁
+    }
+
+    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception {
+        this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
+        this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
+        this.opType = cdData.opType;
+        this.clIcCardAddr = cdData.icCardAddr;
+        this.clIcCardNo = cdData.icCardNo;
+        this.clTotalAmount = cdData.waterTotalAmount;
+        this.clRemainMoney = cdData.moneyRemain;
+        this.clThisAmount = cdData.thisWater;
+        this.clThisMoney = cdData.thisMoney;
+        this.clThisTime = cdData.thisDuration;
+        this.clOrderNo = cdData.orderNo;
+        this.clEleTotalAmount = cdData.eleTotalAmount;
+        this.clWaterRemainUser = cdData.waterRemain;
+        this.thisEle = cdData.thisEle;
+    }
+
+    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..11fb1aa 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,13 @@
 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.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
 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.*;
@@ -13,9 +19,8 @@
 import java.util.Date;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/23 16:00
- * @LastEditTime 2024/2/23 16:00
+ * @Author: liurunyu
+ * @Date: 2024/7/1 15:29
  * @Description
  */
 @TableName(value="rm_open_close_valve_last", autoResultMap = true)
@@ -102,6 +107,24 @@
     public Double opRemainMoney;
 
     /**
+     * 寮�闃�璁㈠崟鍙�
+     */
+    @Schema(description = "寮�闃�璁㈠崟鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String opOrderNo;
+
+    /**
+     * 寮�闃�鏃剁數琛ㄧ疮璁$數閲�
+     */
+    @Schema(description = "寮�闃�鏃剁數琛ㄧ疮璁$數閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double opEleTotalAmount;
+
+    /**
+     * 寮�闃�鏃剁敤姘存埛鍓╀綑姘撮噺
+     */
+    @Schema(description = "寮�闃�鏃剁敤姘存埛鍓╀綑姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double opWaterRemainUser;
+
+    /**
      * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
      */
     @Schema(description = "寮�闃�鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
@@ -173,4 +196,122 @@
     @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Date closeDt;
 
+    /**
+     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String clOrderNo;
+
+    /**
+     * 鐢佃〃绱鐢甸噺
+     */
+    public Double clEleTotalAmount;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double clWaterRemainUser;
+
+    /**
+     * 鏈浣跨敤鐢甸噺
+     */
+    public Double thisEle;
+
+    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.opOrderNo = null; //姹熸捣鍗忚鐗规湁
+        this.opEleTotalAmount = null; //姹熸捣鍗忚鐗规湁
+        this.opWaterRemainUser = null; //姹熸捣鍗忚鐗规湁
+        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;
+
+        this.clOrderNo = null;//姹熸捣鍗忚鐗规湁
+        this.clEleTotalAmount = null;//姹熸捣鍗忚鐗规湁
+        this.clWaterRemainUser = null;//姹熸捣鍗忚鐗规湁
+        this.thisEle = null;//姹熸捣鍗忚鐗规湁
+    }
+
+    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception {
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.opType = null;
+        this.opTotalAmount = cdData.waterTotalAmount;
+        this.opIcCardNo = cdData.icCardNo;
+        this.opIcCardAddr = cdData.icCardAddr;
+        this.opRemainMoney = cdData.moneyRemainUser;
+        this.opOrderNo = cdData.orderNo; //姹熸捣鍗忚鐗规湁
+        this.opEleTotalAmount = cdData.eleTotalAmount; //姹熸捣鍗忚鐗规湁
+        this.opWaterRemainUser = cdData.waterRemainUser; //姹熸捣鍗忚鐗规湁
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.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;
+
+        this.clOrderNo = null;//姹熸捣鍗忚鐗规湁
+        this.clEleTotalAmount = null;//姹熸捣鍗忚鐗规湁
+        this.clWaterRemainUser = null;//姹熸捣鍗忚鐗规湁
+        this.thisEle = null;//姹熸捣鍗忚鐗规湁
+    }
+
+    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception {
+        this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
+        this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
+        this.opType = cdData.opType;
+        this.clIcCardAddr = cdData.icCardAddr;
+        this.clIcCardNo = cdData.icCardNo;
+        this.clTotalAmount = cdData.waterTotalAmount;
+        this.clRemainMoney = cdData.moneyRemain;
+        this.clThisAmount = cdData.thisWater;
+        this.clThisMoney = cdData.thisMoney;
+        this.clThisTime = cdData.thisDuration;
+        this.clOrderNo = cdData.orderNo;
+        this.clEleTotalAmount = cdData.eleTotalAmount;
+        this.clWaterRemainUser = cdData.waterRemain;
+        this.thisEle = cdData.thisEle;
+    }
+
+    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 df7db14..330cfe7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
 
 pipIrr:
     global:
-        dev: true   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+        dev: false   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     mw:
         webPort: 8070
@@ -138,4 +138,9 @@
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #寰俊灏忕▼搴忓洖璋冨湴鍧�
-    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
\ No newline at end of file
+    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
+
+#涓嶈繘琛寀serToken杩囨护鐨刄RL锛孈ConfigurationProperties瑕佹眰tokennofilter涓墍鏈夊瓧姣嶉兘灏忓啓
+tokennofilter:
+    urls:
+        - /sso/sso
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaPrivilegeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaPrivilegeMapper.xml
deleted file mode 100644
index 6af6bd3..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaPrivilegeMapper.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoBa.BaPrivilegeMapper">
-
-    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaPrivilege">
-        <!--@mbg.generated-->
-        <!--@Table ba_privilege-->
-        <result column="id" jdbcType="BIGINT" property="id" />
-        <result column="num" jdbcType="INTEGER" property="num" />
-        <result column="name" jdbcType="VARCHAR" property="name" />
-        <result column="type" jdbcType="VARCHAR" property="type" />
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        <!--@mbg.generated-->
-        id, num, name, type
-    </sql>
-
-    <select id="selectAll" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List" />
-        from ba_privilege
-    </select>
-
-    <select id="selectPrivilegeByUserId" resultType="Integer">
-        select p.num
-        from ba_privilege p
-        inner join ba_role_privilege rp on p.id = rp.privilegeId
-        inner join ba_user_role ur on rp.roleId = ur.roleId
-        inner join ba_role r on ur.roleId = r.id
-        where r.deleted != 1
-        <if test="userId != null">
-            and ur.userId = #{userId, jdbcType=BIGINT}
-        </if>
-    </select>
-
-    <select id="selectPrivilegeByRoleId" resultType="Integer">
-        select p.num
-        from ba_privilege p
-        inner join ba_role_privilege rp on p.id = rp.privilegeId
-        <if test="roleId != null">
-            where rp.roleId = #{roleId, jdbcType=BIGINT}
-        </if>
-    </select>
-
-    <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaPrivilege">
-        <!--@mbg.generated-->
-        insert into ba_privilege (<include refid="Base_Column_List" />)
-        values (#{id,jdbcType=BIGINT},
-        #{num,jdbcType=INTEGER},
-        #{name,jdbcType=VARCHAR},
-        #{type, jdbcType=VARCHAR}
-        )
-    </insert>
-
-    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaPrivilege">
-        <!--@mbg.generated-->
-        insert into ba_privilege
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                id,
-            </if>
-            <if test="num != null">
-                id,
-            </if>
-            <if test="name != null">
-                name,
-            </if>
-            <if test="type != null">
-                type,
-            </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                #{id,jdbcType=BIGINT},
-            </if>
-            <if test="num != null">
-                #{name,jdbcType=INTEGER},
-            </if>
-            <if test="name != null">
-                #{name,jdbcType=VARCHAR},
-            </if>
-            <if test="type != null">
-                #{type,jdbcType=VARCHAR},
-            </if>
-        </trim>
-    </insert>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePrivilegeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePrivilegeMapper.xml
deleted file mode 100644
index b90a5e9..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePrivilegeMapper.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoBa.BaRolePrivilegeMapper">
-
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege">
-    <!--@mbg.generated-->
-    <!--@Table ba_role_privilege-->
-    <id column="roleId" jdbcType="BIGINT" property="roleId" />
-    <id column="privilegeId" jdbcType="BIGINT" property="privilegeId" />
-  </resultMap>
-
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    roleId, privilegeId
-  </sql>
-
-  <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege">
-    <!--@mbg.generated-->
-    insert into ba_role_privilege (roleId, privilegeId)
-    values (#{roleId,jdbcType=BIGINT}, #{privilegeId,jdbcType=BIGINT})
-  </insert>
-
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege">
-    <!--@mbg.generated-->
-    insert into ba_role_privilege
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="roleId != null">
-        roleId,
-      </if>
-      <if test="privilegeId != null">
-        privilegeId,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="roleId != null">
-        #{roleId,jdbcType=BIGINT},
-      </if>
-      <if test="privilegeId != null">
-        #{privilegeId,jdbcType=BIGINT},
-      </if>
-    </trim>
-  </insert>
-
-  <delete id="deleteByPrimaryKey" parameterType="map">
-    <!--@mbg.generated-->
-    delete from ba_role_privilege
-    where roleId = #{roleId,jdbcType=BIGINT}
-    and privilegeId = #{privilegeId,jdbcType=BIGINT}
-  </delete>
-
-  <delete id="deleteByRoleId" parameterType="long">
-    delete from ba_role_privilege
-    where roleId = #{roleId,jdbcType=BIGINT}
-  </delete>
-
-  <delete id="deleteByPrivilegeId" parameterType="long">
-    delete from ba_role_privilege
-    where privilegeId = #{privilegeId,jdbcType=BIGINT}
-  </delete>
-
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml
deleted file mode 100644
index 9b3896d..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml
+++ /dev/null
@@ -1,375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_open_close_history-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
-    <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" />
-    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
-    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
-    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
-    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
-    <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" />
-    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
-    <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" />
-    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
-    <result column="op_type" jdbcType="TINYINT" property="opType" />
-    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
-    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
-    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
-    <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" />
-    <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" />
-    <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" />
-    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
-    <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" />
-    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
-    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
-    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
-    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
-    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, 
-    op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, 
-    op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, 
-    end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
-    this_ele, this_water, this_money, this_duration
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_open_close_history
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_open_close_history
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
-    <!--@mbg.generated-->
-    insert into rm_open_close_history (id, controller_id, intake_id, 
-      rtu_addr, op_dt, op_rtu_dt, 
-      op_ic_card_addr, op_ic_card_no, op_order_no, 
-      open_dt, op_water_total_amount, op_ele_total_amount, 
-      op_money_remain_user, op_water_remain_user, op_type, 
-      cl_ic_card_addr, cl_ic_card_no, cl_order_no, 
-      start_dt, end_dt, cl_water_total_amount, 
-      cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
-      this_ele, this_water, this_money, 
-      this_duration)
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, 
-      #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, 
-      #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, 
-      #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, 
-      #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, 
-      #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, 
-      #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, 
-      #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, 
-      #{thisDuration,jdbcType=INTEGER})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
-    <!--@mbg.generated-->
-    insert into rm_open_close_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerId != null">
-        controller_id,
-      </if>
-      <if test="intakeId != null">
-        intake_id,
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr,
-      </if>
-      <if test="opDt != null">
-        op_dt,
-      </if>
-      <if test="opRtuDt != null">
-        op_rtu_dt,
-      </if>
-      <if test="opIcCardAddr != null">
-        op_ic_card_addr,
-      </if>
-      <if test="opIcCardNo != null">
-        op_ic_card_no,
-      </if>
-      <if test="opOrderNo != null">
-        op_order_no,
-      </if>
-      <if test="openDt != null">
-        open_dt,
-      </if>
-      <if test="opWaterTotalAmount != null">
-        op_water_total_amount,
-      </if>
-      <if test="opEleTotalAmount != null">
-        op_ele_total_amount,
-      </if>
-      <if test="opMoneyRemainUser != null">
-        op_money_remain_user,
-      </if>
-      <if test="opWaterRemainUser != null">
-        op_water_remain_user,
-      </if>
-      <if test="opType != null">
-        op_type,
-      </if>
-      <if test="clIcCardAddr != null">
-        cl_ic_card_addr,
-      </if>
-      <if test="clIcCardNo != null">
-        cl_ic_card_no,
-      </if>
-      <if test="clOrderNo != null">
-        cl_order_no,
-      </if>
-      <if test="startDt != null">
-        start_dt,
-      </if>
-      <if test="endDt != null">
-        end_dt,
-      </if>
-      <if test="clWaterTotalAmount != null">
-        cl_water_total_amount,
-      </if>
-      <if test="clEleTotalAmount != null">
-        cl_ele_total_amount,
-      </if>
-      <if test="clMoneyRemainUser != null">
-        cl_money_remain_user,
-      </if>
-      <if test="clWaterRemainUser != null">
-        cl_water_remain_user,
-      </if>
-      <if test="thisEle != null">
-        this_ele,
-      </if>
-      <if test="thisWater != null">
-        this_water,
-      </if>
-      <if test="thisMoney != null">
-        this_money,
-      </if>
-      <if test="thisDuration != null">
-        this_duration,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opDt != null">
-        #{opDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opRtuDt != null">
-        #{opRtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opIcCardAddr != null">
-        #{opIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opIcCardNo != null">
-        #{opIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="opOrderNo != null">
-        #{opOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="openDt != null">
-        #{openDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opWaterTotalAmount != null">
-        #{opWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opEleTotalAmount != null">
-        #{opEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opMoneyRemainUser != null">
-        #{opMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opWaterRemainUser != null">
-        #{opWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opType != null">
-        #{opType,jdbcType=TINYINT},
-      </if>
-      <if test="clIcCardAddr != null">
-        #{clIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clIcCardNo != null">
-        #{clIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="clOrderNo != null">
-        #{clOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="startDt != null">
-        #{startDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="endDt != null">
-        #{endDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="clWaterTotalAmount != null">
-        #{clWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clEleTotalAmount != null">
-        #{clEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clMoneyRemainUser != null">
-        #{clMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="clWaterRemainUser != null">
-        #{clWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="thisEle != null">
-        #{thisEle,jdbcType=FLOAT},
-      </if>
-      <if test="thisWater != null">
-        #{thisWater,jdbcType=FLOAT},
-      </if>
-      <if test="thisMoney != null">
-        #{thisMoney,jdbcType=FLOAT},
-      </if>
-      <if test="thisDuration != null">
-        #{thisDuration,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
-    <!--@mbg.generated-->
-    update rm_open_close_history
-    <set>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opDt != null">
-        op_dt = #{opDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opRtuDt != null">
-        op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opIcCardAddr != null">
-        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opIcCardNo != null">
-        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="opOrderNo != null">
-        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="openDt != null">
-        open_dt = #{openDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opWaterTotalAmount != null">
-        op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opEleTotalAmount != null">
-        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opMoneyRemainUser != null">
-        op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opWaterRemainUser != null">
-        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opType != null">
-        op_type = #{opType,jdbcType=TINYINT},
-      </if>
-      <if test="clIcCardAddr != null">
-        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clIcCardNo != null">
-        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="clOrderNo != null">
-        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="startDt != null">
-        start_dt = #{startDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="endDt != null">
-        end_dt = #{endDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="clWaterTotalAmount != null">
-        cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clEleTotalAmount != null">
-        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clMoneyRemainUser != null">
-        cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="clWaterRemainUser != null">
-        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="thisEle != null">
-        this_ele = #{thisEle,jdbcType=FLOAT},
-      </if>
-      <if test="thisWater != null">
-        this_water = #{thisWater,jdbcType=FLOAT},
-      </if>
-      <if test="thisMoney != null">
-        this_money = #{thisMoney,jdbcType=FLOAT},
-      </if>
-      <if test="thisDuration != null">
-        this_duration = #{thisDuration,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
-    <!--@mbg.generated-->
-    update rm_open_close_history
-    set controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      op_dt = #{opDt,jdbcType=TIMESTAMP},
-      op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
-      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
-      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
-      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
-      open_dt = #{openDt,jdbcType=TIMESTAMP},
-      op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
-      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
-      op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
-      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
-      op_type = #{opType,jdbcType=TINYINT},
-      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
-      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
-      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
-      start_dt = #{startDt,jdbcType=TIMESTAMP},
-      end_dt = #{endDt,jdbcType=TIMESTAMP},
-      cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
-      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
-      cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
-      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
-      this_ele = #{thisEle,jdbcType=FLOAT},
-      this_water = #{thisWater,jdbcType=FLOAT},
-      this_money = #{thisMoney,jdbcType=FLOAT},
-      this_duration = #{thisDuration,jdbcType=INTEGER}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml
deleted file mode 100644
index da66783..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml
+++ /dev/null
@@ -1,383 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseLastMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    <!--@mbg.generated-->
-    <!--@Table rm_open_close_last-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
-    <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" />
-    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
-    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
-    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
-    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
-    <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" />
-    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
-    <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" />
-    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
-    <result column="op_type" jdbcType="TINYINT" property="opType" />
-    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
-    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
-    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
-    <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" />
-    <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" />
-    <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" />
-    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
-    <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" />
-    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
-    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
-    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
-    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
-    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, 
-    op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, 
-    op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, 
-    end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
-    this_ele, this_water, this_money, this_duration
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_open_close_last
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_open_close_last
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    <!--@mbg.generated-->
-    insert into rm_open_close_last (id, controller_id, intake_id, 
-      rtu_addr, op_dt, op_rtu_dt, 
-      op_ic_card_addr, op_ic_card_no, op_order_no, 
-      open_dt, op_water_total_amount, op_ele_total_amount, 
-      op_money_remain_user, op_water_remain_user, op_type, 
-      cl_ic_card_addr, cl_ic_card_no, cl_order_no, 
-      start_dt, end_dt, cl_water_total_amount, 
-      cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
-      this_ele, this_water, this_money, 
-      this_duration)
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, 
-      #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, 
-      #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, 
-      #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, 
-      #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, 
-      #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, 
-      #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, 
-      #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, 
-      #{thisDuration,jdbcType=INTEGER})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    <!--@mbg.generated-->
-    insert into rm_open_close_last
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerId != null">
-        controller_id,
-      </if>
-      <if test="intakeId != null">
-        intake_id,
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr,
-      </if>
-      <if test="opDt != null">
-        op_dt,
-      </if>
-      <if test="opRtuDt != null">
-        op_rtu_dt,
-      </if>
-      <if test="opIcCardAddr != null">
-        op_ic_card_addr,
-      </if>
-      <if test="opIcCardNo != null">
-        op_ic_card_no,
-      </if>
-      <if test="opOrderNo != null">
-        op_order_no,
-      </if>
-      <if test="openDt != null">
-        open_dt,
-      </if>
-      <if test="opWaterTotalAmount != null">
-        op_water_total_amount,
-      </if>
-      <if test="opEleTotalAmount != null">
-        op_ele_total_amount,
-      </if>
-      <if test="opMoneyRemainUser != null">
-        op_money_remain_user,
-      </if>
-      <if test="opWaterRemainUser != null">
-        op_water_remain_user,
-      </if>
-      <if test="opType != null">
-        op_type,
-      </if>
-      <if test="clIcCardAddr != null">
-        cl_ic_card_addr,
-      </if>
-      <if test="clIcCardNo != null">
-        cl_ic_card_no,
-      </if>
-      <if test="clOrderNo != null">
-        cl_order_no,
-      </if>
-      <if test="startDt != null">
-        start_dt,
-      </if>
-      <if test="endDt != null">
-        end_dt,
-      </if>
-      <if test="clWaterTotalAmount != null">
-        cl_water_total_amount,
-      </if>
-      <if test="clEleTotalAmount != null">
-        cl_ele_total_amount,
-      </if>
-      <if test="clMoneyRemainUser != null">
-        cl_money_remain_user,
-      </if>
-      <if test="clWaterRemainUser != null">
-        cl_water_remain_user,
-      </if>
-      <if test="thisEle != null">
-        this_ele,
-      </if>
-      <if test="thisWater != null">
-        this_water,
-      </if>
-      <if test="thisMoney != null">
-        this_money,
-      </if>
-      <if test="thisDuration != null">
-        this_duration,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opDt != null">
-        #{opDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opRtuDt != null">
-        #{opRtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opIcCardAddr != null">
-        #{opIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opIcCardNo != null">
-        #{opIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="opOrderNo != null">
-        #{opOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="openDt != null">
-        #{openDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opWaterTotalAmount != null">
-        #{opWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opEleTotalAmount != null">
-        #{opEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opMoneyRemainUser != null">
-        #{opMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opWaterRemainUser != null">
-        #{opWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opType != null">
-        #{opType,jdbcType=TINYINT},
-      </if>
-      <if test="clIcCardAddr != null">
-        #{clIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clIcCardNo != null">
-        #{clIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="clOrderNo != null">
-        #{clOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="startDt != null">
-        #{startDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="endDt != null">
-        #{endDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="clWaterTotalAmount != null">
-        #{clWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clEleTotalAmount != null">
-        #{clEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clMoneyRemainUser != null">
-        #{clMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="clWaterRemainUser != null">
-        #{clWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="thisEle != null">
-        #{thisEle,jdbcType=FLOAT},
-      </if>
-      <if test="thisWater != null">
-        #{thisWater,jdbcType=FLOAT},
-      </if>
-      <if test="thisMoney != null">
-        #{thisMoney,jdbcType=FLOAT},
-      </if>
-      <if test="thisDuration != null">
-        #{thisDuration,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    <!--@mbg.generated-->
-    update rm_open_close_last
-    <set>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opDt != null">
-        op_dt = #{opDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opRtuDt != null">
-        op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opIcCardAddr != null">
-        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opIcCardNo != null">
-        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="opOrderNo != null">
-        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="openDt != null">
-        open_dt = #{openDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="opWaterTotalAmount != null">
-        op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opEleTotalAmount != null">
-        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="opMoneyRemainUser != null">
-        op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opWaterRemainUser != null">
-        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="opType != null">
-        op_type = #{opType,jdbcType=TINYINT},
-      </if>
-      <if test="clIcCardAddr != null">
-        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clIcCardNo != null">
-        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
-      </if>
-      <if test="clOrderNo != null">
-        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
-      </if>
-      <if test="startDt != null">
-        start_dt = #{startDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="endDt != null">
-        end_dt = #{endDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="clWaterTotalAmount != null">
-        cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clEleTotalAmount != null">
-        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="clMoneyRemainUser != null">
-        cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="clWaterRemainUser != null">
-        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
-      </if>
-      <if test="thisEle != null">
-        this_ele = #{thisEle,jdbcType=FLOAT},
-      </if>
-      <if test="thisWater != null">
-        this_water = #{thisWater,jdbcType=FLOAT},
-      </if>
-      <if test="thisMoney != null">
-        this_money = #{thisMoney,jdbcType=FLOAT},
-      </if>
-      <if test="thisDuration != null">
-        this_duration = #{thisDuration,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    <!--@mbg.generated-->
-    update rm_open_close_last
-    set controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      op_dt = #{opDt,jdbcType=TIMESTAMP},
-      op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
-      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
-      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
-      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
-      open_dt = #{openDt,jdbcType=TIMESTAMP},
-      op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
-      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
-      op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
-      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
-      op_type = #{opType,jdbcType=TINYINT},
-      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
-      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
-      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
-      start_dt = #{startDt,jdbcType=TIMESTAMP},
-      end_dt = #{endDt,jdbcType=TIMESTAMP},
-      cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
-      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
-      cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
-      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
-      this_ele = #{thisEle,jdbcType=FLOAT},
-      this_water = #{thisWater,jdbcType=FLOAT},
-      this_money = #{thisMoney,jdbcType=FLOAT},
-      this_duration = #{thisDuration,jdbcType=INTEGER}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-
-  <!--鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇寮�鍏抽榾涓婃姤鏈�鏂版暟鎹�-->
-  <select id="getRmOpenCloseReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
-    select
-    <include refid="Base_Column_List" />
-    from rm_open_close_last
-    where rtu_addr = #{rtuAddr}
-  </select>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index f1de3dd..bfdbb78 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -15,6 +15,9 @@
     <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
     <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
     <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
+    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
+    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
     <result column="cl_dt" jdbcType="TIMESTAMP" property="clDt" />
     <result column="cl_type" jdbcType="TINYINT" property="clType" />
     <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
@@ -26,13 +29,18 @@
     <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
     <result column="cl_open_dt" jdbcType="TIMESTAMP" property="clOpenDt" />
     <result column="close_dt" jdbcType="TIMESTAMP" property="closeDt" />
+    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
+    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
+    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
+    <result column="cl_this_ele" jdbcType="FLOAT" property="clThisEle" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, op_ic_card_no, 
-    op_ic_card_addr, op_remain_money, open_dt, cl_dt, cl_type, cl_total_amount, cl_ic_card_no, 
-    cl_ic_card_addr, cl_remain_money, cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, 
-    close_dt
+    op_ic_card_addr, op_remain_money, open_dt, op_order_no, op_ele_total_amount, op_water_remain_user, 
+    cl_dt, cl_type, cl_total_amount, cl_ic_card_no, cl_ic_card_addr, cl_remain_money, 
+    cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, close_dt, cl_order_no, cl_ele_total_amount, 
+    cl_water_remain_user, cl_this_ele
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -51,19 +59,23 @@
     insert into rm_open_close_valve_history (id, controller_id, intake_id, 
       rtu_addr, op_dt, op_type, 
       op_total_amount, op_ic_card_no, op_ic_card_addr, 
-      op_remain_money, open_dt, cl_dt, 
+      op_remain_money, open_dt, op_order_no, 
+      op_ele_total_amount, op_water_remain_user, cl_dt, 
       cl_type, cl_total_amount, cl_ic_card_no, 
       cl_ic_card_addr, cl_remain_money, cl_this_amount, 
       cl_this_money, cl_this_time, cl_open_dt, 
-      close_dt)
+      close_dt, cl_order_no, cl_ele_total_amount, 
+      cl_water_remain_user, cl_this_ele)
     values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opType,jdbcType=TINYINT},
+      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opType,jdbcType=TINYINT}, 
       #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, #{opIcCardAddr,jdbcType=VARCHAR}, 
-      #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, #{clDt,jdbcType=TIMESTAMP},
+      #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, #{opOrderNo,jdbcType=VARCHAR}, 
+      #{opEleTotalAmount,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{clDt,jdbcType=TIMESTAMP}, 
       #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE}, #{clIcCardNo,jdbcType=VARCHAR}, 
       #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE}, #{clThisAmount,jdbcType=DOUBLE}, 
-      #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clOpenDt,jdbcType=TIMESTAMP},
-      #{closeDt,jdbcType=TIMESTAMP})
+      #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clOpenDt,jdbcType=TIMESTAMP}, 
+      #{closeDt,jdbcType=TIMESTAMP}, #{clOrderNo,jdbcType=VARCHAR}, #{clEleTotalAmount,jdbcType=FLOAT}, 
+      #{clWaterRemainUser,jdbcType=FLOAT}, #{clThisEle,jdbcType=FLOAT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
     <!--@mbg.generated-->
@@ -102,6 +114,15 @@
       <if test="openDt != null">
         open_dt,
       </if>
+      <if test="opOrderNo != null">
+        op_order_no,
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount,
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user,
+      </if>
       <if test="clDt != null">
         cl_dt,
       </if>
@@ -134,6 +155,18 @@
       </if>
       <if test="closeDt != null">
         close_dt,
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no,
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount,
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user,
+      </if>
+      <if test="clThisEle != null">
+        cl_this_ele,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -170,6 +203,15 @@
       <if test="openDt != null">
         #{openDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="opOrderNo != null">
+        #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opEleTotalAmount != null">
+        #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
       <if test="clDt != null">
         #{clDt,jdbcType=TIMESTAMP},
       </if>
@@ -202,6 +244,18 @@
       </if>
       <if test="closeDt != null">
         #{closeDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clOrderNo != null">
+        #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clEleTotalAmount != null">
+        #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clThisEle != null">
+        #{clThisEle,jdbcType=FLOAT},
       </if>
     </trim>
   </insert>
@@ -239,6 +293,15 @@
       <if test="openDt != null">
         open_dt = #{openDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="opOrderNo != null">
+        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
       <if test="clDt != null">
         cl_dt = #{clDt,jdbcType=TIMESTAMP},
       </if>
@@ -272,6 +335,18 @@
       <if test="closeDt != null">
         close_dt = #{closeDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="clOrderNo != null">
+        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clThisEle != null">
+        cl_this_ele = #{clThisEle,jdbcType=FLOAT},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -288,6 +363,9 @@
       op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
       op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
       open_dt = #{openDt,jdbcType=TIMESTAMP},
+      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
       cl_dt = #{clDt,jdbcType=TIMESTAMP},
       cl_type = #{clType,jdbcType=TINYINT},
       cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
@@ -298,7 +376,11 @@
       cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
       cl_this_time = #{clThisTime,jdbcType=INTEGER},
       cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
-      close_dt = #{closeDt,jdbcType=TIMESTAMP}
+      close_dt = #{closeDt,jdbcType=TIMESTAMP},
+      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      cl_this_ele = #{clThisEle,jdbcType=FLOAT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index 0ffaefd..226ff6b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -16,6 +16,9 @@
     <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
     <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
     <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
+    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
+    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
     <result column="cl_dt" jdbcType="TIMESTAMP" property="clDt" />
     <result column="cl_type" jdbcType="TINYINT" property="clType" />
     <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
@@ -27,13 +30,18 @@
     <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
     <result column="cl_open_dt" jdbcType="TIMESTAMP" property="clOpenDt" />
     <result column="close_dt" jdbcType="TIMESTAMP" property="closeDt" />
+    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
+    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
+    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
+    <result column="cl_this_ele" jdbcType="FLOAT" property="clThisEle" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, last_history_id, controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, op_ic_card_no,
-    op_ic_card_addr, op_remain_money, open_dt, cl_dt, cl_type, cl_total_amount, cl_ic_card_no, 
-    cl_ic_card_addr, cl_remain_money, cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, 
-    close_dt
+    id, last_history_id, controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, 
+    op_ic_card_no, op_ic_card_addr, op_remain_money, open_dt, op_order_no, op_ele_total_amount, 
+    op_water_remain_user, cl_dt, cl_type, cl_total_amount, cl_ic_card_no, cl_ic_card_addr, 
+    cl_remain_money, cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, close_dt, 
+    cl_order_no, cl_ele_total_amount, cl_water_remain_user, cl_this_ele
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -42,7 +50,6 @@
     from rm_open_close_valve_last
     where id = #{id,jdbcType=BIGINT}
   </select>
-
   <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select
@@ -57,22 +64,28 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
     <!--@mbg.generated-->
-    insert into rm_open_close_valve_last (id, last_history_id, controller_id, intake_id,
-      rtu_addr, op_dt, op_type, 
-      op_total_amount, op_ic_card_no, op_ic_card_addr, 
-      op_remain_money, open_dt, cl_dt, 
-      cl_type, cl_total_amount, cl_ic_card_no, 
-      cl_ic_card_addr, cl_remain_money, cl_this_amount, 
-      cl_this_money, cl_this_time, cl_open_dt, 
-      close_dt)
-    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT},
-      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP},
-      #{opType,jdbcType=TINYINT}, #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR},
-      #{opIcCardAddr,jdbcType=VARCHAR}, #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP},
-      #{clDt,jdbcType=TIMESTAMP}, #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE},
-      #{clIcCardNo,jdbcType=VARCHAR}, #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE},
-      #{clThisAmount,jdbcType=DOUBLE}, #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER},
-      #{clOpenDt,jdbcType=TIMESTAMP}, #{closeDt,jdbcType=TIMESTAMP})
+    insert into rm_open_close_valve_last (id, last_history_id, controller_id, 
+      intake_id, rtu_addr, op_dt, 
+      op_type, op_total_amount, op_ic_card_no, 
+      op_ic_card_addr, op_remain_money, open_dt, 
+      op_order_no, op_ele_total_amount, op_water_remain_user, 
+      cl_dt, cl_type, cl_total_amount, 
+      cl_ic_card_no, cl_ic_card_addr, cl_remain_money, 
+      cl_this_amount, cl_this_money, cl_this_time, 
+      cl_open_dt, close_dt, cl_order_no, 
+      cl_ele_total_amount, cl_water_remain_user, cl_this_ele
+      )
+    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, 
+      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, 
+      #{opType,jdbcType=TINYINT}, #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, 
+      #{opIcCardAddr,jdbcType=VARCHAR}, #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, 
+      #{opOrderNo,jdbcType=VARCHAR}, #{opEleTotalAmount,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, 
+      #{clDt,jdbcType=TIMESTAMP}, #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE}, 
+      #{clIcCardNo,jdbcType=VARCHAR}, #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE}, 
+      #{clThisAmount,jdbcType=DOUBLE}, #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, 
+      #{clOpenDt,jdbcType=TIMESTAMP}, #{closeDt,jdbcType=TIMESTAMP}, #{clOrderNo,jdbcType=VARCHAR}, 
+      #{clEleTotalAmount,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, #{clThisEle,jdbcType=FLOAT}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
     <!--@mbg.generated-->
@@ -114,6 +127,15 @@
       <if test="openDt != null">
         open_dt,
       </if>
+      <if test="opOrderNo != null">
+        op_order_no,
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount,
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user,
+      </if>
       <if test="clDt != null">
         cl_dt,
       </if>
@@ -146,6 +168,18 @@
       </if>
       <if test="closeDt != null">
         close_dt,
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no,
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount,
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user,
+      </if>
+      <if test="clThisEle != null">
+        cl_this_ele,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -185,6 +219,15 @@
       <if test="openDt != null">
         #{openDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="opOrderNo != null">
+        #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opEleTotalAmount != null">
+        #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
       <if test="clDt != null">
         #{clDt,jdbcType=TIMESTAMP},
       </if>
@@ -217,6 +260,18 @@
       </if>
       <if test="closeDt != null">
         #{closeDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clOrderNo != null">
+        #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clEleTotalAmount != null">
+        #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clThisEle != null">
+        #{clThisEle,jdbcType=FLOAT},
       </if>
     </trim>
   </insert>
@@ -257,6 +312,15 @@
       <if test="openDt != null">
         open_dt = #{openDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="opOrderNo != null">
+        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
       <if test="clDt != null">
         cl_dt = #{clDt,jdbcType=TIMESTAMP},
       </if>
@@ -290,6 +354,18 @@
       <if test="closeDt != null">
         close_dt = #{closeDt,jdbcType=TIMESTAMP},
       </if>
+      <if test="clOrderNo != null">
+        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clThisEle != null">
+        cl_this_ele = #{clThisEle,jdbcType=FLOAT},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -307,6 +383,9 @@
       op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
       op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
       open_dt = #{openDt,jdbcType=TIMESTAMP},
+      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
       cl_dt = #{clDt,jdbcType=TIMESTAMP},
       cl_type = #{clType,jdbcType=TINYINT},
       cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
@@ -317,7 +396,11 @@
       cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
       cl_this_time = #{clThisTime,jdbcType=INTEGER},
       cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
-      close_dt = #{closeDt,jdbcType=TIMESTAMP}
+      close_dt = #{closeDt,jdbcType=TIMESTAMP},
+      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      cl_this_ele = #{clThisEle,jdbcType=FLOAT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index 773046e..7241234 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -57,11 +57,6 @@
     @Autowired
     private RmOnHourReportLastMapper rmOnHourReportLastDao; // 鏁寸偣涓婃姤鏈�鏂版暟鎹瓺AO
 
-    @Autowired
-    private RmOpenCloseHistoryMapper rmOpenCloseHistoryDao;
-    @Autowired
-    private RmOpenCloseLastMapper rmOpenCloseLastDao;
-
     //@Autowired
     //@Lazy
     //private DbSv sv ;
@@ -317,46 +312,6 @@
     @Transactional(rollbackFor = Exception.class)
     public void updateRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
         this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
-    }
-
-    /**
-     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
-     * @param po
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void saveRmOpenCloseLast(RmOpenCloseLast po){
-        this.rmOpenCloseLastDao.insert(po) ;
-    }
-
-    /**
-     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶璁板綍(202404)
-     * @param po
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void saveRmOpenCloseHistory(RmOpenCloseHistory po){
-        this.rmOpenCloseHistoryDao.insert(po) ;
-    }
-
-    /**
-     * 寰楀埌鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
-     * @param rtuAddr
-     * @return
-     */
-    public RmOpenCloseLast getRmOpenCloseLast(String rtuAddr){
-        List<RmOpenCloseLast> list = rmOpenCloseLastDao.getRmOpenCloseReportLast(rtuAddr);
-        if(list != null && list.size() > 0){
-            return list.get(0) ;
-        }
-        return null ;
-    }
-
-    /**
-     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
-     * @param po
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateRmOpenCloseLast(RmOpenCloseLast po){
-        this.rmOpenCloseLastDao.updateByPrimaryKeySelective(po);
     }
 
     /////////////////////////////////////////////////
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-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
index f2fe40d..3686852 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -55,8 +55,8 @@
             }else if(cdObj instanceof DataCd84Vo){
                 //璁惧缁堢鍒峰崱寮�娉�/闃�涓婃姤
                 DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
-                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
-                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ;
             }else if(cdObj instanceof DataCdC2Vo){
                 //璁惧缁堢寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤
                 DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
index 43f32fe..12a7da7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
@@ -4,8 +4,8 @@
 import com.dy.common.mw.protocol.p206V202404.DataV202404;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -69,19 +69,19 @@
      * @param cdData 鍔熻兘鏁版嵁
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
-        RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr);
+        RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(rtuAddr);
         if(po == null){
-            po = new RmOpenCloseLast();
+            po = new RmOpenCloseValveLast();
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.rtuAddr = rtuAddr;
             po.valueFrom85(dataV202404, cdData);
-            sv.saveRmOpenCloseLast(po);
+            sv.saveRmOpenCloseValveLast(po);
         }else{
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.valueFrom85(dataV202404, cdData);
-            sv.updateRmOpenCloseLast(po);
+            sv.updateRmOpenCloseValveLast(po);
         }
     }
 
@@ -94,11 +94,11 @@
      * @param cdData 鍔熻兘鏁版嵁
      */
     private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
-        RmOpenCloseHistory po = new RmOpenCloseHistory();
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory();
         po.controllerId = controller==null?null:controller.getId();
         po.intakeId = controller==null?null:controller.getIntakeId();
         po.rtuAddr = rtuAddr;
         po.valueFrom85(dataV202404, cdData);
-        sv.saveRmOpenCloseHistory(po); ;
+        sv.saveRmOpenCloseValveHistory(po); ;
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
index 76f11b8..73305a7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
@@ -4,8 +4,8 @@
 import com.dy.common.mw.protocol.p206V202404.DataV202404;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -69,19 +69,19 @@
      * @param cdData 鍔熻兘鏁版嵁
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
-        RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr);
+        RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(rtuAddr);
         if(po == null){
-            po = new RmOpenCloseLast();
+            po = new RmOpenCloseValveLast();
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.rtuAddr = rtuAddr;
             po.valueFrom84(dataV202404, cdData);
-            sv.saveRmOpenCloseLast(po);
+            sv.saveRmOpenCloseValveLast(po);
         }else{
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.valueFrom84(dataV202404, cdData);
-            sv.updateRmOpenCloseLast(po);
+            sv.updateRmOpenCloseValveLast(po);
         }
     }
 
@@ -94,11 +94,11 @@
      * @param cdData 鍔熻兘鏁版嵁
      */
     private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
-        RmOpenCloseHistory po = new RmOpenCloseHistory();
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory();
         po.controllerId = controller==null?null:controller.getId();
         po.intakeId = controller==null?null:controller.getIntakeId();
         po.rtuAddr = rtuAddr;
         po.valueFrom84(dataV202404, cdData);
-        sv.saveRmOpenCloseHistory(po); ;
+        sv.saveRmOpenCloseValveHistory(po); ;
     }
 }
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-project/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/log4j2.yml
index 924901d..903a76c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/log4j2.yml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/log4j2.yml
@@ -65,7 +65,7 @@
     # 涓哄寘閰嶇疆鐗规畩鐨凩og绾у埆锛屾柟渚胯皟璇曪紝
     # 涓嶅彈Loggers.Root.level闄愬埗
     Logger:
-      - name: com.dy.pipIrrGlobal.daoSe
+      - name: com.dy.pipIrrGlobal.daoPr
         additivity: false #鍘婚櫎閲嶅鐨刲og
         level: debug #杈撳嚭鏃ュ織绾у埆
         AppenderRef:
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