From b8e8696b61f4a896b16269157e7b85aa7b590009 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 27 三月 2024 17:13:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java |   17 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossHistoryMapper.xml                                             |  144 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java             |  159 ++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java                            |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java                                 |   71 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml                                          |  169 ++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java                            |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java                                                |    5 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java                            |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java  |   25 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java                              |   66 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml                                          |   25 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java               |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java                    |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml                                           |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java                         |  149 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java                             |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java                             |   98 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml                                          |    7 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml                                          |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java                                |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java                                |   99 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java                           |   64 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java                                      |   95 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                                   |   48 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java             |   51 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java                                  |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java                        |   55 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java                                      |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java                            |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossLastMapper.xml                                                |  162 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml                                       |  162 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml                                              |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml                                       |   25 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java                      |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java                                   |   88 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java       |   13 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java                             |    1 
 /dev/null                                                                                                                   |  151 ---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml                                       |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java                                |   12 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java       |  117 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java      |   24 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                                      |   48 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java                         |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java                        |    3 
 46 files changed, 1,958 insertions(+), 301 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
index 0cacb5b..e7660e8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java
@@ -9,6 +9,8 @@
 public class DataCd81Vo {
     public DataAlarmVo alarmVo ;//鎶ヨ
     public DataStateVo stateVo ;//鐘舵��
+    public String rtuDt ;//鎺у埗鍣ㄦ椂閽�
+
     public String toString(){
         StringBuilder sb = new StringBuilder() ;
         sb.append("   缁堢闅忔満鑷姤鏁版嵁:\n");
@@ -20,6 +22,9 @@
             sb.append(stateVo.toString());
             sb.append("\n");
         }
+        sb.append("      鎺у埗鍣ㄦ椂閽燂細");
+        sb.append(rtuDt==null?"":rtuDt);
+        sb.append("\n");
         return sb.toString() ;
     }
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
index 35ab2c6..cc5913f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java
@@ -3,13 +3,13 @@
 import lombok.Data;
 
 /**
- * 闃�寮�宸ヤ綔鎶�
+ * 闃�寮�宸ヤ綔鎶ワ紙姣忓嚑鍗佺涓婃姤涓�娆★紝涓婃姤闂撮殧鍙缃級
  */
 @Data
 public class DataCd84Vo {
     public String cardNo ;//IC鍗$紪鍙�
     public Double remainMoney ;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏�
-    public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
+    public Double totalAmount; //绱娴侀噺锛堟湰娆″紑闃�浠ユ潵鐨勭疮璁℃祦閲忥級锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
     public Double instantAmount; //鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h銆�
     public String rtuDt ;//鎺у埗鍣ㄦ椂閽�
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
index d505fa1..b6c5695 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
@@ -9,7 +9,7 @@
 public class DataCdC0Vo {
     public Double instantAmount; //鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h銆�
     public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
-    public Double lossAmount; //鎹熷け娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
+    public Double lossAmount; //鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
     public Double waterPress; //姘村帇锛�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~999999.99锛屽崟浣嶄负KPa銆�
     public Double batteryVolt;//钃勭數姹犵數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V銆�
     public Double sunVolt ;//澶槼鑳界數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V銆�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java
index f8533c2..eec3559 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java
@@ -95,5 +95,8 @@
         cdData.stateVo = GlParse.parseState(bs, index) ;
         index += 2 ;
 
+        //鎺у埗鍣ㄦ椂閽�
+        cdData.rtuDt = GlParse.parseTp(bs, index) ;
+
     }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
index 1e04eeb..be8a88a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -385,7 +385,10 @@
 	public static Date dateFrom_yyyy_MM_dd(String yyyy_MM_dd) throws Exception {
 		return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
 	}
-	
+	public static Date dateFrom_yyyy_MM_dd1(String yyyy_MM_dd_HH_mm_ss) throws Exception {
+		return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
+	}
+
 	public static Date dateFrom_yyyyMMddHHmmss(String yyyyMMddHHmmss) throws Exception {
 		return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
 	}
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
index ba874ff..51e6dae 100644
--- 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
@@ -1,6 +1,5 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
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
new file mode 100644
index 0000000..5b43fad
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossHistoryMapper.java
@@ -0,0 +1,66 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmLossHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
+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/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
new file mode 100644
index 0000000..5d4ca7b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
@@ -0,0 +1,71 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmLossLast;
+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 rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @return object by rtuAddr
+     */
+    List<RmLossLast> selectByRtuAddr(String rtuAddr) ;
+   /**
+     * 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/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
new file mode 100644
index 0000000..cb35a59
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
@@ -0,0 +1,55 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/28 8:52
+ * @LastEditTime 2024/2/28 8:52
+ * @Description
+ */   
+@Mapper
+public interface RmWorkReportHistoryMapper {
+    /**
+     * 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(RmWorkReportHistory record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmWorkReportHistory record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmWorkReportHistory selectByPrimaryKey(Long id);
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmWorkReportHistory record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmWorkReportHistory record);
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..3d964ac
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
@@ -0,0 +1,64 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/28 8:52
+ * @LastEditTime 2024/2/28 8:52
+ * @Description
+ */   
+@Mapper
+public interface RmWorkReportLastMapper {
+    /**
+     * 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(RmWorkReportLast record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(RmWorkReportLast record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    RmWorkReportLast selectByPrimaryKey(Long id);
+
+    /**
+     * select by primary key
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @return object by rtuAddr
+     */
+    List<RmWorkReportLast> selectByRtuAddr(String rtuAddr);
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(RmWorkReportLast record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(RmWorkReportLast record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
index 7701176..4cc887d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java
@@ -52,17 +52,23 @@
     /**
      * 鎺у埗鍣ㄥ湴鍧�
      */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String rtuaddr;
 
     /**
      * 涓婃姤鏃ユ湡鏃堕棿
      */
-    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date dt;
 
     /**
+     * 鎺у埗鍣ㄦ椂閽�
+     */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtudt;
+    /**
      * 鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)
      */
     @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
index 24a6aab..372fded 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java
@@ -31,6 +31,7 @@
     /**
     * 涓婚敭
     */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
@@ -52,17 +53,24 @@
     /**
     * 鎺у埗鍣ㄥ湴鍧�
     */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String rtuaddr;
 
     /**
     * 涓婃姤鏃ユ湡鏃堕棿
     */
-    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date dt;
 
     /**
+    * 鎺у埗鍣ㄦ椂閽�
+    */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtudt;
+
+    /**
     * 鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)
     */
     @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
index 6a306d3..1ddc251 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
@@ -31,6 +31,7 @@
     /**
      * 涓婚敭
      */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
index a0f9424..d3b1f04 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
@@ -31,6 +31,7 @@
     /**
      * 涓婚敭
      */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
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 a8e6cff..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
+++ /dev/null
@@ -1,90 +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)
-    public Double amount;
-
-    /**
-    * 绱婕忔崯姘撮噺
-    */
-    @Schema(description = "绱婕忔崯姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-   public Double loss;
-
-    /**
-    * 鏈�鍚庤姘撮噺鐨勬帶鍒跺櫒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
new file mode 100644
index 0000000..6379112
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java
@@ -0,0 +1,88 @@
+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/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;
+
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..cf86424
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java
@@ -0,0 +1,95 @@
+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/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;
+
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
index 01cac87..8cc409c 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
@@ -31,6 +31,7 @@
     /**
      * 涓婚敭
      */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
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 eb5cb35..8950a0f 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
@@ -30,6 +30,7 @@
     /**
      * 涓婚敭
      */
+    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     public Long id;
@@ -38,6 +39,7 @@
      * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
      * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
      */
+    @Schema(hidden=true)
     @JSONField(serialize = false)
     public Long lastHistoryId;
 
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
new file mode 100644
index 0000000..2dff0cd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
@@ -0,0 +1,98 @@
+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/2/28 8:52
+ * @LastEditTime 2024/2/28 8:52
+ * @Description 缁堢宸ヤ綔鎶ュ巻鍙叉暟鎹�
+ */
+@TableName(value="rm_work_report_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "缁堢宸ヤ綔鎶ュ巻鍙叉暟鎹�")
+public class RmWorkReportHistory  implements BaseEntity {
+
+    public static final long serialVersionUID = 202402280859001L;
+    /**
+     * 涓婚敭
+     */
+    @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 HH:mm:ss")
+    public Date dt;
+
+    /**
+     * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
+     */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtuDt;
+
+    /**
+     * IC鍗$紪鍙�
+     */
+    @Schema(description = "IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String icCardNo;
+
+    /**
+     * 绱娴侀噺
+     */
+    @Schema(description = "绱娴侀噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double totalAmount;
+
+    /**
+     * 鐬椂娴侀噺
+     */
+    @Schema(description = "鐬椂娴侀噺锛坢3/h锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double instantAmount;
+
+    /**
+     * 鍓╀綑閲戦
+     */
+    @Schema(description = "鍓╀綑钂傞噾棰濓紙鍏冿級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double remainMoney;
+
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..30a39ed
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
@@ -0,0 +1,99 @@
+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/2/28 8:52
+ * @LastEditTime 2024/2/28 8:52
+ * @Description 缁堢鏈�鏂板伐浣滄姤
+ */
+
+@TableName(value="rm_work_report_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "缁堢鏈�鏂板伐浣滄姤")
+public class RmWorkReportLast implements BaseEntity {
+
+    public static final long serialVersionUID = 202402280855001L;
+    /**
+     * 涓婚敭
+     */
+    @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 HH:mm:ss")
+    public Date dt;
+
+    /**
+     * 寮�闃�鏃舵帶鍒跺櫒鏃堕挓
+     */
+    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtuDt;
+
+    /**
+    * IC鍗$紪鍙�
+    */
+    @Schema(description = "IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String icCardNo;
+
+    /**
+    * 绱娴侀噺
+    */
+    @Schema(description = "绱娴侀噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double totalAmount;
+
+    /**
+    * 鐬椂娴侀噺
+    */
+    @Schema(description = "鐬椂娴侀噺锛坢3/h锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double instantAmount;
+
+    /**
+    * 鍓╀綑閲戦
+    */
+    @Schema(description = "鍓╀綑钂傞噾棰濓紙鍏冿級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double remainMoney;
+
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
index f24306a..3b870e8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
@@ -5,6 +5,8 @@
 import com.dy.common.po.BaseEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -25,7 +27,7 @@
     @Schema(title = "ID")
     @ExcelProperty("ID")
     @ColumnWidth(10)
-    private Long id;
+    private String id;
 
     @Schema(title = "鎺у埗鍣ㄥ湴鍧�")
     @ExcelProperty("鎺у埗鍣ㄥ湴鍧�")
@@ -48,4 +50,9 @@
     @ExcelProperty("鍙戠幇鏃ユ湡鏃堕棿")
     @ColumnWidth(30)
     private Date findDt;
+
+    @Schema(title = "鍦ㄧ嚎鐘舵��")
+    @ExcelProperty("鍦ㄧ嚎鐘舵��")
+    @ColumnWidth(6)
+    private String onlineState;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java
index 02a7fd4..7973e6f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java
@@ -21,7 +21,7 @@
     @Schema(title = "ID")
     @ExcelProperty("ID")
     @ColumnWidth(10)
-    private Long id;
+    private String id;
 
     @Schema(title = "绠$綉娴侀噺鐩戞祴绔欏悕绉�")
     @ExcelProperty("绠$綉娴侀噺鐩戞祴绔欏悕绉�")
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index c0567a0..d9edbe5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -30,7 +30,7 @@
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
-    select 
+    select
     <include refid="Base_Column_List" />
     from pr_controller
     where id = #{id,jdbcType=BIGINT}
@@ -191,10 +191,12 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄨ褰�-->
   <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController">
     SELECT
+        CAST(con.id AS char) AS id,
         con.rtuAddr AS rtuAddr,
         inta.name AS intakeName,
+        "鍦ㄧ嚎" AS onlineState,
         (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
-        con.findDt
+        con.findDt AS findDt
     FROM pr_controller con
         INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
         INNER JOIN pr_intake inta ON con.intakeId = inta.id
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
index c0d4f0e..65ce426 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
@@ -214,7 +214,7 @@
         INNER JOIN ba_district country ON pfm.countyId = country.id
         INNER JOIN ba_district town ON pfm.townId = town.id
         INNER JOIN ba_district village ON pfm.villageId = village.id
-        INNER JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
+        LEFT JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
         <where>
             pfm.deleted = 0
             <if test = "name != null and name !=''">
@@ -228,7 +228,7 @@
 
     <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇娴侀噺鐩戞祴绔欏疄浣撹褰�-->
     <select id="getPrFlowMonitoring" parameterType="map" resultType="com.dy.pipIrrGlobal.voPr.VoFlowMonitoring">
-        select (@i:=@i+1)                                           AS id,
+        select  CAST(pfm.id AS char)                                 AS id,
                 CONCAT(country.`name`, town.`name`, village.`name`) AS address,
                 pfm.`name`                                          AS `name`,
                 pmofl.operateType                                   AS bindState
@@ -236,8 +236,7 @@
         INNER JOIN ba_district country ON pfm.countyId = country.id
         INNER JOIN ba_district town ON pfm.townId = town.id
         INNER JOIN ba_district village ON pfm.villageId = village.id
-        INNER JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id,
-        (SELECT @i:=0) AS itable
+        LEFT JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
         <where>
             pfm.deleted = 0
             <if test = "name != null and name !=''">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
index e62a0b0..4c29926 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -8,7 +8,8 @@
     <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
     <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+    <result column="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
     <result column="bateryVolt" jdbcType="TINYINT" property="bateryvolt" />
     <result column="loss" jdbcType="TINYINT" property="loss" />
     <result column="meter" jdbcType="TINYINT" property="meter" />
@@ -19,7 +20,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, bateryVolt, loss, meter, valve, icCard, 
+    id, controllerId, intakeId, rtuAddr, dt, rtuDt, bateryVolt, loss, meter, valve, icCard,
     working, valveState
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -37,12 +38,12 @@
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
     <!--@mbg.generated-->
     insert into rm_alarm_state_history (id, controllerId, intakeId, 
-      rtuAddr, dt, bateryVolt, 
+      rtuAddr, dt, rtuDt, bateryVolt,
       loss, meter, valve, 
       icCard, working, valveState
       )
     values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{bateryvolt,jdbcType=TINYINT}, 
+      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{bateryvolt,jdbcType=TINYINT},
       #{loss,jdbcType=TINYINT}, #{meter,jdbcType=TINYINT}, #{valve,jdbcType=TINYINT}, 
       #{iccard,jdbcType=TINYINT}, #{working,jdbcType=TINYINT}, #{valvestate,jdbcType=TINYINT}
       )
@@ -65,6 +66,9 @@
       </if>
       <if test="dt != null">
         dt,
+      </if>
+      <if test="rtudt != null">
+        rtuDt,
       </if>
       <if test="bateryvolt != null">
         bateryVolt,
@@ -102,7 +106,10 @@
         #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        #{dt,jdbcType=DATE},
+        #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtudt != null">
+        #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="bateryvolt != null">
         #{bateryvolt,jdbcType=TINYINT},
@@ -141,7 +148,10 @@
         rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
+        dt = #{dt,jdbcType=TIMESTAMP},
+      </if>
+     <if test="rtudt != null">
+       rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="bateryvolt != null">
         bateryVolt = #{bateryvolt,jdbcType=TINYINT},
@@ -173,7 +183,8 @@
     set controllerId = #{controllerid,jdbcType=BIGINT},
       intakeId = #{intakeid,jdbcType=BIGINT},
       rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       bateryVolt = #{bateryvolt,jdbcType=TINYINT},
       loss = #{loss,jdbcType=TINYINT},
       meter = #{meter,jdbcType=TINYINT},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
index 7a30f4f..a2c0d2f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -8,7 +8,8 @@
     <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
     <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
+    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+    <result column="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
     <result column="bateryVolt" jdbcType="TINYINT" property="bateryvolt" />
     <result column="loss" jdbcType="TINYINT" property="loss" />
     <result column="meter" jdbcType="TINYINT" property="meter" />
@@ -19,7 +20,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, bateryVolt, loss, meter, valve, icCard, 
+    id, controllerId, intakeId, rtuAddr, dt, rtuDt, bateryVolt, loss, meter, valve, icCard,
     working, valveState
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -46,12 +47,12 @@
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast">
     <!--@mbg.generated-->
     insert into rm_alarm_state_last (id, controllerId, intakeId, 
-      rtuAddr, dt, bateryVolt, 
+      rtuAddr, dt, rtuDt, bateryVolt,
       loss, meter, valve, 
       icCard, working, valveState
       )
     values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{bateryvolt,jdbcType=TINYINT}, 
+      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{bateryvolt,jdbcType=TINYINT},
       #{loss,jdbcType=TINYINT}, #{meter,jdbcType=TINYINT}, #{valve,jdbcType=TINYINT}, 
       #{iccard,jdbcType=TINYINT}, #{working,jdbcType=TINYINT}, #{valvestate,jdbcType=TINYINT}
       )
@@ -74,6 +75,9 @@
       </if>
       <if test="dt != null">
         dt,
+      </if>
+      <if test="rtudt != null">
+        rtuDt,
       </if>
       <if test="bateryvolt != null">
         bateryVolt,
@@ -111,7 +115,10 @@
         #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        #{dt,jdbcType=DATE},
+        #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtudt != null">
+        #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="bateryvolt != null">
         #{bateryvolt,jdbcType=TINYINT},
@@ -150,7 +157,10 @@
         rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
+        dt = #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="rtudt != null">
+        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="bateryvolt != null">
         bateryVolt = #{bateryvolt,jdbcType=TINYINT},
@@ -182,7 +192,8 @@
     set controllerId = #{controllerid,jdbcType=BIGINT},
       intakeId = #{intakeid,jdbcType=BIGINT},
       rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       bateryVolt = #{bateryvolt,jdbcType=TINYINT},
       loss = #{loss,jdbcType=TINYINT},
       meter = #{meter,jdbcType=TINYINT},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml
index 6df1e82..492796b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml
@@ -8,8 +8,8 @@
     <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
     <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
-    <result column="rtuDt" jdbcType="DATE" property="rtudt" />
+    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+    <result column="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
     <result column="instantAmount" jdbcType="DOUBLE" property="instantamount" />
     <result column="totalAmount" jdbcType="DOUBLE" property="totalamount" />
     <result column="lossAmount" jdbcType="DOUBLE" property="lossamount" />
@@ -43,7 +43,7 @@
       batteryVolt, sunVolt, signalValue
       )
     values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{rtudt,jdbcType=DATE}, #{instantamount,jdbcType=DOUBLE}, 
+      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{instantamount,jdbcType=DOUBLE},
       #{totalamount,jdbcType=DOUBLE}, #{lossamount,jdbcType=DOUBLE}, #{waterpress,jdbcType=DOUBLE}, 
       #{batteryvolt,jdbcType=DOUBLE}, #{sunvolt,jdbcType=DOUBLE}, #{signalvalue,jdbcType=INTEGER}
       )
@@ -106,10 +106,10 @@
         #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        #{dt,jdbcType=DATE},
+        #{dt,jdbcType=TIMESTAMP},
       </if>
       <if test="rtudt != null">
-        #{rtudt,jdbcType=DATE},
+        #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="instantamount != null">
         #{instantamount,jdbcType=DOUBLE},
@@ -148,10 +148,10 @@
         rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
+        dt = #{dt,jdbcType=TIMESTAMP},
       </if>
       <if test="rtudt != null">
-        rtuDt = #{rtudt,jdbcType=DATE},
+        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="instantamount != null">
         instantAmount = #{instantamount,jdbcType=DOUBLE},
@@ -183,8 +183,8 @@
     set controllerId = #{controllerid,jdbcType=BIGINT},
       intakeId = #{intakeid,jdbcType=BIGINT},
       rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
-      rtuDt = #{rtudt,jdbcType=DATE},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       instantAmount = #{instantamount,jdbcType=DOUBLE},
       totalAmount = #{totalamount,jdbcType=DOUBLE},
       lossAmount = #{lossamount,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml
index f334e3e..2b2a419 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml
@@ -8,8 +8,8 @@
     <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
     <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
-    <result column="rtuDt" jdbcType="DATE" property="rtudt" />
+    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+    <result column="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
     <result column="instantAmount" jdbcType="DOUBLE" property="instantamount" />
     <result column="totalAmount" jdbcType="DOUBLE" property="totalamount" />
     <result column="lossAmount" jdbcType="DOUBLE" property="lossamount" />
@@ -52,7 +52,7 @@
       batteryVolt, sunVolt, signalValue
       )
     values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{rtudt,jdbcType=DATE}, #{instantamount,jdbcType=DOUBLE}, 
+      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{instantamount,jdbcType=DOUBLE},
       #{totalamount,jdbcType=DOUBLE}, #{lossamount,jdbcType=DOUBLE}, #{waterpress,jdbcType=DOUBLE}, 
       #{batteryvolt,jdbcType=DOUBLE}, #{sunvolt,jdbcType=DOUBLE}, #{signalvalue,jdbcType=INTEGER}
       )
@@ -115,10 +115,10 @@
         #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        #{dt,jdbcType=DATE},
+        #{dt,jdbcType=TIMESTAMP},
       </if>
       <if test="rtudt != null">
-        #{rtudt,jdbcType=DATE},
+        #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="instantamount != null">
         #{instantamount,jdbcType=DOUBLE},
@@ -157,10 +157,10 @@
         rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
+        dt = #{dt,jdbcType=TIMESTAMP},
       </if>
       <if test="rtudt != null">
-        rtuDt = #{rtudt,jdbcType=DATE},
+        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       </if>
       <if test="instantamount != null">
         instantAmount = #{instantamount,jdbcType=DOUBLE},
@@ -192,8 +192,8 @@
     set controllerId = #{controllerid,jdbcType=BIGINT},
       intakeId = #{intakeid,jdbcType=BIGINT},
       rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
-      rtuDt = #{rtudt,jdbcType=DATE},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
       instantAmount = #{instantamount,jdbcType=DOUBLE},
       totalAmount = #{totalamount,jdbcType=DOUBLE},
       lossAmount = #{lossamount,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml
deleted file mode 100644
index 8f4e892..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountHistoryMapper.xml
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmIntakeAmountHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_intake_amount_history-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
-    <result column="amount" jdbcType="DOUBLE" property="amount" />
-    <result column="loss" jdbcType="DOUBLE" property="loss" />
-    <result column="controllerIdLast" jdbcType="BIGINT" property="controlleridlast" />
-    <result column="dtLast" jdbcType="DATE" property="dtlast" />
-    <result column="amountLast" jdbcType="DOUBLE" property="amountlast" />
-    <result column="totalAmountLast" jdbcType="DOUBLE" property="totalamountlast" />
-    <result column="resourceTypeLast" jdbcType="TINYINT" property="resourcetypelast" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, intakeId, amount, loss, controllerIdLast, dtLast, amountLast, totalAmountLast, 
-    resourceTypeLast
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_intake_amount_history
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_intake_amount_history
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
-    <!--@mbg.generated-->
-    insert into rm_intake_amount_history (id, intakeId, amount, 
-      loss, controllerIdLast, dtLast, 
-      amountLast, totalAmountLast, resourceTypeLast
-      )
-    values (#{id,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, #{amount,jdbcType=DOUBLE}, 
-      #{loss,jdbcType=DOUBLE}, #{controlleridlast,jdbcType=BIGINT}, #{dtlast,jdbcType=DATE}, 
-      #{amountlast,jdbcType=DOUBLE}, #{totalamountlast,jdbcType=DOUBLE}, #{resourcetypelast,jdbcType=TINYINT}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
-    <!--@mbg.generated-->
-    insert into rm_intake_amount_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="intakeid != null">
-        intakeId,
-      </if>
-      <if test="amount != null">
-        amount,
-      </if>
-      <if test="loss != null">
-        loss,
-      </if>
-      <if test="controlleridlast != null">
-        controllerIdLast,
-      </if>
-      <if test="dtlast != null">
-        dtLast,
-      </if>
-      <if test="amountlast != null">
-        amountLast,
-      </if>
-      <if test="totalamountlast != null">
-        totalAmountLast,
-      </if>
-      <if test="resourcetypelast != null">
-        resourceTypeLast,
-      </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="amount != null">
-        #{amount,jdbcType=DOUBLE},
-      </if>
-      <if test="loss != null">
-        #{loss,jdbcType=DOUBLE},
-      </if>
-      <if test="controlleridlast != null">
-        #{controlleridlast,jdbcType=BIGINT},
-      </if>
-      <if test="dtlast != null">
-        #{dtlast,jdbcType=DATE},
-      </if>
-      <if test="amountlast != null">
-        #{amountlast,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamountlast != null">
-        #{totalamountlast,jdbcType=DOUBLE},
-      </if>
-      <if test="resourcetypelast != null">
-        #{resourcetypelast,jdbcType=TINYINT},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
-    <!--@mbg.generated-->
-    update rm_intake_amount_history
-    <set>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
-      </if>
-      <if test="amount != null">
-        amount = #{amount,jdbcType=DOUBLE},
-      </if>
-      <if test="loss != null">
-        loss = #{loss,jdbcType=DOUBLE},
-      </if>
-      <if test="controlleridlast != null">
-        controllerIdLast = #{controlleridlast,jdbcType=BIGINT},
-      </if>
-      <if test="dtlast != null">
-        dtLast = #{dtlast,jdbcType=DATE},
-      </if>
-      <if test="amountlast != null">
-        amountLast = #{amountlast,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamountlast != null">
-        totalAmountLast = #{totalamountlast,jdbcType=DOUBLE},
-      </if>
-      <if test="resourcetypelast != null">
-        resourceTypeLast = #{resourcetypelast,jdbcType=TINYINT},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountHistory">
-    <!--@mbg.generated-->
-    update rm_intake_amount_history
-    set intakeId = #{intakeid,jdbcType=BIGINT},
-      amount = #{amount,jdbcType=DOUBLE},
-      loss = #{loss,jdbcType=DOUBLE},
-      controllerIdLast = #{controlleridlast,jdbcType=BIGINT},
-      dtLast = #{dtlast,jdbcType=DATE},
-      amountLast = #{amountlast,jdbcType=DOUBLE},
-      totalAmountLast = #{totalamountlast,jdbcType=DOUBLE},
-      resourceTypeLast = #{resourcetypelast,jdbcType=TINYINT}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossHistoryMapper.xml
new file mode 100644
index 0000000..858ff67
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/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/main/resources/mapper/RmLossLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossLastMapper.xml
new file mode 100644
index 0000000..3fbc50f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/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="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_loss_last
+    where rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
+  </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/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index c9bc9e0..f1de3dd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -8,14 +8,14 @@
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="op_dt" jdbcType="DATE" property="opDt" />
+    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
     <result column="op_type" jdbcType="TINYINT" property="opType" />
     <result column="op_total_amount" jdbcType="DOUBLE" property="opTotalAmount" />
     <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
     <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
     <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
-    <result column="open_dt" jdbcType="DATE" property="openDt" />
-    <result column="cl_dt" jdbcType="DATE" property="clDt" />
+    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="cl_dt" jdbcType="TIMESTAMP" property="clDt" />
     <result column="cl_type" jdbcType="TINYINT" property="clType" />
     <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
     <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
@@ -24,8 +24,8 @@
     <result column="cl_this_amount" jdbcType="DOUBLE" property="clThisAmount" />
     <result column="cl_this_money" jdbcType="DOUBLE" property="clThisMoney" />
     <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
-    <result column="cl_open_dt" jdbcType="DATE" property="clOpenDt" />
-    <result column="close_dt" jdbcType="DATE" property="closeDt" />
+    <result column="cl_open_dt" jdbcType="TIMESTAMP" property="clOpenDt" />
+    <result column="close_dt" jdbcType="TIMESTAMP" property="closeDt" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
@@ -57,13 +57,13 @@
       cl_this_money, cl_this_time, cl_open_dt, 
       close_dt)
     values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=DATE}, #{opType,jdbcType=TINYINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=TIMESTAMP}, #{opType,jdbcType=TINYINT},
       #{opTotalAmount,jdbcType=DOUBLE}, #{opIcCardNo,jdbcType=VARCHAR}, #{opIcCardAddr,jdbcType=VARCHAR}, 
-      #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=DATE}, #{clDt,jdbcType=DATE}, 
+      #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP}, #{clDt,jdbcType=TIMESTAMP},
       #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE}, #{clIcCardNo,jdbcType=VARCHAR}, 
       #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE}, #{clThisAmount,jdbcType=DOUBLE}, 
-      #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clOpenDt,jdbcType=DATE}, 
-      #{closeDt,jdbcType=DATE})
+      #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER}, #{clOpenDt,jdbcType=TIMESTAMP},
+      #{closeDt,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory">
     <!--@mbg.generated-->
@@ -150,7 +150,7 @@
         #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="opDt != null">
-        #{opDt,jdbcType=DATE},
+        #{opDt,jdbcType=TIMESTAMP},
       </if>
       <if test="opType != null">
         #{opType,jdbcType=TINYINT},
@@ -168,10 +168,10 @@
         #{opRemainMoney,jdbcType=DOUBLE},
       </if>
       <if test="openDt != null">
-        #{openDt,jdbcType=DATE},
+        #{openDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clDt != null">
-        #{clDt,jdbcType=DATE},
+        #{clDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clType != null">
         #{clType,jdbcType=TINYINT},
@@ -198,10 +198,10 @@
         #{clThisTime,jdbcType=INTEGER},
       </if>
       <if test="clOpenDt != null">
-        #{clOpenDt,jdbcType=DATE},
+        #{clOpenDt,jdbcType=TIMESTAMP},
       </if>
       <if test="closeDt != null">
-        #{closeDt,jdbcType=DATE},
+        #{closeDt,jdbcType=TIMESTAMP},
       </if>
     </trim>
   </insert>
@@ -219,7 +219,7 @@
         rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="opDt != null">
-        op_dt = #{opDt,jdbcType=DATE},
+        op_dt = #{opDt,jdbcType=TIMESTAMP},
       </if>
       <if test="opType != null">
         op_type = #{opType,jdbcType=TINYINT},
@@ -237,10 +237,10 @@
         op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
       </if>
       <if test="openDt != null">
-        open_dt = #{openDt,jdbcType=DATE},
+        open_dt = #{openDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clDt != null">
-        cl_dt = #{clDt,jdbcType=DATE},
+        cl_dt = #{clDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clType != null">
         cl_type = #{clType,jdbcType=TINYINT},
@@ -267,10 +267,10 @@
         cl_this_time = #{clThisTime,jdbcType=INTEGER},
       </if>
       <if test="clOpenDt != null">
-        cl_open_dt = #{clOpenDt,jdbcType=DATE},
+        cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
       </if>
       <if test="closeDt != null">
-        close_dt = #{closeDt,jdbcType=DATE},
+        close_dt = #{closeDt,jdbcType=TIMESTAMP},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -281,14 +281,14 @@
     set controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      op_dt = #{opDt,jdbcType=DATE},
+      op_dt = #{opDt,jdbcType=TIMESTAMP},
       op_type = #{opType,jdbcType=TINYINT},
       op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
       op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
       op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
       op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
-      open_dt = #{openDt,jdbcType=DATE},
-      cl_dt = #{clDt,jdbcType=DATE},
+      open_dt = #{openDt,jdbcType=TIMESTAMP},
+      cl_dt = #{clDt,jdbcType=TIMESTAMP},
       cl_type = #{clType,jdbcType=TINYINT},
       cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
       cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
@@ -297,8 +297,8 @@
       cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
       cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
       cl_this_time = #{clThisTime,jdbcType=INTEGER},
-      cl_open_dt = #{clOpenDt,jdbcType=DATE},
-      close_dt = #{closeDt,jdbcType=DATE}
+      cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
+      close_dt = #{closeDt,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/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index 3943a98..0ffaefd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -9,14 +9,14 @@
     <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
     <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
     <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="op_dt" jdbcType="DATE" property="opDt" />
+    <result column="op_dt" jdbcType="TIMESTAMP" property="opDt" />
     <result column="op_type" jdbcType="TINYINT" property="opType" />
     <result column="op_total_amount" jdbcType="DOUBLE" property="opTotalAmount" />
     <result column="op_ic_card_no" jdbcType="VARCHAR" property="opIcCardNo" />
     <result column="op_ic_card_addr" jdbcType="VARCHAR" property="opIcCardAddr" />
     <result column="op_remain_money" jdbcType="DOUBLE" property="opRemainMoney" />
-    <result column="open_dt" jdbcType="DATE" property="openDt" />
-    <result column="cl_dt" jdbcType="DATE" property="clDt" />
+    <result column="open_dt" jdbcType="TIMESTAMP" property="openDt" />
+    <result column="cl_dt" jdbcType="TIMESTAMP" property="clDt" />
     <result column="cl_type" jdbcType="TINYINT" property="clType" />
     <result column="cl_total_amount" jdbcType="DOUBLE" property="clTotalAmount" />
     <result column="cl_ic_card_no" jdbcType="VARCHAR" property="clIcCardNo" />
@@ -25,8 +25,8 @@
     <result column="cl_this_amount" jdbcType="DOUBLE" property="clThisAmount" />
     <result column="cl_this_money" jdbcType="DOUBLE" property="clThisMoney" />
     <result column="cl_this_time" jdbcType="INTEGER" property="clThisTime" />
-    <result column="cl_open_dt" jdbcType="DATE" property="clOpenDt" />
-    <result column="close_dt" jdbcType="DATE" property="closeDt" />
+    <result column="cl_open_dt" jdbcType="TIMESTAMP" property="clOpenDt" />
+    <result column="close_dt" jdbcType="TIMESTAMP" property="closeDt" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
@@ -66,13 +66,13 @@
       cl_this_money, cl_this_time, cl_open_dt, 
       close_dt)
     values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT},
-      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{opDt,jdbcType=DATE},
+      #{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=DATE},
-      #{clDt,jdbcType=DATE}, #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE},
+      #{opIcCardAddr,jdbcType=VARCHAR}, #{opRemainMoney,jdbcType=DOUBLE}, #{openDt,jdbcType=TIMESTAMP},
+      #{clDt,jdbcType=TIMESTAMP}, #{clType,jdbcType=TINYINT}, #{clTotalAmount,jdbcType=DOUBLE},
       #{clIcCardNo,jdbcType=VARCHAR}, #{clIcCardAddr,jdbcType=VARCHAR}, #{clRemainMoney,jdbcType=DOUBLE},
       #{clThisAmount,jdbcType=DOUBLE}, #{clThisMoney,jdbcType=DOUBLE}, #{clThisTime,jdbcType=INTEGER},
-      #{clOpenDt,jdbcType=DATE}, #{closeDt,jdbcType=DATE})
+      #{clOpenDt,jdbcType=TIMESTAMP}, #{closeDt,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast">
     <!--@mbg.generated-->
@@ -165,7 +165,7 @@
         #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="opDt != null">
-        #{opDt,jdbcType=DATE},
+        #{opDt,jdbcType=TIMESTAMP},
       </if>
       <if test="opType != null">
         #{opType,jdbcType=TINYINT},
@@ -183,10 +183,10 @@
         #{opRemainMoney,jdbcType=DOUBLE},
       </if>
       <if test="openDt != null">
-        #{openDt,jdbcType=DATE},
+        #{openDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clDt != null">
-        #{clDt,jdbcType=DATE},
+        #{clDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clType != null">
         #{clType,jdbcType=TINYINT},
@@ -213,10 +213,10 @@
         #{clThisTime,jdbcType=INTEGER},
       </if>
       <if test="clOpenDt != null">
-        #{clOpenDt,jdbcType=DATE},
+        #{clOpenDt,jdbcType=TIMESTAMP},
       </if>
       <if test="closeDt != null">
-        #{closeDt,jdbcType=DATE},
+        #{closeDt,jdbcType=TIMESTAMP},
       </if>
     </trim>
   </insert>
@@ -237,7 +237,7 @@
         rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="opDt != null">
-        op_dt = #{opDt,jdbcType=DATE},
+        op_dt = #{opDt,jdbcType=TIMESTAMP},
       </if>
       <if test="opType != null">
         op_type = #{opType,jdbcType=TINYINT},
@@ -255,10 +255,10 @@
         op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
       </if>
       <if test="openDt != null">
-        open_dt = #{openDt,jdbcType=DATE},
+        open_dt = #{openDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clDt != null">
-        cl_dt = #{clDt,jdbcType=DATE},
+        cl_dt = #{clDt,jdbcType=TIMESTAMP},
       </if>
       <if test="clType != null">
         cl_type = #{clType,jdbcType=TINYINT},
@@ -285,10 +285,10 @@
         cl_this_time = #{clThisTime,jdbcType=INTEGER},
       </if>
       <if test="clOpenDt != null">
-        cl_open_dt = #{clOpenDt,jdbcType=DATE},
+        cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
       </if>
       <if test="closeDt != null">
-        close_dt = #{closeDt,jdbcType=DATE},
+        close_dt = #{closeDt,jdbcType=TIMESTAMP},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -300,14 +300,14 @@
       controller_id = #{controllerId,jdbcType=BIGINT},
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      op_dt = #{opDt,jdbcType=DATE},
+      op_dt = #{opDt,jdbcType=TIMESTAMP},
       op_type = #{opType,jdbcType=TINYINT},
       op_total_amount = #{opTotalAmount,jdbcType=DOUBLE},
       op_ic_card_no = #{opIcCardNo,jdbcType=VARCHAR},
       op_ic_card_addr = #{opIcCardAddr,jdbcType=VARCHAR},
       op_remain_money = #{opRemainMoney,jdbcType=DOUBLE},
-      open_dt = #{openDt,jdbcType=DATE},
-      cl_dt = #{clDt,jdbcType=DATE},
+      open_dt = #{openDt,jdbcType=TIMESTAMP},
+      cl_dt = #{clDt,jdbcType=TIMESTAMP},
       cl_type = #{clType,jdbcType=TINYINT},
       cl_total_amount = #{clTotalAmount,jdbcType=DOUBLE},
       cl_ic_card_no = #{clIcCardNo,jdbcType=VARCHAR},
@@ -316,8 +316,8 @@
       cl_this_amount = #{clThisAmount,jdbcType=DOUBLE},
       cl_this_money = #{clThisMoney,jdbcType=DOUBLE},
       cl_this_time = #{clThisTime,jdbcType=INTEGER},
-      cl_open_dt = #{clOpenDt,jdbcType=DATE},
-      close_dt = #{closeDt,jdbcType=DATE}
+      cl_open_dt = #{clOpenDt,jdbcType=TIMESTAMP},
+      close_dt = #{closeDt,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/RmWorkReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
new file mode 100644
index 0000000..9e6940a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.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.RmWorkReportHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
+    <!--@mbg.generated-->
+    <!--@Table rm_work_report_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="TIMESTAMP" property="dt" />
+    <result column="ic_card_no" jdbcType="VARCHAR" property="icCardNo" />
+    <result column="total_amount" jdbcType="DOUBLE" property="totalAmount" />
+    <result column="instant_amount" jdbcType="DOUBLE" property="instantAmount" />
+    <result column="remain_money" jdbcType="DOUBLE" property="remainMoney" />
+    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, dt, ic_card_no, total_amount, instant_amount, 
+    remain_money, rtu_dt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_work_report_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_work_report_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
+    <!--@mbg.generated-->
+    insert into rm_work_report_history (id, controller_id, intake_id, 
+      rtu_addr, dt, ic_card_no, 
+      total_amount, instant_amount, remain_money, 
+      rtu_dt)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{icCardNo,jdbcType=VARCHAR},
+      #{totalAmount,jdbcType=DOUBLE}, #{instantAmount,jdbcType=DOUBLE}, #{remainMoney,jdbcType=DOUBLE}, 
+      #{rtuDt,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
+    <!--@mbg.generated-->
+    insert into rm_work_report_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="icCardNo != null">
+        ic_card_no,
+      </if>
+      <if test="totalAmount != null">
+        total_amount,
+      </if>
+      <if test="instantAmount != null">
+        instant_amount,
+      </if>
+      <if test="remainMoney != null">
+        remain_money,
+      </if>
+      <if test="rtuDt != null">
+        rtu_dt,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="icCardNo != null">
+        #{icCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="totalAmount != null">
+        #{totalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="instantAmount != null">
+        #{instantAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="remainMoney != null">
+        #{remainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
+    <!--@mbg.generated-->
+    update rm_work_report_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=TIMESTAMP},
+      </if>
+      <if test="icCardNo != null">
+        ic_card_no = #{icCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="totalAmount != null">
+        total_amount = #{totalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="instantAmount != null">
+        instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="remainMoney != null">
+        remain_money = #{remainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
+    <!--@mbg.generated-->
+    update rm_work_report_history
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      ic_card_no = #{icCardNo,jdbcType=VARCHAR},
+      total_amount = #{totalAmount,jdbcType=DOUBLE},
+      instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      remain_money = #{remainMoney,jdbcType=DOUBLE},
+      rtu_dt = #{rtuDt,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/RmWorkReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
new file mode 100644
index 0000000..d4ab507
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
@@ -0,0 +1,169 @@
+<?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.RmWorkReportLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_work_report_last-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
+    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
+    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
+    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
+    <result column="ic_card_no" jdbcType="VARCHAR" property="icCardNo" />
+    <result column="total_amount" jdbcType="DOUBLE" property="totalAmount" />
+    <result column="instant_amount" jdbcType="DOUBLE" property="instantAmount" />
+    <result column="remain_money" jdbcType="DOUBLE" property="remainMoney" />
+    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, dt, ic_card_no, total_amount, instant_amount, 
+    remain_money, rtu_dt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_work_report_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from rm_work_report_last
+    where rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_work_report_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
+    <!--@mbg.generated-->
+    insert into rm_work_report_last (id, controller_id, intake_id, 
+      rtu_addr, dt, ic_card_no, 
+      total_amount, instant_amount, remain_money, 
+      rtu_dt)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{icCardNo,jdbcType=VARCHAR},
+      #{totalAmount,jdbcType=DOUBLE}, #{instantAmount,jdbcType=DOUBLE}, #{remainMoney,jdbcType=DOUBLE}, 
+      #{rtuDt,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
+    <!--@mbg.generated-->
+    insert into rm_work_report_last
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="controllerId != null">
+        controller_id,
+      </if>
+      <if test="intakeId != null">
+        intake_id,
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr,
+      </if>
+      <if test="dt != null">
+        dt,
+      </if>
+      <if test="icCardNo != null">
+        ic_card_no,
+      </if>
+      <if test="totalAmount != null">
+        total_amount,
+      </if>
+      <if test="instantAmount != null">
+        instant_amount,
+      </if>
+      <if test="remainMoney != null">
+        remain_money,
+      </if>
+      <if test="rtuDt != null">
+        rtu_dt,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="dt != null">
+        #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="icCardNo != null">
+        #{icCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="totalAmount != null">
+        #{totalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="instantAmount != null">
+        #{instantAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="remainMoney != null">
+        #{remainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
+    <!--@mbg.generated-->
+    update rm_work_report_last
+    <set>
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
+      </if>
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
+      </if>
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      </if>
+      <if test="dt != null">
+        dt = #{dt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="icCardNo != null">
+        ic_card_no = #{icCardNo,jdbcType=VARCHAR},
+      </if>
+      <if test="totalAmount != null">
+        total_amount = #{totalAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="instantAmount != null">
+        instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      </if>
+      <if test="remainMoney != null">
+        remain_money = #{remainMoney,jdbcType=DOUBLE},
+      </if>
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
+    <!--@mbg.generated-->
+    update rm_work_report_last
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      ic_card_no = #{icCardNo,jdbcType=VARCHAR},
+      total_amount = #{totalAmount,jdbcType=DOUBLE},
+      instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      remain_money = #{remainMoney,jdbcType=DOUBLE},
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
index dcffd54..07ec929 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
@@ -13,6 +13,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -39,6 +40,14 @@
     private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapperDao ;//鎺у埗鍣ㄦ渶鏂板紑鍏抽榾涓婃姤鏁版嵁DAO
     @Autowired
     private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插紑鍏抽榾涓婃姤鏁版嵁DAO
+    @Autowired
+    private RmWorkReportLastMapper rmWorkReportLastMapperDao ;//鎺у埗鍣ㄦ渶鏂板伐浣滄姤鏁版嵁DAO
+    @Autowired
+    private RmWorkReportHistoryMapper rmWorkReportHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插伐浣滄姤鏁版嵁DAO
+    @Autowired
+    private RmLossLastMapper rmLossLastMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂版暟鎹瓺AO
+    @Autowired
+    private RmLossHistoryMapper rmLossHistoryMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙叉暟鎹瓺AO
 
     //@Autowired
     //@Lazy
@@ -107,6 +116,14 @@
     @Transactional(rollbackFor = Exception.class)
     public void saveRmAlarmStateLast(RmAlarmStateLast po){
         this.rmAlarmStateLastMapperDao.insert(po) ;
+    }
+   /**
+     * 淇濆瓨鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmAlarmStateLast(RmAlarmStateLast po){
+        this.rmAlarmStateLastMapperDao.updateByPrimaryKeySelective(po) ;
     }
     /**
      * 淇濆瓨鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸巻鍙茶褰�
@@ -224,4 +241,136 @@
         this.rmOpenCloseValveHistoryMapperDao.updateByPrimaryKeySelective(po) ;
     }
 
+
+
+    /////////////////////////////////////////////////
+    //
+    // 宸ヤ綔鎶ユ暟鎹姛鑳�
+    //
+    ////////////////////////////////////////////////
+    /**
+     * 寰楀埌鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * @param rtuAddr
+     * @return
+     */
+    public RmWorkReportLast getRmWorkReportLast(String rtuAddr){
+        List<RmWorkReportLast> list = rmWorkReportLastMapperDao.selectByRtuAddr(rtuAddr) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmWorkReportLast(RmWorkReportLast po){
+        this.rmWorkReportLastMapperDao.insert(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmWorkReportLast(RmWorkReportLast po){
+        this.rmWorkReportLastMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹巻鍙茶褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmWorkReportHistory(RmWorkReportHistory po){
+        this.rmWorkReportHistoryMapperDao.insert(po) ;
+    }
+
+
+    /////////////////////////////////////////////////
+    //
+    // 婕忔崯姘撮噺缁熻鍔熻兘
+    //
+    ////////////////////////////////////////////////
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param rtuAddr
+     * @return
+     */
+    public RmLossLast getRmLossLast(String rtuAddr){
+        List<RmLossLast> list = rmLossLastMapperDao.selectByRtuAddr(rtuAddr) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmLossLast(RmLossLast po){
+        this.rmLossLastMapperDao.insert(po) ;
+    }
+  /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmLossHistory(RmLossHistory po){
+        this.rmLossHistoryMapperDao.insert(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmLossLast(RmLossLast po){
+        this.rmLossLastMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+    /**
+     * 淇濆瓨鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmLossHistory(RmLossHistory po){
+        this.rmLossHistoryMapperDao.updateByPrimaryKeySelective(po) ;
+    }
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬渶鏂拌褰�
+     * @param id
+     * @return
+     */
+    public RmLossHistory getRmLossHistory(Long id){
+        return rmLossHistoryMapperDao.selectByPrimaryKey(id) ;
+    }
+
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁℃渶鏂拌褰�
+     * @param dt
+     * @return
+     */
+    public RmLossLast getRmLossLastByDate(Date dt){
+        List<RmLossLast> list = rmLossLastMapperDao.selectByDate(dt) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+
+    /**
+     * 寰楀埌鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙茶褰曚腑鐨勬煇鏃ヨ褰�
+     * @param dt
+     * @return
+     */
+    public RmLossHistory getRmLossHistoryByDate(Date dt){
+        List<RmLossHistory> list = rmLossHistoryMapperDao.selectByDate(dt) ;
+        if(list != null && list.size() > 0){
+            return list.get(0) ;
+        }
+        return null ;
+    }
+
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index 80f96e6..27cb380 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -44,16 +44,16 @@
                             Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
                             DbSv sv = (DbSv)objs[0] ;
                             PrController controller = (PrController)objs[1] ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.rtuDt, dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.rtuDt, dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ;
                         }
                     } else if(dV1_0_1.dataCdC0Vo != null){
                         if(dV1_0_1.dataCdC0Vo.alarmVo != null || dV1_0_1.dataCdC0Vo.stateVo != null){
                             Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
                             DbSv sv = (DbSv)objs[0] ;
                             PrController controller = (PrController)objs[1] ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.rtuDt, dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.rtuDt, dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ;
                         }
                     }
                 }catch (Exception e){
@@ -67,21 +67,23 @@
      * @param sv 鏈嶅姟
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param rtuDt 鎺у埗鍣ㄦ椂閽�
      * @param alarmVo 鎶ヨ瀵硅薄
      * @param stateVo 鐘舵�佸璞�
      */
-    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
         RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
         if(po == null){
             po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                     rtuAddr,
                     DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
                     alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
                     stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
             sv.saveRmAlarmStateLast(po) ;
         }else{
-            po = this.update(controller, po, dV1_0_1, alarmVo, stateVo) ;
-            sv.saveRmAlarmStateLast(po);
+            po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
+            sv.updateRmAlarmStateLast(po);
         }
     }
 
@@ -90,23 +92,27 @@
      * @param sv 鏈嶅姟
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param rtuDt 鎺у埗鍣ㄦ椂閽�
      * @param alarmVo 鎶ヨ瀵硅薄
      * @param stateVo 鐘舵�佸璞�
      */
-    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
         RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                 rtuAddr,
                 DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
                 alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
                 stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
         sv.saveRmAlarmStateHistory(po) ;
     }
 
 
-    private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
+    private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
         po.controllerid = controller==null?null:controller.getId() ;
+        po.intakeid = controller==null?null:controller.getIntakeId() ;
 
         po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
         if(alarmVo != null){
             po.bateryvolt = alarmVo.batteryVolt ;
             po.loss = alarmVo.loss ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
index 09e93dd..32eb003 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
@@ -16,14 +16,14 @@
  * @Author liurunyu
  * @Date 2024/1/16 14:11
  * @LastEditTime 2024/1/16 14:11
- * @Description
+ * @Description 鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鍔熻兘鐮佷负C0锛夛紙鏁寸偣涓婃姤锛�
  */
 public class TkDealAutoReport  extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkDealAlarmStatus.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkDealAutoReport.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkDealAlarmStatus" ;
+    public static final String taskId = "TkDealAutoReport" ;
 
     /**
      * 鎵ц鑺傜偣浠诲姟锛氭帶鍒跺櫒鑷姤鏁版嵁锛堝姛鑳界爜涓篊0锛�
@@ -66,7 +66,7 @@
                     dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
             sv.saveRmAutoReportLast(po) ;
         }else{
-            po = this.update(po, dV1_0_1, dataCdC0Vo) ;
+            po = this.update(controller, po, dV1_0_1, dataCdC0Vo) ;
             sv.updateRmAutoReportLast(po);
         }
     }
@@ -89,7 +89,10 @@
     }
 
 
-    private RmAutoReportLast update(RmAutoReportLast po, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+    private RmAutoReportLast update(PrController controller, RmAutoReportLast po, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        po.controllerid = controller==null?null:controller.getId();
+        po.intakeid = controller==null?null:controller.getIntakeId();
+
         po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt) ;
         po.instantamount = dataCdC0Vo.instantAmount;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index a1f0a25..c03c473 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -43,7 +43,7 @@
                 DbSv sv = (DbSv)objs[0] ;
                 PrController controller = (PrController)objs[1] ;
                 try{
-                    this.dealSave(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
                 }catch (Exception e){
                     log.error("淇濆瓨鎺у埗鍣ㄥ叧闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
                 }
@@ -58,7 +58,7 @@
      * @param dV1_0_1 涓婃姤鏁版嵁
      * @param dataCd83CloseVo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
      */
-    private void dealSave(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
         RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
         if(poLast == null){
             //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛樺巻鍙叉暟鎹�
@@ -72,7 +72,7 @@
             //}else{
                 if(poLast.clType == null){
                     //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�锛屼繚鐣欏師璁板綍寮�闃�鏁版嵁
-                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    this.updateCloseValve(controller, poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
                     if(poLast.opType == null){
                         //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁锛屾病鍔炶繘琛屽尮閰�
                         //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
@@ -106,7 +106,7 @@
                 }else{
                     //if(po.opType == null)
                     //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
-                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    this.updateCloseValve(controller,poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
                     //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
                     this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
                 }
@@ -191,6 +191,7 @@
 
     /**
      * 鏇存柊鏁版嵁
+     * @param controller
      * @param poLast
      * @param poHistory
      * @param dV1_0_1
@@ -198,7 +199,10 @@
      * @param clearOpenValve
      * @throws Exception
      */
-    private void updateCloseValve(RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+    private void updateCloseValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+        poLast.controllerId = controller==null?null:controller.getId();
+        poLast.intakeId = controller==null?null:controller.getIntakeId();
+
         poLast.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         poLast.clType = dataCd83CloseVo.type;
         poLast.clTotalAmount = dataCd83CloseVo.totalAmount;
@@ -212,6 +216,9 @@
         poLast.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ;
 
         if(poHistory != null){
+            poHistory.controllerId = controller==null?null:controller.getId();
+            poHistory.intakeId = controller==null?null:controller.getIntakeId();
+
             poHistory.clDt = poLast.clDt;
             poHistory.clType = dataCd83CloseVo.type;
             poHistory.clTotalAmount = dataCd83CloseVo.totalAmount;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java
new file mode 100644
index 0000000..8e016a9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -0,0 +1,159 @@
+package com.dy.aceMw.server.rtuData.p206V1_0_0;
+
+import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataCdC0Vo;
+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;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/28 16:31
+ * @LastEditTime 2024/2/28 16:31
+ * @Description 鎺у埗鍣ㄦ紡鎹熺粺璁�
+ */
+public class TkDealLoss extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealLoss.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealLoss";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄦ紡鎹熺粺璁�
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        Object subD = d.getSubData();
+        if (subD != null) {
+            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
+            if (dV1_0_1 != null && dV1_0_1.dataCdC0Vo != null) {
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
+                DbSv sv = (DbSv) objs[0];
+                PrController controller = (PrController) objs[1];
+                try {
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo);
+                } catch (Exception e) {
+                    log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+                }
+            }
+        }
+    }
+
+    /**
+     * 涓氬姟澶勭悊
+     * @param sv             鏈嶅姟
+     * @param controller     鎺у埗鍣ㄥ璞�
+     * @param rtuAddr        鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1        涓婃姤鏁版嵁
+     * @param dataCdC0Vo 寮�闃�涓婃姤鏁版嵁瀵硅薄
+     */
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        RmLossLast poLast = sv.getRmLossLast(rtuAddr);
+        if (poLast == null) {
+            //棣栧厛鐢熸垚鍘嗗彶鏁版嵁锛屽苟淇濆瓨
+            poLast = this.newRmLossLast(controller, rtuAddr, dV1_0_1, dataCdC0Vo);
+            this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast);
+            sv.saveRmLossLast(poLast);
+        } else {
+            if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt).equals(poLast.dtRtu)){
+                //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊
+            }else{
+                RmLossHistory poHistory = null ;
+                if(poLast.lastHistoryId != null){
+                    poHistory = sv.getRmLossHistory(poLast.lastHistoryId) ;
+                }
+                if(poHistory == null){
+                    poHistory = this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast);
+                }
+                if(DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt).equals(poLast.dt)){
+                    //鍚屼竴澶╂暟鎹�
+                    poLast.lossAmount = (poLast.lossAmount == null?0.0:poLast.lossAmount) + (dataCdC0Vo.lossAmount == null?0.0:dataCdC0Vo.lossAmount) ;
+                    poLast.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+                    poLast.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt) ;
+                    sv.updateRmLossLast(poLast);
+
+                    poHistory.lossAmount = (poLast.lossAmount == null?0.0:poLast.lossAmount) + (dataCdC0Vo.lossAmount == null?0.0:dataCdC0Vo.lossAmount) ;
+                    poHistory.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+                    poHistory.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt) ;
+                    sv.updateRmLossHistory(poHistory);
+                }else if(DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt).after(poLast.dt)){
+                    //鏂扮殑鏃ユ湡
+                    poLast = this.newRmLossLast(controller, rtuAddr, dV1_0_1, dataCdC0Vo);
+                    this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast);
+                    sv.saveRmLossLast(poLast);
+                }else{
+                    //杩欑鎯呭喌涓嶅瓨鍦紙鏀跺埌鏁版嵁鐨勬棩鏈熸棭浜庢湰鍦拌褰曚腑鐨勬棩鏈燂紝姝ょ鎯呭喌涓嶄細瀛樺湪锛�
+                }
+            }
+        }
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鏈�鏂拌褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCdC0Vo
+     * @return
+     * @throws Exception
+     */
+    private RmLossLast newRmLossLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo)throws Exception {
+        RmLossLast po = new RmLossLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+                dataCdC0Vo.lossAmount) ;
+        return po ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鎺у埗鍣ㄦ紡鎹熸棩缁熻鍘嗗彶璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCdC0Vo
+     * @return
+     * @throws Exception
+     */
+    private RmLossHistory newRmLossHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo)throws Exception {
+        RmLossHistory po = new RmLossHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+                dataCdC0Vo.lossAmount) ;
+        return po ;
+    }
+
+
+    /**
+     * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCdC0Vo
+     * @param poLast
+     * @throws Exception
+     * @return RmLossHistory
+     */
+    private RmLossHistory newAndSaveHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo, RmLossLast poLast)throws Exception {
+        RmLossHistory poHistory = this.newRmLossHistory(controller, rtuAddr, dV1_0_1, dataCdC0Vo) ;
+        sv.saveRmLossHistory(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+        return poHistory ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index c6fb3ef..b20bd41 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -41,7 +41,7 @@
                 DbSv sv = (DbSv)objs[0] ;
                 PrController controller = (PrController)objs[1] ;
                 try{
-                    this.dealSave(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83OpenVo) ;
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83OpenVo) ;
                 }catch (Exception e){
                     log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
                 }
@@ -49,14 +49,14 @@
         }
     }
     /**
-     * 淇濆瓨鏁版嵁
+     * 涓氬姟澶勭悊
      * @param sv 鏈嶅姟
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dV1_0_1 涓婃姤鏁版嵁
      * @param dataCd83OpenVo 寮�闃�涓婃姤鏁版嵁瀵硅薄
      */
-    private void dealSave(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
         RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
         if(poLast == null){
             //棣栧厛鐢熸垚鍘嗗彶鏁版嵁锛屽苟淇濆瓨
@@ -75,7 +75,7 @@
                         //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊
                     }else{
                         //褰撳墠寮�闃�涓婃姤鏄柊鐨勪竴娆″紑闃�锛屼笉绠″師璁板綍鏄惁瀛樺湪鍏抽榾鏁版嵁锛屼竴寰嬫竻绌哄叧闃�鏁版嵁
-                        this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                        this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
                         //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
                         this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
                     }
@@ -87,13 +87,13 @@
                         if(poLast.lastHistoryId != null){
                             poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
                         }
-                        this.updateOpenValve(poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
+                        this.updateOpenValve(controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
                         if(poHistory != null){
                             sv.updateRmOpenCloseValveHistory(poHistory);
                         }
                     }else if(poLast.closeDt != null && poLast.closeDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){
                         //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁
-                        this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                        this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
                         //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
                         this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
                     }else {
@@ -102,7 +102,7 @@
                         if(poLast.lastHistoryId != null){
                             poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
                         }
-                        this.updateOpenValve(poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
+                        this.updateOpenValve(controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ;
                         if(poHistory != null){
                             sv.updateRmOpenCloseValveHistory(poHistory);
                         }
@@ -110,7 +110,7 @@
                 }else{
                     //if(po.clType == null)
                     //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
-                    this.updateOpenValve(poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
+                    this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ;
                     //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
                     this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast);
                 }
@@ -188,6 +188,7 @@
 
     /**
      * 鏇存柊鏁版嵁
+     * @param controller
      * @param poLast
      * @param poHistory
      * @param dV1_0_1
@@ -195,7 +196,10 @@
      * @param clearCloseValve
      * @throws Exception
      */
-    private void updateOpenValve(RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+    private void updateOpenValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception {
+        poLast.controllerId = controller==null?null:controller.getId();
+        poLast.intakeId = controller==null?null:controller.getIntakeId();
+
         poLast.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
         poLast.opType = dataCd83OpenVo.type ;
         poLast.opTotalAmount = dataCd83OpenVo.totalAmount ;
@@ -205,6 +209,9 @@
         poLast.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt) ;
 
         if(poHistory != null){
+            poHistory.controllerId = controller==null?null:controller.getId();
+            poHistory.intakeId = controller==null?null:controller.getIntakeId();
+
             poHistory.opDt = poLast.opDt;
             poHistory.opType = dataCd83OpenVo.type ;
             poHistory.opTotalAmount = dataCd83OpenVo.totalAmount ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
new file mode 100644
index 0000000..6612641
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -0,0 +1,117 @@
+package com.dy.aceMw.server.rtuData.p206V1_0_0;
+
+import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataCd84Vo;
+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.RmAlarmStateLast;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/2/27 14:20
+ * @LastEditTime 2024/2/27 14:20
+ * @Description 寮�闃�宸ヤ綔鎶�
+ */
+public class TkDealWorkReport extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealWorkReport.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealWorkReport" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        Object subD = d.getSubData();
+        if (subD != null) {
+            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
+            if (dV1_0_1 != null && dV1_0_1.dataCd84Vo != null) {
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                DbSv sv = (DbSv)objs[0] ;
+                PrController controller = (PrController)objs[1] ;
+                try{
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd84Vo) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�宸ヤ綔鎶ユ椂鍙戠敓寮傚父", e);
+                }
+            }
+        }
+    }
+    /**
+     * 澶勭悊寮�闃�宸ヤ綔鎶ユ暟鎹�
+     * @param sv 鏈嶅姟
+     * @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.saveLast(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
+        this.saveHistory(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
+    }
+
+    /**
+     * 淇濆瓨寮�闃�宸ヤ綔鎶ユ渶鏂版暟鎹�
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd84Vo
+     */
+    private void saveLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
+        RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ;
+        if(po == null){
+            po = new RmWorkReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                    rtuAddr,
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt),
+                    dataCd84Vo.cardNo,
+                    dataCd84Vo.totalAmount,
+                    dataCd84Vo.instantAmount,
+                    dataCd84Vo.remainMoney) ;
+            sv.saveRmWorkReportLast(po) ;
+        }else{
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+
+            po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+            po.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt);
+            po.icCardNo = dataCd84Vo.cardNo;
+            po.totalAmount = dataCd84Vo.totalAmount;
+            po.instantAmount = dataCd84Vo.instantAmount;
+            po.remainMoney = dataCd84Vo.remainMoney;
+            sv.updateRmWorkReportLast(po);
+        }
+    }
+    /**
+     * 淇濆瓨寮�闃�宸ヤ綔鎶ュ巻鍙叉暟鎹�
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd84Vo
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
+        RmWorkReportHistory po = new RmWorkReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt),
+                dataCd84Vo.cardNo,
+                dataCd84Vo.totalAmount,
+                dataCd84Vo.instantAmount,
+                dataCd84Vo.remainMoney) ;
+        sv.saveRmWorkReportHistory(po) ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
index 30ee0c0..66f6972 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
@@ -16,9 +16,11 @@
 						<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
 						<task id="TkFindReport" name="璇嗗埆鎺у埗鍣ㄤ笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindReport">
 							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
-							<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
-							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
-							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
+							<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
+							<task id="TkDealWorkReport" name="鎺у埗鍣ㄥ紑闃�宸ヤ綔涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
+							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤锛堝緟鏂板崗璁嚭鏉ュ悗淇敼瀹炵幇锛�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
+							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤锛堝緟鏂板崗璁嚭鏉ュ悗淇敼瀹炵幇锛�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
+							<task id="TkDealLoss" name="鎺у埗鍣ㄦ紡鎹熺粺璁★紙寰呮柊鍗忚鍑烘潵鍚庝慨鏀瑰疄鐜帮級" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealLoss" />
 						</task>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
index 30a1954..c4bd05d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
@@ -44,13 +44,14 @@
 @Slf4j
 @Tag(name = "鎺у埗鍣ㄧ鐞�", description = "鎺у埗鍣ㄦ搷浣�")
 @RestController
-@RequestMapping(path="controller")
+@RequestMapping(path = "controller")
 @RequiredArgsConstructor
 public class ControllerCtrl {
     private final ControllerSv controllerSv;
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄥ垪琛�
+     *
      * @param vo 鏌ヨ鏉′欢
      * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鍒楄〃
      */
@@ -65,23 +66,24 @@
     })
     @GetMapping(path = "/getControllers")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoController>>> getControllers(QueryVo vo){
+    public BaseResponse<QueryResultVo<List<VoController>>> getControllers(QueryVo vo) {
         try {
             QueryResultVo<List<VoController>> res = controllerSv.getControllers(vo);
-            if(res.itemTotal != null && res.itemTotal > 0) {
+            if (res.itemTotal != null && res.itemTotal > 0) {
                 return BaseResponseUtils.buildSuccess(res);
-            }else {
+            } else {
                 return BaseResponseUtils.buildFail(ProjectResultCode.NO_RECORDS.getMessage());
             }
             //return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栨帶鍒跺櫒鍒楄〃
+     *
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鍒楄〃
      */
@@ -96,22 +98,23 @@
     })
     @GetMapping(path = "controller_list")
     @SsoAop()
-    public BaseResponse<List<Map<String, Object>>> getControllersByCode(String rtuAddr){
+    public BaseResponse<List<Map<String, Object>>> getControllersByCode(String rtuAddr) {
         try {
             List<Map<String, Object>> list = Optional.ofNullable(controllerSv.getControllersByAddr(rtuAddr)).orElse(new ArrayList<>());
-            if(list.size() <= 0) {
+            if (list.size() <= 0) {
                 return BaseResponseUtils.buildFail(ProjectResultCode.NO_RECORDS.getMessage());
             }
             return BaseResponseUtils.buildSuccess(list);
         } catch (Exception e) {
             log.error("鏌ヨ鎺у埗鍣ㄥ紓甯�", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 娣诲姞鎺у埗鍣�
-     * @param po 鎺у埗鍣ㄥ疄浣撳璞�
+     *
+     * @param po            鎺у埗鍣ㄥ疄浣撳璞�
      * @param bindingResult
      * @return 娣诲姞鏄惁鎴愬姛
      */
@@ -128,8 +131,8 @@
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
     //public BaseResponse<Boolean> add(@RequestBody @Valid DtoController po, BindingResult bindingResult){
-    public BaseResponse<Boolean> add(@RequestBody @Valid PrController po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> add(@RequestBody @Valid PrController po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
@@ -141,17 +144,21 @@
 
         Date operateTime = new Date();
         po.setOperateDt(operateTime);
-        po.setDeleted((byte)0);
+        po.setDeleted((byte) 0);
         po.setFindDt(operateTime);
+        if (po.getAddWays() == null) {
+            po.setAddWays((byte) 1);
+        }
         Integer rec = Optional.ofNullable(controllerSv.addController(po)).orElse(0);
-        if(rec == 0) {
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     /**
      * 鏍规嵁鎺у埗鍣ㄧ紪鍙峰垹闄ゆ帶鍒跺櫒
+     *
      * @param map
      * @return
      */
@@ -166,21 +173,22 @@
     })
     @PostMapping(path = "delete")
     @SsoAop()
-    public BaseResponse<Boolean> delete(@RequestBody Map map){
-        if(map == null || map.size() <=0) {
+    public BaseResponse<Boolean> delete(@RequestBody Map map) {
+        if (map == null || map.size() <= 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.PLEASE_INPUT_CONTROLLER_ID.getMessage());
         }
 
         Long controllerId = Long.parseLong(map.get("controllerId").toString());
         Integer recordCount = Optional.ofNullable(controllerSv.deleteControllerById(controllerId)).orElse(0);
-        if(recordCount == 0) {
+        if (recordCount == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_CONTROLLER_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     /**
      * 鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙e垪琛�
+     *
      * @return
      */
     @Operation(summary = "鑾峰緱鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙h褰�", description = "杩斿洖鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙f暟鎹�")
@@ -194,21 +202,22 @@
     })
     @GetMapping(path = "nobinding_intakes")
     @SsoAop()
-    public BaseResponse<JSONArray> getNoBindingIntakes(){
+    public BaseResponse<JSONArray> getNoBindingIntakes() {
         try {
             JSONArray array = controllerSv.getNoBindingIntakes();
-            if(array.size() <= 0) {
+            if (array.size() <= 0) {
                 return BaseResponseUtils.buildFail(ProjectResultCode.NO_BINDING_INTAKE.getMessage());
             }
             return BaseResponseUtils.buildSuccess(array);
         } catch (Exception e) {
             log.error("鏌ヨ鎺у埗鍣ㄥ紓甯�", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 瀵煎嚭鎺у埗鍣ㄥ垪琛�
+     *
      * @param response
      * @param vo
      */
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index 9fb3d15..70235e1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -4,8 +4,10 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
+import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
 import com.dy.pipIrrGlobal.voPr.VoController;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -33,6 +35,9 @@
     @Autowired
     private PrIntakeMapper prIntakeMapper;
 
+    @Autowired
+    private PrIntakeControllerMapper prIntakeControllerMapper;
+
     /**
      * 鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰�
      * @param queryVo
@@ -58,7 +63,16 @@
      * @return
      */
     public Integer addController(PrController po) {
-        return prControllerMapper.insert(po);
+        prControllerMapper.insert(po);
+        PrIntakeController addPrIntakeController = new PrIntakeController();
+        addPrIntakeController.setIntakeid(po.getIntakeId());
+        addPrIntakeController.setControllerid(po.getId());
+        addPrIntakeController.setOperatetype((byte) 1);
+        addPrIntakeController.setOperator(po.getOperator());
+        addPrIntakeController.setOperatedt(po.getOperateDt());
+        addPrIntakeController.setRemarks("缁戝畾");
+        prIntakeControllerMapper.insert(addPrIntakeController);
+        return 1;
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java
index da037f3..10edbd8 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java
@@ -26,6 +26,9 @@
     @Schema(description = "鎺у埗鍣ㄧ紪鍙�")
     private String controllerCode;
 
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�")
+    private String rtuAddr;
+
     @Schema(description = "鍦ㄧ嚎鐘舵��")
     public Integer onlineState;
 

--
Gitblit v1.8.0