From b961edc40837e222a08b1e5c18fca9749613f089 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 16 一月 2024 20:01:44 +0800
Subject: [PATCH] 1、优化任务处理树任务实现代码; 2、实现开关阀报实体及数据库映射。

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java                                |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java |   36 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java           |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveReportMapper.java                     |   56 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml                                    |  303 +++++++++++++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Constant.java                                          |   49 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java       |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java                             |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java  |   50 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java                                |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java      |   49 ++-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml                                           |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveReport.java                          |  172 +++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java                             |    5 
 14 files changed, 710 insertions(+), 50 deletions(-)

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
new file mode 100644
index 0000000..8507461
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveReportMapper.java
@@ -0,0 +1,56 @@
+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/RmAlarmStateHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
index 273eed6..7701176 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
@@ -16,11 +16,8 @@
  * @Author liurunyu
  * @Date 2024/1/16 11:03
  * @LastEditTime 2024/1/16 11:03
- * @Description
+ * @Description 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鍘嗗彶锛�
  */   
-/**
-* 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鍘嗗彶锛�
-*/
 @TableName(value="rm_alarm_state_history", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
index 3ea5a85..24a6aab 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
@@ -16,11 +16,8 @@
  * @Author liurunyu
  * @Date 2024/1/16 10:39
  * @LastEditTime 2024/1/16 10:39
- * @Description
+ * @Description 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鏈�鏂帮級
  */   
-/**
-* 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鏈�鏂帮級
-*/
 @TableName(value="rm_alarm_state_last", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
index 7c40fb4..6a306d3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
@@ -16,11 +16,8 @@
  * @Author liurunyu
  * @Date 2024/1/16 14:59
  * @LastEditTime 2024/1/16 14:59
- * @Description
+ * @Description 缁堢鑷姤锛堟渶鏂帮級
  */   
-/**
-* 缁堢鑷姤锛堟渶鏂帮級
-*/
 @TableName(value="rm_alarm_state_history", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
index ee3ad84..a0f9424 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
@@ -16,12 +16,8 @@
  * @Author liurunyu
  * @Date 2024/1/16 14:45
  * @LastEditTime 2024/1/16 14:45
- * @Description
+ * @Description 缁堢鑷姤锛堟渶鏂帮級
  */   
-/**
-* 缁堢鑷姤锛堟渶鏂帮級
-*/
-
 @TableName(value="rm_alarm_state_last", autoResultMap = true)
 @Data
 @Builder
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/RmOpenCloseValveReport.java
new file mode 100644
index 0000000..f507c15
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveReport.java
@@ -0,0 +1,172 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/1/16 19:44
+ * @LastEditTime 2024/1/16 19:44
+ * @Description 鎺у埗鍣ㄥ紑鍏抽榾璁板綍
+ */
+@TableName(value="rm_open_close_valve_report", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鎺у埗鍣ㄥ紑鍏抽榾璁板綍")
+public class RmOpenCloseValveReport implements BaseEntity {
+
+    public static final long serialVersionUID = 202401161929001L;
+    /**
+     * 涓婚敭
+     */
+    @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;
+
+    /**
+    * 鍙栨按鍙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)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    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 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)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date clopendt;
+
+    /**
+    * 鍏抽榾鏃舵帶鍒跺櫒鏃堕挓
+    */
+    @Schema(description = "鍏抽榾鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date closedt;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Constant.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Constant.java
index c523017..159948d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Constant.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Constant.java
@@ -1,7 +1,9 @@
 package com.dy.pipIrrGlobal.util;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class Constant {
     /**
@@ -42,4 +44,51 @@
         return null ;
     }
 
+    // 1銆佸埛鍗″紑闃�锛�2鍒峰崱鍏抽榾锛�3銆佷腑蹇冪珯寮�闃�锛�4銆佷腑蹇冪珯鍏抽榾锛�5銆佹瑺璐瑰叧闃�锛�
+    // 6銆佹祦閲忚鏁呴殰鍏抽榾锛�7銆佺揣鎬ュ叧闃�锛�8銆佺敤鎴疯繙绋嬪紑闃�锛�9銆佺敤鎴疯繙绋嬪叧闃�锛�
+    // 16锛岀敤鎴峰紑闃�鍚庣閬撳唴娌℃湁姘达紝鑷姩鍏抽榾銆傜閬撲笉鍑烘按鑷姩鍏抽榾
+    public static final Integer valveOpenByIC = 1 ;//鍒峰崱寮�闃�
+    public static final Integer valveCloseByIC = 2 ;//鍒峰崱鍏抽榾
+    public static final Integer valveOpenByCenter = 3 ;//涓績绔欏紑闃�
+    public static final Integer valveCloseByCenter = 4 ;//涓績绔欏叧闃�
+    public static final Integer valveCloseByFee = 5 ;//娆犺垂鍏抽榾
+    public static final Integer valveCloseByFlowMeterFault = 6 ;//娴侀噺璁℃晠闅滃叧闃�
+    public static final Integer valveCloseByEmergency = 7 ;//绱ф�ュ叧闃�
+    public static final Integer valveOpenByRemoteUser = 8 ;//鐢ㄦ埛杩滅▼寮�闃�
+    public static final Integer valveCloseByRemoteUser = 9 ;//鐢ㄦ埛杩滅▼鍏抽榾锛�
+    public static final Integer valveCloseByNoWater = 16 ;//绠¢亾鏃犳按鑷姩鍏抽榾锛�
+
+    public static Map<Integer, String> openCloseValveTypes(){
+        Map<Integer, String> map = new HashMap<>() ;
+        map.put(valveOpenByIC, "鍒峰崱寮�闃�");
+        map.put(valveCloseByIC , "鍒峰崱鍏抽榾") ;
+        map.put(valveOpenByCenter , "涓績绔欏紑闃�") ;
+        map.put(valveCloseByCenter , "涓績绔欏叧闃�") ;
+        map.put(valveCloseByFee , "娆犺垂鍏抽榾") ;
+        map.put(valveCloseByFlowMeterFault , "娴侀噺璁℃晠闅滃叧闃�") ;
+        map.put(valveCloseByEmergency , "绱ф�ュ叧闃�") ;
+        map.put(valveOpenByRemoteUser , "鐢ㄦ埛杩滅▼寮�闃�") ;
+        map.put(valveCloseByRemoteUser , "鐢ㄦ埛杩滅▼鍏抽榾") ;
+        map.put(valveCloseByNoWater , "绠¢亾鏃犳按鑷姩鍏抽榾") ;
+        return map ;
+    }
+    public static String openCloseValveTypeName(Integer type){
+        if(type != null){
+            return switch (type.intValue()) {
+                case 1 -> "鍒峰崱寮�闃�";
+                case 2 -> "鍒峰崱鍏抽榾";
+                case 3 -> "涓績绔欏紑闃�";
+                case 4 -> "涓績绔欏叧闃�";
+                case 5 -> "娆犺垂鍏抽榾";
+                case 6 -> "娴侀噺璁℃晠闅滃叧闃�";
+                case 7 -> "绱ф�ュ叧闃�";
+                case 8 -> "鐢ㄦ埛杩滅▼寮�闃�";
+                case 9 -> "鐢ㄦ埛杩滅▼鍏抽榾";
+                case 16 -> "绠¢亾鏃犳按鑷姩鍏抽榾";
+                default -> "鏈煡";
+            };
+        }
+        return null ;
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml
new file mode 100644
index 0000000..53ac000
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveReportMapper.xml
@@ -0,0 +1,303 @@
+<?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/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 4f2a5f1..1e6fc88 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
@@ -6,6 +6,7 @@
 import com.dy.common.mw.protocol.p206V1_0_0.DataAlarmVo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataStateVo;
 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.RmAlarmStateHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
@@ -39,22 +40,26 @@
             DataV1_0_1 dV1_0_1 = (DataV1_0_1)subD ;
             if(dV1_0_1 != null){
                 //dV1_0_1.dataCd81Vo 涓� dV1_0_1.dataCdC0Vo 涓嶄細鍚屾椂鏈夊��
-                if(dV1_0_1.dataCd81Vo != null){
-                    if(dV1_0_1.dataCd81Vo.alarmVo != null || dV1_0_1.dataCd81Vo.stateVo != null){
-                        Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-                        DbSv sv = (DbSv)objs[0] ;
-                        PrController controller = (PrController)objs[1] ;
-                        this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
-                        this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
+                try{
+                    if(dV1_0_1.dataCd81Vo != null){
+                        if(dV1_0_1.dataCd81Vo.alarmVo != null || dV1_0_1.dataCd81Vo.stateVo != null){
+                            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                            DbSv sv = (DbSv)objs[0] ;
+                            PrController controller = (PrController)objs[1] ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
+                        }
+                    } else if(dV1_0_1.dataCdC0Vo != null){
+                        if(dV1_0_1.dataCdC0Vo.alarmVo != null || dV1_0_1.dataCdC0Vo.stateVo != null){
+                            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                            DbSv sv = (DbSv)objs[0] ;
+                            PrController controller = (PrController)objs[1] ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
+                        }
                     }
-                } else if(dV1_0_1.dataCdC0Vo != null){
-                    if(dV1_0_1.dataCdC0Vo.alarmVo != null || dV1_0_1.dataCdC0Vo.stateVo != null){
-                        Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-                        DbSv sv = (DbSv)objs[0] ;
-                        PrController controller = (PrController)objs[1] ;
-                        this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
-                        this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
-                    }
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
                 }
             }
         }
@@ -67,17 +72,17 @@
      * @param alarmVo 鎶ヨ瀵硅薄
      * @param stateVo 鐘舵�佸璞�
      */
-    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataAlarmVo alarmVo, DataStateVo 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) ;
         if(po == null){
             po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                     rtuAddr,
-                    new Date(),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                     alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
                     stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
             sv.saveRmAlarmStateLast(po) ;
         }else{
-            po = this.update(controller, po, alarmVo, stateVo) ;
+            po = this.update(controller, po, dV1_0_1, alarmVo, stateVo) ;
             sv.saveRmAlarmStateLast(po);
         }
     }
@@ -90,20 +95,20 @@
      * @param alarmVo 鎶ヨ瀵硅薄
      * @param stateVo 鐘舵�佸璞�
      */
-    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataAlarmVo alarmVo, DataStateVo stateVo){
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
         RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                 rtuAddr,
-                new Date(),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                 alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
                 stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
         sv.saveRmAlarmStateHistory(po) ;
     }
 
 
-    private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, DataAlarmVo alarmVo, DataStateVo stateVo){
+    private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
         po.controllerid = controller==null?null:controller.getId() ;
 
-        po.dt = new Date() ;
+        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
         if(alarmVo != null){
             po.bateryvolt = alarmVo.batteryVolt ;
             po.loss = alarmVo.loss ;
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 d0d0704..4e6f9df 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
@@ -42,8 +42,8 @@
                 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.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo) ;
+                    this.saveHistory(sv, controller, d.getRtuAddr(),dV1_0_1, dV1_0_1.dataCdC0Vo) ;
                 }catch (Exception e){
                     log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
                 }
@@ -57,18 +57,18 @@
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
      */
-    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataCdC0Vo dataCdC0Vo) throws Exception {
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
         RmAutoReportLast po = sv.getRmLastAutoReport(rtuAddr) ;
         if(po == null){
             po = new RmAutoReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getId(),
                     rtuAddr,
-                    new Date(),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                     DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
                     dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
                     dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
             sv.saveRmAutoReportLast(po) ;
         }else{
-            po = this.update(po, dataCdC0Vo) ;
+            po = this.update(po, dV1_0_1, dataCdC0Vo) ;
             sv.saveRmAutoReportLast(po);
         }
     }
@@ -80,10 +80,10 @@
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
      */
-    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataCdC0Vo dataCdC0Vo) throws Exception {
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
         RmAutoReportHistory po = new RmAutoReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                 rtuAddr,
-                new Date(),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                 DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
                 dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
                 dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
@@ -91,8 +91,8 @@
     }
 
 
-    private RmAutoReportLast update(RmAutoReportLast po, DataCdC0Vo dataCdC0Vo) throws Exception {
-        po.dt = new Date() ;
+    private RmAutoReportLast update(RmAutoReportLast po, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt) ;
         po.instantamount = dataCdC0Vo.instantAmount;
         po.totalamount = dataCdC0Vo.totalAmount;
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
new file mode 100644
index 0000000..56d8170
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -0,0 +1,36 @@
+package com.dy.aceMw.server.rtuData.p206V1_0_0;
+
+import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/1/16 17:18
+ * @LastEditTime 2024/1/16 17:18
+ * @Description
+ */
+/**
+ * 澶勭悊鎺у埗鍣ㄥ叧闃�涓婃姤
+ */
+public class TkDealCloseValveReport extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealCloseValveReport.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealCloseValveReport" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄥ叧闃�涓婃姤
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @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);
+    }
+}
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
new file mode 100644
index 0000000..2364a3e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -0,0 +1,50 @@
+package com.dy.aceMw.server.rtuData.p206V1_0_0;
+
+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.DataV1_0_1;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/1/16 17:16
+ * @LastEditTime 2024/1/16 17:16
+ * @Description
+ */
+/**
+ * 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
+ */
+public class TkDealOpenValveReport extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealOpenValveReport.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealOpenValveReport" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        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.dataCd83OpenVo != null) {
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                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) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+                }
+            }
+        }
+    }
+}
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 7f541d1..ebd0896 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
@@ -13,6 +13,7 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 
 public class TkPreGenObjs extends TaskSurpport {
 	
@@ -27,7 +28,6 @@
 	 */
 	@Override
 	public void execute(Object data) throws ParseException {
-		DateFormat fmt =new SimpleDateFormat(("yyyy_MM_dd_HH_mm_ss"));
 		Data d = (Data)data ;
 		String rtuAddr = d.getRtuAddr() ;//TkRtuData閲屽垽鏂簡rtuAddr涓虹┖
 		DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ;
@@ -38,7 +38,7 @@
 				//娴佹氮鑰呮帶鍒跺櫒
 				PrControllerTramp rtuTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
 				if(rtuTramp == null){
-					rtuTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), fmt.parse(DateTime.yyyy_MM_dd_HH_mm_ss())) ;
+					rtuTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
 					this.taskResult = new Object[]{sv, null, rtuTramp} ;
 					this.toNextOneTask(data, TkDealControllerTramp.taskId);
 				}
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 65d651f..e89ee78 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
@@ -16,6 +16,8 @@
 					<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">

--
Gitblit v1.8.0