From 4342b12d28b15e61bbed4d4d5e64a6a2bacae952 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 27 二月 2024 12:56:11 +0800
Subject: [PATCH] 1、完善代码; 2、实现开闭上报处理

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java  |  222 ++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java                        |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java                             |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java                     |   26 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java                             |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java                             |  173 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java   |  205 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java   |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml                                            |   22 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java                          |  109 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java                            |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml                                                      |   35 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java            |   15 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                                    |  304 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml                                      |   26 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java                             |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java                        |   65 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java                       |   14 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java        |    4 
 /dev/null                                                                                                                    |  303 --------
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java                         |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java       |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java |   30 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                                       |  323 +++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java                          |   76 +-
 26 files changed, 1,529 insertions(+), 456 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
index 4f95034..0cacb5b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
@@ -2,6 +2,9 @@
 
 import lombok.Data;
 
+/**
+ * 闅忔満鑷姤鎶�
+ */
 @Data
 public class DataCd81Vo {
     public DataAlarmVo alarmVo ;//鎶ヨ
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java
index 83d46cc..f9e22d0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java
@@ -9,7 +9,7 @@
     // 6銆佹祦閲忚鏁呴殰鍏抽榾锛�7銆佺揣鎬ュ叧闃�锛�8銆佺敤鎴疯繙绋嬪紑闃�锛�9銆佺敤鎴疯繙绋嬪叧闃�锛�
     public Byte type ;
     public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
-    public String IcCardNo;//IC鍗$紪鍙�
+    public String icCardNo;//IC鍗$紪鍙�
     public String icCardAddr;//ic鍗″湴鍧�
     public Double remainMoney ;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�
     public String openDt ;//鐢ㄦ按鎴风敤姘村紑濮嬫椂闂达細6瀛楄妭BCD鐮侊紝椤哄簭鏄勾鏈堟棩鏃跺垎绉掞紝鍏朵腑鍏厓骞�=2000+骞淬��
@@ -29,7 +29,7 @@
         sb.append(totalAmount==null?"":totalAmount);
         sb.append("\n");
         sb.append("      IC鍗$紪鍙凤細");
-        sb.append(IcCardNo);
+        sb.append(icCardNo);
         sb.append("\n");
         sb.append("      ic鍗″湴鍧�锛�");
         sb.append(icCardAddr);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
index c178f88..35ab2c6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
@@ -2,6 +2,9 @@
 
 import lombok.Data;
 
+/**
+ * 闃�寮�宸ヤ綔鎶�
+ */
 @Data
 public class DataCd84Vo {
     public String cardNo ;//IC鍗$紪鍙�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
index f0a7e83..d505fa1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
@@ -2,6 +2,9 @@
 
 import lombok.Data;
 
+/**
+ * 閬ユ祴绔欒嚜鎶ュ疄鏃舵暟鎹�
+ */
 @Data
 public class DataCdC0Vo {
     public Double instantAmount; //鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h銆�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
index 8e028cb..137c49e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
@@ -24,7 +24,7 @@
 	public DataCd98Vo dataCd98Vo;//APP杩滅▼鍏抽榾搴旂瓟
 	public DataCdC0Vo dataCdC0Vo;//缁堢鑷姤瀹炴椂鏁版嵁
 
-	public String dt ;//閫氫俊涓棿浠朵骇鐢熷彂鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
+	public String dt ;//閫氫俊涓棿浠朵骇鐢熸敹鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
index 6ef5bbd..6df3eeb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
@@ -174,11 +174,11 @@
         cdData.totalAmount += tpInt * 100000000.0 ;
 
         //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
-        cdData.IcCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
+        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
         index += 5 ;
 
         //IC鍗″彿鏍煎紡锛�4瀛楄妭HEX鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛��
-        cdData.IcCardNo = ByteUtil.bytesToHex(bs, index, index + 3) ;
+        cdData.icCardNo = ByteUtil.bytesToHex(bs, index, index + 3) ;
         index += 4 ;
 
         //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦��
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
similarity index 69%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
index d326cbc..ba874ff 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
@@ -1,6 +1,6 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -10,7 +10,7 @@
  * @Description
  */   
 @Mapper
-public interface RmIntakeAmountMapper {
+public interface RmIntakeAmountHistoryMapper {
     /**
      * delete by primary key
      * @param id primaryKey
@@ -23,33 +23,33 @@
      * @param record the record
      * @return insert count
      */
-    int insert(RmIntakeAmount record);
+    int insert(RmIntakeAmountHistory record);
 
     /**
      * insert record to table selective
      * @param record the record
      * @return insert count
      */
-    int insertSelective(RmIntakeAmount record);
+    int insertSelective(RmIntakeAmountHistory record);
 
     /**
      * select by primary key
      * @param id primary key
      * @return object by primary key
      */
-    RmIntakeAmount selectByPrimaryKey(Long id);
+    RmIntakeAmountHistory selectByPrimaryKey(Long id);
 
     /**
      * update record selective
      * @param record the updated record
      * @return update count
      */
-    int updateByPrimaryKeySelective(RmIntakeAmount record);
+    int updateByPrimaryKeySelective(RmIntakeAmountHistory record);
 
     /**
      * update record
      * @param record the updated record
      * @return update count
      */
-    int updateByPrimaryKey(RmIntakeAmount record);
+    int updateByPrimaryKey(RmIntakeAmountHistory record);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
similarity index 62%
copy from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java
copy to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
index d326cbc..ab59ab4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -1,18 +1,19 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
  * @Author liurunyu
- * @Date 2024/1/17 9:07
- * @LastEditTime 2024/1/17 9:07
+ * @Date 2024/2/23 15:42
+ * @LastEditTime 2024/2/23 15:42
  * @Description
- */   
+ */
 @Mapper
-public interface RmIntakeAmountMapper {
+public interface RmOpenCloseValveHistoryMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -20,36 +21,41 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
-    int insert(RmIntakeAmount record);
+    int insert(RmOpenCloseValveHistory record);
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
-    int insertSelective(RmIntakeAmount record);
+    int insertSelective(RmOpenCloseValveHistory record);
 
     /**
      * select by primary key
+     *
      * @param id primary key
      * @return object by primary key
      */
-    RmIntakeAmount selectByPrimaryKey(Long id);
+    RmOpenCloseValveHistory selectByPrimaryKey(Long id);
 
     /**
      * update record selective
+     *
      * @param record the updated record
      * @return update count
      */
-    int updateByPrimaryKeySelective(RmIntakeAmount record);
+    int updateByPrimaryKeySelective(RmOpenCloseValveHistory record);
 
     /**
      * update record
+     *
      * @param record the updated record
      * @return update count
      */
-    int updateByPrimaryKey(RmIntakeAmount record);
+    int updateByPrimaryKey(RmOpenCloseValveHistory record);
 }
\ No newline at end of file
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
new file mode 100644
index 0000000..9fadae6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -0,0 +1,65 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/23 16:00
+ * @LastEditTime 2024/2/23 16:00
+ * @Description
+ */   
+@Mapper
+public interface RmOpenCloseValveLastMapper {
+    /**
+     * delete by primary key
+     * @param id primaryKey
+     * @return deleteCount
+     */
+    int deleteByPrimaryKey(Long id);
+
+    /**
+     * insert record to table
+     * @param record the record
+     * @return insert count
+     */
+    int insert(RmOpenCloseValveLast record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmOpenCloseValveLast record);
+
+    /**
+     * 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
+     */
+    int updateByPrimaryKeySelective(RmOpenCloseValveLast record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmOpenCloseValveLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveReportMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveReportMapper.java
deleted file mode 100644
index 8507461..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveReportMapper.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Author liurunyu
- * @Date 2024/1/16 19:44
- * @LastEditTime 2024/1/16 19:44
- * @Description
- */
-@Mapper
-public interface RmOpenCloseValveReportMapper extends BaseMapper<RmOpenCloseValveReport> {
-    /**
-     * delete by primary key
-     * @param id primaryKey
-     * @return deleteCount
-     */
-    int deleteByPrimaryKey(Long id);
-
-    /**
-     * insert record to table
-     * @param record the record
-     * @return insert count
-     */
-    int insert(RmOpenCloseValveReport record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(RmOpenCloseValveReport record);
-
-    /**
-     * select by primary key
-     * @param id primary key
-     * @return object by primary key
-     */
-    RmOpenCloseValveReport selectByPrimaryKey(Long id);
-
-    /**
-     * update record selective
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKeySelective(RmOpenCloseValveReport record);
-
-    /**
-     * update record
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKey(RmOpenCloseValveReport record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
similarity index 97%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmount.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
index 97ad83b..a8e6cff 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmount.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
@@ -25,7 +25,7 @@
 @NoArgsConstructor
 @AllArgsConstructor
 @Schema(name = "鍙栨按鍙e彇姘撮噺")
-public class RmIntakeAmount implements BaseEntity {
+public class RmIntakeAmountHistory implements BaseEntity {
 
     public static final long serialVersionUID = 202401170908001L;
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveReport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
similarity index 69%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveReport.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
index f507c15..01cac87 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
@@ -1,6 +1,5 @@
 package com.dy.pipIrrGlobal.pojoRm;
 
-
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -15,9 +14,9 @@
 
 /**
  * @Author liurunyu
- * @Date 2024/1/16 19:44
- * @LastEditTime 2024/1/16 19:44
- * @Description 鎺у埗鍣ㄥ紑鍏抽榾璁板綍
+ * @Date 2024/2/23 15:42
+ * @LastEditTime 2024/2/23 15:42
+ * @Description 鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁
  */
 @TableName(value="rm_open_close_valve_report", autoResultMap = true)
 @Data
@@ -25,148 +24,143 @@
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "鎺у埗鍣ㄥ紑鍏抽榾璁板綍")
-public class RmOpenCloseValveReport implements BaseEntity {
+@Schema(name = "鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁")
+public class RmOpenCloseValveHistory implements BaseEntity {
 
-    public static final long serialVersionUID = 202401161929001L;
+    public static final long serialVersionUID = 202402231450001L;
     /**
      * 涓婚敭
      */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
-
     /**
     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
     */
     @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controllerid;
+    public Long controllerId;
 
     /**
     * 鍙栨按鍙e疄浣揑D锛堝閿級
     */
     @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeid;
+    public Long intakeId;
 
     /**
     * 鎺у埗鍣ㄥ湴鍧�
     */
     @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
-    public String rtuaddr;
+    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;
+    public Date opDt;
 
     /**
     * 寮�闃�绫诲瀷
     */
     @Schema(description = "寮�闃�绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte optype;
+    public Byte opType;
 
     /**
     * 寮�闃�鏃剁疮璁℃祦閲�
     */
     @Schema(description = "寮�闃�鏃剁疮璁℃祦閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double optotalamount;
+    public Double opTotalAmount;
 
     /**
     * 寮�闃�IC鍗$紪鍙�
     */
     @Schema(description = "寮�闃�IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String opiccardno;
+    public String opIcCardNo;
 
     /**
     * 寮�闃�ic鍗″湴鍧�
     */
     @Schema(description = "寮�闃�ic鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String opiccardaddr;
+    public String opIcCardAddr;
 
     /**
     * 寮�闃�鏃跺墿浣欓噾棰�
     */
     @Schema(description = "寮�闃�鏃跺墿浣欓噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double opremainmoney;
+    public Double opRemainMoney;
 
     /**
     * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
     */
     @Schema(description = "寮�闃�鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date opendt;
+    public Date openDt;
 
     /**
     * 鍏抽榾鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
     */
-    @Schema(description = "闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date cldt;
+    @Schema(description = "鍏抽榾鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Date clDt;
 
     /**
     * 鍏抽榾绫诲瀷
     */
     @Schema(description = "鍏抽榾绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte cltype;
+    public Byte clType;
 
     /**
     * 鍏抽榾鏃剁疮璁℃祦閲�
     */
     @Schema(description = "鍏抽榾鏃剁疮璁℃祦閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double cltotalamount;
+    public Double clTotalAmount;
 
     /**
-     * 鍏抽榾鏃禝C鍗$紪鍙�
-     */
+    * 鍏抽榾鏃禝C鍗$紪鍙�
+    */
     @Schema(description = "鍏抽榾鏃禝C鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String cliccardno;
+    public String clIcCardNo;
 
     /**
     * 鍏抽榾鏃禝C鍗″湴鍧�
     */
     @Schema(description = "鍏抽榾鏃禝C鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String cliccardaddr;
+    public String clIcCardAddr;
 
     /**
     * 鍏抽榾鏃跺墿浣欓噾棰�
     */
     @Schema(description = "鍏抽榾鏃跺墿浣欓噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double clremainmoney;
+    public Double clRemainMoney;
 
     /**
     * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按閲�
     */
-    @Schema(description = "鍏抽榾鎶ヤ腑鏈鐢ㄦ按閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double clthisamount;
+    @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 Double clThisMoney;
 
     /**
     * 鍏抽榾鎶ヤ腑鏈鐢ㄦ按鏃堕暱锛堝垎閽燂級
     */
-    @Schema(description = "鍏抽榾鎶ヤ腑鏈鐢ㄦ按鏃堕暱锛堝垎閽燂級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Integer clthistime;
+    @Schema(description = "鍏抽榾鏃舵湰娆$敤姘存椂闀匡紙鍒嗛挓锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Integer clThisTime;
 
     /**
     * 鍏抽榾鎶ヤ腑鐨勫紑闃�鏃舵帶鍒跺櫒鏃堕挓
     */
     @Schema(description = "鍏抽榾鎶ヤ腑鐨勫紑闃�鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date clopendt;
+    public Date clOpenDt;
 
     /**
     * 鍏抽榾鏃舵帶鍒跺櫒鏃堕挓
     */
     @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date closedt;
+    public Date closeDt;
 
 }
\ 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
new file mode 100644
index 0000000..eb5cb35
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
@@ -0,0 +1,173 @@
+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.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/23 16:00
+ * @LastEditTime 2024/2/23 16:00
+ * @Description
+ */
+@TableName(value="rm_open_close_valve_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏈�鏂版暟鎹�")
+public class RmOpenCloseValveLast {
+
+    public static final long serialVersionUID = 202402231602001L;
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+     * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
+     */
+    @JSONField(serialize = false)
+    public Long lastHistoryId;
+
+    /**
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
+    @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+     * 鍙栨按鍙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)
+    @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鍗$紪鍙�
+     */
+    @Schema(description = "寮�闃�IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String opIcCardNo;
+
+    /**
+     * 寮�闃�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 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鍗$紪鍙�
+     */
+    @Schema(description = "鍏抽榾鏃禝C鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String clIcCardNo;
+
+    /**
+     * 鍏抽榾鏃禝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;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml
similarity index 90%
rename from pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountMapper.xml
rename to pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml
index d1eb46e..8f4e892 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml
@@ -1,9 +1,9 @@
 <?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.RmIntakeAmountMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmIntakeAmountHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
     <!--@mbg.generated-->
-    <!--@Table rm_intake_amount-->
+    <!--@Table rm_intake_amount_history-->
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
     <result column="amount" jdbcType="DOUBLE" property="amount" />
@@ -23,17 +23,17 @@
     <!--@mbg.generated-->
     select 
     <include refid="Base_Column_List" />
-    from rm_intake_amount
+    from rm_intake_amount_history
     where id = #{id,jdbcType=BIGINT}
   </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     <!--@mbg.generated-->
-    delete from rm_intake_amount
+    delete from rm_intake_amount_history
     where id = #{id,jdbcType=BIGINT}
   </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount">
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
     <!--@mbg.generated-->
-    insert into rm_intake_amount (id, intakeId, amount, 
+    insert into rm_intake_amount_history (id, intakeId, amount, 
       loss, controllerIdLast, dtLast, 
       amountLast, totalAmountLast, resourceTypeLast
       )
@@ -42,9 +42,9 @@
       #{amountlast,jdbcType=DOUBLE}, #{totalamountlast,jdbcType=DOUBLE}, #{resourcetypelast,jdbcType=TINYINT}
       )
   </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount">
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
     <!--@mbg.generated-->
-    insert into rm_intake_amount
+    insert into rm_intake_amount_history
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
@@ -104,9 +104,9 @@
       </if>
     </trim>
   </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount">
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
     <!--@mbg.generated-->
-    update rm_intake_amount
+    update rm_intake_amount_history
     <set>
       <if test="intakeid != null">
         intakeId = #{intakeid,jdbcType=BIGINT},
@@ -135,9 +135,9 @@
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmount">
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
     <!--@mbg.generated-->
-    update rm_intake_amount
+    update rm_intake_amount_history
     set intakeId = #{intakeid,jdbcType=BIGINT},
       amount = #{amount,jdbcType=DOUBLE},
       loss = #{loss,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
new file mode 100644
index 0000000..c9bc9e0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -0,0 +1,304 @@
+<?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.RmOpenCloseValveHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
+    <!--@mbg.generated-->
+    <!--@Table rm_open_close_valve_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="DATE" property="opDt" />
+    <result column="op_type" jdbcType="TINYINT" property="opType" />
+    <result column="op_total_amount" jdbcType="DOUBLE" property="opTotalAmount" />
+    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
+    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
+    <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
+    <result column="open_dt" jdbcType="DATE" property="openDt" />
+    <result column="cl_dt" jdbcType="DATE" property="clDt" />
+    <result column="cl_type" jdbcType="TINYINT" property="clType" />
+    <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
+    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
+    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
+    <result column="cl_remain_money" jdbcType="DOUBLE" property="clRemainMoney" />
+    <result column="cl_this_amount" jdbcType="DOUBLE" property="clThisAmount" />
+    <result column="cl_this_money" jdbcType="DOUBLE" property="clThisMoney" />
+    <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
+    <result column="cl_open_dt" jdbcType="DATE" property="clOpenDt" />
+    <result column="close_dt" jdbcType="DATE" property="closeDt" />
+  </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
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_open_close_valve_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_open_close_valve_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
+    <!--@mbg.generated-->
+    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, 
+      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}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=DATE}, #{opType,jdbcType=TINYINT}, 
+      #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, #{opIcCardAddr,jdbcType=VARCHAR}, 
+      #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=DATE}, #{clDt,jdbcType=DATE}, 
+      #{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=DATE}, 
+      #{closeDt,jdbcType=DATE})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
+    <!--@mbg.generated-->
+    insert into rm_open_close_valve_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="opType != null">
+        op_type,
+      </if>
+      <if test="opTotalAmount != null">
+        op_total_amount,
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no,
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr,
+      </if>
+      <if test="opRemainMoney != null">
+        op_remain_money,
+      </if>
+      <if test="openDt != null">
+        open_dt,
+      </if>
+      <if test="clDt != null">
+        cl_dt,
+      </if>
+      <if test="clType != null">
+        cl_type,
+      </if>
+      <if test="clTotalAmount != null">
+        cl_total_amount,
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no,
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr,
+      </if>
+      <if test="clRemainMoney != null">
+        cl_remain_money,
+      </if>
+      <if test="clThisAmount != null">
+        cl_this_amount,
+      </if>
+      <if test="clThisMoney != null">
+        cl_this_money,
+      </if>
+      <if test="clThisTime != null">
+        cl_this_time,
+      </if>
+      <if test="clOpenDt != null">
+        cl_open_dt,
+      </if>
+      <if test="closeDt != null">
+        close_dt,
+      </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=DATE},
+      </if>
+      <if test="opType != null">
+        #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="opTotalAmount != null">
+        #{opTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="opIcCardNo != null">
+        #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardAddr != null">
+        #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opRemainMoney != null">
+        #{opRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="openDt != null">
+        #{openDt,jdbcType=DATE},
+      </if>
+      <if test="clDt != null">
+        #{clDt,jdbcType=DATE},
+      </if>
+      <if test="clType != null">
+        #{clType,jdbcType=TINYINT},
+      </if>
+      <if test="clTotalAmount != null">
+        #{clTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clIcCardNo != null">
+        #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardAddr != null">
+        #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clRemainMoney != null">
+        #{clRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisAmount != null">
+        #{clThisAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisMoney != null">
+        #{clThisMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisTime != null">
+        #{clThisTime,jdbcType=INTEGER},
+      </if>
+      <if test="clOpenDt != null">
+        #{clOpenDt,jdbcType=DATE},
+      </if>
+      <if test="closeDt != null">
+        #{closeDt,jdbcType=DATE},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
+    <!--@mbg.generated-->
+    update rm_open_close_valve_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=DATE},
+      </if>
+      <if test="opType != null">
+        op_type = #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="opTotalAmount != null">
+        op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opRemainMoney != null">
+        op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="openDt != null">
+        open_dt = #{openDt,jdbcType=DATE},
+      </if>
+      <if test="clDt != null">
+        cl_dt = #{clDt,jdbcType=DATE},
+      </if>
+      <if test="clType != null">
+        cl_type = #{clType,jdbcType=TINYINT},
+      </if>
+      <if test="clTotalAmount != null">
+        cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clRemainMoney != null">
+        cl_remain_money = #{clRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisAmount != null">
+        cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisMoney != null">
+        cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisTime != null">
+        cl_this_time = #{clThisTime,jdbcType=INTEGER},
+      </if>
+      <if test="clOpenDt != null">
+        cl_open_dt = #{clOpenDt,jdbcType=DATE},
+      </if>
+      <if test="closeDt != null">
+        close_dt = #{closeDt,jdbcType=DATE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
+    <!--@mbg.generated-->
+    update rm_open_close_valve_history
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      op_dt = #{opDt,jdbcType=DATE},
+      op_type = #{opType,jdbcType=TINYINT},
+      op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
+      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
+      open_dt = #{openDt,jdbcType=DATE},
+      cl_dt = #{clDt,jdbcType=DATE},
+      cl_type = #{clType,jdbcType=TINYINT},
+      cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
+      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      cl_remain_money = #{clRemainMoney,jdbcType=DOUBLE},
+      cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
+      cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
+      cl_this_time = #{clThisTime,jdbcType=INTEGER},
+      cl_open_dt = #{clOpenDt,jdbcType=DATE},
+      close_dt = #{closeDt,jdbcType=DATE}
+    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
new file mode 100644
index 0000000..3943a98
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -0,0 +1,323 @@
+<?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.RmOpenCloseValveLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_open_close_valve_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+    <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="DATE" property="opDt" />
+    <result column="op_type" jdbcType="TINYINT" property="opType" />
+    <result column="op_total_amount" jdbcType="DOUBLE" property="opTotalAmount" />
+    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
+    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
+    <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
+    <result column="open_dt" jdbcType="DATE" property="openDt" />
+    <result column="cl_dt" jdbcType="DATE" property="clDt" />
+    <result column="cl_type" jdbcType="TINYINT" property="clType" />
+    <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
+    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
+    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
+    <result column="cl_remain_money" jdbcType="DOUBLE" property="clRemainMoney" />
+    <result column="cl_this_amount" jdbcType="DOUBLE" property="clThisAmount" />
+    <result column="cl_this_money" jdbcType="DOUBLE" property="clThisMoney" />
+    <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
+    <result column="cl_open_dt" jdbcType="DATE" property="clOpenDt" />
+    <result column="close_dt" jdbcType="DATE" property="closeDt" />
+  </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
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_open_close_valve_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+
+  <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_open_close_valve_last
+    where rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_open_close_valve_last
+    where id = #{id,jdbcType=BIGINT}
+  </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=DATE},
+      #{opType,jdbcType=TINYINT}, #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR},
+      #{opIcCardAddr,jdbcType=VARCHAR}, #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=DATE},
+      #{clDt,jdbcType=DATE}, #{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=DATE}, #{closeDt,jdbcType=DATE})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
+    <!--@mbg.generated-->
+    insert into rm_open_close_valve_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="lastHistoryId != null">
+        last_history_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="opType != null">
+        op_type,
+      </if>
+      <if test="opTotalAmount != null">
+        op_total_amount,
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no,
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr,
+      </if>
+      <if test="opRemainMoney != null">
+        op_remain_money,
+      </if>
+      <if test="openDt != null">
+        open_dt,
+      </if>
+      <if test="clDt != null">
+        cl_dt,
+      </if>
+      <if test="clType != null">
+        cl_type,
+      </if>
+      <if test="clTotalAmount != null">
+        cl_total_amount,
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no,
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr,
+      </if>
+      <if test="clRemainMoney != null">
+        cl_remain_money,
+      </if>
+      <if test="clThisAmount != null">
+        cl_this_amount,
+      </if>
+      <if test="clThisMoney != null">
+        cl_this_money,
+      </if>
+      <if test="clThisTime != null">
+        cl_this_time,
+      </if>
+      <if test="clOpenDt != null">
+        cl_open_dt,
+      </if>
+      <if test="closeDt != null">
+        close_dt,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="lastHistoryId != null">
+        #{lastHistoryId,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=DATE},
+      </if>
+      <if test="opType != null">
+        #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="opTotalAmount != null">
+        #{opTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="opIcCardNo != null">
+        #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardAddr != null">
+        #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opRemainMoney != null">
+        #{opRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="openDt != null">
+        #{openDt,jdbcType=DATE},
+      </if>
+      <if test="clDt != null">
+        #{clDt,jdbcType=DATE},
+      </if>
+      <if test="clType != null">
+        #{clType,jdbcType=TINYINT},
+      </if>
+      <if test="clTotalAmount != null">
+        #{clTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clIcCardNo != null">
+        #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardAddr != null">
+        #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clRemainMoney != null">
+        #{clRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisAmount != null">
+        #{clThisAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisMoney != null">
+        #{clThisMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisTime != null">
+        #{clThisTime,jdbcType=INTEGER},
+      </if>
+      <if test="clOpenDt != null">
+        #{clOpenDt,jdbcType=DATE},
+      </if>
+      <if test="closeDt != null">
+        #{closeDt,jdbcType=DATE},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
+    <!--@mbg.generated-->
+    update rm_open_close_valve_last
+    <set>
+      <if test="lastHistoryId != null">
+        last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <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=DATE},
+      </if>
+      <if test="opType != null">
+        op_type = #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="opTotalAmount != null">
+        op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opRemainMoney != null">
+        op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="openDt != null">
+        open_dt = #{openDt,jdbcType=DATE},
+      </if>
+      <if test="clDt != null">
+        cl_dt = #{clDt,jdbcType=DATE},
+      </if>
+      <if test="clType != null">
+        cl_type = #{clType,jdbcType=TINYINT},
+      </if>
+      <if test="clTotalAmount != null">
+        cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clRemainMoney != null">
+        cl_remain_money = #{clRemainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisAmount != null">
+        cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisMoney != null">
+        cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="clThisTime != null">
+        cl_this_time = #{clThisTime,jdbcType=INTEGER},
+      </if>
+      <if test="clOpenDt != null">
+        cl_open_dt = #{clOpenDt,jdbcType=DATE},
+      </if>
+      <if test="closeDt != null">
+        close_dt = #{closeDt,jdbcType=DATE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
+    <!--@mbg.generated-->
+    update rm_open_close_valve_last
+    set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      op_dt = #{opDt,jdbcType=DATE},
+      op_type = #{opType,jdbcType=TINYINT},
+      op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
+      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
+      open_dt = #{openDt,jdbcType=DATE},
+      cl_dt = #{clDt,jdbcType=DATE},
+      cl_type = #{clType,jdbcType=TINYINT},
+      cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
+      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      cl_remain_money = #{clRemainMoney,jdbcType=DOUBLE},
+      cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
+      cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
+      cl_this_time = #{clThisTime,jdbcType=INTEGER},
+      cl_open_dt = #{clOpenDt,jdbcType=DATE},
+      close_dt = #{closeDt,jdbcType=DATE}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml
deleted file mode 100644
index 53ac000..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml
+++ /dev/null
@@ -1,303 +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.RmOpenCloseValveReportMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport">
-    <!--@mbg.generated-->
-    <!--@Table rm_open_close_valve_report-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
-    <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
-    <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="opDt" jdbcType="DATE" property="opdt" />
-    <result column="opType" jdbcType="TINYINT" property="optype" />
-    <result column="opTotalAmount" jdbcType="DOUBLE" property="optotalamount" />
-    <result column="opIcCardNo" jdbcType="VARCHAR" property="opiccardno" />
-    <result column="opIcCardAddr" jdbcType="VARCHAR" property="opiccardaddr" />
-    <result column="opRemainMoney" jdbcType="DOUBLE" property="opremainmoney" />
-    <result column="openDt" jdbcType="DATE" property="opendt" />
-    <result column="clDt" jdbcType="DATE" property="cldt" />
-    <result column="clType" jdbcType="TINYINT" property="cltype" />
-    <result column="clTotalAmount" jdbcType="DOUBLE" property="cltotalamount" />
-    <result column="clIcCardNo" jdbcType="VARCHAR" property="cliccardno" />
-    <result column="clIcCardAddr" jdbcType="VARCHAR" property="cliccardaddr" />
-    <result column="clRemainMoney" jdbcType="DOUBLE" property="clremainmoney" />
-    <result column="clThisAmount" jdbcType="DOUBLE" property="clthisamount" />
-    <result column="clThisMoney" jdbcType="DOUBLE" property="clthismoney" />
-    <result column="clThisTime" jdbcType="INTEGER" property="clthistime" />
-    <result column="clOpenDt" jdbcType="DATE" property="clopendt" />
-    <result column="closeDt" jdbcType="DATE" property="closedt" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, opDt, opType, opTotalAmount, opIcCardNo, opIcCardAddr, 
-    opRemainMoney, openDt, clDt, clType, clTotalAmount, clIcCardNo, clIcCardAddr, clRemainMoney, 
-    clThisAmount, clThisMoney, clThisTime, clOpenDt, closeDt
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_open_close_valve_report
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_open_close_valve_report
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport">
-    <!--@mbg.generated-->
-    insert into rm_open_close_valve_report (id, controllerId, intakeId, 
-      rtuAddr, opDt, opType, 
-      opTotalAmount, opIcCardNo, opIcCardAddr, 
-      opRemainMoney, openDt, clDt, 
-      clType, clTotalAmount, clIcCardNo, 
-      clIcCardAddr, clRemainMoney, clThisAmount, 
-      clThisMoney, clThisTime, clOpenDt, 
-      closeDt)
-    values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{opdt,jdbcType=DATE}, #{optype,jdbcType=TINYINT}, 
-      #{optotalamount,jdbcType=DOUBLE}, #{opiccardno,jdbcType=VARCHAR}, #{opiccardaddr,jdbcType=VARCHAR}, 
-      #{opremainmoney,jdbcType=DOUBLE}, #{opendt,jdbcType=DATE}, #{cldt,jdbcType=DATE}, 
-      #{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=DATE}, 
-      #{closedt,jdbcType=DATE})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport">
-    <!--@mbg.generated-->
-    insert into rm_open_close_valve_report
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerid != null">
-        controllerId,
-      </if>
-      <if test="intakeid != null">
-        intakeId,
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr,
-      </if>
-      <if test="opdt != null">
-        opDt,
-      </if>
-      <if test="optype != null">
-        opType,
-      </if>
-      <if test="optotalamount != null">
-        opTotalAmount,
-      </if>
-      <if test="opiccardno != null">
-        opIcCardNo,
-      </if>
-      <if test="opiccardaddr != null">
-        opIcCardAddr,
-      </if>
-      <if test="opremainmoney != null">
-        opRemainMoney,
-      </if>
-      <if test="opendt != null">
-        openDt,
-      </if>
-      <if test="cldt != null">
-        clDt,
-      </if>
-      <if test="cltype != null">
-        clType,
-      </if>
-      <if test="cltotalamount != null">
-        clTotalAmount,
-      </if>
-      <if test="cliccardno != null">
-        clIcCardNo,
-      </if>
-      <if test="cliccardaddr != null">
-        clIcCardAddr,
-      </if>
-      <if test="clremainmoney != null">
-        clRemainMoney,
-      </if>
-      <if test="clthisamount != null">
-        clThisAmount,
-      </if>
-      <if test="clthismoney != null">
-        clThisMoney,
-      </if>
-      <if test="clthistime != null">
-        clThisTime,
-      </if>
-      <if test="clopendt != null">
-        clOpenDt,
-      </if>
-      <if test="closedt != null">
-        closeDt,
-      </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=DATE},
-      </if>
-      <if test="optype != null">
-        #{optype,jdbcType=TINYINT},
-      </if>
-      <if test="optotalamount != null">
-        #{optotalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="opiccardno != null">
-        #{opiccardno,jdbcType=VARCHAR},
-      </if>
-      <if test="opiccardaddr != null">
-        #{opiccardaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opremainmoney != null">
-        #{opremainmoney,jdbcType=DOUBLE},
-      </if>
-      <if test="opendt != null">
-        #{opendt,jdbcType=DATE},
-      </if>
-      <if test="cldt != null">
-        #{cldt,jdbcType=DATE},
-      </if>
-      <if test="cltype != null">
-        #{cltype,jdbcType=TINYINT},
-      </if>
-      <if test="cltotalamount != null">
-        #{cltotalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="cliccardno != null">
-        #{cliccardno,jdbcType=VARCHAR},
-      </if>
-      <if test="cliccardaddr != null">
-        #{cliccardaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clremainmoney != null">
-        #{clremainmoney,jdbcType=DOUBLE},
-      </if>
-      <if test="clthisamount != null">
-        #{clthisamount,jdbcType=DOUBLE},
-      </if>
-      <if test="clthismoney != null">
-        #{clthismoney,jdbcType=DOUBLE},
-      </if>
-      <if test="clthistime != null">
-        #{clthistime,jdbcType=INTEGER},
-      </if>
-      <if test="clopendt != null">
-        #{clopendt,jdbcType=DATE},
-      </if>
-      <if test="closedt != null">
-        #{closedt,jdbcType=DATE},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport">
-    <!--@mbg.generated-->
-    update rm_open_close_valve_report
-    <set>
-      <if test="controllerid != null">
-        controllerId = #{controllerid,jdbcType=BIGINT},
-      </if>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opdt != null">
-        opDt = #{opdt,jdbcType=DATE},
-      </if>
-      <if test="optype != null">
-        opType = #{optype,jdbcType=TINYINT},
-      </if>
-      <if test="optotalamount != null">
-        opTotalAmount = #{optotalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="opiccardno != null">
-        opIcCardNo = #{opiccardno,jdbcType=VARCHAR},
-      </if>
-      <if test="opiccardaddr != null">
-        opIcCardAddr = #{opiccardaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="opremainmoney != null">
-        opRemainMoney = #{opremainmoney,jdbcType=DOUBLE},
-      </if>
-      <if test="opendt != null">
-        openDt = #{opendt,jdbcType=DATE},
-      </if>
-      <if test="cldt != null">
-        clDt = #{cldt,jdbcType=DATE},
-      </if>
-      <if test="cltype != null">
-        clType = #{cltype,jdbcType=TINYINT},
-      </if>
-      <if test="cltotalamount != null">
-        clTotalAmount = #{cltotalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="cliccardno != null">
-        clIcCardNo = #{cliccardno,jdbcType=VARCHAR},
-      </if>
-      <if test="cliccardaddr != null">
-        clIcCardAddr = #{cliccardaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="clremainmoney != null">
-        clRemainMoney = #{clremainmoney,jdbcType=DOUBLE},
-      </if>
-      <if test="clthisamount != null">
-        clThisAmount = #{clthisamount,jdbcType=DOUBLE},
-      </if>
-      <if test="clthismoney != null">
-        clThisMoney = #{clthismoney,jdbcType=DOUBLE},
-      </if>
-      <if test="clthistime != null">
-        clThisTime = #{clthistime,jdbcType=INTEGER},
-      </if>
-      <if test="clopendt != null">
-        clOpenDt = #{clopendt,jdbcType=DATE},
-      </if>
-      <if test="closedt != null">
-        closeDt = #{closedt,jdbcType=DATE},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveReport">
-    <!--@mbg.generated-->
-    update rm_open_close_valve_report
-    set controllerId = #{controllerid,jdbcType=BIGINT},
-      intakeId = #{intakeid,jdbcType=BIGINT},
-      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      opDt = #{opdt,jdbcType=DATE},
-      opType = #{optype,jdbcType=TINYINT},
-      opTotalAmount = #{optotalamount,jdbcType=DOUBLE},
-      opIcCardNo = #{opiccardno,jdbcType=VARCHAR},
-      opIcCardAddr = #{opiccardaddr,jdbcType=VARCHAR},
-      opRemainMoney = #{opremainmoney,jdbcType=DOUBLE},
-      openDt = #{opendt,jdbcType=DATE},
-      clDt = #{cldt,jdbcType=DATE},
-      clType = #{cltype,jdbcType=TINYINT},
-      clTotalAmount = #{cltotalamount,jdbcType=DOUBLE},
-      clIcCardNo = #{cliccardno,jdbcType=VARCHAR},
-      clIcCardAddr = #{cliccardaddr,jdbcType=VARCHAR},
-      clRemainMoney = #{clremainmoney,jdbcType=DOUBLE},
-      clThisAmount = #{clthisamount,jdbcType=DOUBLE},
-      clThisMoney = #{clthismoney,jdbcType=DOUBLE},
-      clThisTime = #{clthistime,jdbcType=INTEGER},
-      clOpenDt = #{clopendt,jdbcType=DATE},
-      closeDt = #{closedt,jdbcType=DATE}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
index 86b05f5..dcffd54 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
@@ -3,17 +3,11 @@
 import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
-import com.dy.pipIrrGlobal.daoRm.RmAlarmStateHistoryMapper;
-import com.dy.pipIrrGlobal.daoRm.RmAlarmStateLastMapper;
-import com.dy.pipIrrGlobal.daoRm.RmAutoReportHistoryMapper;
-import com.dy.pipIrrGlobal.daoRm.RmAutoReportLastMapper;
+import com.dy.pipIrrGlobal.daoRm.*;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
 import com.dy.pipIrrGlobal.pojoPr.PrIntake;
-import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
+import com.dy.pipIrrGlobal.pojoRm.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -41,11 +35,20 @@
     private RmAutoReportLastMapper rmAutoReportLastMapperDao ;//鎺у埗鍣ㄦ渶鏂颁笂鎶ユ暟鎹瓺AO
     @Autowired
     private RmAutoReportHistoryMapper rmAutoReportHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙蹭笂鎶ユ暟鎹瓺AO
+    @Autowired
+    private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapperDao ;//鎺у埗鍣ㄦ渶鏂板紑鍏抽榾涓婃姤鏁版嵁DAO
+    @Autowired
+    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插紑鍏抽榾涓婃姤鏁版嵁DAO
 
     //@Autowired
     //@Lazy
     //private DbSv sv ;
 
+    /////////////////////////////////////////////////
+    //
+    // 鍩虹鍔熻兘
+    //
+    ////////////////////////////////////////////////
     /**
      * 閫氳繃鎺у埗鍣ㄥ湴鍧�浠庢暟鎹簱琛ㄤ腑鏌ヨ鎺у埗鍣�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
@@ -78,12 +81,19 @@
     public void savePrConctrollerTramp(PrControllerTramp po){
         this.prControllerTrampMapperDao.insert(po) ;
     }
+
+
+    /////////////////////////////////////////////////
+    //
+    // 鎶ヨ鍙婄姸鎬佸姛鑳�
+    //
+    ////////////////////////////////////////////////
     /**
      * 寰楀埌鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹渶鏂拌褰�
      * @param rtuAddr
      * @return
      */
-    public RmAlarmStateLast getRmLastAlarmState(String rtuAddr){
+    public RmAlarmStateLast getRmAlarmStateLast(String rtuAddr){
         List<RmAlarmStateLast> list = rmAlarmStateLastMapperDao.selectByRtuAddr(rtuAddr) ;
         if(list != null && list.size() > 0){
             return list.get(0) ;
@@ -106,12 +116,20 @@
     public void saveRmAlarmStateHistory(RmAlarmStateHistory po){
         this.rmAlarmStateHistoryMapperDao.insert(po) ;
     }
+
+
+
+    /////////////////////////////////////////////////
+    //
+    // 涓诲姩涓婃姤鏁版嵁鍔熻兘
+    //
+    ////////////////////////////////////////////////
     /**
      * 寰楀埌鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
      * @param rtuAddr
      * @return
      */
-    public RmAutoReportLast getRmLastAutoReport(String rtuAddr){
+    public RmAutoReportLast getRmAutoReportLast(String rtuAddr){
         List<RmAutoReportLast> list = rmAutoReportLastMapperDao.selectByRtuAddr(rtuAddr) ;
         if(list != null && list.size() > 0){
             return list.get(0) ;
@@ -127,6 +145,14 @@
         this.rmAutoReportLastMapperDao.insert(po) ;
     }
     /**
+     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmAutoReportLast(RmAutoReportLast po){
+        this.rmAutoReportLastMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+    /**
      * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹巻鍙茶褰�
      * @param po
      */
@@ -135,4 +161,67 @@
         this.rmAutoReportHistoryMapperDao.insert(po) ;
     }
 
+
+
+
+    /////////////////////////////////////////////////
+    //
+    // 寮�鍏抽榾涓婃姤鏁版嵁鍔熻兘
+    //
+    ////////////////////////////////////////////////
+    /**
+     * 寰楀埌鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�
+     * @param rtuAddr
+     * @return
+     */
+    public RmOpenCloseValveLast getRmOpenCloseValveLast(String rtuAddr){
+        List<RmOpenCloseValveLast> list = rmOpenCloseValveLastMapperDao.selectByRtuAddr(rtuAddr) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmOpenCloseValveLast(RmOpenCloseValveLast po){
+        this.rmOpenCloseValveLastMapperDao.insert(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmOpenCloseValveLast(RmOpenCloseValveLast po){
+        this.rmOpenCloseValveLastMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+    /**
+     * 寰楀埌鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶鏁版嵁涓殑鏈�鏂拌褰�
+     * @param id
+     * @return
+     */
+    public RmOpenCloseValveHistory getRmOpenCloseValveHistory(Long id){
+        return rmOpenCloseValveHistoryMapperDao.selectByPrimaryKey(id) ;
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶璁板綍
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
+        this.rmOpenCloseValveHistoryMapperDao.insert(po) ;
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶璁板綍
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
+        this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index 1e6fc88..80f96e6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -13,8 +13,6 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-import java.util.Date;
-
 /**
  * @Author liurunyu
  * @Date 2024/1/15 21:59
@@ -73,7 +71,7 @@
      * @param stateVo 鐘舵�佸璞�
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
-        RmAlarmStateLast po = sv.getRmLastAlarmState(rtuAddr) ;
+        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
         if(po == null){
             po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                     rtuAddr,
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
index fe8102b..09e93dd 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
@@ -56,7 +56,7 @@
      * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
-        RmAutoReportLast po = sv.getRmLastAutoReport(rtuAddr) ;
+        RmAutoReportLast po = sv.getRmAutoReportLast(rtuAddr) ;
         if(po == null){
             po = new RmAutoReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getId(),
                     rtuAddr,
@@ -67,7 +67,7 @@
             sv.saveRmAutoReportLast(po) ;
         }else{
             po = this.update(po, dV1_0_1, dataCdC0Vo) ;
-            sv.saveRmAutoReportLast(po);
+            sv.updateRmAutoReportLast(po);
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index 56d8170..a1f0a25 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -2,7 +2,13 @@
 
 import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.aceMw.server.rtuData.dbSv.DbSv;
-import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -28,9 +34,215 @@
      */
     @Override
     public void execute(Object data) {
-        Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-        DbSv sv = (DbSv)objs[0] ;
-        PrControllerTramp rtuTramp = (PrControllerTramp)objs[2] ;
-        sv.savePrConctrollerTramp(rtuTramp);
+        Data d = (Data) data;
+        Object subD = d.getSubData();
+        if (subD != null) {
+            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
+            if (dV1_0_1 != null && dV1_0_1.dataCd83CloseVo != null) {
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                DbSv sv = (DbSv)objs[0] ;
+                PrController controller = (PrController)objs[1] ;
+                try{
+                    this.dealSave(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄥ叧闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+                }
+            }
+        }
+    }
+    /**
+     * 淇濆瓨鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1 涓婃姤鏁版嵁
+     * @param dataCd83CloseVo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
+     */
+    private void dealSave(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
+        RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
+        if(poLast == null){
+            //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛樺巻鍙叉暟鎹�
+            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
+            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+            //淇濆瓨鏈�鏂版暟鎹�
+            sv.saveRmOpenCloseValveLast(poLast);
+        }else{
+            //if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt).equals(poLast.closeDt)){
+            //    //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊
+            //}else{
+                if(poLast.clType == null){
+                    //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�锛屼繚鐣欏師璁板綍寮�闃�鏁版嵁
+                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    if(poLast.opType == null){
+                        //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁锛屾病鍔炶繘琛屽尮閰�
+                        //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    }else{
+                        //鍘熻褰曚腑瀛樺湪寮�闃�鏁版嵁锛岃繘琛屽巻鍙叉暟鎹尮閰�
+                        RmOpenCloseValveHistory poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
+                            if(poHistory != null){
+                                sv.updateRmOpenCloseValveHistory(poHistory);
+                            }else{
+                                //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+                                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                            }
+                        }else{
+                            //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+                            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                        }
+                    }
+                }else if(poLast.opType != null){
+                    //鍘熻褰曞瓨鍦ㄥ叧闃�鏁版嵁锛屼篃瀛樺湪寮�闃�鏁版嵁锛岄鍏堣繘琛屽紑鍏抽榾鏃堕棿瀵规瘮
+                    if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                        //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁锛屼笉杩涜澶勭悊
+                    }else if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                        //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+                    }else {
+                        //褰撳墠涓婃姤鐨勫叧闃�鏁版嵁鏅氫簬鍘熸潵鐨勫叧闃�鏁版嵁锛屾槸鏂扮殑涓婃姤鍏抽榾鏁版嵁
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    }
+                }else{
+                    //if(po.opType == null)
+                    //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
+                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                }
+
+                sv.updateRmOpenCloseValveLast(poLast);
+            //}
+        }
+    }
+
+    /**
+     * 淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @param poLast
+     * @throws Exception
+     */
+    private void newHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, RmOpenCloseValveLast poLast)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83CloseVo) ;
+        sv.saveRmOpenCloseValveHistory(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鏈�鏂版暟鎹褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @return
+     * @throws Exception
+     */
+    private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                null, null, null, null, null, null,null,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                dataCd83CloseVo.type,
+                dataCd83CloseVo.totalAmount,
+                dataCd83CloseVo.icCardNo,
+                dataCd83CloseVo.icCardAddr,
+                dataCd83CloseVo.remainMoney,
+                dataCd83CloseVo.thisAmount,
+                dataCd83CloseVo.thisMoney,
+                dataCd83CloseVo.thisTime,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
+        return po ;
+    }
+
+
+    /**
+     * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @return
+     * @throws Exception
+     */
+    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                null, null, null, null, null, null,null,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                dataCd83CloseVo.type,
+                dataCd83CloseVo.totalAmount,
+                dataCd83CloseVo.icCardNo,
+                dataCd83CloseVo.icCardAddr,
+                dataCd83CloseVo.remainMoney,
+                dataCd83CloseVo.thisAmount,
+                dataCd83CloseVo.thisMoney,
+                dataCd83CloseVo.thisTime,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
+        return po ;
+    }
+
+
+    /**
+     * 鏇存柊鏁版嵁
+     * @param poLast
+     * @param poHistory
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @param clearOpenValve
+     * @throws Exception
+     */
+    private void updateCloseValve(RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+        poLast.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        poLast.clType = dataCd83CloseVo.type;
+        poLast.clTotalAmount = dataCd83CloseVo.totalAmount;
+        poLast.clIcCardNo = dataCd83CloseVo.icCardNo;
+        poLast.clIcCardAddr = dataCd83CloseVo.icCardAddr;
+        poLast.clRemainMoney = dataCd83CloseVo.remainMoney;
+        poLast.clThisAmount = dataCd83CloseVo.thisAmount;
+        poLast.clThisMoney = dataCd83CloseVo.thisMoney;
+        poLast.clThisTime = dataCd83CloseVo.thisTime;
+        poLast.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt);
+        poLast.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ;
+
+        if(poHistory != null){
+            poHistory.clDt = poLast.clDt;
+            poHistory.clType = dataCd83CloseVo.type;
+            poHistory.clTotalAmount = dataCd83CloseVo.totalAmount;
+            poHistory.clIcCardNo = dataCd83CloseVo.icCardNo;
+            poHistory.clIcCardAddr = dataCd83CloseVo.icCardAddr;
+            poHistory.clRemainMoney = dataCd83CloseVo.remainMoney;
+            poHistory.clThisAmount = dataCd83CloseVo.thisAmount;
+            poHistory.clThisMoney = dataCd83CloseVo.thisMoney;
+            poHistory.clThisTime = dataCd83CloseVo.thisTime;
+            poHistory.clOpenDt = poLast.clOpenDt;
+            poHistory.closeDt = poLast.closeDt ;
+        }
+
+        if(clearOpenValve){
+            poLast.opDt = null ;
+            poLast.opType = null ;
+            poLast.opTotalAmount = null ;
+            poLast.opIcCardNo = null ;
+            poLast.opIcCardAddr = null ;
+            poLast.opRemainMoney = null ;
+            poLast.openDt = null ;
+
+            if(poHistory != null) {
+                poHistory.opDt = null ;
+                poHistory.opType = null ;
+                poHistory.opTotalAmount = null ;
+                poHistory.opIcCardNo = null ;
+                poHistory.opIcCardAddr = null ;
+                poHistory.opRemainMoney = null ;
+                poHistory.openDt = null ;
+            }
+        }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
new file mode 100644
index 0000000..8457b42
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
@@ -0,0 +1,30 @@
+package com.dy.aceMw.server.rtuData.p206V1_0_0;
+
+import com.dy.aceMw.server.rtuData.TaskSurpport;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/22 16:56
+ * @LastEditTime 2024/2/22 16:56
+ * @Description
+ * 澶勭悊闈炴祦娴帶鍒跺櫒,姝や换鍔℃棤鍏蜂綋涓氬姟閫昏緫锛屽彧鏄湪浠诲姟xml閰嶇疆鏂囦欢涓紝妗嗕綇鍏跺瓙浠诲姟鑺傜偣
+ */
+public class TkDealControllerNoTramp extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealControllerNoTramp.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealControllerNoTramp" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        //姝や换鍔℃棤鍏蜂綋涓氬姟閫昏緫锛屽彧鏄湪浠诲姟xml閰嶇疆鏂囦欢涓紝妗嗕綇鍏跺瓙浠诲姟鑺傜偣
+        this.toNextTasks(data);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
index 06c31c3..30dfe01 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
@@ -30,8 +30,10 @@
     @Override
     public void execute(Object data) {
         Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-        DbSv sv = (DbSv)objs[0] ;
-        PrControllerTramp rtuTramp = (PrControllerTramp)objs[2] ;
-        sv.savePrConctrollerTramp(rtuTramp);
+        PrControllerTramp tramp = (PrControllerTramp)objs[2] ;
+        if(tramp != null){
+            DbSv sv = (DbSv)objs[0] ;
+            sv.savePrConctrollerTramp(tramp);
+        }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index 2364a3e..c6fb3ef 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -3,8 +3,12 @@
 import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.aceMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataCd83OpenVo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.util.DateTime;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -13,8 +17,6 @@
  * @Date 2024/1/16 17:16
  * @LastEditTime 2024/1/16 17:16
  * @Description
- */
-/**
  * 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
  */
 public class TkDealOpenValveReport extends TaskSurpport {
@@ -39,12 +41,207 @@
                 DbSv sv = (DbSv)objs[0] ;
                 PrController controller = (PrController)objs[1] ;
                 try{
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo) ;
+                    this.dealSave(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83OpenVo) ;
                 }catch (Exception e){
                     log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
                 }
             }
         }
     }
+    /**
+     * 淇濆瓨鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1 涓婃姤鏁版嵁
+     * @param dataCd83OpenVo 寮�闃�涓婃姤鏁版嵁瀵硅薄
+     */
+    private void dealSave(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
+        RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
+        if(poLast == null){
+            //棣栧厛鐢熸垚鍘嗗彶鏁版嵁锛屽苟淇濆瓨
+            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83OpenVo);
+            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+            sv.saveRmOpenCloseValveLast(poLast);
+        }else{
+            if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt).equals(poLast.openDt)){
+                //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊
+            }else{
+                if(poLast.opType != null){
+                    //鍘熻褰曞瓨鍦ㄥ紑闃�鏁版嵁锛岄鍏堣繘琛屾椂闂村姣�
+                    if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                        //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鏁版嵁锛屼笉杩涜澶勭悊
+                    }else if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                        //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊
+                    }else{
+                        //褰撳墠寮�闃�涓婃姤鏄柊鐨勪竴娆″紑闃�锛屼笉绠″師璁板綍鏄惁瀛樺湪鍏抽榾鏁版嵁锛屼竴寰嬫竻绌哄叧闃�鏁版嵁
+                        this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                        //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                    }
+                }else if(poLast.clType != null){
+                    //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁锛屼絾瀛樺湪鍏抽榾鏁版嵁锛岄鍏堣繘琛屾椂闂存瘮瀵�
+                    if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                        //褰撳墠涓婃姤鏄ˉ鎶ョ殑寮�闃�鏁版嵁
+                        RmOpenCloseValveHistory poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
+                        }
+                        this.updateOpenValve(poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
+                        if(poHistory != null){
+                            sv.updateRmOpenCloseValveHistory(poHistory);
+                        }
+                    }else if(poLast.closeDt != null && poLast.closeDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                        //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁
+                        this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                        //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                    }else {
+                        //褰撳墠涓婃姤鐨勫紑闃�鏁版嵁涓庡師鏉ョ殑鍏抽榾鏁版嵁鍚屼竴鏃堕棿锛岃繖绉嶆儏鍐靛簲璇ヤ笉瀛樺湪锛屼絾涔熷鐞�
+                        RmOpenCloseValveHistory poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
+                        }
+                        this.updateOpenValve(poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
+                        if(poHistory != null){
+                            sv.updateRmOpenCloseValveHistory(poHistory);
+                        }
+                    }
+                }else{
+                    //if(po.clType == null)
+                    //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
+                    this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                    //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                }
+
+                sv.updateRmOpenCloseValveLast(poLast);
+            }
+
+        }
+    }
+
+    /**
+     * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83OpenVo
+     * @param poLast
+     * @throws Exception
+     */
+    private void newHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83OpenVo) ;
+        sv.saveRmOpenCloseValveHistory(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑寮�闃�涓婃姤鏈�鏂版暟鎹褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83OpenVo
+     * @return
+     * @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) ;
+        return po ;
+    }
+
+
+    /**
+     * 鐢熸垚鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83OpenVo
+     * @return
+     * @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) ;
+        return po ;
+    }
+
+
+    /**
+     * 鏇存柊鏁版嵁
+     * @param poLast
+     * @param poHistory
+     * @param dV1_0_1
+     * @param dataCd83OpenVo
+     * @param clearCloseValve
+     * @throws Exception
+     */
+    private void updateOpenValve(RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+        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) ;
+
+        if(poHistory != null){
+            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 ;
+        }
+
+        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-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
index ebd0896..807efb2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
@@ -33,18 +33,19 @@
 		DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ;
 		if(sv != null){
 			PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ;
+			PrControllerTramp controllerTramp = null ;
 			if(controller == null){
 				//鏁版嵁搴撲腑鏈煡璇�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)鍒版帶鍒跺櫒锛圧TU瀹炰綋锛�
 				//娴佹氮鑰呮帶鍒跺櫒
-				PrControllerTramp rtuTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
-				if(rtuTramp == null){
-					rtuTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
-					this.taskResult = new Object[]{sv, null, rtuTramp} ;
-					this.toNextOneTask(data, TkDealControllerTramp.taskId);
+				controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
+				if(controllerTramp == null){
+					controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
+					//this.taskResult = new Object[]{sv, null, rtuTramp} ;
+					//this.toNextOneTask(data, TkDealControllerTramp.taskId);
 				}
 			}
-			//涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔
-			this.taskResult = new Object[]{sv, controller, null} ;
+			//涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘
+			this.taskResult = new Object[]{sv, controller, controllerTramp} ;
 			this.toNextTasks(data);
 		}else{
 			log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
index e89ee78..30ee0c0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
@@ -12,16 +12,18 @@
 					<!-- 澶勭悊娴佹氮鎺у埗鍣� -->
 					<task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" />
 					<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 -->
-					<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
-					<task id="TkFindReport" name="璇嗗埆鎺у埗鍣ㄤ笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindReport">
-						<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
-						<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
-						<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
-						<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
-					</task>
-					<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
-					<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse">
-						<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" >
+					<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
+						<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
+						<task id="TkFindReport" name="璇嗗埆鎺у埗鍣ㄤ笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindReport">
+							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
+							<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
+							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
+							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
+						</task>
+						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
+						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse">
+							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" >
+							</task>
 						</task>
 					</task>
 				</task>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml
index 8931838..f7d1000 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml
@@ -10,9 +10,9 @@
 		<task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindP206V1_0_0">
 			<task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkPreGenObjs">
 				<!-- 璇嗗埆娴佹氮鑰匯TU锛屾暟鎹簱涓病鏈夋垨鏁版嵁搴撳瓨鍦ㄤ絾鏈垎閰嶇疆渚涙按鏈烘瀯 -->
-				<task id="TkDealRtuTramp" name="璇嗗埆娴佹氮鑰匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealRtuTramp" />
+				<task id="TkDealControllerTramp" name="璇嗗埆娴佹氮鑰匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" />
 				<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealRtuTramp鍚庨潰 -->
-				<task id="TkDealNoRtuTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealNoRtuTramp">
+				<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
 					<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
 					<task id="TkFindAutoReport" name="璇嗗埆涓诲姩涓婃姤鍙婅Е鍙戜笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindAutoReport">
 						<!-- 妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁 -->
@@ -60,36 +60,7 @@
 				</task>
 			</task>
 		</task>
-		<task id="TkFindHAC_NBhV2_5" name="璇嗗埆HAC_NBhV2_5鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkFindHAC_NBhV2_5">
-			<task id="TkPipPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipPreGenObjs">
-				<!-- 璇嗗埆娴佹氮鑰呯缃戞按琛紝鏁版嵁搴撲腑娌℃湁鎴栨暟鎹簱瀛樺湪浣嗘湭鍒嗛厤缃緵姘存満鏋� -->
-				<task id="TkPipDealRtuTramp" name="璇嗗埆娴佹氮鑰呯缃戞按琛�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipDealRtuTramp" />
-				<!-- 闈炴祦娴�呯缃戞按琛紝蹇呴』鏀惧湪TkDealRtuTramp鍚庨潰 -->
-				<task id="TkPipDealNoRtuTramp" name="闈炴祦娴�呯缃戞按琛�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipDealNoRtuTramp">
-					<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
-					<task id="TkPipFindAutoReport" name="璇嗗埆涓诲姩涓婃姤鍙婅Е鍙戜笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipFindAutoReport">
-						<!-- 妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁 -->
-						<task id="TkPipCheckAutoReport" name="妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipCheckAutoReport">
-							<task id="TkPipCheckRepeatAutoReport" name="妫�鏌ラ噸澶嶄笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipCheckRepeatAutoReport">
-								<!-- Mn杩愮淮绯荤粺 -->
-								<task id="TkPipMnRtuDealAutoReportLastAlarm" name="杩愮淮绠$綉姘磋〃涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipMnRtuDealAutoReportLastAlarm" />
-								<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkPipMnRtuDealAutoReportLastData" name="杩愮淮绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipMnRtuDealAutoReportLastData" />
-								<!-- Org渚涙按鏈烘瀯绯荤粺 -->
-								<task id="TkPipOrgRtuDealAutoReportLastAlarm" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportLastAlarm">
-									<task id="TkPipOrgRtuDealAutoReportAlarm" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鎶ヨ" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportAlarm" />
-								</task>
-								<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkPipOrgRtuDealAutoReportLastData" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportLastData">
-									<task id="TkPipOrgRtuDealAutoReportData" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportData" />
-									<task id="TkPipOrgRtuDealAmount" name="渚涙按鏈烘瀯绠$綉姘磋〃鏈堟祦閲忕粺璁�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAmount" />
-								</task>
-							</task>
-						</task>
-					</task>
-				</task>
-			</task>
-		</task>
+
 	</task>
 </task>
 </project>

--
Gitblit v1.8.0