From b1dc9988b9587add132a01faa6bc09e162fe1491 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 08 七月 2024 21:39:38 +0800
Subject: [PATCH] 1、开关阀报中增加农户关联; 2、工作报中增加农户关联; 3、取水口损失流量完善; 4、实现取水日取水量统计。

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml                                      |    2 
 pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java                                                                 |   97 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java |  126 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml                                       |   33 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java  |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java                         |   24 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                           |    2 
 pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml                                                               |  162 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java                           |    5 
 pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java                                                           |   64 +
 pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java                                                                    |  104 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml                                  |  170 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDay.java                            |   92 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java                                |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java                          |   12 
 pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml                                                         |   30 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java                        |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java             |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java                            |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java                    |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java                           |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                    |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDayLast.java                        |   94 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java         |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java                      |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                                   |   31 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java                        |    4 
 pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml                                                            |  144 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java  |   96 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java                   |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java           |   48 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayLastMapper.java                   |   66 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java                              |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java                 |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                         |  160 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java                       |   67 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml                                      |  158 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                                           |   19 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java  |  315 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java                             |   13 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java                                   |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                                |   33 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java                     |    4 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java   |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml                                    |   33 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java       |   23 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java                                |    4 
 /dev/null                                                                                                                |  103 --
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml                                          |   10 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                           |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java                      |   18 
 pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java                                                              |   70 +
 52 files changed, 2,267 insertions(+), 241 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java
index 114bf6f..a7c4897 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java
@@ -50,5 +50,6 @@
     public static final int dataIndex = 10 ;//鍏蜂綋鏁版嵁瀛楄妭鏁扮粍涓嬫爣
 
 
+    public static final String vsCardAddr = "00000000";//鏈郴缁熷簲鐢ㄧ殑铏氭嫙鍗★紝鍗$墿鐞嗗湴鍧�閲囩敤10涓�0浣滀负妯℃嫙
 
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java
new file mode 100644
index 0000000..7497e81
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java
@@ -0,0 +1,97 @@
+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.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
+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 liurunyu
+ * @Date 2024/2/28 15:31
+ * @LastEditTime 2024/2/28 15:31
+ * @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鍘嗗彶鏁版嵁
+ */
+@TableName(value="rm_loss_history_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鎺у埗鍣ㄦ棩婕忔崯姘撮噺鍘嗗彶鏁版嵁 ")
+public class RmLossHistory implements BaseEntity {
+
+    public static final long serialVersionUID = 202402281620001L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @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")
+    public Date dt;
+
+    /**
+     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�
+     */
+    @Schema(description = "鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtLast;
+
+    /**
+     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹腑鐨勬帶鍒跺櫒鏃堕挓
+     */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtRtu;
+
+    /**
+    * 鏃ユ紡鎹熸祦閲�
+    */
+    @Schema(description = "鏃ユ紡鎹熼噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double lossAmount;
+
+
+    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
+        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java
new file mode 100644
index 0000000..3630d80
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java
@@ -0,0 +1,64 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/28 15:31
+ * @LastEditTime 2024/2/28 15:31
+ * @Description
+ */   
+@Mapper
+public interface RmLossHistoryMapper {
+    /**
+     * 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(RmLossHistory record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmLossHistory record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmLossHistory selectByPrimaryKey(Long id);
+
+    /**
+     * select by dt
+     * @param date 鏃ユ湡锛坹yyy-mm-dd锛�
+     * @return object by rtuAddr
+     */
+    List<RmLossHistory> selectByDate(Date date) ;
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmLossHistory record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmLossHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml
new file mode 100644
index 0000000..858ff67
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml
@@ -0,0 +1,144 @@
+<?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.RmLossHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
+    <!--@mbg.generated-->
+    <!--@Table rm_loss_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="dt" jdbcType="DATE" property="dt" />
+    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
+    <result column="dt_rtu" jdbcType="TIMESTAMP" property="dtRtu" />
+    <result column="loss_amount" jdbcType="DOUBLE" property="lossAmount" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_loss_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_loss_history
+    where dt = #{dt,jdbcType=DATE}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_loss_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
+    <!--@mbg.generated-->
+    insert into rm_loss_history (id, controller_id, intake_id, 
+      rtu_addr, dt, dt_last, dt_rtu, loss_amount
+      )
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP}, #{lossAmount,jdbcType=DOUBLE}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
+    <!--@mbg.generated-->
+    insert into rm_loss_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="dt != null">
+        dt,
+      </if>
+      <if test="dtLast != null">
+        dt_last,
+      </if>
+     <if test="dtRtu != null">
+        dt_rtu,
+      </if>
+      <if test="lossAmount != null">
+        loss_amount,
+      </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="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="dtLast != null">
+        #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dtRtu != null">
+        #{dtRtu,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lossAmount != null">
+        #{lossAmount,jdbcType=DOUBLE},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
+    <!--@mbg.generated-->
+    update rm_loss_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="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+      <if test="dtLast != null">
+        dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dtRtu != null">
+        dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lossAmount != null">
+        loss_amount = #{lossAmount,jdbcType=DOUBLE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
+    <!--@mbg.generated-->
+    update rm_loss_history
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=DATE},
+      dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
+      loss_amount = #{lossAmount,jdbcType=DOUBLE}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java
new file mode 100644
index 0000000..5b5479d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java
@@ -0,0 +1,104 @@
+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.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
+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 liurunyu
+ * @Date 2024/2/28 15:31
+ * @LastEditTime 2024/2/28 15:31
+ * @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鏈�鏂版暟鎹�
+ */
+@TableName(value="rm_loss_last_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鎺у埗鍣ㄦ棩婕忔崯姘撮噺鏈�鏂版暟鎹�")
+public class RmLossLast implements BaseEntity {
+
+    public static final long serialVersionUID = 202402281621001L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+     * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
+     */
+    @Schema(hidden=true)
+    @JSONField(serialize = false)
+    public Long lastHistoryId;
+
+    /**
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
+    @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+     * 鍙栨按鍙e疄浣揑D锛堝閿級
+     */
+    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+     * 鎺у埗鍣ㄥ湴鍧�
+     */
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
+    public String rtuAddr;
+
+    /**
+     * 缁熻鏃�
+     */
+    @Schema(description = "缁熻鏃�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dt;
+
+    /**
+     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�
+     */
+    @Schema(description = "鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtLast;
+
+    /**
+     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹腑鐨勬帶鍒跺櫒鏃堕挓
+     */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtRtu;
+
+    /**
+     * 鏃ユ紡鎹熸祦閲�
+     */
+    @Schema(description = "鏃ユ紡鎹熼噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double lossAmount;
+
+    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
+        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
+    }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java
new file mode 100644
index 0000000..2e7733c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java
@@ -0,0 +1,70 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/28 15:31
+ * @LastEditTime 2024/2/28 15:31
+ * @Description
+ */   
+@Mapper
+public interface RmLossLastMapper {
+    /**
+     * 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(RmLossLast record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmLossLast record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmLossLast selectByPrimaryKey(Long id);
+
+    /**
+     * select by rtuAddr
+     * @param intakeId 鎺у埗鍣ㄦ墍缁戝彇姘村彛ID
+     * @return object by rtuAddr
+     */
+    List<RmLossLast> selectByIntakeId(Long intakeId) ;
+   /**
+     * select by dt
+     * @param date 鏃ユ湡锛坹yyy-mm-dd锛�
+     * @return object by rtuAddr
+     */
+    List<RmLossLast> selectByDate(Date date) ;
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmLossLast record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmLossLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml
new file mode 100644
index 0000000..5a99947
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml
@@ -0,0 +1,162 @@
+<?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.RmLossLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_loss_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
+    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
+    <result column="dt_rtu" jdbcType="TIMESTAMP" property="dtRtu" />
+    <result column="loss_amount" jdbcType="DOUBLE" property="lossAmount" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, last_history_id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_loss_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_loss_last
+    where intake_id = #{intakeId,jdbcType=BIGINT}
+  </select>
+  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_loss_last
+    where dt = #{dt,jdbcType=DATE}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_loss_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
+    <!--@mbg.generated-->
+    insert into rm_loss_last (id, last_history_id, controller_id, 
+      intake_id, rtu_addr, dt, dt_last, dt_rtu,
+      loss_amount)
+    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, 
+      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP},
+      #{lossAmount,jdbcType=DOUBLE})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
+    <!--@mbg.generated-->
+    insert into rm_loss_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="lastHistoryId != null">
+        last_history_id,
+      </if>
+      <if test="controllerId != null">
+        controller_id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="dtLast != null">
+        dt_last,
+      </if>
+      <if test="dtRtu != null">
+        dt_rtu,
+      </if>
+      <if test="lossAmount != null">
+        loss_amount,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="lastHistoryId != null">
+        #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="dtLast != null">
+        #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dtRtu != null">
+        #{dtRtu,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lossAmount != null">
+        #{lossAmount,jdbcType=DOUBLE},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
+    <!--@mbg.generated-->
+    update rm_loss_last
+    <set>
+      <if test="lastHistoryId != null">
+        last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+     <if test="dtLast != null">
+       dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+     <if test="dtRtu != null">
+       dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lossAmount != null">
+        loss_amount = #{lossAmount,jdbcType=DOUBLE},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
+    <!--@mbg.generated-->
+    update rm_loss_last
+    set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=DATE},
+      dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
+      loss_amount = #{lossAmount,jdbcType=DOUBLE}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
index 62567c7..63a08f5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
@@ -91,4 +91,6 @@
      * @return 5绾ц鏀垮尯鍒掍唬鐮�
      */
     VoAreaCode getAreaCodeByNum(@Param("clientNum") String clientNum);
+
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
index 241b91b..c8b29d0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -11,7 +13,7 @@
  * @Description
  */
 @Mapper
-public interface RmAlarmStateLastMapper {
+public interface RmAlarmStateLastMapper extends BaseMapper<RmAlarmStateLast> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayLastMapper.java
new file mode 100644
index 0000000..e347da8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayLastMapper.java
@@ -0,0 +1,66 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast;
+import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/8 19:19
+ * @Description
+ */
+@Mapper
+public interface RmIntakeAmountDayLastMapper extends BaseMapper<RmIntakeAmountDayLast> {
+    /**
+     * delete by primary key
+     * @param id primaryKey
+     * @return deleteCount
+     */
+    int deleteByPrimaryKey(Long id);
+
+    /**
+     * select by rtuAddr
+     * @param intakeId 鎺у埗鍣ㄦ墍缁戝彇姘村彛ID
+     * @return object by rtuAddr
+     */
+    List<RmIntakeAmountDayLast> selectByIntakeId(Long intakeId) ;
+
+    /**
+     * insert record to table
+     * @param record the record
+     * @return insert count
+     */
+    int insert(RmIntakeAmountDayLast record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmIntakeAmountDayLast record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmIntakeAmountDayLast selectByPrimaryKey(Long id);
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmIntakeAmountDayLast record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmIntakeAmountDayLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
new file mode 100644
index 0000000..3b3cd14
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
@@ -0,0 +1,67 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmLossHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/8 18:53
+ * @Description
+ */
+@Mapper
+public interface RmIntakeAmountDayMapper extends BaseMapper<RmIntakeAmountDay> {
+    /**
+     * 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(RmIntakeAmountDay record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmIntakeAmountDay record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmIntakeAmountDay selectByPrimaryKey(Long id);
+
+    /**
+     * select by dt
+     * @param date 鏃ユ湡锛坹yyy-mm-dd锛�
+     * @return object by rtuAddr
+     */
+    List<RmIntakeAmountDay> selectByDate(Date date) ;
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmIntakeAmountDay record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmIntakeAmountDay record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
deleted file mode 100644
index 1a5b875..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Author liurunyu
- * @Date 2024/1/17 9:07
- * @LastEditTime 2024/1/17 9:07
- * @Description
- */   
-@Mapper
-public interface RmIntakeAmountHistoryMapper {
-    /**
-     * 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(RmIntakeAmountHistory record);
-//
-//    /**
-//     * insert record to table selective
-//     * @param record the record
-//     * @return insert count
-//     */
-//    int insertSelective(RmIntakeAmountHistory record);
-//
-//    /**
-//     * select by primary key
-//     * @param id primary key
-//     * @return object by primary key
-//     */
-//    RmIntakeAmountHistory selectByPrimaryKey(Long id);
-//
-//    /**
-//     * update record selective
-//     * @param record the updated record
-//     * @return update count
-//     */
-//    int updateByPrimaryKeySelective(RmIntakeAmountHistory record);
-//
-//    /**
-//     * update record
-//     * @param record the updated record
-//     * @return update count
-//     */
-//    int updateByPrimaryKey(RmIntakeAmountHistory record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java
index 5b43fad..d346315 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java
@@ -1,7 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
 import com.dy.pipIrrGlobal.pojoRm.RmLossHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Date;
@@ -14,7 +15,7 @@
  * @Description
  */   
 @Mapper
-public interface RmLossHistoryMapper {
+public interface RmLossHistoryMapper extends BaseMapper<RmLossHistory> {
     /**
      * delete by primary key
      * @param id primaryKey
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
index dbaf41c..0dd4bc9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
@@ -1,5 +1,7 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmLossHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -13,7 +15,7 @@
  * @Description
  */   
 @Mapper
-public interface RmLossLastMapper {
+public interface RmLossLastMapper extends BaseMapper<RmLossLast> {
     /**
      * delete by primary key
      * @param id primaryKey
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
index e586066..edcde57 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -9,7 +11,7 @@
  * @Description
  */
 @Mapper
-public interface RmOnHourReportHistoryMapper {
+public interface RmOnHourReportHistoryMapper extends BaseMapper<RmOnHourReportHistory> {
     /**
      * delete by primary key
      * @param id primaryKey
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
index be2b003..d02ab16 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -11,7 +13,7 @@
  * @Description
  */
 @Mapper
-public interface RmOnHourReportLastMapper {
+public interface RmOnHourReportLastMapper extends BaseMapper<RmOnHourReportLast> {
     /**
      * delete by primary key
      * @param id primaryKey
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
index b59ab04..bb78c28 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -9,7 +11,7 @@
  * @Description
  */
 @Mapper
-public interface RmOpenCloseValveHistoryMapper {
+public interface RmOpenCloseValveHistoryMapper extends BaseMapper<RmOpenCloseValveHistory> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
index c40e56d..2c251ca 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -11,7 +13,7 @@
  * @Description
  */
 @Mapper
-public interface RmOpenCloseValveLastMapper {
+public interface RmOpenCloseValveLastMapper extends BaseMapper<RmOpenCloseValveLast> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
index 24b3607..bcc4e96 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
@@ -1,6 +1,8 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -9,7 +11,7 @@
  * @Description
  */
 @Mapper
-public interface RmWorkReportHistoryMapper {
+public interface RmWorkReportHistoryMapper extends BaseMapper<RmWorkReportHistory> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
index e19a55b..779fd6a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
@@ -1,5 +1,7 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -11,7 +13,7 @@
  * @Description
  */
 @Mapper
-public interface RmWorkReportLastMapper {
+public interface RmWorkReportLastMapper extends BaseMapper<RmWorkReportLast> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index d01603c..0d4c581 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -63,6 +63,14 @@
     Map getCardIdAndClientNum(@Param("cardNum") Long cardNum);
 
     /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚�
+     * @param cardAddr
+     * @param cardNum
+     * @return
+     */
+    Map getClientIdAndNameByCardAddrAndCardNo(@Param("cardAddr") String cardAddr, @Param("cardNum") Long cardNum);
+
+    /**
      * 鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃
      * @param clientId
      * @return
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
index 1552043..5f456fc 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
@@ -60,6 +60,14 @@
     SeVirtualCard getVcCardByNum(@Param("vcNum") String vcNum);
 
     /**
+     * 鏍规嵁铏氭嫙姘村崱缂栧彿鑾峰彇瀵瑰簲鐨勫啘鎴穒d鍜屽鍚�
+     * @param vcNum
+     * @return
+     */
+    Map getClientIdAndNameByVsCardNo(@Param("vcNum") Long vcNum);
+
+
+    /**
      * 鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID
      * @param vcNum
      * @return
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDay.java
new file mode 100644
index 0000000..028cad9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDay.java
@@ -0,0 +1,92 @@
+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/7/8 18:53
+ * @Description 鍙栨按鍙f棩鍙栨按閲忔紡鎹熼噺
+ */
+@TableName(value="rm_intake_amount_day", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍙栨按鍙f棩鍙栨按閲忔紡鎹熼噺")
+public class RmIntakeAmountDay implements BaseEntity {
+
+    public static final long serialVersionUID = 2024007081854001L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+     * 鍙栨按鍙D锛堝閿級
+     */
+    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+     * 缁熻鏃ユ湡(yyyy-mm-dd)
+     */
+    @Schema(description = "缁熻鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dt;
+
+    /**
+     * 鏃ュ彇姘撮噺锛堜笉鍖呮嫭婕忔崯姘撮噺锛�
+     */
+    public Double amount;
+
+    /**
+     * 绱鏃ユ紡鎹熸按閲�
+     */
+    public Double loss;
+
+    /**
+     * 鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿(yyyy-mm-dd hh:mm:ss)
+     */
+    @Schema(description = "鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒鍦板潃
+     */
+    public String rtuAddrLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒ID锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerIdLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒绱姘撮噺
+     */
+    public Double totalAmountLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鏃堕挓锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @Schema(description = "鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date rtuDtLast;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDayLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDayLast.java
new file mode 100644
index 0000000..6f69da8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountDayLast.java
@@ -0,0 +1,94 @@
+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/7/8 19:19
+ * @Description 鍙栨按鍙f棩鍙栨按閲忔紡鎹熼噺鏈�鏂�
+ */
+@TableName(value="rm_intake_amount_day_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍙栨按鍙f棩鍙栨按閲忔紡鎹熼噺鏈�鏂�")
+public class RmIntakeAmountDayLast implements BaseEntity {
+
+    public static final long serialVersionUID = 2024007081854002L;
+    /**
+     * 涓婚敭
+     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+    /**
+     * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+     * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
+     */
+    @Schema(hidden=true)
+    @JSONField(serialize = false)
+    public Long lastHistoryId;
+
+    /**
+     * 鍙栨按鍙D锛堝閿級
+     */
+    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+     * 缁熻鏃ユ湡(yyyy-mm-dd)锛岀粺璁℃棩鏈熼噰鐢≧TU涓婃姤鏁版嵁鏃ユ湡锛屽洜涓烘湁绱娴侀噺鐩稿樊鐨勮绠楁柟娉曪紝鎵�浠ヨˉ鎶ユ暟鎹蹇界暐
+     */
+    @Schema(description = "缁熻鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dt;
+
+    /**
+     * 鏃ュ彇姘撮噺锛堜笉鍖呮嫭婕忔崯姘撮噺锛�
+     */
+    public Double amount;
+
+    /**
+     * 鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿(yyyy-mm-dd hh:mm:ss)
+     */
+    @Schema(description = "鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date dtLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒鍦板潃
+     */
+    public String rtuAddrLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒ID锛堝閿級
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerIdLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒绱姘撮噺
+     */
+    public Double totalAmountLast;
+
+    /**
+     * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鏃堕挓锛坹yyy-mm-dd HH:MM:SS锛�
+     */
+    @Schema(description = "鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鏃堕挓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
+    public Date rtuDtLast;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
deleted file mode 100644
index e9ef13e..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.dy.pipIrrGlobal.pojoRm;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.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/17 9:07
- * @LastEditTime 2024/1/17 9:07
- * @Description 鍙栨按鍙e彇姘撮噺
- */
-@TableName(value="rm_intake_amount", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鍙栨按鍙e彇姘撮噺")
-public class RmIntakeAmountHistory implements BaseEntity {
-
-    public static final long serialVersionUID = 202401170908001L;
-    /**
-     * 涓婚敭
-     */
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    public Long id;
-
-    /**
-     * 鍙栨按鍙D锛堝閿級
-     */
-    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeid;
-
-    /**
-     * 缁熻鏃ユ湡
-     */
-    @Schema(description = "鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    public Date dt;
-
-    /**
-    * 绱鍙栨按閲忥紙涓嶅寘鎷紡鎹熸按閲忥級
-    */
-    @Schema(description = "绱鍙栨按閲忥紙涓嶅寘鎷紡鎹熸按閲忥級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double amount;
-
-    /**
-    * 绱婕忔崯姘撮噺
-    */
-    @Schema(description = "绱婕忔崯姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double loss;
-
-    /**
-     * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒鍦板潃
-     */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
-    public String rtuAddrLast;
-
-    /**
-    * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒ID锛堝閿級
-    */
-    @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controlleridlast;
-
-    /**
-    * 鏈�鍚庤姘撮噺涓婃姤鏁版嵁鎺ユ敹鏃堕棿
-    */
-    @Schema(description = "鏁版嵁鎺ユ敹鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    public Date dtlast;
-
-    /**
-    * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鍙栨按閲�
-    */
-    @Schema(description = "鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒鍙栨按閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double amountlast;
-
-    /**
-    * 鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒绱姘撮噺
-    */
-    @Schema(description = "鏈�鍚庤姘撮噺鏃舵帶鍒跺櫒绱姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double totalamountlast;
-
-    /**
-    * 鏈�鍚庤姘撮噺鏉ユ簮锛�1寮�闃�宸ヤ綔鎶ワ紝2鍏抽榾鎶ワ紝3鑷姤锛�
-    */
-    @Schema(description = "鏈�鍚庤姘撮噺鏉ユ簮锛�1寮�闃�宸ヤ綔鎶ワ紝2鍏抽榾鎶ワ紝3鑷姤锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte resourcetypelast;
-
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java
index 7497e81..fd5fd49 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java
@@ -61,7 +61,7 @@
     public String rtuAddr;
 
     /**
-     * 鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+     * 缁熻鏃ワ紝杩欎釜鏃ユ湡閲囩敤RTU鏃堕挓锛屽洜涓烘湁琛ユ姤鐨勯棶棰�
      */
     @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonFormat(pattern = "yyyy-MM-dd")
@@ -89,7 +89,7 @@
 
 
     public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
-        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        this.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.rtuDt);
         this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
         this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java
index 5b5479d..7b38ffa 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java
@@ -68,7 +68,7 @@
     public String rtuAddr;
 
     /**
-     * 缁熻鏃�
+     * 缁熻鏃ワ紝杩欎釜鏃ユ湡閲囩敤RTU鏃堕挓锛屽洜涓烘湁琛ユ姤鐨勯棶棰�
      */
     @Schema(description = "缁熻鏃�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonFormat(pattern = "yyyy-MM-dd")
@@ -95,7 +95,7 @@
     public Double lossAmount;
 
     public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
-        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        this.dt = DateTime.dateFrom_yyyy_MM_dd1(cdData.rtuDt);
         this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
         this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
index d6b4b0b..85e6741 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
@@ -47,6 +47,20 @@
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
+
+    /**
+     * 鍐滄埛瀹炰綋ID锛堝閿級
+     */
+    @Schema(description = "鍐滄埛瀹炰綋澶栭敭", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long clientId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    public String clientName;
+
     /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
      */
@@ -308,7 +322,7 @@
         this.clThisEle = cdData.thisEle;
     }
 
-    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, Boolean clearCloseValve) throws Exception {
         this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         this.opType = dataCd83OpenVo.type;
         this.opTotalAmount = dataCd83OpenVo.totalAmount;
@@ -316,7 +330,7 @@
         this.opIcCardAddr = dataCd83OpenVo.icCardAddr;
         this.opRemainMoney = dataCd83OpenVo.remainMoney;
         this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt);
-        if (clearCloseValve) {
+        if (clearCloseValve != null && clearCloseValve.booleanValue()) {
             this.clDt = null;
             this.clType = null;
             this.clTotalAmount = null;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
index 25e7de2..cc568d5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
@@ -8,6 +8,7 @@
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo;
 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;
@@ -50,6 +51,19 @@
     @Schema(hidden=true)
     @JSONField(serialize = false)
     public Long lastHistoryId;
+
+    /**
+     * 鍐滄埛瀹炰綋ID锛堝閿級
+     */
+    @Schema(description = "鍐滄埛瀹炰綋澶栭敭", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long clientId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    public String clientName;
 
     /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
@@ -229,8 +243,8 @@
         this.opEleTotalAmount = null; //姹熸捣鍗忚鐗规湁
         this.opWaterRemainUser = null; //姹熸捣鍗忚鐗规湁
         this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt);
-
     }
+
 
     public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
         this.clDt =  DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
@@ -297,7 +311,7 @@
         this.clThisEle = cdData.thisEle;
     }
 
-    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, Boolean clearCloseValve) throws Exception {
         this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         this.opType = dataCd83OpenVo.type;
         this.opTotalAmount = dataCd83OpenVo.totalAmount;
@@ -306,12 +320,12 @@
         this.opRemainMoney = dataCd83OpenVo.remainMoney;
         this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt);
 
-        if (clearCloseValve) {
+        if (clearCloseValve != null && clearCloseValve.booleanValue()) {
             this.clearCloseValue();
         }
     }
 
-    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+    public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, Boolean clearLastOpenValve) throws Exception {
         this.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         this.clType = dataCd83CloseVo.type;
         this.clTotalAmount = dataCd83CloseVo.totalAmount;
@@ -324,7 +338,7 @@
         this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt);
         this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ;
 
-        if(clearOpenValve){
+        if(clearLastOpenValve != null && clearLastOpenValve.booleanValue()){
             this.clearOpenValue();
         }
     }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
index 054d6b8..4419eac 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
@@ -41,6 +41,18 @@
     public Long id;
 
     /**
+     * 鍐滄埛瀹炰綋ID锛堝閿級
+     */
+    @Schema(description = "鍐滄埛瀹炰綋澶栭敭", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long clientId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    public String clientName;
+    /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
      */
     @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
index 97b522b..2131b4f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
@@ -40,6 +40,19 @@
     public Long id;
 
     /**
+     * 鍐滄埛瀹炰綋ID锛堝閿級
+     */
+    @Schema(description = "鍐滄埛瀹炰綋澶栭敭", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long clientId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    public String clientName;
+
+    /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
      */
     @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
index f914f43..2302751 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
@@ -20,9 +20,6 @@
             <settings>
                     <item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
                     <item2 item_name="lat" item_value="25.70424" remarks="绾害"/>
-                    <item3 item_name="projectNo" item_value="10" remarks="椤圭洰缂栧彿"/>
-                    <item4 item_name="controllerType" item_value="57" remarks="鎺у埗鍣ㄧ被鍨�"/>
-                    <item5 item_name="protocolName" item_value="p206V202404" remarks="鍗忚鍚嶇О"/>
             </settings>
             <waterTypes>
                 <item1 typeName="鐏屾簤鐢ㄦ按"/>
@@ -32,5 +29,32 @@
                 <item5 typeName="缁垮寲鐢ㄦ按"/>
             </waterTypes>
         </org1>
+        <org2 name="sp">
+            <districts>
+                <province name="澶╂触" num="53" level="1">
+                    <city name="澶╂触甯�" num="23" level="2">
+                        <country name="姝︽竻鍖�" num="28" level="3" />
+                    </city>
+                </province>
+            </districts>
+            <user name="瓒呯骇绠$悊鍛�" phone="admin" password="admin" supperAdmin="1" />
+            <payments>
+                <item1 name="鐜伴噾"/>
+                <item2 name="寰俊鏀粯"/>
+                <item3 name="鏀粯瀹濇敮浠�"/>
+                <item4 name="閾惰杞处"/>
+            </payments>
+            <settings>
+                <item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
+                <item2 item_name="lat" item_value="25.70424" remarks="绾害"/>
+            </settings>
+            <waterTypes>
+                <item1 typeName="鐏屾簤鐢ㄦ按"/>
+                <item2 typeName="宸ヤ笟鐢ㄦ按"/>
+                <item3 typeName="鐢熸椿鐢ㄦ按"/>
+                <item4 typeName="鍏绘畺鐢ㄦ按"/>
+                <item5 typeName="缁垮寲鐢ㄦ按"/>
+            </waterTypes>
+        </org2>
     </orgs>
 </config>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml
new file mode 100644
index 0000000..25a5872
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayLastMapper.xml
@@ -0,0 +1,170 @@
+<?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.RmIntakeAmountDayLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_intake_amount_day_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="amount" jdbcType="DOUBLE" property="amount" />
+    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
+    <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast" />
+    <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast" />
+    <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast" />
+    <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, last_history_id, intake_id, dt, amount, dt_last, rtu_addr_last, controller_id_last, total_amount_last,
+    rtu_dt_last
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_intake_amount_day_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_intake_amount_day_last
+    where intake_id = #{intakeId,jdbcType=BIGINT}
+  </select>
+
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_intake_amount_day_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast">
+    <!--@mbg.generated-->
+    insert into rm_intake_amount_day_last (id, last_history_id, intake_id, dt,
+      amount, dt_last,
+      rtu_addr_last, controller_id_last, total_amount_last, 
+      rtu_dt_last)
+    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE},
+      #{amount,jdbcType=DOUBLE}, #{dtLast,jdbcType=TIMESTAMP},
+      #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT}, 
+      #{rtuDtLast,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast">
+    <!--@mbg.generated-->
+    insert into rm_intake_amount_day_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="lastHistoryId != null">
+        last_history_id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="dtLast != null">
+        dt_last,
+      </if>
+      <if test="rtuAddrLast != null">
+        rtu_addr_last,
+      </if>
+      <if test="controllerIdLast != null">
+        controller_id_last,
+      </if>
+      <if test="totalAmountLast != null">
+        total_amount_last,
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="lastHistoryId != null">
+        #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=DOUBLE},
+      </if>
+      <if test="dtLast != null">
+        #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtuAddrLast != null">
+        #{rtuAddrLast,jdbcType=VARCHAR},
+      </if>
+      <if test="controllerIdLast != null">
+        #{controllerIdLast,jdbcType=BIGINT},
+      </if>
+      <if test="totalAmountLast != null">
+        #{totalAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="rtuDtLast != null">
+        #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast">
+    <!--@mbg.generated-->
+    update rm_intake_amount_day_last
+    <set>
+      <if test="lastHistoryId != null">
+        last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+     <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=DOUBLE},
+      </if>
+      <if test="dtLast != null">
+        dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtuAddrLast != null">
+        rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
+      </if>
+      <if test="controllerIdLast != null">
+        controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
+      </if>
+      <if test="totalAmountLast != null">
+        total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast">
+    <!--@mbg.generated-->
+    update rm_intake_amount_day_last
+    set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      dt = #{dt,jdbcType=DATE},
+      amount = #{amount,jdbcType=DOUBLE},
+      dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
+      controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
+      total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
+      rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
new file mode 100644
index 0000000..f96ad0c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -0,0 +1,158 @@
+<?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.RmIntakeAmountDayMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
+    <!--@mbg.generated-->
+    <!--@Table rm_intake_amount_day-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="amount" jdbcType="DOUBLE" property="amount" />
+    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
+    <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast" />
+    <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast" />
+    <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast" />
+    <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, intake_id, dt, amount, dt_last, rtu_addr_last, controller_id_last, total_amount_last,
+    rtu_dt_last
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_intake_amount_day
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_intake_amount_day
+    where dt = #{dt,jdbcType=DATE}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_intake_amount_day
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
+    <!--@mbg.generated-->
+    insert into rm_intake_amount_day (id, intake_id, dt, 
+      amount, dt_last,
+      rtu_addr_last, controller_id_last, total_amount_last, 
+      rtu_dt_last)
+    values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE}, 
+      #{amount,jdbcType=DOUBLE}, #{dtLast,jdbcType=TIMESTAMP},
+      #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT}, 
+      #{rtuDtLast,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
+    <!--@mbg.generated-->
+    insert into rm_intake_amount_day
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="dtLast != null">
+        dt_last,
+      </if>
+      <if test="rtuAddrLast != null">
+        rtu_addr_last,
+      </if>
+      <if test="controllerIdLast != null">
+        controller_id_last,
+      </if>
+      <if test="totalAmountLast != null">
+        total_amount_last,
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=DATE},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=DOUBLE},
+      </if>
+      <if test="dtLast != null">
+        #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtuAddrLast != null">
+        #{rtuAddrLast,jdbcType=VARCHAR},
+      </if>
+      <if test="controllerIdLast != null">
+        #{controllerIdLast,jdbcType=BIGINT},
+      </if>
+      <if test="totalAmountLast != null">
+        #{totalAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="rtuDtLast != null">
+        #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
+    <!--@mbg.generated-->
+    update rm_intake_amount_day
+    <set>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=DATE},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=DOUBLE},
+      </if>
+      <if test="dtLast != null">
+        dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtuAddrLast != null">
+        rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
+      </if>
+      <if test="controllerIdLast != null">
+        controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
+      </if>
+      <if test="totalAmountLast != null">
+        total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
+      </if>
+      <if test="rtuDtLast != null">
+        rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
+    <!--@mbg.generated-->
+    update rm_intake_amount_day
+    set intake_id = #{intakeId,jdbcType=BIGINT},
+      dt = #{dt,jdbcType=DATE},
+      amount = #{amount,jdbcType=DOUBLE},
+      dt_last = #{dtLast,jdbcType=TIMESTAMP},
+      rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR},
+      controller_id_last = #{controllerIdLast,jdbcType=BIGINT},
+      total_amount_last = #{totalAmountLast,jdbcType=FLOAT},
+      rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index bfdbb78..e65efd8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -5,6 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table rm_open_close_valve_history-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="client_name" jdbcType="VARCHAR" property="clientName" />
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
@@ -36,7 +38,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, op_ic_card_no, 
+    id, client_id, client_name,
+    controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, op_ic_card_no,
     op_ic_card_addr, op_remain_money, open_dt, op_order_no, op_ele_total_amount, op_water_remain_user, 
     cl_dt, cl_type, cl_total_amount, cl_ic_card_no, cl_ic_card_addr, cl_remain_money, 
     cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, close_dt, cl_order_no, cl_ele_total_amount, 
@@ -56,7 +59,8 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
     <!--@mbg.generated-->
-    insert into rm_open_close_valve_history (id, controller_id, intake_id, 
+    insert into rm_open_close_valve_history (id, client_id, client_name,
+      controller_id, intake_id,
       rtu_addr, op_dt, op_type, 
       op_total_amount, op_ic_card_no, op_ic_card_addr, 
       op_remain_money, open_dt, op_order_no, 
@@ -66,7 +70,8 @@
       cl_this_money, cl_this_time, cl_open_dt, 
       close_dt, cl_order_no, cl_ele_total_amount, 
       cl_water_remain_user, cl_this_ele)
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{clientName,jdbcType=VARCHAR},
+      #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT},
       #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opType,jdbcType=TINYINT}, 
       #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, #{opIcCardAddr,jdbcType=VARCHAR}, 
       #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, #{opOrderNo,jdbcType=VARCHAR}, 
@@ -83,6 +88,12 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="clientName != null">
+        client_name,
       </if>
       <if test="controllerId != null">
         controller_id,
@@ -172,6 +183,12 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        #{clientName,jdbcType=VARCHAR},
       </if>
       <if test="controllerId != null">
         #{controllerId,jdbcType=BIGINT},
@@ -263,6 +280,12 @@
     <!--@mbg.generated-->
     update rm_open_close_valve_history
     <set>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        client_name = #{clientName,jdbcType=VARCHAR},
+      </if>
       <if test="controllerId != null">
         controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
@@ -353,7 +376,9 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
     <!--@mbg.generated-->
     update rm_open_close_valve_history
-    set controller_id = #{controllerId,jdbcType=BIGINT},
+    set client_id = #{clientId,jdbcType=BIGINT},
+      client_name = #{clientName,jdbcType=VARCHAR},
+      controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       op_dt = #{opDt,jdbcType=TIMESTAMP},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index bb558ac..b098b54 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -6,6 +6,8 @@
     <!--@Table rm_open_close_valve_last-->
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="client_name" jdbcType="VARCHAR" property="clientName" />
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
@@ -37,7 +39,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, last_history_id, controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount, 
+    id, last_history_id, client_id, client_name,
+    controller_id, intake_id, rtu_addr, op_dt, op_type, op_total_amount,
     op_ic_card_no, op_ic_card_addr, op_remain_money, open_dt, op_order_no, op_ele_total_amount, 
     op_water_remain_user, cl_dt, cl_type, cl_total_amount, cl_ic_card_no, cl_ic_card_addr, 
     cl_remain_money, cl_this_amount, cl_this_money, cl_this_time, cl_open_dt, close_dt, 
@@ -64,7 +67,8 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
     <!--@mbg.generated-->
-    insert into rm_open_close_valve_last (id, last_history_id, controller_id, 
+    insert into rm_open_close_valve_last (id, last_history_id,
+      client_id, client_name, controller_id,
       intake_id, rtu_addr, op_dt, 
       op_type, op_total_amount, op_ic_card_no, 
       op_ic_card_addr, op_remain_money, open_dt, 
@@ -75,7 +79,8 @@
       cl_open_dt, close_dt, cl_order_no, 
       cl_ele_total_amount, cl_water_remain_user, cl_this_ele
       )
-    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, 
+    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT},
+      #{clientId,jdbcType=BIGINT}, #{clientName,jdbcType=VARCHAR}, #{controllerId,jdbcType=BIGINT},
       #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, 
       #{opType,jdbcType=TINYINT}, #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, 
       #{opIcCardAddr,jdbcType=VARCHAR}, #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, 
@@ -96,6 +101,12 @@
       </if>
       <if test="lastHistoryId != null">
         last_history_id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+     <if test="clientName != null">
+        client_name,
       </if>
       <if test="controllerId != null">
         controller_id,
@@ -188,6 +199,12 @@
       </if>
       <if test="lastHistoryId != null">
         #{lastHistoryId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        #{clientName,jdbcType=VARCHAR},
       </if>
       <if test="controllerId != null">
         #{controllerId,jdbcType=BIGINT},
@@ -282,6 +299,12 @@
       <if test="lastHistoryId != null">
         last_history_id = #{lastHistoryId,jdbcType=BIGINT},
       </if>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        client_name = #{clientName,jdbcType=VARCHAR},
+      </if>
       <if test="controllerId != null">
         controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
@@ -373,6 +396,8 @@
     <!--@mbg.generated-->
     update rm_open_close_valve_last
     set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
+      client_id = #{clientId,jdbcType=BIGINT},
+      client_name = #{clientName,jdbcType=VARCHAR},
       controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
index a1486ea..87c4af8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
@@ -5,6 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table rm_work_report_history-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="client_name" jdbcType="VARCHAR" property="clientName" />
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
@@ -38,7 +40,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no, 
+    id, client_id, client_name,
+    controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no,
     water_level, water_press, water_instant, water_total, ele_total, money_remain, water_remain, 
     this_ele, this_water, this_money, this_duration, water_price, ele_price, a_volt, 
     b_volt, c_volt, a_current, b_current, c_current, battery_volt, water_meter_trans_volt, 
@@ -58,7 +61,8 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
     <!--@mbg.generated-->
-    insert into rm_work_report_history (id, controller_id, intake_id, 
+    insert into rm_work_report_history (id, client_id, client_name,
+      controller_id, intake_id,
       rtu_addr, dt, rtu_dt, 
       order_no, ic_card_addr, ic_card_no, 
       water_level, water_press, water_instant, 
@@ -69,7 +73,8 @@
       a_current, b_current, c_current, 
       battery_volt, water_meter_trans_volt, water_meter_work_volt
       )
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{clientName,jdbcType=VARCHAR},
+      #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT},
       #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
       #{orderNo,jdbcType=VARCHAR}, #{icCardAddr,jdbcType=VARCHAR}, #{icCardNo,jdbcType=VARCHAR}, 
       #{waterLevel,jdbcType=FLOAT}, #{waterPress,jdbcType=FLOAT}, #{waterInstant,jdbcType=FLOAT}, 
@@ -87,6 +92,12 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="clientName != null">
+        client_name,
       </if>
       <if test="controllerId != null">
         controller_id,
@@ -182,6 +193,12 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        #{clientName,jdbcType=VARCHAR},
       </if>
       <if test="controllerId != null">
         #{controllerId,jdbcType=BIGINT},
@@ -279,6 +296,12 @@
     <!--@mbg.generated-->
     update rm_work_report_history
     <set>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        client_name = #{clientName,jdbcType=VARCHAR},
+      </if>
       <if test="controllerId != null">
         controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
@@ -375,7 +398,9 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
     <!--@mbg.generated-->
     update rm_work_report_history
-    set controller_id = #{controllerId,jdbcType=BIGINT},
+    set client_id = #{clientId,jdbcType=BIGINT},
+      client_name = #{clientName,jdbcType=VARCHAR},
+      controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
index 09a8b9a..dc9d03b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
@@ -5,6 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table rm_work_report_last-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="client_name" jdbcType="VARCHAR" property="clientName" />
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
@@ -38,7 +40,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no, 
+    id, client_id, client_name,
+    controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no,
     water_level, water_press, water_instant, water_total, ele_total, money_remain, water_remain, 
     this_ele, this_water, this_money, this_duration, water_price, ele_price, a_volt, 
     b_volt, c_volt, a_current, b_current, c_current, battery_volt, water_meter_trans_volt, 
@@ -58,7 +61,8 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
     <!--@mbg.generated-->
-    insert into rm_work_report_last (id, controller_id, intake_id, 
+    insert into rm_work_report_last (id, client_id, client_name,
+      controller_id, intake_id,
       rtu_addr, dt, rtu_dt, 
       order_no, ic_card_addr, ic_card_no, 
       water_level, water_press, water_instant, 
@@ -69,7 +73,8 @@
       a_current, b_current, c_current, 
       battery_volt, water_meter_trans_volt, water_meter_work_volt
       )
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{clientName,jdbcType=VARCHAR},
+      #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT},
       #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
       #{orderNo,jdbcType=VARCHAR}, #{icCardAddr,jdbcType=VARCHAR}, #{icCardNo,jdbcType=VARCHAR}, 
       #{waterLevel,jdbcType=FLOAT}, #{waterPress,jdbcType=FLOAT}, #{waterInstant,jdbcType=FLOAT}, 
@@ -87,6 +92,12 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="clientName != null">
+        client_name,
       </if>
       <if test="controllerId != null">
         controller_id,
@@ -182,6 +193,12 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        #{clientName,jdbcType=VARCHAR},
       </if>
       <if test="controllerId != null">
         #{controllerId,jdbcType=BIGINT},
@@ -279,6 +296,12 @@
     <!--@mbg.generated-->
     update rm_work_report_last
     <set>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="clientName != null">
+        client_name = #{clientName,jdbcType=VARCHAR},
+      </if>
       <if test="controllerId != null">
         controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
@@ -375,7 +398,9 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
     <!--@mbg.generated-->
     update rm_work_report_last
-    set controller_id = #{controllerId,jdbcType=BIGINT},
+    set client_id = #{clientId,jdbcType=BIGINT},
+      client_name = #{clientName,jdbcType=VARCHAR},
+      controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index e3164a4..2426f94 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -53,16 +53,25 @@
 
   <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿-->
   <select id="getCardIdAndClientNum" resultType="java.util.Map">
-<!--    SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
+    <!--    SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
     SELECT
-        card.id AS cardId,
-        cli.clientNum,
-        cli.id AS clientId
+    card.id AS cardId,
+    cli.clientNum,
+    cli.id AS clientId
     FROM se_client_card card
-        INNER JOIN se_client cli ON card.clientId = cli.id
+    INNER JOIN se_client cli ON card.clientId = cli.id
     WHERE card.cardNum = #{cardNum}
   </select>
 
+  <!-- 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚� -->
+  <select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map">
+    SELECT
+    cli.id AS clientId,
+    cli.name AS clientName
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    WHERE card.cardAddr = #{cardAddr} and  card.cardNum = #{cardNum}
+  </select>
 
   <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈡按鍗$紪鍙�-->
   <select id="getCardNumOfMax"  resultType="java.lang.String">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index d517e21..2e55f5e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -214,6 +214,16 @@
     SELECT id FROM se_virtual_card WHERE vc_num = #{vcNum}
   </select>
 
+  <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID-->
+  <select id="getClientIdAndNameByVsCardNo" resultType="java.util.Map">
+    SELECT
+    cli.id AS clientId,
+    cli.name AS clientName
+    FROM se_virtual_card card
+    INNER JOIN se_client cli ON card.client_id = cli.id
+    WHERE card.vc_num = #{vcNum}
+  </select>
+
   <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈣櫄鎷熷崱缂栧彿-->
   <select id="getVcCardNumOfMax"  resultType="java.lang.String">
     SELECT vc_num
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 226b17f..d390f5f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -151,7 +151,7 @@
 			//涓嶅湪绾跨紦瀛樼殑鍛戒护鏈�澶х紦瀛樻椂闀�
 			ServerProperties.offLineCachTimeout = conf.getSetAttrPlusInt(doc, "config.base", "offLineCachTimeout", null, 15, 172800, null) * 1000L ;
 			//TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婃暟鎹悓鏃朵笅鍙戞暟鎹紝鍥犱负RTU澶勭悊涓嶈繃鏉�
-			ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5, null) * 1000L ;
+			ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5000, null) * 1L ;
 			//鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1
 			ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 0, 99, null);
 			//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬姤璀﹂噺锛岃繖涓笌鐜板疄椤圭洰鎵�鎺ユ按琛ㄦ暟鐩稿叧
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 b3dc1df..a83efff 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
@@ -1,18 +1,25 @@
 package com.dy.rtuMw.server.rtuData.dbSv;
 
+import com.dy.common.util.NumUtil;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.daoBa.BaClientMapper;
 import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
 import com.dy.pipIrrGlobal.daoRm.*;
+import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
 import com.dy.pipIrrGlobal.pojoRm.*;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author liurunyu
@@ -22,6 +29,10 @@
  */
 @Service()
 public class DbSv {
+    @Autowired
+    private SeClientCardMapper seClientCardMapperDao;//鍐滄埛姘村崱DAO
+    @Autowired
+    private SeVirtualCardMapper seVirtualCardMapper;//鍐滄埛铏氭嫙姘村崱DAO
     @Autowired
     private PrControllerTrampMapper prControllerTrampMapperDao;//娴佹氮鎺у埗鍣―AO
     @Autowired
@@ -38,6 +49,10 @@
     private RmWorkReportLastMapper rmWorkReportLastMapperDao ;//鎺у埗鍣ㄦ渶鏂板伐浣滄姤鏁版嵁DAO
     @Autowired
     private RmWorkReportHistoryMapper rmWorkReportHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插伐浣滄姤鏁版嵁DAO
+    @Autowired
+    private RmIntakeAmountDayLastMapper rmIntakeAmountDayLastMapperDao ;//鍙栨按鍙e彇姘村拰婕忔崯缁熻鏈�鏂版暟鎹瓺AO
+    @Autowired
+    private RmIntakeAmountDayMapper rmIntakeAmountDayMapperDao ;//鍙栨按鍙e彇姘村拰婕忔崯缁熻DAO
     @Autowired
     private RmLossLastMapper rmLossLastMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂版暟鎹瓺AO
     @Autowired
@@ -66,6 +81,46 @@
     // 鍩虹鍔熻兘
     //
     ////////////////////////////////////////////////
+
+    /**
+     * 閫氳繃鐗╃悊IC鍦板潃鍙婂崱鍙峰緱鍒板啘鎴穒d鍜屽鍚�
+     * @param icCardAddr
+     * @param icCardNo
+     * @return
+     */
+    public SeClient getClientIdAndNameByCardAddrAndCardNo(String icCardAddr, String icCardNo){
+        SeClient vo = null ;
+        if(NumUtil.isPlusIntNumber(icCardNo)){
+            Long icCardNoLong = Long.parseLong(icCardNo) ;
+            Map<String, Object> map = seClientCardMapperDao.getClientIdAndNameByCardAddrAndCardNo(icCardAddr, icCardNoLong) ;
+            if(map != null && map.size() > 0) {
+                vo = new SeClient() ;
+                vo.setId(Long.parseLong(map.get("clientId").toString()));
+                vo.setName(map.get("clientName").toString());
+            }
+        }
+        return vo ;
+    }
+    /**
+     * 閫氳繃铏氭嫙IC鍗″彿寰楀埌鍐滄埛id鍜屽鍚�
+     * @param icCardNo
+     * @return
+     */
+    public SeClient getClientIdAndNameByVsCardNo(String icCardNo){
+        SeClient vo = null ;
+        if(NumUtil.isPlusIntNumber(icCardNo)){
+            Long icCardNoLong = Long.parseLong(icCardNo) ;
+            Map<String, Object> map = seVirtualCardMapper.getClientIdAndNameByVsCardNo(icCardNoLong) ;
+            if(map != null && map.size() > 0) {
+                vo = new SeClient() ;
+                vo.setId(Long.parseLong(map.get("clientId").toString()));
+                vo.setName(map.get("clientName").toString());
+            }
+        }
+        return vo ;
+    }
+
+
     /**
      * 閫氳繃鎺у埗鍣ㄥ湴鍧�浠庢暟鎹簱琛ㄤ腑鏌ヨ鎺у埗鍣�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
@@ -104,7 +159,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updatePrConctrollerTramp(PrControllerTramp po){
-        this.prControllerTrampMapperDao.updateByPrimaryKeySelective(po) ;
+        this.prControllerTrampMapperDao.updateByPrimaryKey(po) ;
     }
 
 
@@ -139,7 +194,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmAlarmStateLast(RmAlarmStateLast po){
-        this.rmAlarmStateLastMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmAlarmStateLastMapperDao.updateByPrimaryKey(po) ;
     }
     /**
      * 淇濆瓨鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸巻鍙茶褰�
@@ -204,7 +259,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmTimingReportLast(RmTimingReportLast po) {
-        this.rmTimingReportLastDao.updateByPrimaryKeySelective(po);
+        this.rmTimingReportLastDao.updateByPrimaryKey(po);
     }
 
     /////////////////////////////////////////////////
@@ -251,7 +306,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmOnHourReportLast(RmOnHourReportLast po) {
-        this.rmOnHourReportLastDao.updateByPrimaryKeySelective(po);
+        this.rmOnHourReportLastDao.updateByPrimaryKey(po);
     }
 
     /////////////////////////////////////////////////
@@ -285,7 +340,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmOpenCloseValveLast(RmOpenCloseValveLast po){
-        this.rmOpenCloseValveLastMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmOpenCloseValveLastMapperDao.updateByPrimaryKey(po) ;
     }
     /**
      * 寰楀埌鎺у埗鍣ㄥ紑鍏抽榾涓婃姤鏁版嵁鍘嗗彶鏁版嵁涓殑鏈�鏂拌褰�
@@ -311,7 +366,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmOpenCloseValveHistory(RmOpenCloseValveHistory po){
-        this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKey(po) ;
     }
 
     /////////////////////////////////////////////////
@@ -345,7 +400,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmWorkReportLast(RmWorkReportLast po){
-        this.rmWorkReportLastMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmWorkReportLastMapperDao.updateByPrimaryKey(po) ;
     }
     /**
      * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹巻鍙茶褰�
@@ -356,6 +411,91 @@
         this.rmWorkReportHistoryMapperDao.insert(po) ;
     }
 
+    /////////////////////////////////////////////////
+    //
+    // 鍙栨按鍙f棩鍙栨按閲忕粺璁″姛鑳�
+    //
+    ////////////////////////////////////////////////
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param intakeId
+     * @return
+     */
+    public RmIntakeAmountDayLast getRmIntakeAmountLast(Long intakeId){
+        List<RmIntakeAmountDayLast> list = rmIntakeAmountDayLastMapperDao.selectByIntakeId(intakeId) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmIntakeAmountLast(RmIntakeAmountDayLast po){
+        this.rmIntakeAmountDayLastMapperDao.insert(po) ;
+    }
+  /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmIntakeAmountDay(RmIntakeAmountDay po){
+        this.rmIntakeAmountDayMapperDao.insert(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmIntakeAmountLast(RmIntakeAmountDay po){
+        this.rmIntakeAmountDayMapperDao.updateByPrimaryKey(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmIntakeAmountDay(RmIntakeAmountDay po){
+        this.rmIntakeAmountDayMapperDao.updateByPrimaryKey(po) ;
+    }
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬渶鏂拌褰�
+     * @param id
+     * @return
+     */
+    public RmIntakeAmountDay getRmIntakeAmountDay(Long id){
+        return rmIntakeAmountDayMapperDao.selectByPrimaryKey(id) ;
+    }
+
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param dt
+     * @return
+     */
+    public RmIntakeAmountDay getRmIntakeAmountLastByDate(Date dt){
+        List<RmIntakeAmountDay> list = rmIntakeAmountDayMapperDao.selectByDate(dt) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬煇鏃ヨ褰�
+     * @param dt
+     * @return
+     */
+    public RmIntakeAmountDay getRmIntakeAmountDayByDate(Date dt){
+        List<RmIntakeAmountDay> list = rmIntakeAmountDayMapperDao.selectByDate(dt) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
 
     /////////////////////////////////////////////////
     //
@@ -396,7 +536,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmLossLast(RmLossLast po){
-        this.rmLossLastMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmLossLastMapperDao.updateByPrimaryKey(po) ;
     }
     /**
      * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
@@ -404,7 +544,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public void updateRmLossHistory(RmLossHistory po){
-        this.rmLossHistoryMapperDao.updateByPrimaryKeySelective(po) ;
+        this.rmLossHistoryMapperDao.updateByPrimaryKey(po) ;
     }
 
     /**
@@ -452,7 +592,7 @@
         return rmCommandHistoryDao.selectByPrimaryKey(Long.parseLong(commandId)) ;
     }
     public void updateCommandLog(RmCommandHistory po){
-        rmCommandHistoryDao.updateByPrimaryKeySelective(po) ;
+        rmCommandHistoryDao.updateByPrimaryKey(po) ;
     }
 
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index b65aba9..cfe155c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -8,6 +8,7 @@
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -41,8 +42,9 @@
             Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
             DbSv sv = (DbSv)objs[0] ;
             PrController controller = (PrController)objs[1] ;
+            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
             try{
-                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd83CloseVo)cdObj) ;
+                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd83CloseVo)cdObj) ;
             }catch (Exception e){
                 log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
             }
@@ -52,27 +54,38 @@
     /**
      * 淇濆瓨鏁版嵁
      * @param sv 鏈嶅姟
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
+     * @param clientVo 鍐滄埛瀵硅薄
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dV1_0_1 涓婃姤鏁版嵁
      * @param dataCd83CloseVo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
      */
-    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
         RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ;
         if(poLast == null){
             //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁
             //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
-            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
-            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+            poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
+            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
             //淇濆瓨鏈�鏂版暟鎹�
             sv.saveRmOpenCloseValveLast(poLast);
         }else{
+            //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
+            if(poLast.closeDt != null && poLast.clIcCardAddr != null && poLast.clIcCardNo != null){
+                if(poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))
+                        && poLast.clIcCardAddr.equals(dataCd83CloseVo.icCardAddr)
+                        && poLast.clIcCardNo.equals(dataCd83CloseVo.icCardNo)){
+                    //閲嶅涓婃姤锛屽師鍥犳槸涓嬭鏁版嵁澶勭悊鎱簡锛屽氨閲嶅涓婃姤浜�
+                    return ;
+                }
+            }
             if(poLast.clType == null){
                 //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�
                 if(poLast.opType == null || poLast.openDt == null){
                     //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁(鍗冲紑闃�涓庡叧闃�鏁版嵁閮芥病鏈夛紝杩欑鎯呭喌涓�鑸笉瀛樺湪)锛屾病鍔炴硶杩涜鍖归厤
                     //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                    this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
                 }else{
                     //鍘熻褰曚腑瀛樺湪寮�闃�鏁版嵁锛岃繘琛屽巻鍙叉暟鎹尮閰�
                     RmOpenCloseValveHistory poHistory = null ;
@@ -84,48 +97,79 @@
                                 if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
                                     //鍖归厤鎴愬姛
                                     //褰撳墠鍏抽榾鏄師璁板綍涓紑闃�鐨勫搴斿叧闃�
-                                    this.updateCloseValve(controller, poLast, poHistory, dV1_0_1, dataCd83CloseVo, false) ;
+                                    this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83CloseVo, false) ;
                                     sv.updateRmOpenCloseValveHistory(poHistory);
+                                }else if(poHistory.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
+                                    //鍖归厤澶辫触(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                                    //鏈湴鏈�鏂版暟鎹腑鐨勫紑闃�鏃堕棿鏅氫簬褰撳墠鍏抽榾涓婃姤涓殑寮�闃�鏃堕棿锛岃鏄庢槸琛ユ姤
+                                    this.dealSupplyReport() ;
                                 }else{
                                     //鍖归厤澶辫触
-                                    //褰撳墠鍏抽榾涓嶆槸鍘熻褰曚腑寮�闃�鐨勫搴斿叧闃�锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                                    //鏈湴鏈�鏂版暟鎹腑鐨勫紑闃�鏃堕棿鏃╀簬褰撳墠鍏抽榾涓婃姤涓殑寮�闃�鏃堕棿锛岃鏄庢槸鏂扮殑涓�娆″叧闃�鎶ワ紝鑰屼笖瀵瑰簲鍏抽榾鎶ョ殑涓婁竴娆″紑闃�鎶ユ湭鏀跺埌
+                                    this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                                 }
                             }else{
                                 //杩欑鎯呭喌涓嶅瓨鍦紝璁や负鍖归厤澶辫触
                                 //褰撳墠鍏抽榾涓嶆槸鍘熻褰曚腑寮�闃�鐨勫搴斿叧闃�锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                             }
                         }else{
-                            //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                            //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                         }
                     }else{
-                        //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                        //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                     }
                 }
             }else if(poLast.opType != null){
                 //鍘熻褰曞瓨鍦ㄥ叧闃�鏁版嵁锛屼篃瀛樺湪寮�闃�鏁版嵁锛岄鍏堣繘琛屽紑鍏抽榾鏃堕棿瀵规瘮
-                if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
-                    //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁锛屼笉杩涜澶勭悊
-                }else if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
                     //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+                }else if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                    //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                    this.dealSupplyReport() ;
                 }else {
-                    //褰撳墠涓婃姤鐨勫叧闃�鏁版嵁鏅氫簬鍘熸潵鐨勫叧闃�鏁版嵁锛屾槸鏂扮殑涓婃姤鍏抽榾鏁版嵁
-                    this.updateCloseValve(controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                    //鏄柊鐨勪笂鎶ュ叧闃�鏁版嵁
+                    //杩涜鍘嗗彶鏁版嵁鍖归厤
+                    RmOpenCloseValveHistory poHistory = null ;
+                    if(poLast.lastHistoryId != null) {
+                        poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId);
+                        if (poHistory != null) {
+                            if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
+                                //鍖归厤涓婁簡
+                                this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83CloseVo, false) ;
+                                sv.updateRmOpenCloseValveHistory(poHistory);
+                            }else{
+                                //涓婁釜鍏抽榾鎶ユ湭涓婃姤
+                                this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                            }
+                        }else{
+                            //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+                            this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                        }
+                    }else{
+                        //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+                        this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                        this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                    }
                 }
             }else{
                 //if(po.opType == null)
-                //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
-                this.updateCloseValve(controller, poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
-                //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊锛屼篃璁や负涓婁釜鍏抽榾鎶ユ湭涓婃姤
+                this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屾病鏈夊搴旂殑寮�鍙戞暟鎹�
+                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
             }
 
             sv.updateRmOpenCloseValveLast(poLast);
         }
+    }
+
+    private void dealSupplyReport(){
+
     }
 
     /**
@@ -136,26 +180,29 @@
      * @param dV1_0_1
      * @param dataCd83CloseVo
      * @param poLast
+     * @param clearLastOpenValue
      * @throws Exception
      */
     private void newHistoryDataDeal(DbSv sv,
+                                   SeClient clientVo,
                                     PrController controller,
                                     String rtuAddr,
                                     DataV1_0_1 dV1_0_1,
                                     DataCd83CloseVo dataCd83CloseVo,
                                     RmOpenCloseValveLast poLast,
-                                    Boolean clearOpenValue)throws Exception {
-        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83CloseVo) ;
+                                    Boolean clearLastOpenValue)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo) ;
         sv.saveRmOpenCloseValveHistory(poHistory);
         //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
         poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
-        if(clearOpenValue != null && clearOpenValue.booleanValue()){
+        if(clearLastOpenValue != null && clearLastOpenValue.booleanValue()){
             poLast.clearOpenValue();
         }
     }
 
     /**
      * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鏈�鏂版暟鎹褰�
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -163,11 +210,14 @@
      * @return
      * @throws Exception
      */
-    private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller,
+    private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo,
+                                                         PrController controller,
                                                          String rtuAddr,
                                                          DataV1_0_1 dV1_0_1,
                                                          DataCd83CloseVo dataCd83CloseVo)throws Exception {
         RmOpenCloseValveLast po = new RmOpenCloseValveLast() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
         po.controllerId = controller==null?null:controller.getId() ;
         po.intakeId = controller==null?null:controller.getIntakeId() ;
         po.rtuAddr = rtuAddr ;
@@ -178,6 +228,7 @@
 
     /**
      * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -185,11 +236,14 @@
      * @return
      * @throws Exception
      */
-    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller,
+    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo,
+                                                               PrController controller,
                                                                String rtuAddr,
                                                                DataV1_0_1 dV1_0_1,
                                                                DataCd83CloseVo dataCd83CloseVo)throws Exception {
         RmOpenCloseValveHistory po = new RmOpenCloseValveHistory() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
         po.controllerId = controller==null?null:controller.getId() ;
         po.intakeId = controller==null?null:controller.getIntakeId() ;
         po.rtuAddr = rtuAddr ;
@@ -200,30 +254,36 @@
 
     /**
      * 鏇存柊鏁版嵁
+     * @param clientVo
      * @param controller
      * @param poLast
      * @param poHistory
      * @param dV1_0_1
      * @param dataCd83CloseVo
-     * @param clearOpenValve
+     * @param clearLastOpenValue
      * @throws Exception
      */
-    private void updateCloseValve(PrController controller,
+    private void updateCloseValve(SeClient clientVo,
+                                  PrController controller,
                                   RmOpenCloseValveLast poLast,
                                   RmOpenCloseValveHistory poHistory,
                                   DataV1_0_1 dV1_0_1,
                                   DataCd83CloseVo dataCd83CloseVo,
-                                  boolean clearOpenValve) throws Exception {
+                                  boolean clearLastOpenValue) throws Exception {
+        poLast.clientId = clientVo==null?null:clientVo.getId() ;
+        poLast.clientName = clientVo==null?null:clientVo.getName() ;
         poLast.controllerId = controller==null?null:controller.getId();
         poLast.intakeId = controller==null?null:controller.getIntakeId();
 
-        poLast.updateFrom(dV1_0_1, dataCd83CloseVo, clearOpenValve);
+        poLast.updateFrom(dV1_0_1, dataCd83CloseVo, clearLastOpenValue);
 
         if(poHistory != null){
+            poHistory.clientId = clientVo==null?null:clientVo.getId() ;
+            poHistory.clientName = clientVo==null?null:clientVo.getName() ;
             poHistory.controllerId = controller==null?null:controller.getId();
             poHistory.intakeId = controller==null?null:controller.getIntakeId();
 
-            poHistory.updateFrom(dV1_0_1, dataCd83CloseVo, clearOpenValve);
+            poHistory.updateFrom(dV1_0_1, dataCd83CloseVo, false);
         }
 
     }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java
new file mode 100644
index 0000000..07ecd63
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealIntakeAmountDay.java
@@ -0,0 +1,315 @@
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast;
+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: liurunyu
+ * @Date: 2024/7/8 19:00
+ * @Description 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+ */
+public class TkDealIntakeAmountDay extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealLoss.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealIntakeAmountDay";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        Object cdObj = dV1_0_1.subData;
+        if (cdObj != null && (cdObj instanceof DataCdC0Vo
+            || cdObj instanceof DataCd84Vo
+            || cdObj instanceof DataCd83OpenVo
+            || cdObj instanceof DataCd83CloseVo)){
+            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            PrController controller = (PrController)objs[1] ;
+            try{
+                UpDataVo vo = new UpDataVo() ;
+                if(cdObj instanceof DataCdC0Vo){
+                    vo.valueFrom((DataCdC0Vo)cdObj, null, null, null);
+                }else if(cdObj instanceof DataCd84Vo){
+                    vo.valueFrom(null, (DataCd84Vo)cdObj, null, null);
+                }else if(cdObj instanceof DataCd83OpenVo){
+                    vo.valueFrom(null,null,  (DataCd83OpenVo)cdObj,null);
+                }else if(cdObj instanceof DataCd83CloseVo){
+                    vo.valueFrom(null,null,null, (DataCd83CloseVo)cdObj);
+                }
+                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, vo);
+            }catch (Exception e){
+                log.error("淇濆瓨鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲忔暟鎹椂鍙戠敓寮傚父", e);
+            }
+        }
+    }
+
+    /**
+     * 涓氬姟澶勭悊
+     * @param sv             鏈嶅姟
+     * @param controller     鎺у埗鍣ㄥ璞�
+     * @param rtuAddr        鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1        涓婃姤鏁版嵁
+     * @param dataVo         涓婃姤鏁版嵁瀵硅薄
+     */
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo dataVo) throws Exception {
+        RmIntakeAmountDayLast poLast = sv.getRmIntakeAmountLast(controller.getIntakeId());
+        if (poLast == null) {
+            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍙栨按鍙g殑婕忔崯鏁版嵁
+            //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
+            poLast = this.newRmIntakeAmountLast(controller, rtuAddr, dV1_0_1, dataVo);
+            this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+            sv.saveRmIntakeAmountLast(poLast);
+        } else {
+            if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).before(poLast.rtuDtLast)){
+                //RTU鏃堕挓鏃╀簬鏈湴RTU鏃堕挓锛屾槸琛ユ姤锛岃ˉ鎶ユ病娉曡绠楀彇姘村彛鏃ョ疮璁″彇姘撮噺锛屽洜涓洪噰鐢ㄧ殑鏄疮璁℃祦閲忕浉宸殑璁$畻鏂规硶
+            }else if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).equals(poLast.rtuDtLast)){
+                //RTU鏃堕挓绛変簬鏈湴RTU鏃堕挓锛岄噸澶嶄笂鎶ユ暟鎹紝涓嶈繘琛屼换浣曞鐞�
+            }else{
+                //涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿绗﹀悎鍙绠楃殑鏉′欢
+                if(!rtuAddr.equals(poLast.rtuAddrLast)){
+                    //鏇存崲浜嗘帶鍒跺櫒锛屽彧鏇存崲鎺у埗鍣ㄥ湴鍧�锛屼笉杩涜姘撮噺璁$畻
+                    poLast = this.updateRmIntakeAmountLastByControllerChange(poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                    //鍥犱负涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿鏄彲杩涜璁$畻鐨勶紝鎵�浠ユ柊鐢熸垚涓�涓巻鍙茶褰�
+                    this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                    sv.saveRmIntakeAmountLast(poLast);
+                }else{
+                    //鏈洿鎹㈡帶鍒跺櫒
+                    if(DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt).equals(poLast.dt)){
+                        //鍚屼竴澶╂暟鎹�
+                        poLast = this.updateRmIntakeAmountLastBySameDateNewData(poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                        RmIntakeAmountDay poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmIntakeAmountDay(poLast.lastHistoryId) ;
+                        }
+                        if(poHistory == null){
+                            this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                        }else{
+                            poHistory = this.updateRmIntakeAmountBySameDateNewData(poHistory, poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                            sv.updateRmIntakeAmountDay(poHistory);
+                        }
+                        sv.saveRmIntakeAmountLast(poLast);
+                    }else if(DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt).after(poLast.dt)){
+                        //鏂扮殑鏃ユ湡
+                        poLast = this.updateRmIntakeAmountLastByNewDateNewData(poLast, controller, rtuAddr, dV1_0_1, dataVo);
+                        this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataVo, poLast);
+                        sv.saveRmIntakeAmountLast(poLast);
+                    }else{
+                        //杩欑鎯呭喌涓嶅瓨鍦�
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDayLast newRmIntakeAmountLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        RmIntakeAmountDayLast po = new RmIntakeAmountDayLast() ;
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.controllerIdLast = controller==null?null:controller.getId();
+        po.totalAmountLast = cdData.totalAmount ;
+        po.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        po.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        po.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        po.amount = 0.0D ;
+        po.rtuAddrLast = rtuAddr;
+        return po ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鍘嗗彶璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDay newRmIntakeAmountDay(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData, RmIntakeAmountDayLast lastPo)throws Exception {
+        RmIntakeAmountDay po = new RmIntakeAmountDay() ;
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.controllerIdLast = controller==null?null:controller.getId();
+        po.rtuAddrLast = rtuAddr;
+        po.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        po.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        po.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        if(lastPo != null){
+            po.amount = lastPo.amount ;
+        }else{
+            po.amount = 0.0D ;
+        }
+        po.amount = lastPo==null?0.0D:lastPo.amount ;
+        po.totalAmountLast = cdData.totalAmount ;
+        return po ;
+    }
+
+
+    /**
+     * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCdC0Vo
+     * @param poLast
+     * @throws Exception
+     * @return RmIntakeAmountDay
+     */
+    private RmIntakeAmountDay newAndSaveHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo dataCdC0Vo, RmIntakeAmountDayLast poLast)throws Exception {
+        RmIntakeAmountDay poHistory = this.newRmIntakeAmountDay(controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast) ;
+        sv.saveRmIntakeAmountDay(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+        return poHistory ;
+    }
+
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDayLast updateRmIntakeAmountLastByControllerChange(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        lastPo.intakeId = controller==null?null:controller.getIntakeId();
+        lastPo.controllerIdLast = controller==null?null:controller.getId();
+        lastPo.rtuAddrLast = rtuAddr;
+        lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
+        lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        //lastPo.amount = lastPo.amount ; //绱鍙栨按閲忎笉鍙�
+        lastPo.totalAmountLast = cdData.totalAmount ;
+        return lastPo ;
+    }
+
+    /**
+     * 鏇存柊鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDayLast updateRmIntakeAmountLastBySameDateNewData(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        lastPo.intakeId = controller==null?null:controller.getIntakeId();
+        lastPo.controllerIdLast = controller==null?null:controller.getId();
+        lastPo.rtuAddrLast = rtuAddr;
+        //lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);//鏃ユ湡娌″彉
+        lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        Double difference = cdData.totalAmount - lastPo.totalAmountLast ;
+        if(difference > 0){
+            lastPo.amount = difference;
+        }else{
+            //po.amount = po.amount ; //绱鍙栨按閲忎笉鍙�
+        }
+        lastPo.totalAmountLast = cdData.totalAmount ;
+        return lastPo ;
+    }
+
+
+    /**
+     * 鏇存柊鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDayLast updateRmIntakeAmountLastByNewDateNewData(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        lastPo.intakeId = controller==null?null:controller.getIntakeId();
+        lastPo.controllerIdLast = controller==null?null:controller.getId();
+        lastPo.rtuAddrLast = rtuAddr;
+        lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);//鏃ユ湡鍙樹簡
+        lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        Double difference = cdData.totalAmount - lastPo.totalAmountLast ;
+        if(difference > 0){
+            lastPo.amount = difference;
+        }else{
+            lastPo.amount = 0.0D; //鏃ョ疮璁℃按閲忓綊0
+        }
+        lastPo.totalAmountLast = cdData.totalAmount ;
+        return lastPo ;
+    }
+
+    /**
+     * 鏇存柊鍘嗗彶璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param cdData
+     * @return
+     * @throws Exception
+     */
+    private RmIntakeAmountDay updateRmIntakeAmountBySameDateNewData(RmIntakeAmountDay po, RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, UpDataVo cdData)throws Exception {
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.controllerIdLast = controller==null?null:controller.getId();
+        po.rtuAddrLast = rtuAddr;
+        po.dt = lastPo.dt ;
+        po.dtLast = lastPo.dtLast;
+        po.rtuDtLast = lastPo.rtuDtLast;
+
+        po.amount = lastPo.amount ;
+        po.totalAmountLast = lastPo.totalAmountLast ;
+
+        return po ;
+    }
+
+
+    public class UpDataVo{
+        public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
+        public String rtuDt ;//鎺у埗鍣ㄦ椂閽�
+
+        public void valueFrom(DataCdC0Vo voC0, DataCd84Vo vo84, DataCd83OpenVo vo83Op, DataCd83CloseVo vo83Cl){
+            if(voC0 != null){
+                this.totalAmount = voC0.totalAmount ;
+                this.rtuDt = voC0.rtuDt ;
+            }else if(vo84 != null){
+                this.totalAmount = vo84.totalAmount ;
+                this.rtuDt = vo84.rtuDt ;
+            }else if(vo83Op != null){
+                this.totalAmount = vo83Op.totalAmount ;
+                this.rtuDt = vo83Op.rtuDt ;
+            }else if(vo83Cl != null){
+                this.totalAmount = vo83Cl.totalAmount ;
+                this.rtuDt = vo83Cl.rtuDt ;
+            }
+        }
+
+    }
+
+
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
index 1dc4192..828d061 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -1,5 +1,7 @@
 package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
+import com.dy.pipIrrGlobal.pojoRm.RmLossHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
@@ -7,8 +9,6 @@
 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.RmLossHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -16,7 +16,7 @@
  * @Author liurunyu
  * @Date 2024/2/28 16:31
  * @LastEditTime 2024/2/28 16:31
- * @Description 鎺у埗鍣ㄦ紡鎹熺粺璁�
+ * @Description 鍙栨按鍙f紡鎹熺粺璁�
  */
 public class TkDealLoss extends TaskSurpport {
 
@@ -42,7 +42,7 @@
             try{
                 this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCdC0Vo)cdObj);
             }catch (Exception e){
-                log.error("淇濆瓨閬ユ祴绔欒嚜鎶ュ疄鏃舵暟鎹腑鐨勬紡鎹熸暟鎹椂鍙戠敓寮傚父", e);
+                log.error("淇濆瓨鍙栨按鍙f紡鎹熺粺璁℃暟鎹椂鍙戠敓寮傚父", e);
             }
         }
     }
@@ -58,7 +58,7 @@
     private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
         RmLossLast poLast = sv.getRmLossLast(controller.getIntakeId());
         if (poLast == null) {
-            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑婕忔崯鏁版嵁
+            //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍙栨按鍙g殑婕忔崯鏁版嵁
             //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
             poLast = this.newRmLossLast(controller, rtuAddr, dV1_0_1, dataCdC0Vo);
             this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast);
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index 5d98c04..bf4f33d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -5,9 +5,11 @@
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo;
 import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -40,8 +42,9 @@
             Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
             DbSv sv = (DbSv)objs[0] ;
             PrController controller = (PrController)objs[1] ;
+            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
             try{
-                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd83OpenVo)cdObj) ;
+                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd83OpenVo)cdObj) ;
             }catch (Exception e){
                 log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
             }
@@ -50,49 +53,60 @@
     /**
      * 涓氬姟澶勭悊
      * @param sv 鏈嶅姟
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dV1_0_1 涓婃姤鏁版嵁
      * @param dataCd83OpenVo 寮�闃�涓婃姤鏁版嵁瀵硅薄
      */
-    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
         RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ;
         if(poLast == null){
             //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁
             //棣栧厛鐢熸垚寮�鍏抽榾鐨勬渶鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
-            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83OpenVo);
-            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+            poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo);
+            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
             sv.saveRmOpenCloseValveLast(poLast);
         }else{
             //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
-            if(poLast.opType != null){
+            if(poLast.openDt != null && poLast.opIcCardAddr != null && poLast.opIcCardNo != null){
+                if(poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))
+                    && poLast.opIcCardAddr.equals(dataCd83OpenVo.icCardAddr)
+                    && poLast.opIcCardNo.equals(dataCd83OpenVo.icCardNo)){
+                    //閲嶅涓婃姤锛屽師鍥犳槸涓嬭鏁版嵁澶勭悊鎱簡锛屽氨閲嶅涓婃姤浜�
+                    return ;
+                }
+            }
+             if(poLast.opType != null){
                 //鍘熻褰曞瓨鍦ㄥ紑闃�鏁版嵁锛岄鍏堣繘琛屾椂闂村姣�
-                if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
-                    //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鏁版嵁锛屼笉杩涜澶勭悊
-                }else if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
-                    //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊
-                }else{
+                 if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                     //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊
+                 }else if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                    //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鏁版嵁(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                    this.dealSupplyReport() ;
+                }else {
                     //褰撳墠寮�闃�涓婃姤鏄柊鐨勪竴娆″紑闃�锛屼笉绠″師璁板綍鏄惁瀛樺湪鍏抽榾鏁版嵁锛屼竴寰嬫竻绌哄叧闃�鏁版嵁
-                    this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                    this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
                     //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                    this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
                 }
             }else if(poLast.clType != null){
                 //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁锛屼絾瀛樺湪鍏抽榾鏁版嵁锛岄鍏堣繘琛屾椂闂存瘮瀵�
-                if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
-                    //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鎶ユ暟鎹紝涓嶈繘琛屽鐞�
-                }else if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
-                    //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁锛屾妸鏈�鏂�(last)鏁版嵁涓殑鍏抽榾鍐呭娓呯┖
-                    this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
-                    //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                 if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                     //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁锛屾妸鏈�鏂�(last)鏁版嵁涓殑鍏抽榾鍐呭娓呯┖
+                     this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                     //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                     this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                 }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
+                    //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鎶ユ暟鎹�(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                    this.dealSupplyReport() ;
                 }else {
                     //褰撳墠涓婃姤鐨勫紑闃�鏁版嵁涓庡師鏉ョ殑鍏抽榾鏁版嵁鍚屼竴鏃堕棿锛岃繖绉嶆儏鍐靛簲璇ヤ笉瀛樺湪锛屼絾涔熷鐞�
                     RmOpenCloseValveHistory poHistory = null ;
                     if(poLast.lastHistoryId != null){
                         poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
                     }
-                    this.updateOpenValve(controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
+                    this.updateOpenValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
                     if(poHistory != null){
                         sv.updateRmOpenCloseValveHistory(poHistory);
                     }
@@ -100,18 +114,23 @@
             }else{
                 //if(poLast.opType == null && po.clType == null)
                 //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
-                this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
                 //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
+                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
             }
 
             sv.updateRmOpenCloseValveLast(poLast);
         }
     }
 
+    private void dealSupplyReport(){
+
+    }
+
     /**
      * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
      * @param sv
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -119,8 +138,8 @@
      * @param poLast
      * @throws Exception
      */
-    private void newHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception {
-        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83OpenVo) ;
+    private void newHistoryDataDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo) ;
         sv.saveRmOpenCloseValveHistory(poHistory);
         //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
         poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
@@ -128,6 +147,7 @@
 
     /**
      * 鐢熸垚鏂扮殑寮�闃�涓婃姤鏈�鏂版暟鎹褰�
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -135,8 +155,10 @@
      * @return
      * @throws Exception
      */
-    private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
+    private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
         RmOpenCloseValveLast po = new RmOpenCloseValveLast() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
         po.controllerId = controller==null?null:controller.getId() ;
         po.intakeId = controller==null?null:controller.getIntakeId() ;
         po.rtuAddr = rtuAddr ;
@@ -147,6 +169,7 @@
 
     /**
      * 鐢熸垚鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -154,8 +177,10 @@
      * @return
      * @throws Exception
      */
-    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
+    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception {
         RmOpenCloseValveHistory po = new RmOpenCloseValveHistory() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
         po.controllerId = controller==null?null:controller.getId() ;
         po.intakeId = controller==null?null:controller.getIntakeId() ;
         po.rtuAddr = rtuAddr ;
@@ -166,23 +191,34 @@
 
     /**
      * 鏇存柊鏁版嵁
+     * @param clientVo
      * @param controller
      * @param poLast
      * @param poHistory
      * @param dV1_0_1
      * @param dataCd83OpenVo
-     * @param clearCloseValve
+     * @param clearLastCloseValve
      * @throws Exception
      */
-    private void updateOpenValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+    private void updateOpenValve(SeClient clientVo,
+                                 PrController controller,
+                                 RmOpenCloseValveLast poLast,
+                                 RmOpenCloseValveHistory poHistory,
+                                 DataV1_0_1 dV1_0_1,
+                                 DataCd83OpenVo dataCd83OpenVo,
+                                 boolean clearLastCloseValve) throws Exception {
+        poLast.clientId = clientVo==null?null:clientVo.getId() ;
+        poLast.clientName = clientVo==null?null:clientVo.getName() ;
         poLast.controllerId = controller==null?null:controller.getId();
         poLast.intakeId = controller==null?null:controller.getIntakeId();
-        poLast.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve);
+        poLast.updateFrom(dV1_0_1, dataCd83OpenVo, clearLastCloseValve);
 
         if(poHistory != null){
+            poLast.clientId = clientVo==null?null:clientVo.getId() ;
+            poLast.clientName = clientVo==null?null:clientVo.getName() ;
             poHistory.controllerId = controller==null?null:controller.getId();
             poHistory.intakeId = controller==null?null:controller.getIntakeId();
-            poHistory.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve);
+            poHistory.updateFrom(dV1_0_1, dataCd83OpenVo, false);
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
index b7df2fa..c24d04f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -1,5 +1,6 @@
 package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
@@ -37,8 +38,9 @@
             Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
             DbSv sv = (DbSv)objs[0] ;
             PrController controller = (PrController)objs[1] ;
+            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
             try{
-                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ;
+                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ;
             }catch (Exception e){
                 log.error("淇濆瓨鎺у埗鍣ㄩ榾寮�宸ヤ綔鎶ユ椂鍙戠敓寮傚父", e);
             }
@@ -47,33 +49,39 @@
     /**
      * 澶勭悊闃�寮�宸ヤ綔鎶ユ暟鎹�
      * @param sv 鏈嶅姟
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dataCd84Vo 宸ヤ綔鎶ユ暟鎹璞�
      */
-    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
-        this.saveOrUpdateLast(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
-        this.saveHistory(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
+        this.saveOrUpdateLast(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd84Vo);
+        this.saveHistory(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd84Vo);
     }
 
     /**
      * 淇濆瓨闃�寮�宸ヤ綔鎶ユ渶鏂版暟鎹�
      * @param sv
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
      * @param cdData
      */
-    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
+    private void saveOrUpdateLast(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
         RmWorkReportLast po = sv.getRmWorkReportLast(controller.getIntakeId()) ;
         if(po == null){
             po = new RmWorkReportLast() ;
+            po.clientId = clientVo==null?null:clientVo.getId() ;
+            po.clientName = clientVo==null?null:clientVo.getName() ;
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.rtuAddr = rtuAddr;
             po.valueFrom(dV1_0_1, cdData);
             sv.saveRmWorkReportLast(po) ;
         }else{
+            po.clientId = clientVo==null?null:clientVo.getId() ;
+            po.clientName = clientVo==null?null:clientVo.getName() ;
             po.controllerId = controller==null?null:controller.getId();
             po.intakeId = controller==null?null:controller.getIntakeId();
             po.valueFrom(dV1_0_1, cdData);
@@ -83,13 +91,16 @@
     /**
      * 淇濆瓨闃�寮�宸ヤ綔鎶ュ巻鍙叉暟鎹�
      * @param sv
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
      * @param cdData
      */
-    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
+    private void saveHistory(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
         RmWorkReportHistory po = new RmWorkReportHistory();
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
         po.controllerId = controller==null?null:controller.getId();
         po.intakeId = controller==null?null:controller.getIntakeId();
         po.rtuAddr = rtuAddr;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
index 6770b91..c49c3c0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
@@ -3,6 +3,10 @@
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.CommandType;
 import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.*;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
@@ -35,6 +39,7 @@
 		if(sv != null){
 			PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ;
 			PrControllerTramp controllerTramp = null ;
+			SeClient clientVo = null ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
 			if(controller == null){
 				//鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)
 				//娴佹氮鑰呮帶鍒跺櫒
@@ -45,9 +50,14 @@
 					//绗竴娆″彂鐜帮紝涓嬪彂娓呯┖RTU鍘嗗彶鍛戒护锛屼互浣垮叾閲嶆柊寮�濮嬭褰曟柊鍦扮偣鐨勬暟鎹�
 					this.sendClearCommand(rtuAddr, d.protocol);
 				}
+			}else{
+				if(d.subData != null && d.subData instanceof DataV1_0_1){
+					DataV1_0_1 d1 = (DataV1_0_1)d.subData ;
+					clientVo = this.getClient(sv, d1);
+				}
 			}
 			//涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘
-			this.taskResult = new Object[]{sv, controller, controllerTramp} ;
+			this.taskResult = new Object[]{sv, controller, controllerTramp, clientVo} ;
 			this.toNextTasks(data);
 		}else{
 			log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
@@ -55,6 +65,42 @@
 	}
 
 	/**
+	 * 寰楀埌鐩稿叧鍐滄埛淇℃伅
+	 */
+	private SeClient getClient(DbSv sv, DataV1_0_1 d1){
+		SeClient clientVo = null ;
+		if(d1.subData != null &&
+				(d1.subData instanceof DataCd83OpenVo ||
+						d1.subData instanceof DataCd83CloseVo ||
+						d1.subData instanceof DataCd84Vo)){
+			//寮�闃�鍚庯紝鍏抽榾鎶ワ紝闃�寮�宸ヤ綔鎶�
+			String icCardAddr = null ;
+			String icCardNo = null ;
+			if(d1.subData instanceof DataCd83OpenVo){
+				DataCd83OpenVo vo = (DataCd83OpenVo)d1.subData ;
+				icCardAddr = vo.icCardAddr ;
+				icCardNo = vo.icCardNo ;
+			}else if(d1.subData instanceof DataCd83CloseVo){
+				DataCd83CloseVo vo = (DataCd83CloseVo)d1.subData ;
+				icCardAddr = vo.icCardAddr ;
+				icCardNo = vo.icCardNo ;
+			}else if(d1.subData instanceof DataCd84Vo){
+				DataCd84Vo vo = (DataCd84Vo)d1.subData ;
+				icCardAddr = vo.cardAddr ;
+				icCardNo = vo.cardNo ;
+			}
+			if(icCardAddr != null && icCardNo != null){
+				if(icCardAddr.equals(ProtocolConstantV206V1_0_0.vsCardAddr)){
+					clientVo = sv.getClientIdAndNameByVsCardNo(icCardNo) ;
+				}else{
+					clientVo = sv.getClientIdAndNameByCardAddrAndCardNo(icCardAddr, icCardNo) ;
+				}
+			}
+		}
+		return clientVo ;
+	}
+
+	/**
 	 * 鍙戦�佹竻绌篟TU鐨勫懡浠�
 	 * @param rtuAddr
 	 * @param protocol
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 9b1f6c7..5faedf0 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
@@ -20,7 +20,8 @@
 							<task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤(鍔熻兘鐮�84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
 							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
 							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
-							<task id="TkDealLoss" name="鎺у埗鍣ㄦ紡鎹熺粺璁�(鍔熻兘鐮丆0)锛堝緟鏂板崗璁嚭鏉ュ悗淇敼瀹炵幇锛�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
+							<task id="TkDealLoss" name="鍙栨按鍙f棩婕忔崯閲�(鍔熻兘鐮丆0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
+							<task id="TkDealIntakeAmountDay" name="鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�(鍔熻兘鐮�84銆佸姛鑳界爜83銆佸姛鑳界爜C0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealIntakeAmountDay" />
 						</task>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
index 820529d..1523ef4 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -3,7 +3,7 @@
     datasource: #閰嶇疆鏁版嵁婧�
         type: com.alibaba.druid.pool.DruidDataSource
         driver-class-name: com.mysql.cj.jdbc.Driver
-        url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+        url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         username: root
         password: dysql,;.abc!@#
         druid:
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index ef353e2..e096222 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -12,7 +12,7 @@
 		commandSendInterval: 閽堝涓�涓猂TU锛屼笅鍙戝懡浠ょ殑鏃堕棿闂撮殧(绉�)
 		cachWaitResultTimeout: 鍛戒护宸茬粡鍙戦�佽揪鏈�澶ф鏁帮紝浠嶆湭鏀跺埌鍛戒护缁撴灉锛岄渶瑕佸湪缂撳瓨缁х画绛夊緟锛屽叾绛夊緟鏈�澶ф椂闀�(绉�)锛屾湰绯荤粺RTU锛屽浜庡紑鍏虫车鍛戒护锛屽叾鍏堟墽琛屽紑鍏虫车鎶ワ紝鐒跺悗鍐嶈繘琛屽懡浠ゅ簲绛旓紝鎵�浠ユ鍊� 瑕佸ぇ涓�浜�
 		offLineCachTimeout: 涓嶅湪绾跨紦瀛樼殑鍛戒护鏈�澶х紦瀛樻椂闀�(绉�)
-		lastUpDataTimeLive: TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱(绉�)锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婅鏁版嵁鍚屾椂涓嬪彂鏁版嵁锛屽洜涓篟TU澶勭悊涓嶈繃鏉�(缁忓垵娆″疄楠岋紝1绉掕繕鏄湁闂锛�2绉掓棤闂)
+		lastUpDataTimeLive: TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱(姣)锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婅鏁版嵁鍚屾椂涓嬪彂鏁版嵁锛屽洜涓篟TU澶勭悊涓嶈繃鏉�(缁忓垵娆″疄楠岋紝1绉掕繕鏄湁闂锛�2绉掓棤闂)
 		dbDataIdSuffix锛氭暟鎹簱鏁版嵁id鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 
 		cacheUpDownDataWarnCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鎶ヨ閲忥紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
 		cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
@@ -22,10 +22,10 @@
 			isLowPower="false"
 			onlyOneProtocol="true"
 			downComandMaxResendTimes="1"
-			commandSendInterval="3"
+			commandSendInterval="2"
 			cachWaitResultTimeout="60"
 			offLineCachTimeout="86400"
-			lastUpDataTimeLive="1"
+			lastUpDataTimeLive="500"
 			dbDataIdSuffix="0"
 			cacheUpDownDataWarnCount="100000"
 			cacheUpDownDataMaxCount="110000"
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
index 78aa00a..4224bb4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
@@ -23,7 +23,7 @@
 
     protected static String rtuAddr = "532328059995" ;
     protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ;
-    protected static String icCardNo = "7044010686" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
+    protected static String vsIcCardNo = "7044010666" ;//铏氭嫙IC鍗$紪鍙凤紙鐢ㄦ埛铏氭嫙鍗″簭鍒楀彿锛�
 
 
     @Autowired
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
index b3165b2..f784196 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -163,7 +163,7 @@
     //APP杩滅▼寮�闃�
     private BaseResponse cd97(){
         Com97Vo comVo = new Com97Vo() ;
-        comVo.icCardNo = CommandP206V1_0_0Ctrl.icCardNo ;
+        comVo.icCardNo = CommandP206V1_0_0Ctrl.vsIcCardNo;
         comVo.moneyRemain = 234.56 ;
         comVo.waterPrice = 1.2 ;
         return this.sendCom2Mw(this.command(CodeV1_0_1.cd_97, comVo, null)) ;
@@ -171,7 +171,7 @@
     //APP杩滅▼鍏抽榾
     private BaseResponse cd98(){
         Com98Vo comVo = new Com98Vo() ;
-        comVo.icCardNo = CommandP206V1_0_0Ctrl.icCardNo ;
+        comVo.icCardNo = CommandP206V1_0_0Ctrl.vsIcCardNo;
         return this.sendCom2Mw(this.command(CodeV1_0_1.cd_98, comVo, null)) ;
     }
 

--
Gitblit v1.8.0