From 89d47f57b83b436a3d1e1a16a84f87ffb267be52 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 20 六月 2024 15:59:51 +0800
Subject: [PATCH] 2024-06-20 朱宝民 开关阀上报数据处理(基本功能)

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java                                 |   36 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java                              |   27 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml                                                |  383 +++++++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                                   |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java                                   |  217 ++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java |  104 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml                                             |  375 +++++++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java  |   54 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java                                      |  217 ++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                                 |   43 +
 10 files changed, 1,431 insertions(+), 26 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java
new file mode 100644
index 0000000..39c2f2d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseHistoryMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 10:34
+ * @LastEditTime 2024-06-20 10:34
+ * @Description
+ */
+
+@Mapper
+public interface RmOpenCloseHistoryMapper extends BaseMapper<RmOpenCloseHistory> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(RmOpenCloseHistory record);
+
+    int insertSelective(RmOpenCloseHistory record);
+
+    RmOpenCloseHistory selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(RmOpenCloseHistory record);
+
+    int updateByPrimaryKey(RmOpenCloseHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java
new file mode 100644
index 0000000..c94b41e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseLastMapper.java
@@ -0,0 +1,36 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 10:34
+ * @LastEditTime 2024-06-20 10:34
+ * @Description
+ */
+
+@Mapper
+public interface RmOpenCloseLastMapper extends BaseMapper<RmOpenCloseLast> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(RmOpenCloseLast record);
+
+    int insertSelective(RmOpenCloseLast record);
+
+    RmOpenCloseLast selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(RmOpenCloseLast record);
+
+    int updateByPrimaryKey(RmOpenCloseLast record);
+
+    /**
+     * 鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇寮�鍏抽榾涓婃姤鏈�鏂版暟鎹�
+     * @param rtuAddr
+     * @return
+     */
+    List<RmOpenCloseLast> getRmOpenCloseReportLast(String rtuAddr);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java
new file mode 100644
index 0000000..060b01f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseHistory.java
@@ -0,0 +1,217 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 10:34
+ * @LastEditTime 2024-06-20 10:34
+ * @Description
+ */
+/**
+ * 寮�鍏抽榾鎶ュ巻鍙叉暟鎹〃
+ */
+
+@TableName(value="rm_open_close_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "寮�鍏抽榾鎶ュ巻鍙叉暟鎹〃")
+public class RmOpenCloseHistory implements BaseEntity {
+    public static final long serialVersionUID = 202406201040001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+     * 鍙栨按鍙e疄浣揑D锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+     * 鎺у埗鍣ㄥ湴鍧�
+     */
+    public String rtuAddr;
+
+    /**
+     * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date opDt;
+
+    /**
+     * 寮�闃�鎺у埗鍣ㄦ椂閽�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date opRtuDt;
+
+    /**
+     * IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+     */
+    public String opIcCardAddr;
+
+    /**
+     * IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+     */
+    public String opIcCardNo;
+
+    /**
+     * 寮�闃�璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String opOrderNo;
+
+    /**
+     * 寮�娉�/闃�鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date openDt;
+
+    /**
+     * 寮�闃�姘磋〃绱姘撮噺
+     */
+    public Double opWaterTotalAmount;
+
+    /**
+     * 寮�闃�鐢佃〃绱鐢甸噺
+     */
+    public Double opEleTotalAmount;
+
+    /**
+     * 寮�闃�鐢ㄦ埛鍓╀綑閲戦
+     */
+    public Double opMoneyRemainUser;
+
+    /**
+     * 寮�闃�鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double opWaterRemainUser;
+
+    /**
+     * 鍏虫车/闃�鏂瑰紡
+     */
+    public Byte opType;
+
+    /**
+     * 鍏抽榾IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+     */
+    public String clIcCardAddr;
+
+    /**
+     * 鍏抽榾IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+     */
+    public String clIcCardNo;
+
+    /**
+     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String clOrderNo;
+
+    /**
+     * 寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date startDt;
+
+    /**
+     * 缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date endDt;
+
+    /**
+     * 姘磋〃绱娴侀噺
+     */
+    public Double clWaterTotalAmount;
+
+    /**
+     * 鐢佃〃绱鐢甸噺
+     */
+    public Double clEleTotalAmount;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑閲戦
+     */
+    public Double clMoneyRemainUser;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double clWaterRemainUser;
+
+    /**
+     * 鏈浣跨敤鐢甸噺
+     */
+    public Double thisEle;
+
+    /**
+     * 鏈浣跨敤姘撮噺
+     */
+    public Double thisWater;
+
+    /**
+     * 鏈浣跨敤閲戦
+     */
+    public Double thisMoney;
+
+    /**
+     * 鏈浣跨敤鏃堕棿闀�
+     */
+    public Integer thisDuration;
+
+    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
+        //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
+        this.opIcCardAddr = cdData.icCardAddr;
+        this.opIcCardNo = cdData.icCardNo;
+        this.opOrderNo = cdData.orderNo;
+        this.opWaterTotalAmount = cdData.waterTotalAmount;
+        this.opEleTotalAmount = cdData.eleTotalAmount;
+        this.opMoneyRemainUser = cdData.moneyRemainUser;
+        this.opWaterRemainUser = cdData.waterRemainUser;
+    }
+
+    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{
+        this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
+        this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
+        this.opType = cdData.opType;
+        this.clIcCardAddr = cdData.icCardAddr;
+        this.clIcCardNo = cdData.icCardNo;
+        this.clOrderNo = cdData.orderNo;
+        this.clWaterTotalAmount = cdData.waterTotalAmount;
+        this.clEleTotalAmount = cdData.eleTotalAmount;
+        this.clMoneyRemainUser = cdData.moneyRemain;
+        this.clWaterRemainUser = cdData.waterRemain;
+        this.thisEle = cdData.thisEle;
+        this.thisWater = cdData.thisWater;
+        this.thisMoney = cdData.thisMoney;
+        this.thisDuration = cdData.thisDuration;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java
new file mode 100644
index 0000000..5c8723d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseLast.java
@@ -0,0 +1,217 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 10:34
+ * @LastEditTime 2024-06-20 10:34
+ * @Description
+ */
+/**
+ * 寮�鍏抽榾鎶ユ渶鏂版暟鎹〃
+ */
+
+@TableName(value="rm_open_close_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "寮�鍏抽榾鎶ユ渶鏂版暟鎹〃")
+public class RmOpenCloseLast implements BaseEntity {
+    public static final long serialVersionUID = 202406201041001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+     * 鍙栨按鍙e疄浣揑D锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+     * 鎺у埗鍣ㄥ湴鍧�
+     */
+    public String rtuAddr;
+
+    /**
+     * 寮�闃�鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date opDt;
+
+    /**
+     * 寮�闃�鎺у埗鍣ㄦ椂閽�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date opRtuDt;
+
+    /**
+     * IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+     */
+    public String opIcCardAddr;
+
+    /**
+     * IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+     */
+    public String opIcCardNo;
+
+    /**
+     * 寮�闃�璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String opOrderNo;
+
+    /**
+     * 寮�娉�/闃�鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date openDt;
+
+    /**
+     * 寮�闃�姘磋〃绱姘撮噺
+     */
+    public Double opWaterTotalAmount;
+
+    /**
+     * 寮�闃�鐢佃〃绱鐢甸噺
+     */
+    public Double opEleTotalAmount;
+
+    /**
+     * 寮�闃�鐢ㄦ埛鍓╀綑閲戦
+     */
+    public Double opMoneyRemainUser;
+
+    /**
+     * 寮�闃�鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double opWaterRemainUser;
+
+    /**
+     * 鍏虫车/闃�鏂瑰紡
+     */
+    public Byte opType;
+
+    /**
+     * 鍏抽榾IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+     */
+    public String clIcCardAddr;
+
+    /**
+     * 鍏抽榾IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+     */
+    public String clIcCardNo;
+
+    /**
+     * 鍏抽榾璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    public String clOrderNo;
+
+    /**
+     * 寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date startDt;
+
+    /**
+     * 缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date endDt;
+
+    /**
+     * 姘磋〃绱娴侀噺
+     */
+    public Double clWaterTotalAmount;
+
+    /**
+     * 鐢佃〃绱鐢甸噺
+     */
+    public Double clEleTotalAmount;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑閲戦
+     */
+    public Double clMoneyRemainUser;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺
+     */
+    public Double clWaterRemainUser;
+
+    /**
+     * 鏈浣跨敤鐢甸噺
+     */
+    public Double thisEle;
+
+    /**
+     * 鏈浣跨敤姘撮噺
+     */
+    public Double thisWater;
+
+    /**
+     * 鏈浣跨敤閲戦
+     */
+    public Double thisMoney;
+
+    /**
+     * 鏈浣跨敤鏃堕棿闀�
+     */
+    public Integer thisDuration;
+
+    public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception{
+        this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
+        //this.opRtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.opDt);
+        this.opIcCardAddr = cdData.icCardAddr;
+        this.opIcCardNo = cdData.icCardNo;
+        this.opOrderNo = cdData.orderNo;
+        this.opWaterTotalAmount = cdData.waterTotalAmount;
+        this.opEleTotalAmount = cdData.eleTotalAmount;
+        this.opMoneyRemainUser = cdData.moneyRemainUser;
+        this.opWaterRemainUser = cdData.waterRemainUser;
+    }
+
+    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception{
+        this.startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.startDt);
+        this.endDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.endDt);
+        this.opType = cdData.opType;
+        this.clIcCardAddr = cdData.icCardAddr;
+        this.clIcCardNo = cdData.icCardNo;
+        this.clOrderNo = cdData.orderNo;
+        this.clWaterTotalAmount = cdData.waterTotalAmount;
+        this.clEleTotalAmount = cdData.eleTotalAmount;
+        this.clMoneyRemainUser = cdData.moneyRemain;
+        this.clWaterRemainUser = cdData.waterRemain;
+        this.thisEle = cdData.thisEle;
+        this.thisWater = cdData.thisWater;
+        this.thisMoney = cdData.thisMoney;
+        this.thisDuration = cdData.thisDuration;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml
new file mode 100644
index 0000000..9b3896d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseHistoryMapper.xml
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
+    <!--@mbg.generated-->
+    <!--@Table rm_open_close_history-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
+    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
+    <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" />
+    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
+    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
+    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
+    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" />
+    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
+    <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" />
+    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
+    <result column="op_type" jdbcType="TINYINT" property="opType" />
+    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
+    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
+    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
+    <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" />
+    <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" />
+    <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" />
+    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
+    <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" />
+    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
+    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
+    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
+    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
+    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, 
+    op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, 
+    op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, 
+    end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
+    this_ele, this_water, this_money, this_duration
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_open_close_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_open_close_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
+    <!--@mbg.generated-->
+    insert into rm_open_close_history (id, controller_id, intake_id, 
+      rtu_addr, op_dt, op_rtu_dt, 
+      op_ic_card_addr, op_ic_card_no, op_order_no, 
+      open_dt, op_water_total_amount, op_ele_total_amount, 
+      op_money_remain_user, op_water_remain_user, op_type, 
+      cl_ic_card_addr, cl_ic_card_no, cl_order_no, 
+      start_dt, end_dt, cl_water_total_amount, 
+      cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
+      this_ele, this_water, this_money, 
+      this_duration)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, 
+      #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, 
+      #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, 
+      #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, 
+      #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, 
+      #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, 
+      #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, 
+      #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, 
+      #{thisDuration,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
+    <!--@mbg.generated-->
+    insert into rm_open_close_history
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="controllerId != null">
+        controller_id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr,
+      </if>
+      <if test="opDt != null">
+        op_dt,
+      </if>
+      <if test="opRtuDt != null">
+        op_rtu_dt,
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr,
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no,
+      </if>
+      <if test="opOrderNo != null">
+        op_order_no,
+      </if>
+      <if test="openDt != null">
+        open_dt,
+      </if>
+      <if test="opWaterTotalAmount != null">
+        op_water_total_amount,
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount,
+      </if>
+      <if test="opMoneyRemainUser != null">
+        op_money_remain_user,
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user,
+      </if>
+      <if test="opType != null">
+        op_type,
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr,
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no,
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no,
+      </if>
+      <if test="startDt != null">
+        start_dt,
+      </if>
+      <if test="endDt != null">
+        end_dt,
+      </if>
+      <if test="clWaterTotalAmount != null">
+        cl_water_total_amount,
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount,
+      </if>
+      <if test="clMoneyRemainUser != null">
+        cl_money_remain_user,
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user,
+      </if>
+      <if test="thisEle != null">
+        this_ele,
+      </if>
+      <if test="thisWater != null">
+        this_water,
+      </if>
+      <if test="thisMoney != null">
+        this_money,
+      </if>
+      <if test="thisDuration != null">
+        this_duration,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opDt != null">
+        #{opDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opRtuDt != null">
+        #{opRtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opIcCardAddr != null">
+        #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardNo != null">
+        #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opOrderNo != null">
+        #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="openDt != null">
+        #{openDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opWaterTotalAmount != null">
+        #{opWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opEleTotalAmount != null">
+        #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opMoneyRemainUser != null">
+        #{opMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opType != null">
+        #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="clIcCardAddr != null">
+        #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardNo != null">
+        #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clOrderNo != null">
+        #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="startDt != null">
+        #{startDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDt != null">
+        #{endDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clWaterTotalAmount != null">
+        #{clWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clEleTotalAmount != null">
+        #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clMoneyRemainUser != null">
+        #{clMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        #{thisDuration,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
+    <!--@mbg.generated-->
+    update rm_open_close_history
+    <set>
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opDt != null">
+        op_dt = #{opDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opRtuDt != null">
+        op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opOrderNo != null">
+        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="openDt != null">
+        open_dt = #{openDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opWaterTotalAmount != null">
+        op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opMoneyRemainUser != null">
+        op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opType != null">
+        op_type = #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="startDt != null">
+        start_dt = #{startDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDt != null">
+        end_dt = #{endDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clWaterTotalAmount != null">
+        cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clMoneyRemainUser != null">
+        cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        this_ele = #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        this_water = #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        this_money = #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        this_duration = #{thisDuration,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory">
+    <!--@mbg.generated-->
+    update rm_open_close_history
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      op_dt = #{opDt,jdbcType=TIMESTAMP},
+      op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
+      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      open_dt = #{openDt,jdbcType=TIMESTAMP},
+      op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
+      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
+      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      op_type = #{opType,jdbcType=TINYINT},
+      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      start_dt = #{startDt,jdbcType=TIMESTAMP},
+      end_dt = #{endDt,jdbcType=TIMESTAMP},
+      cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
+      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
+      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      this_ele = #{thisEle,jdbcType=FLOAT},
+      this_water = #{thisWater,jdbcType=FLOAT},
+      this_money = #{thisMoney,jdbcType=FLOAT},
+      this_duration = #{thisDuration,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml
new file mode 100644
index 0000000..da66783
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseLastMapper.xml
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmOpenCloseLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_open_close_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
+    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
+    <result column="op_rtu_dt" jdbcType="TIMESTAMP" property="opRtuDt" />
+    <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
+    <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
+    <result column="op_order_no" jdbcType="VARCHAR" property="opOrderNo" />
+    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="op_water_total_amount" jdbcType="FLOAT" property="opWaterTotalAmount" />
+    <result column="op_ele_total_amount" jdbcType="FLOAT" property="opEleTotalAmount" />
+    <result column="op_money_remain_user" jdbcType="FLOAT" property="opMoneyRemainUser" />
+    <result column="op_water_remain_user" jdbcType="FLOAT" property="opWaterRemainUser" />
+    <result column="op_type" jdbcType="TINYINT" property="opType" />
+    <result column="cl_ic_card_addr" jdbcType="VARCHAR" property="clIcCardAddr" />
+    <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
+    <result column="cl_order_no" jdbcType="VARCHAR" property="clOrderNo" />
+    <result column="start_dt" jdbcType="TIMESTAMP" property="startDt" />
+    <result column="end_dt" jdbcType="TIMESTAMP" property="endDt" />
+    <result column="cl_water_total_amount" jdbcType="FLOAT" property="clWaterTotalAmount" />
+    <result column="cl_ele_total_amount" jdbcType="FLOAT" property="clEleTotalAmount" />
+    <result column="cl_money_remain_user" jdbcType="FLOAT" property="clMoneyRemainUser" />
+    <result column="cl_water_remain_user" jdbcType="FLOAT" property="clWaterRemainUser" />
+    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
+    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
+    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
+    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, op_dt, op_rtu_dt, op_ic_card_addr, op_ic_card_no, 
+    op_order_no, open_dt, op_water_total_amount, op_ele_total_amount, op_money_remain_user, 
+    op_water_remain_user, op_type, cl_ic_card_addr, cl_ic_card_no, cl_order_no, start_dt, 
+    end_dt, cl_water_total_amount, cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
+    this_ele, this_water, this_money, this_duration
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_open_close_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_open_close_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    <!--@mbg.generated-->
+    insert into rm_open_close_last (id, controller_id, intake_id, 
+      rtu_addr, op_dt, op_rtu_dt, 
+      op_ic_card_addr, op_ic_card_no, op_order_no, 
+      open_dt, op_water_total_amount, op_ele_total_amount, 
+      op_money_remain_user, op_water_remain_user, op_type, 
+      cl_ic_card_addr, cl_ic_card_no, cl_order_no, 
+      start_dt, end_dt, cl_water_total_amount, 
+      cl_ele_total_amount, cl_money_remain_user, cl_water_remain_user, 
+      this_ele, this_water, this_money, 
+      this_duration)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opRtuDt,jdbcType=TIMESTAMP}, 
+      #{opIcCardAddr,jdbcType=VARCHAR}, #{opIcCardNo,jdbcType=VARCHAR}, #{opOrderNo,jdbcType=VARCHAR}, 
+      #{openDt,jdbcType=TIMESTAMP}, #{opWaterTotalAmount,jdbcType=FLOAT}, #{opEleTotalAmount,jdbcType=FLOAT}, 
+      #{opMoneyRemainUser,jdbcType=FLOAT}, #{opWaterRemainUser,jdbcType=FLOAT}, #{opType,jdbcType=TINYINT}, 
+      #{clIcCardAddr,jdbcType=VARCHAR}, #{clIcCardNo,jdbcType=VARCHAR}, #{clOrderNo,jdbcType=VARCHAR}, 
+      #{startDt,jdbcType=TIMESTAMP}, #{endDt,jdbcType=TIMESTAMP}, #{clWaterTotalAmount,jdbcType=FLOAT}, 
+      #{clEleTotalAmount,jdbcType=FLOAT}, #{clMoneyRemainUser,jdbcType=FLOAT}, #{clWaterRemainUser,jdbcType=FLOAT}, 
+      #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, #{thisMoney,jdbcType=FLOAT}, 
+      #{thisDuration,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    <!--@mbg.generated-->
+    insert into rm_open_close_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="controllerId != null">
+        controller_id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr,
+      </if>
+      <if test="opDt != null">
+        op_dt,
+      </if>
+      <if test="opRtuDt != null">
+        op_rtu_dt,
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr,
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no,
+      </if>
+      <if test="opOrderNo != null">
+        op_order_no,
+      </if>
+      <if test="openDt != null">
+        open_dt,
+      </if>
+      <if test="opWaterTotalAmount != null">
+        op_water_total_amount,
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount,
+      </if>
+      <if test="opMoneyRemainUser != null">
+        op_money_remain_user,
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user,
+      </if>
+      <if test="opType != null">
+        op_type,
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr,
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no,
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no,
+      </if>
+      <if test="startDt != null">
+        start_dt,
+      </if>
+      <if test="endDt != null">
+        end_dt,
+      </if>
+      <if test="clWaterTotalAmount != null">
+        cl_water_total_amount,
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount,
+      </if>
+      <if test="clMoneyRemainUser != null">
+        cl_money_remain_user,
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user,
+      </if>
+      <if test="thisEle != null">
+        this_ele,
+      </if>
+      <if test="thisWater != null">
+        this_water,
+      </if>
+      <if test="thisMoney != null">
+        this_money,
+      </if>
+      <if test="thisDuration != null">
+        this_duration,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opDt != null">
+        #{opDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opRtuDt != null">
+        #{opRtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opIcCardAddr != null">
+        #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardNo != null">
+        #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opOrderNo != null">
+        #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="openDt != null">
+        #{openDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opWaterTotalAmount != null">
+        #{opWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opEleTotalAmount != null">
+        #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opMoneyRemainUser != null">
+        #{opMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opType != null">
+        #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="clIcCardAddr != null">
+        #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardNo != null">
+        #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clOrderNo != null">
+        #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="startDt != null">
+        #{startDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDt != null">
+        #{endDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clWaterTotalAmount != null">
+        #{clWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clEleTotalAmount != null">
+        #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clMoneyRemainUser != null">
+        #{clMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        #{thisDuration,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    <!--@mbg.generated-->
+    update rm_open_close_last
+    <set>
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opDt != null">
+        op_dt = #{opDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opRtuDt != null">
+        op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opIcCardAddr != null">
+        op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="opIcCardNo != null">
+        op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="opOrderNo != null">
+        op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="openDt != null">
+        open_dt = #{openDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="opWaterTotalAmount != null">
+        op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opEleTotalAmount != null">
+        op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="opMoneyRemainUser != null">
+        op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opWaterRemainUser != null">
+        op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="opType != null">
+        op_type = #{opType,jdbcType=TINYINT},
+      </if>
+      <if test="clIcCardAddr != null">
+        cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="clIcCardNo != null">
+        cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="clOrderNo != null">
+        cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="startDt != null">
+        start_dt = #{startDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDt != null">
+        end_dt = #{endDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="clWaterTotalAmount != null">
+        cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clEleTotalAmount != null">
+        cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      </if>
+      <if test="clMoneyRemainUser != null">
+        cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="clWaterRemainUser != null">
+        cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        this_ele = #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        this_water = #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        this_money = #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        this_duration = #{thisDuration,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    <!--@mbg.generated-->
+    update rm_open_close_last
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      op_dt = #{opDt,jdbcType=TIMESTAMP},
+      op_rtu_dt = #{opRtuDt,jdbcType=TIMESTAMP},
+      op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
+      op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
+      op_order_no = #{opOrderNo,jdbcType=VARCHAR},
+      open_dt = #{openDt,jdbcType=TIMESTAMP},
+      op_water_total_amount = #{opWaterTotalAmount,jdbcType=FLOAT},
+      op_ele_total_amount = #{opEleTotalAmount,jdbcType=FLOAT},
+      op_money_remain_user = #{opMoneyRemainUser,jdbcType=FLOAT},
+      op_water_remain_user = #{opWaterRemainUser,jdbcType=FLOAT},
+      op_type = #{opType,jdbcType=TINYINT},
+      cl_ic_card_addr = #{clIcCardAddr,jdbcType=VARCHAR},
+      cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
+      cl_order_no = #{clOrderNo,jdbcType=VARCHAR},
+      start_dt = #{startDt,jdbcType=TIMESTAMP},
+      end_dt = #{endDt,jdbcType=TIMESTAMP},
+      cl_water_total_amount = #{clWaterTotalAmount,jdbcType=FLOAT},
+      cl_ele_total_amount = #{clEleTotalAmount,jdbcType=FLOAT},
+      cl_money_remain_user = #{clMoneyRemainUser,jdbcType=FLOAT},
+      cl_water_remain_user = #{clWaterRemainUser,jdbcType=FLOAT},
+      this_ele = #{thisEle,jdbcType=FLOAT},
+      this_water = #{thisWater,jdbcType=FLOAT},
+      this_money = #{thisMoney,jdbcType=FLOAT},
+      this_duration = #{thisDuration,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇寮�鍏抽榾涓婃姤鏈�鏂版暟鎹�-->
+  <select id="getRmOpenCloseReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast">
+    select
+    <include refid="Base_Column_List" />
+    from rm_open_close_last
+    where rtu_addr = #{rtuAddr}
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index 1309936..7492484 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -52,6 +52,11 @@
     @Autowired
     private RmTimingReportLastMapper rmTimingReportLastDao; // 瀹氱偣涓婃姤鏈�鏂版暟鎹瓺AO
 
+    @Autowired
+    private RmOpenCloseHistoryMapper rmOpenCloseHistoryDao;
+    @Autowired
+    private RmOpenCloseLastMapper rmOpenCloseLastDao;
+
     //@Autowired
     //@Lazy
     //private DbSv sv ;
@@ -263,7 +268,45 @@
         this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
     }
 
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmOpenCloseLast(RmOpenCloseLast po){
+        this.rmOpenCloseLastDao.insert(po) ;
+    }
 
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶璁板綍(202404)
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmOpenCloseHistory(RmOpenCloseHistory po){
+        this.rmOpenCloseHistoryDao.insert(po) ;
+    }
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
+     * @param rtuAddr
+     * @return
+     */
+    public RmOpenCloseLast getRmOpenCloseLast(String rtuAddr){
+        List<RmOpenCloseLast> list = rmOpenCloseLastDao.getRmOpenCloseReportLast(rtuAddr);
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鏈�鏂拌褰�(202404)
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmOpenCloseLast(RmOpenCloseLast po){
+        this.rmOpenCloseLastDao.updateByPrimaryKeySelective(po);
+    }
 
     /////////////////////////////////////////////////
     //
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
new file mode 100644
index 0000000..43f32fe
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
@@ -0,0 +1,104 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 13:48
+ * @LastEditTime 2024-06-20 13:48
+ * @Description
+ */
+public class TkDealCloseValveReportV202404 extends TaskSurpport {
+    private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealCloseValveReportV202404";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氬叧闃�涓婃姤
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        DataV202404 dV202404 = (DataV202404) d.getSubData();
+        Object cdObj = dV202404.subData;
+        if (cdObj != null) {
+            try {
+                Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId);
+                DbSv sv = (DbSv) objs[0];
+                PrController controller = (PrController) objs[1];
+                if (cdObj instanceof DataCd85Vo) {
+                    DataCd85Vo cdData = (DataCd85Vo) (cdObj);
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd85Vo)cdObj);
+                }
+            } catch (Exception e) {
+                log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�鎶ユ暟鎹椂鍙戠敓寮傚父", e);
+            }
+        }
+    }
+    /**
+     * 澶勭悊鍏抽榾鎶ユ暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData) throws Exception {
+        this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
+        this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
+    }
+
+    /**
+     * 淇濆瓨鎴栨洿鏂版帶鍒跺櫒鍏抽榾鎶ユ渶鏂版暟鎹�
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
+        RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr);
+        if(po == null){
+            po = new RmOpenCloseLast();
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.rtuAddr = rtuAddr;
+            po.valueFrom85(dataV202404, cdData);
+            sv.saveRmOpenCloseLast(po);
+        }else{
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.valueFrom85(dataV202404, cdData);
+            sv.updateRmOpenCloseLast(po);
+        }
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ叧闃�鎶ュ巻鍙叉暟鎹�
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
+        RmOpenCloseHistory po = new RmOpenCloseHistory();
+        po.controllerId = controller==null?null:controller.getId();
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.rtuAddr = rtuAddr;
+        po.valueFrom85(dataV202404, cdData);
+        sv.saveRmOpenCloseHistory(po); ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
index 18fdf20..76f11b8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
@@ -4,6 +4,8 @@
 import com.dy.common.mw.protocol.p206V202404.DataV202404;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -54,8 +56,8 @@
      * @param cdData 鍔熻兘鏁版嵁
      */
     private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData) throws Exception {
-        //this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
-        //this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
+        this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
+        this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
     }
 
     /**
@@ -66,22 +68,22 @@
      * @param dataV202404 鍗忚鏁版嵁
      * @param cdData 鍔熻兘鏁版嵁
      */
-    //private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
-    //    RmTimingReportLast po = sv.getRmTimingReportLast(rtuAddr) ;
-    //    if(po == null){
-    //        po = new RmTimingReportLast();
-    //        po.controllerId = controller==null?null:controller.getId();
-    //        po.intakeId = controller==null?null:controller.getIntakeId();
-    //        po.rtuAddr = rtuAddr;
-    //        po.valueFrom(dataV202404, cdData);
-    //        sv.saveRmTimingReportLast(po) ;
-    //    }else{
-    //        po.controllerId = controller==null?null:controller.getId();
-    //        po.intakeId = controller==null?null:controller.getIntakeId();
-    //        po.valueFrom(dataV202404, cdData);
-    //        sv.updateRmTimingReportLast(po);
-    //    }
-    //}
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
+        RmOpenCloseLast po = sv.getRmOpenCloseLast(rtuAddr);
+        if(po == null){
+            po = new RmOpenCloseLast();
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.rtuAddr = rtuAddr;
+            po.valueFrom84(dataV202404, cdData);
+            sv.saveRmOpenCloseLast(po);
+        }else{
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.valueFrom84(dataV202404, cdData);
+            sv.updateRmOpenCloseLast(po);
+        }
+    }
 
     /**
      * 淇濆瓨鎺у埗鍣ㄥ伐浣滄姤鍘嗗彶鏁版嵁
@@ -91,12 +93,12 @@
      * @param dataV202404 鍗忚鏁版嵁
      * @param cdData 鍔熻兘鏁版嵁
      */
-    //private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
-    //    RmTimingReportHistory po = new RmTimingReportHistory();
-    //    po.controllerId = controller==null?null:controller.getId();
-    //    po.intakeId = controller==null?null:controller.getIntakeId();
-    //    po.rtuAddr = rtuAddr;
-    //    po.valueFrom(dataV202404, cdData);
-    //    sv.saveRmTimingReportHistory(po); ;
-    //}
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception {
+        RmOpenCloseHistory po = new RmOpenCloseHistory();
+        po.controllerId = controller==null?null:controller.getId();
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.rtuAddr = rtuAddr;
+        po.valueFrom84(dataV202404, cdData);
+        sv.saveRmOpenCloseHistory(po); ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
index 891127c..50a0e54 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -42,6 +42,7 @@
 							<task id="TkDealWorkingReportV202404" name="鎺у埗鍣ㄥ伐浣滄姤(鍔熻兘鐮�80)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealWorkingReportV202404" />
 							<task id="TkDealTimingReportV202404" name="鎺у埗鍣ㄥ畾鏃朵笂鎶�(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" />
 							<task id="TkDealOpenValveReportV202404" name="鎺у埗鍣ㄥ紑闃�涓婃姤(鍔熻兘鐮�84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealOpenValveReportV202404" />
+							<task id="TkDealCloseValveReportV202404" name="鎺у埗鍣ㄥ叧闃�涓婃姤(鍔熻兘鐮�85)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealCloseValveReportV202404" />
 						</task>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponseV202404" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404">

--
Gitblit v1.8.0