From 5c1a8a48f73591002189a99db030440208f056b5 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期一, 17 六月 2024 20:48:17 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java |  103 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml                                           |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java                    |   28 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/pom.xml                                                                            |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml                                            |  335 +++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java                       |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                                |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml                                                  |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java  |   66 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java                              |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportHistoryMapper.java                        |   27 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java                             |    7 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java                        |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java                          |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java                               |  189 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java                             |   28 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java                  |   20 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java                         |   39 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java                       |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java           |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PayInfo.java                             |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java                         |    1 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                         |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java            |   85 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java                |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java                            |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java                         |   65 +
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml                                                  |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java   |   67 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportLast.java                                |  133 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java                               |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportHistory.java                             |  133 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-demo/pipIrr-web-demo.iml                                                                |  219 ++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                              |   60 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java                               |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java                           |   36 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java                              |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/Code2Session.java                    |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportHistoryMapper.xml                                       |  222 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java                               |   11 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java                                  |  215 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java                          |   13 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml                                         |  328 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java            |   68 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml                                          |  230 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java                                  |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkReportV202404.java    |   62 +
 /dev/null                                                                                                                     |  206 ---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml                                               |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java                                  |   11 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                                |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java        |    4 
 52 files changed, 2,538 insertions(+), 553 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
index 628014d..ef1095f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
@@ -11,7 +11,7 @@
 
 	public Object subData ;
 
-	public String dt ;//閫氫俊涓棿浠朵骇鐢熸敹鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
+	public String dt ;//閫氫俊涓棿浠朵骇鐢熺殑鏀舵姤鏃堕棿(yyyy-MM-dd hh:mm:ss)
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
index 8a5f836..2f087bc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/global/GlParse.java
@@ -11,25 +11,31 @@
     private static final Logger log = LogManager.getLogger(GlParse.class);
 
     public static DataAlarmVo parseAlarm(byte[] bs, short index){
+        /*
+        11011111 (DF)  +  11111001 (F9)
+        鎶ヨ:
+        钃勭數姹犵數鍘嬶細鎶ヨ
+        婕忔崯锛氭姤璀�
+        浠〃锛氭姤璀�
+        闃�闂細鎶ヨ
+        */
         DataAlarmVo avo = new DataAlarmVo() ;
-        byte b = bs[index] ;
-        index++ ;
-        avo.batteryVolt = (byte)(b & 0x2 >> 1) ;
-        avo.loss = (byte)(b & 0x8 >> 3) ;
-        avo.meter = (byte)(b & 0x20 >> 5) ;
+        byte b = bs[index + 1] ;
+        avo.batteryVolt = (byte)((b & 0x2) >> 1) ;
+        avo.meter = (byte)((b & 0x20) >> 5) ;
 
         b = bs[index] ;
-        avo.valve = (byte)(b & 0x20 >> 5) ;
+        avo.loss = (byte)((b & 0x2) >> 1) ;
+        avo.valve = (byte)((b & 0x4) >> 2) ;
         return avo ;
     }
 
     public static DataStateVo parseState(byte[] bs, short index){
         DataStateVo avo = new DataStateVo() ;
-        byte b = bs[index] ;
-        index++ ;
-        avo.icCard = (byte)(b & 0x4 >> 2) ;
-        avo.working = (byte)(b & 0x8 >> 3) ;
-        avo.valve = (byte)(b & 0x20 >> 5) ;
+        byte b = bs[index + 1] ;
+        avo.icCard = (byte)((b & 0x4) >> 2) ;
+        avo.working = (byte)((b & 0x10) >> 4) ;
+        avo.powerType = (byte)((b & 0x40) >> 6) ;
         return avo ;
     }
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
index c4cb401..983a152 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
@@ -6,7 +6,7 @@
 public class DataAlarmVo {
     public Byte batteryVolt ;// 钃勭數姹犵數鍘�
     public Byte loss ;//婕忔崯
-    public Byte meter ;//浠〃
+    public Byte meter ;//娴侀噺璁℃晠闅�
     public Byte valve ;//闃�闂�
 
     public String toString(){
@@ -18,7 +18,7 @@
         str.append("         婕忔崯锛�");
         str.append(loss==null?"":(loss==1?"鎶ヨ":"姝e父"));
         str.append("\n");
-        str.append("         浠〃锛�");
+        str.append("         娴侀噺璁℃晠闅滐細");
         str.append(meter==null?"":(meter==1?"鎶ヨ":"姝e父"));
         str.append("\n");
         str.append("         闃�闂細");
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
index 33bf869..1e12bd4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
@@ -6,7 +6,7 @@
 public class DataStateVo  {
     public Byte icCard;// IC鍗″姛鑳�
     public Byte working;//宸ヤ綔鐘舵��
-    public Byte valve ;//闃�闂�
+    public Byte powerType ;//鐢垫簮鐘舵�侊紙0锛�220V渚涚數锛�1锛氱暅鐢垫睜渚涚數锛�
 
     public String toString(){
         StringBuilder str = new StringBuilder() ;
@@ -17,8 +17,8 @@
         str.append("         宸ヤ綔鐘舵�侊細");
         str.append(working ==null?"":(working ==1?"鍚姩":"鍋滄"));
         str.append("\n");
-        str.append("         闃�闂ㄧ姸鎬侊細");
-        str.append(valve==null?"":(valve==1?"鎵撳紑":"鍏抽棴"));
+        str.append("         鐢垫簮鐘舵�侊細");
+        str.append(powerType==null?"":(powerType==1?"鐣滅數姹犱緵鐢�":"220V渚涚數"));
         return str.toString() ;
     }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java
index 646d5ec..6d1cd7e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java
@@ -11,7 +11,7 @@
 
 	public Object subData ;
 
-	public String dt ;//閫氫俊涓棿浠朵骇鐢熸敹鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
+	public String dt ;//閫氫俊涓棿浠朵骇鐢熺殑鏀舵姤鏃堕棿(yyyy-MM-dd hh:mm:ss)
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
index 53741ee..bb0bf4c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrGlobal.daoRm;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -9,7 +10,7 @@
  * @Description
  */
 @Mapper
-public interface RmAlarmStateHistoryMapper {
+public interface RmAlarmStateHistoryMapper extends BaseMapper<RmAlarmStateHistory> {
     /**
      * delete by primary key
      *
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportHistoryMapper.java
deleted file mode 100644
index 646b31c..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportHistoryMapper.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Author liurunyu
- * @Date 2024/1/16 14:59
- * @LastEditTime 2024/1/16 14:59
- * @Description
- */   
-@Mapper
-public interface RmAutoReportHistoryMapper extends BaseMapper<RmAutoReportHistory> {
-    /**
-     * 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(RmAutoReportHistory record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(RmAutoReportHistory record);
-
-    /**
-     * select by primary key
-     * @param id primary key
-     * @return object by primary key
-     */
-    RmAutoReportHistory selectByPrimaryKey(Long id);
-
-    /**
-     * update record selective
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKeySelective(RmAutoReportHistory record);
-
-    /**
-     * update record
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKey(RmAutoReportHistory record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportLastMapper.java
deleted file mode 100644
index 21214ec..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAutoReportLastMapper.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @Author liurunyu
- * @Date 2024/1/16 14:45
- * @LastEditTime 2024/1/16 14:45
- * @Description
- */   
-@Mapper
-public interface RmAutoReportLastMapper extends BaseMapper<RmAutoReportLast> {
-    /**
-     * 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(RmAutoReportLast record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(RmAutoReportLast record);
-
-    /**
-     * select by primary key
-     * @param id primary key
-     * @return object by primary key
-     */
-    RmAutoReportLast selectByPrimaryKey(Long id);
-
-    /**
-     * select by rtuAddr
-     * @param rtuAddr rtuAddr
-     * @return object by rtuAddr
-     */
-    List<RmAutoReportLast> selectByRtuAddr(String rtuAddr);
-
-    /**
-     * update record selective
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKeySelective(RmAutoReportLast record);
-
-    /**
-     * update record
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKey(RmAutoReportLast record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
index 9fadae6..8dbadd4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -1,6 +1,5 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import org.apache.ibatis.annotations.Mapper;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportHistoryMapper.java
new file mode 100644
index 0000000..32f5cfc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportHistoryMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-14 14:43
+ * @LastEditTime 2024-06-14 14:43
+ * @Description
+ */
+
+@Mapper
+public interface RmTimingReportHistoryMapper extends BaseMapper<RmTimingReportHistory> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(RmTimingReportHistory record);
+
+    int insertSelective(RmTimingReportHistory record);
+
+    RmTimingReportHistory selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(RmTimingReportHistory record);
+
+    int updateByPrimaryKey(RmTimingReportHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java
new file mode 100644
index 0000000..def99bb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java
@@ -0,0 +1,36 @@
+package com.dy.pipIrrGlobal.daoRm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-14 15:17
+ * @LastEditTime 2024-06-14 15:17
+ * @Description
+ */
+
+@Mapper
+public interface RmTimingReportLastMapper extends BaseMapper<RmTimingReportLast> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(RmTimingReportLast record);
+
+    int insertSelective(RmTimingReportLast record);
+
+    RmTimingReportLast selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(RmTimingReportLast record);
+
+    int updateByPrimaryKey(RmTimingReportLast record);
+
+    /**
+     * 鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇瀹氱偣涓婃姤鏈�鏂版暟鎹�
+     * @param rtuAddr
+     * @return
+     */
+    List<RmTimingReportLast> getRmTimingReportLast(String rtuAddr);
+}
\ 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
index cb35a59..24b3607 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportHistoryMapper.java
@@ -4,15 +4,15 @@
 import org.apache.ibatis.annotations.Mapper;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/28 8:52
- * @LastEditTime 2024/2/28 8:52
+ * @Author: liurunyu
+ * @Date: 2024/6/14 10:58
  * @Description
- */   
+ */
 @Mapper
 public interface RmWorkReportHistoryMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -20,6 +20,7 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
@@ -27,6 +28,7 @@
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
@@ -34,6 +36,7 @@
 
     /**
      * select by primary key
+     *
      * @param id primary key
      * @return object by primary key
      */
@@ -41,6 +44,7 @@
 
     /**
      * update record selective
+     *
      * @param record the updated record
      * @return update count
      */
@@ -48,6 +52,7 @@
 
     /**
      * update record
+     *
      * @param record the updated record
      * @return update count
      */
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
index 3d964ac..2357550 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
@@ -6,15 +6,15 @@
 import java.util.List;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/28 8:52
- * @LastEditTime 2024/2/28 8:52
+ * @Author: liurunyu
+ * @Date: 2024/6/14 10:11
  * @Description
- */   
+ */
 @Mapper
 public interface RmWorkReportLastMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -22,6 +22,7 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
@@ -29,6 +30,7 @@
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
@@ -36,20 +38,15 @@
 
     /**
      * 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
      */
@@ -57,8 +54,17 @@
 
     /**
      * update record
+     *
      * @param record the updated record
      * @return update count
      */
     int updateByPrimaryKey(RmWorkReportLast record);
+
+    /**
+     * select by primary key
+     *
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @return object by rtuAddr
+     */
+    List<RmWorkReportLast> selectByRtuAddr(String rtuAddr);
 }
\ 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 1ec2a27..e15bc35 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
@@ -1,7 +1,12 @@
 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.*;
 
@@ -28,16 +33,20 @@
     /**
      * 涓婚敭
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
     public Long id;
 
     /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long controllerId;
 
     /**
      * 鍙栨按鍙D锛堝閿級
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long intakeId;
 
     /**
@@ -48,11 +57,13 @@
     /**
      * 涓婃姤鏃ユ湡鏃堕棿
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date dt;
 
     /**
      * 鎺у埗鍣ㄦ椂閽�
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date rtuDt;
 
     /**
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 6a5a21d..d2eefc7 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
@@ -1,7 +1,12 @@
 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.*;
 
@@ -28,16 +33,20 @@
     /**
      * 涓婚敭
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
     public Long id;
 
     /**
      * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long controllerId;
 
     /**
      * 鍙栨按鍙D锛堝閿級
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long intakeId;
 
     /**
@@ -48,11 +57,13 @@
     /**
      * 涓婃姤鏃ユ湡鏃堕棿
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date dt;
 
     /**
      * 鎺у埗鍣ㄦ椂閽�
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date rtuDt;
 
     /**
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
deleted file mode 100644
index 1ddc251..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportHistory.java
+++ /dev/null
@@ -1,116 +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/16 14:59
- * @LastEditTime 2024/1/16 14:59
- * @Description 缁堢鑷姤锛堟渶鏂帮級
- */   
-@TableName(value="rm_alarm_state_history", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鎺у埗鍣ㄨ嚜鎶ワ紙鍘嗗彶锛�")
-public class RmAutoReportHistory implements BaseEntity {
-
-    public static final long serialVersionUID = 202401161501001L;
-    /**
-     * 涓婚敭
-     */
-    @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;
-
-    /**
-     * 鍙栨按鍙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;
-
-    /**
-     * 鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h
-     */
-    @Schema(description = "鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double instantamount;
-
-    /**
-     * 绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3
-     */
-    @Schema(description = "绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double totalamount;
-
-    /**
-     * 鎹熷け娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3
-     */
-    @Schema(description = "鎹熷け娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double lossamount;
-
-    /**
-     * 姘村帇锛�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~999999.99锛屽崟浣嶄负KPa
-     */
-    @Schema(description = "姘村帇锛�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~999999.99锛屽崟浣嶄负KPa", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double waterpress;
-
-    /**
-     * 钃勭數姹犵數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V
-     */
-    @Schema(description = "钃勭數姹犵數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double batteryvolt;
-
-    /**
-     * 澶槼鑳界數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V
-     */
-    @Schema(description = "澶槼鑳界數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double sunvolt;
-
-    /**
-     * 淇″彿寮哄害锛�1瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99
-     */
-    @Schema(description = "淇″彿寮哄害锛�1瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Integer signalvalue;
-
-}
\ No newline at end of file
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
deleted file mode 100644
index d3b1f04..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAutoReportLast.java
+++ /dev/null
@@ -1,116 +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/16 14:45
- * @LastEditTime 2024/1/16 14:45
- * @Description 缁堢鑷姤锛堟渶鏂帮級
- */   
-@TableName(value="rm_alarm_state_last", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鎺у埗鍣ㄨ嚜鎶ワ紙鏈�鏂帮級")
-public class RmAutoReportLast implements BaseEntity {
-
-    public static final long serialVersionUID = 202401161446001L;
-    /**
-     * 涓婚敭
-     */
-    @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;
-
-    /**
-     * 鍙栨按鍙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;
-
-    /**
-    * 鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h
-    */
-    @Schema(description = "鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double instantamount;
-
-    /**
-    * 绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3
-    */
-    @Schema(description = "绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double totalamount;
-
-    /**
-    * 鎹熷け娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3
-    */
-    @Schema(description = "鎹熷け娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double lossamount;
-
-    /**
-    * 姘村帇锛�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~999999.99锛屽崟浣嶄负KPa
-    */
-    @Schema(description = "姘村帇锛�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~999999.99锛屽崟浣嶄负KPa", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double waterpress;
-
-    /**
-    * 钃勭數姹犵數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V
-    */
-    @Schema(description = "钃勭數姹犵數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double batteryvolt;
-
-    /**
-    * 澶槼鑳界數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V
-    */
-    @Schema(description = "澶槼鑳界數鍘�:4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99.99锛屽崟浣嶄负V", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double sunvolt;
-
-    /**
-    * 淇″彿寮哄害锛�1瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99
-    */
-    @Schema(description = "淇″彿寮哄害锛�1瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~99", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Integer signalvalue;
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
index d935b7a..3825187 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
@@ -15,6 +15,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
@@ -55,6 +56,7 @@
     /**
      * 鍙栨按鍙D
      */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @NotNull(message = "鍙栨按鍙D涓嶈兘涓虹┖")
     private Long intakeId;
 
@@ -80,6 +82,7 @@
      * 鍙戦�佸懡浠ゆ椂闂�
      */
     @NotNull(message = "鍙戦�佸懡浠ゆ椂闂翠笉鑳戒负绌�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date sendTime;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportHistory.java
new file mode 100644
index 0000000..c897110
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportHistory.java
@@ -0,0 +1,133 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-14 14:43
+ * @LastEditTime 2024-06-14 14:43
+ * @Description
+ */
+/**
+ * 瀹氭椂鎶ュ巻鍙叉暟鎹〃
+ */
+
+@TableName(value="rm_timing_report_history", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "瀹氭椂鎶ュ巻鍙叉暟鎹〃")
+public class RmTimingReportHistory implements BaseEntity {
+    public static final long serialVersionUID = 202406111447001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+    * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+    * 鍙栨按鍙e疄浣揑D锛堝閿級
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+    * 鎺у埗鍣ㄥ湴鍧�
+    */
+    public String rtuAddr;
+
+    /**
+    * 鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date dt;
+
+    /**
+    * 鎺у埗鍣ㄦ椂閽�
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtuDt;
+
+    /**
+    * 鏁版嵁鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dataDt;
+
+    /**
+    * 鏈勾绱娴侀噺
+    */
+    public Double waterTotalAmountYear;
+
+    /**
+    * 姘磋〃绱娴侀噺
+    */
+    public Double waterTotalAmountMeter;
+
+    /**
+    * 鏈勾绱鐢甸噺
+    */
+    public Double eleTotalAmountYear;
+
+    /**
+    * 鐢佃〃绱鐢甸噺
+    */
+    public Double eleTotalAmountMeter;
+
+    /**
+    * 褰撴棩姘磋〃鍑�娴侀噺
+    */
+    public Double waterTotalAmountDay;
+
+    /**
+    * 褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+    */
+    public Double waterUserTotalAmountDay;
+
+    /**
+    * 婕忔崯姘撮噺
+    */
+    public Double lossTotalAmountDay;
+
+    /**
+    * 鍚庡鐢垫睜鐢靛帇
+    */
+    public Double batteryVolt;
+
+    public void valueFrom(DataV202404 dataV202404, DataCd83Vo cdData) throws Exception{
+        this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        this.dataDt = DateTime.dateFrom_yyyy_MM_dd(cdData.dataDt) ; //
+        this.waterTotalAmountYear = cdData.waterTotalAmountYear; //鏈勾绱娴侀噺
+        this.waterTotalAmountMeter = cdData.waterTotalAmountMeter ;//姘磋〃绱娴侀噺
+        this.eleTotalAmountYear = cdData.eleTotalAmountYear ;// 鏈勾绱鐢甸噺
+        this.eleTotalAmountMeter = cdData.eleTotalAmountMeter ;// 鐢佃〃绱鐢甸噺
+        this.waterTotalAmountDay = cdData.waterTotalAmountDay ;// 褰撴棩姘磋〃鍑�娴侀噺
+        this.waterUserTotalAmountDay = cdData.waterUserTotalAmountDay ;//  褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+        this.lossTotalAmountDay = cdData.lossTotalAmountDay ;//  婕忔崯姘撮噺
+        this.batteryVolt = cdData.batteryVolt ;// 鍚庡鐢垫睜鐢靛帇
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportLast.java
new file mode 100644
index 0000000..4a9469b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmTimingReportLast.java
@@ -0,0 +1,133 @@
+package com.dy.pipIrrGlobal.pojoRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-14 15:17
+ * @LastEditTime 2024-06-14 15:17
+ * @Description
+ */
+/**
+ * 瀹氭椂鎶ユ渶鏂版暟鎹〃
+ */
+
+@TableName(value="rm_timing_report_last", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "瀹氭椂鎶ユ渶鏂版暟鎹〃")
+public class RmTimingReportLast implements BaseEntity {
+    public static final long serialVersionUID = 202406111519001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    public Long id;
+
+    /**
+    * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long controllerId;
+
+    /**
+    * 鍙栨按鍙e疄浣揑D锛堝閿級
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long intakeId;
+
+    /**
+    * 鎺у埗鍣ㄥ湴鍧�
+    */
+    public String rtuAddr;
+
+    /**
+    * 鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date dt;
+
+    /**
+    * 鎺у埗鍣ㄦ椂閽�
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date rtuDt;
+
+    /**
+    * 鏁版嵁鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date dataDt;
+
+    /**
+    * 鏈勾绱娴侀噺
+    */
+    public Double waterTotalAmountYear;
+
+    /**
+    * 姘磋〃绱娴侀噺
+    */
+    public Double waterTotalAmountMeter;
+
+    /**
+    * 鏈勾绱鐢甸噺
+    */
+    public Double eleTotalAmountYear;
+
+    /**
+    * 鐢佃〃绱鐢甸噺
+    */
+    public Double eleTotalAmountMeter;
+
+    /**
+    * 褰撴棩姘磋〃鍑�娴侀噺
+    */
+    public Double waterTotalAmountDay;
+
+    /**
+    * 褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+    */
+    public Double waterUserTotalAmountDay;
+
+    /**
+    * 婕忔崯姘撮噺
+    */
+    public Double lossTotalAmountDay;
+
+    /**
+    * 鍚庡鐢垫睜鐢靛帇
+    */
+    public Double batteryVolt;
+
+    public void valueFrom(DataV202404 dataV202404, DataCd83Vo cdData) throws Exception{
+        this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        this.dataDt = DateTime.dateFrom_yyyy_MM_dd(cdData.dataDt) ; //
+        this.waterTotalAmountYear = cdData.waterTotalAmountYear; //鏈勾绱娴侀噺
+        this.waterTotalAmountMeter = cdData.waterTotalAmountMeter ;//姘磋〃绱娴侀噺
+        this.eleTotalAmountYear = cdData.eleTotalAmountYear ;// 鏈勾绱鐢甸噺
+        this.eleTotalAmountMeter = cdData.eleTotalAmountMeter ;// 鐢佃〃绱鐢甸噺
+        this.waterTotalAmountDay = cdData.waterTotalAmountDay ;// 褰撴棩姘磋〃鍑�娴侀噺
+        this.waterUserTotalAmountDay = cdData.waterUserTotalAmountDay ;//  褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+        this.lossTotalAmountDay = cdData.lossTotalAmountDay ;//  婕忔崯姘撮噺
+        this.batteryVolt = cdData.batteryVolt ;// 鍚庡鐢垫睜鐢靛帇
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
index 2dff0cd..8e6f9ee 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
@@ -5,7 +5,10 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
 import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -13,20 +16,19 @@
 import java.util.Date;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/28 8:52
- * @LastEditTime 2024/2/28 8:52
- * @Description 缁堢宸ヤ綔鎶ュ巻鍙叉暟鎹�
+ * @Author: liurunyu
+ * @Date: 2024/6/14 10:58
+ * @Description 缁堢闃�寮�宸ヤ綔鎶ュ巻鍙叉暟鎹�
  */
+
 @TableName(value="rm_work_report_history", autoResultMap = true)
 @Data
 @Builder
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "缁堢宸ヤ綔鎶ュ巻鍙叉暟鎹�")
-public class RmWorkReportHistory  implements BaseEntity {
-
+@Schema(name = "缁堢闃�寮�宸ヤ綔鎶ュ巻鍙叉暟鎹�")
+public class RmWorkReportHistory implements BaseEntity {
     public static final long serialVersionUID = 202402280859001L;
     /**
      * 涓婚敭
@@ -71,28 +73,183 @@
     public Date rtuDt;
 
     /**
+     * 璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    @Schema(hidden=true)
+    @JSONField(serialize = false)
+    public String orderNo;
+
+    /**
+     * IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃跺叏涓�0)
+     */
+    @Schema(description = "IC鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String icCardAddr;
+
+    /**
      * IC鍗$紪鍙�
      */
     @Schema(description = "IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String icCardNo;
 
     /**
-     * 绱娴侀噺
+     * 姘翠綅锛堝崟浣�0.001绫筹級
      */
-    @Schema(description = "绱娴侀噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double totalAmount;
+    @Schema(description = "姘翠綅锛堝崟浣�0.001绫筹級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterLevel;
 
     /**
-     * 鐬椂娴侀噺
+     * 姘村帇锛堝崟浣�0.01鍗冨笗锛�
      */
-    @Schema(description = "鐬椂娴侀噺锛坢3/h锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double instantAmount;
+    @Schema(description = "姘村帇锛堝崟浣�0.01鍗冨笗锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterPress;
 
     /**
-     * 鍓╀綑閲戦
+     * 鐬椂娴侀噺锛堝崟浣�0.01m3/灏忔椂锛�
      */
-    @Schema(description = "鍓╀綑钂傞噾棰濓紙鍏冿級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double remainMoney;
+    @Schema(description = "鐬椂娴侀噺锛堝崟浣�0.01m3/灏忔椂锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterInstant;
 
+    /**
+     * 姘磋〃绱娴侀噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "姘磋〃绱娴侀噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterTotal;
 
+    /**
+     * 鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
+     */
+    @Schema(description = "鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double eleTotal;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
+     */
+    @Schema(description = "鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double moneyRemain;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterRemain;
+
+    /**
+     * 鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
+     */
+    @Schema(description = "鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisEle;
+
+    /**
+     * 鏈浣跨敤姘撮噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "鏈浣跨敤姘撮噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisWater;
+
+    /**
+     * 鏈浣跨敤閲戦(鍗曚綅0.01鍏�)
+     */
+    @Schema(description = "鏈浣跨敤閲戦(鍗曚綅0.01鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisMoney;
+
+    /**
+     * 鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)
+     */
+    @Schema(description = "鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Integer thisDuration;
+
+    /**
+     * 褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+     */
+    @Schema(description = "褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterPrice;
+
+    /**
+     * 褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+     */
+    @Schema(description = "褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double elePrice;
+
+    /**
+     * 浜ゆ祦A鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦A鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double aVolt;
+
+    /**
+     * 浜ゆ祦B鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦B鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double bVolt;
+
+    /**
+     * 浜ゆ祦C鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦C鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double cVolt;
+
+    /**
+     * 浜ゆ祦A鐩哥數娴�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦A鐩哥數娴�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double aCurrent;
+
+    /**
+     * 浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double bCurrent;
+
+    /**
+     * 浜ゆ祦C鐩哥數娴�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦C鐩哥數娴�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double cCurrent;
+
+    /**
+     * 鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double batteryVolt;
+
+    /**
+     * 姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterMeterTransVolt;
+
+    /**
+     * 姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterMeterWorkVolt;
+
+    public void valueFrom(DataV202404 dataV202404, DataCd80_5BVo cdData) throws Exception{
+        this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+        this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+        this.orderNo = cdData.orderNo ;
+        this.icCardAddr = cdData.icCardAddr ;
+        this.icCardNo = cdData.icCardNo ;
+        this.waterLevel = cdData.waterLevel ;
+        this.waterPress = cdData.waterPress ;
+        this.waterInstant = cdData.waterInstant ;
+        this.waterTotal = cdData.waterTotal ;
+        this.eleTotal = cdData.eleTotal ;
+        this.moneyRemain = cdData.moneyRemain ;
+        this.waterRemain = cdData.waterRemain ;
+        this.thisEle = cdData.thisEle ;
+        this.thisWater = cdData.thisWater ;
+        this.thisMoney = cdData.thisMoney ;
+        this.thisDuration = cdData.thisDuration ;
+        this.waterPrice = cdData.waterPrice ;
+        this.elePrice = cdData.elePrice ;
+        this.aVolt = cdData.aVolt ;
+        this.bVolt = cdData.bVolt ;
+        this.cVolt = cdData.cVolt ;
+        this.aCurrent = cdData.aCurrent ;
+        this.bCurrent = cdData.bCurrent ;
+        this.cCurrent = cdData.cCurrent ;
+        this.batteryVolt = cdData.batteryVolt ;
+        this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
+        this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
+    }
 }
\ 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
index 30a39ed..96b1308 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
@@ -5,7 +5,10 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
 import com.dy.common.po.BaseEntity;
+import com.dy.common.util.DateTime;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -13,21 +16,18 @@
 import java.util.Date;
 
 /**
- * @Author liurunyu
- * @Date 2024/2/28 8:52
- * @LastEditTime 2024/2/28 8:52
- * @Description 缁堢鏈�鏂板伐浣滄姤
+ * @Author: liurunyu
+ * @Date: 2024/6/14 10:11
+ * @Description 鎺у埗鍣ㄩ榾寮�宸ヤ綔鎶ユ渶鏂版暟鎹�
  */
-
 @TableName(value="rm_work_report_last", autoResultMap = true)
 @Data
 @Builder
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "缁堢鏈�鏂板伐浣滄姤")
-public class RmWorkReportLast implements BaseEntity {
-
+@Schema(name = "缁堢闃�寮�宸ヤ綔鎶ユ渶鏂版暟鎹�")
+public class RmWorkReportLast  implements BaseEntity {
     public static final long serialVersionUID = 202402280855001L;
     /**
      * 涓婚敭
@@ -38,28 +38,28 @@
     public Long id;
 
     /**
-    * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-    */
+     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
+     */
     @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     public Long controllerId;
 
     /**
-    * 鍙栨按鍙e疄浣揑D锛堝閿級
-    */
+     * 鍙栨按鍙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;
@@ -72,28 +72,183 @@
     public Date rtuDt;
 
     /**
-    * IC鍗$紪鍙�
-    */
+     * 璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+     */
+    @Schema(hidden=true)
+    @JSONField(serialize = false)
+    public String orderNo;
+
+    /**
+     * IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃跺叏涓�0)
+     */
+    @Schema(description = "IC鍗″湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public String icCardAddr;
+
+    /**
+     * IC鍗$紪鍙�
+     */
     @Schema(description = "IC鍗$紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public String icCardNo;
 
     /**
-    * 绱娴侀噺
-    */
-    @Schema(description = "绱娴侀噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double totalAmount;
+     * 姘翠綅锛堝崟浣�0.001绫筹級
+     */
+    @Schema(description = "姘翠綅锛堝崟浣�0.001绫筹級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterLevel;
 
     /**
-    * 鐬椂娴侀噺
-    */
-    @Schema(description = "鐬椂娴侀噺锛坢3/h锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double instantAmount;
+     * 姘村帇锛堝崟浣�0.01鍗冨笗锛�
+     */
+    @Schema(description = "姘村帇锛堝崟浣�0.01鍗冨笗锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterPress;
 
     /**
-    * 鍓╀綑閲戦
-    */
-    @Schema(description = "鍓╀綑钂傞噾棰濓紙鍏冿級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double remainMoney;
+     * 鐬椂娴侀噺锛堝崟浣�0.01m3/灏忔椂锛�
+     */
+    @Schema(description = "鐬椂娴侀噺锛堝崟浣�0.01m3/灏忔椂锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterInstant;
 
+    /**
+     * 姘磋〃绱娴侀噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "姘磋〃绱娴侀噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterTotal;
 
+    /**
+     * 鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
+     */
+    @Schema(description = "鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double eleTotal;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
+     */
+    @Schema(description = "鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double moneyRemain;
+
+    /**
+     * 鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterRemain;
+
+    /**
+     * 鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
+     */
+    @Schema(description = "鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisEle;
+
+    /**
+     * 鏈浣跨敤姘撮噺(鍗曚綅0.01m3)
+     */
+    @Schema(description = "鏈浣跨敤姘撮噺(鍗曚綅0.01m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisWater;
+
+    /**
+     * 鏈浣跨敤閲戦(鍗曚綅0.01鍏�)
+     */
+    @Schema(description = "鏈浣跨敤閲戦(鍗曚綅0.01鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double thisMoney;
+
+    /**
+     * 鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)
+     */
+    @Schema(description = "鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Integer thisDuration;
+
+    /**
+     * 褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+     */
+    @Schema(description = "褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterPrice;
+
+    /**
+     * 褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+     */
+    @Schema(description = "褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double elePrice;
+
+    /**
+     * 浜ゆ祦A鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦A鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double aVolt;
+
+    /**
+     * 浜ゆ祦B鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦B鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double bVolt;
+
+    /**
+     * 浜ゆ祦C鐩哥數鍘�(鍗曚綅0.1浼忕壒)
+     */
+    @Schema(description = "浜ゆ祦C鐩哥數鍘�(鍗曚綅0.1浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double cVolt;
+
+    /**
+     * 浜ゆ祦A鐩哥數娴�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦A鐩哥數娴�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double aCurrent;
+
+    /**
+     * 浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double bCurrent;
+
+    /**
+     * 浜ゆ祦C鐩哥數娴�(鍗曚綅0.1瀹夊煿)
+     */
+    @Schema(description = "浜ゆ祦C鐩哥數娴�(鍗曚綅0.1瀹夊煿)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double cCurrent;
+
+    /**
+     * 鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double batteryVolt;
+
+    /**
+     * 姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterMeterTransVolt;
+
+    /**
+     * 姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)
+     */
+    @Schema(description = "姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Double waterMeterWorkVolt;
+
+    public void valueFrom(DataV202404 dataV202404, DataCd80_5BVo cdData) throws Exception{
+         this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataV202404.dt);
+         this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+         this.orderNo = cdData.orderNo ;
+         this.icCardAddr = cdData.icCardAddr ;
+         this.icCardNo = cdData.icCardNo ;
+         this.waterLevel = cdData.waterLevel ;
+         this.waterPress = cdData.waterPress ;
+         this.waterInstant = cdData.waterInstant ;
+         this.waterTotal = cdData.waterTotal ;
+         this.eleTotal = cdData.eleTotal ;
+         this.moneyRemain = cdData.moneyRemain ;
+         this.waterRemain = cdData.waterRemain ;
+         this.thisEle = cdData.thisEle ;
+         this.thisWater = cdData.thisWater ;
+         this.thisMoney = cdData.thisMoney ;
+         this.thisDuration = cdData.thisDuration ;
+         this.waterPrice = cdData.waterPrice ;
+         this.elePrice = cdData.elePrice ;
+         this.aVolt = cdData.aVolt ;
+         this.bVolt = cdData.bVolt ;
+         this.cVolt = cdData.cVolt ;
+         this.aCurrent = cdData.aCurrent ;
+         this.bCurrent = cdData.bCurrent ;
+         this.cCurrent = cdData.cCurrent ;
+         this.batteryVolt = cdData.batteryVolt ;
+         this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
+         this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
+    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
index ee313a9..dd61ff9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
@@ -6,7 +6,7 @@
             type: com.alibaba.druid.pool.DruidDataSource
             driverClassName: com.mysql.cj.jdbc.Driver
 #            url: jdbc:mysql://192.168.91.73:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
-            url: jdbc:mysql://127.0.0.1:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+            url: jdbc:mysql://192.168.40.166:3306/pipIrr_pj?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
             username: root
             password: dysql,;.abc!@#
             druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 29fac5c..700142f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,8 +5,8 @@
             #name: ym
             type: com.alibaba.druid.pool.DruidDataSource
             driverClassName: com.mysql.cj.jdbc.Driver
-#            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
-            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
             username: root
             password: dysql,;.abc!@#
             druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml
deleted file mode 100644
index 492796b..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportHistoryMapper.xml
+++ /dev/null
@@ -1,197 +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.RmAutoReportHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_auto_report_history-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
-    <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
-    <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="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" />
-    <result column="waterPress" jdbcType="DOUBLE" property="waterpress" />
-    <result column="batteryVolt" jdbcType="DOUBLE" property="batteryvolt" />
-    <result column="sunVolt" jdbcType="DOUBLE" property="sunvolt" />
-    <result column="signalValue" jdbcType="INTEGER" property="signalvalue" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, rtuDt, instantAmount, totalAmount, lossAmount, 
-    waterPress, batteryVolt, sunVolt, signalValue
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_auto_report_history
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_auto_report_history
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory">
-    <!--@mbg.generated-->
-    insert into rm_auto_report_history (id, controllerId, intakeId, 
-      rtuAddr, dt, rtuDt, instantAmount, 
-      totalAmount, lossAmount, waterPress, 
-      batteryVolt, sunVolt, signalValue
-      )
-    values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{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}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory">
-    <!--@mbg.generated-->
-    insert into rm_auto_report_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerid != null">
-        controllerId,
-      </if>
-      <if test="intakeid != null">
-        intakeId,
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr,
-      </if>
-      <if test="dt != null">
-        dt,
-      </if>
-      <if test="rtudt != null">
-        rtuDt,
-      </if>
-      <if test="instantamount != null">
-        instantAmount,
-      </if>
-      <if test="totalamount != null">
-        totalAmount,
-      </if>
-      <if test="lossamount != null">
-        lossAmount,
-      </if>
-      <if test="waterpress != null">
-        waterPress,
-      </if>
-      <if test="batteryvolt != null">
-        batteryVolt,
-      </if>
-      <if test="sunvolt != null">
-        sunVolt,
-      </if>
-      <if test="signalvalue != null">
-        signalValue,
-      </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="rtudt != null">
-        #{rtudt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantamount != null">
-        #{instantamount,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamount != null">
-        #{totalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="lossamount != null">
-        #{lossamount,jdbcType=DOUBLE},
-      </if>
-      <if test="waterpress != null">
-        #{waterpress,jdbcType=DOUBLE},
-      </if>
-      <if test="batteryvolt != null">
-        #{batteryvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="sunvolt != null">
-        #{sunvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="signalvalue != null">
-        #{signalvalue,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory">
-    <!--@mbg.generated-->
-    update rm_auto_report_history
-    <set>
-      <if test="controllerid != null">
-        controllerId = #{controllerid,jdbcType=BIGINT},
-      </if>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtudt != null">
-        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantamount != null">
-        instantAmount = #{instantamount,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamount != null">
-        totalAmount = #{totalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="lossamount != null">
-        lossAmount = #{lossamount,jdbcType=DOUBLE},
-      </if>
-      <if test="waterpress != null">
-        waterPress = #{waterpress,jdbcType=DOUBLE},
-      </if>
-      <if test="batteryvolt != null">
-        batteryVolt = #{batteryvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="sunvolt != null">
-        sunVolt = #{sunvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="signalvalue != null">
-        signalValue = #{signalvalue,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory">
-    <!--@mbg.generated-->
-    update rm_auto_report_history
-    set controllerId = #{controllerid,jdbcType=BIGINT},
-      intakeId = #{intakeid,jdbcType=BIGINT},
-      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=TIMESTAMP},
-      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      instantAmount = #{instantamount,jdbcType=DOUBLE},
-      totalAmount = #{totalamount,jdbcType=DOUBLE},
-      lossAmount = #{lossamount,jdbcType=DOUBLE},
-      waterPress = #{waterpress,jdbcType=DOUBLE},
-      batteryVolt = #{batteryvolt,jdbcType=DOUBLE},
-      sunVolt = #{sunvolt,jdbcType=DOUBLE},
-      signalValue = #{signalvalue,jdbcType=INTEGER}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml
deleted file mode 100644
index 2b2a419..0000000
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAutoReportLastMapper.xml
+++ /dev/null
@@ -1,206 +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.RmAutoReportLastMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast">
-    <!--@mbg.generated-->
-    <!--@Table rm_auto_report_last-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controllerId" jdbcType="BIGINT" property="controllerid" />
-    <result column="intakeId" jdbcType="BIGINT" property="intakeid" />
-    <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
-    <result column="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" />
-    <result column="waterPress" jdbcType="DOUBLE" property="waterpress" />
-    <result column="batteryVolt" jdbcType="DOUBLE" property="batteryvolt" />
-    <result column="sunVolt" jdbcType="DOUBLE" property="sunvolt" />
-    <result column="signalValue" jdbcType="INTEGER" property="signalvalue" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, rtuDt, instantAmount, totalAmount, lossAmount, 
-    waterPress, batteryVolt, sunVolt, signalValue
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_auto_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_auto_report_last
-    where rtuAddr = #{rtuAddr,jdbcType=VARCHAR}
-  </select>
-
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_auto_report_last
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast">
-    <!--@mbg.generated-->
-    insert into rm_auto_report_last (id, controllerId, intakeId, 
-      rtuAddr, dt, rtuDt, instantAmount, 
-      totalAmount, lossAmount, waterPress, 
-      batteryVolt, sunVolt, signalValue
-      )
-    values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{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}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast">
-    <!--@mbg.generated-->
-    insert into rm_auto_report_last
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerid != null">
-        controllerId,
-      </if>
-      <if test="intakeid != null">
-        intakeId,
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr,
-      </if>
-      <if test="dt != null">
-        dt,
-      </if>
-      <if test="rtudt != null">
-        rtuDt,
-      </if>
-      <if test="instantamount != null">
-        instantAmount,
-      </if>
-      <if test="totalamount != null">
-        totalAmount,
-      </if>
-      <if test="lossamount != null">
-        lossAmount,
-      </if>
-      <if test="waterpress != null">
-        waterPress,
-      </if>
-      <if test="batteryvolt != null">
-        batteryVolt,
-      </if>
-      <if test="sunvolt != null">
-        sunVolt,
-      </if>
-      <if test="signalvalue != null">
-        signalValue,
-      </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="rtudt != null">
-        #{rtudt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantamount != null">
-        #{instantamount,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamount != null">
-        #{totalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="lossamount != null">
-        #{lossamount,jdbcType=DOUBLE},
-      </if>
-      <if test="waterpress != null">
-        #{waterpress,jdbcType=DOUBLE},
-      </if>
-      <if test="batteryvolt != null">
-        #{batteryvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="sunvolt != null">
-        #{sunvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="signalvalue != null">
-        #{signalvalue,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast">
-    <!--@mbg.generated-->
-    update rm_auto_report_last
-    <set>
-      <if test="controllerid != null">
-        controllerId = #{controllerid,jdbcType=BIGINT},
-      </if>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
-      </if>
-      <if test="rtuaddr != null">
-        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtudt != null">
-        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantamount != null">
-        instantAmount = #{instantamount,jdbcType=DOUBLE},
-      </if>
-      <if test="totalamount != null">
-        totalAmount = #{totalamount,jdbcType=DOUBLE},
-      </if>
-      <if test="lossamount != null">
-        lossAmount = #{lossamount,jdbcType=DOUBLE},
-      </if>
-      <if test="waterpress != null">
-        waterPress = #{waterpress,jdbcType=DOUBLE},
-      </if>
-      <if test="batteryvolt != null">
-        batteryVolt = #{batteryvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="sunvolt != null">
-        sunVolt = #{sunvolt,jdbcType=DOUBLE},
-      </if>
-      <if test="signalvalue != null">
-        signalValue = #{signalvalue,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast">
-    <!--@mbg.generated-->
-    update rm_auto_report_last
-    set controllerId = #{controllerid,jdbcType=BIGINT},
-      intakeId = #{intakeid,jdbcType=BIGINT},
-      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=TIMESTAMP},
-      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      instantAmount = #{instantamount,jdbcType=DOUBLE},
-      totalAmount = #{totalamount,jdbcType=DOUBLE},
-      lossAmount = #{lossamount,jdbcType=DOUBLE},
-      waterPress = #{waterpress,jdbcType=DOUBLE},
-      batteryVolt = #{batteryvolt,jdbcType=DOUBLE},
-      sunVolt = #{sunvolt,jdbcType=DOUBLE},
-      signalValue = #{signalvalue,jdbcType=INTEGER}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportHistoryMapper.xml
new file mode 100644
index 0000000..8b2b2e0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportHistoryMapper.xml
@@ -0,0 +1,222 @@
+<?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.RmTimingReportHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory">
+    <!--@mbg.generated-->
+    <!--@Table rm_timing_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="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+    <result column="data_dt" jdbcType="DATE" property="dataDt" />
+    <result column="water_total_amount_year" jdbcType="FLOAT" property="waterTotalAmountYear" />
+    <result column="water_total_amount_meter" jdbcType="FLOAT" property="waterTotalAmountMeter" />
+    <result column="ele_total_amount_year" jdbcType="FLOAT" property="eleTotalAmountYear" />
+    <result column="ele_total_amount_meter" jdbcType="FLOAT" property="eleTotalAmountMeter" />
+    <result column="water_total_amount_day" jdbcType="FLOAT" property="waterTotalAmountDay" />
+    <result column="water_user_total_amount_day" jdbcType="FLOAT" property="waterUserTotalAmountDay" />
+    <result column="loss_total_amount_day" jdbcType="FLOAT" property="lossTotalAmountDay" />
+    <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, data_dt, water_total_amount_year, 
+    water_total_amount_meter, ele_total_amount_year, ele_total_amount_meter, water_total_amount_day, 
+    water_user_total_amount_day, loss_total_amount_day, battery_volt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_timing_report_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_timing_report_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory">
+    <!--@mbg.generated-->
+    insert into rm_timing_report_history (id, controller_id, intake_id, 
+      rtu_addr, dt, rtu_dt, 
+      data_dt, water_total_amount_year, water_total_amount_meter, 
+      ele_total_amount_year, ele_total_amount_meter, water_total_amount_day, 
+      water_user_total_amount_day, loss_total_amount_day, 
+      battery_volt)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{dataDt,jdbcType=DATE}, #{waterTotalAmountYear,jdbcType=FLOAT}, #{waterTotalAmountMeter,jdbcType=FLOAT}, 
+      #{eleTotalAmountYear,jdbcType=FLOAT}, #{eleTotalAmountMeter,jdbcType=FLOAT}, #{waterTotalAmountDay,jdbcType=FLOAT}, 
+      #{waterUserTotalAmountDay,jdbcType=FLOAT}, #{lossTotalAmountDay,jdbcType=FLOAT}, 
+      #{batteryVolt,jdbcType=FLOAT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory">
+    <!--@mbg.generated-->
+    insert into rm_timing_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="rtuDt != null">
+        rtu_dt,
+      </if>
+      <if test="dataDt != null">
+        data_dt,
+      </if>
+      <if test="waterTotalAmountYear != null">
+        water_total_amount_year,
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        water_total_amount_meter,
+      </if>
+      <if test="eleTotalAmountYear != null">
+        ele_total_amount_year,
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        ele_total_amount_meter,
+      </if>
+      <if test="waterTotalAmountDay != null">
+        water_total_amount_day,
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        water_user_total_amount_day,
+      </if>
+      <if test="lossTotalAmountDay != null">
+        loss_total_amount_day,
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt,
+      </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="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dataDt != null">
+        #{dataDt,jdbcType=DATE},
+      </if>
+      <if test="waterTotalAmountYear != null">
+        #{waterTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        #{waterTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountYear != null">
+        #{eleTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        #{eleTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountDay != null">
+        #{waterTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="lossTotalAmountDay != null">
+        #{lossTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        #{batteryVolt,jdbcType=FLOAT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory">
+    <!--@mbg.generated-->
+    update rm_timing_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="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dataDt != null">
+        data_dt = #{dataDt,jdbcType=DATE},
+      </if>
+      <if test="waterTotalAmountYear != null">
+        water_total_amount_year = #{waterTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        water_total_amount_meter = #{waterTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountYear != null">
+        ele_total_amount_year = #{eleTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        ele_total_amount_meter = #{eleTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountDay != null">
+        water_total_amount_day = #{waterTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        water_user_total_amount_day = #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="lossTotalAmountDay != null">
+        loss_total_amount_day = #{lossTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory">
+    <!--@mbg.generated-->
+    update rm_timing_report_history
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      data_dt = #{dataDt,jdbcType=DATE},
+      water_total_amount_year = #{waterTotalAmountYear,jdbcType=FLOAT},
+      water_total_amount_meter = #{waterTotalAmountMeter,jdbcType=FLOAT},
+      ele_total_amount_year = #{eleTotalAmountYear,jdbcType=FLOAT},
+      ele_total_amount_meter = #{eleTotalAmountMeter,jdbcType=FLOAT},
+      water_total_amount_day = #{waterTotalAmountDay,jdbcType=FLOAT},
+      water_user_total_amount_day = #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      loss_total_amount_day = #{lossTotalAmountDay,jdbcType=FLOAT},
+      battery_volt = #{batteryVolt,jdbcType=FLOAT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml
new file mode 100644
index 0000000..b16ee8a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml
@@ -0,0 +1,230 @@
+<?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.RmTimingReportLastMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    <!--@mbg.generated-->
+    <!--@Table rm_timing_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="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+    <result column="data_dt" jdbcType="DATE" property="dataDt" />
+    <result column="water_total_amount_year" jdbcType="FLOAT" property="waterTotalAmountYear" />
+    <result column="water_total_amount_meter" jdbcType="FLOAT" property="waterTotalAmountMeter" />
+    <result column="ele_total_amount_year" jdbcType="FLOAT" property="eleTotalAmountYear" />
+    <result column="ele_total_amount_meter" jdbcType="FLOAT" property="eleTotalAmountMeter" />
+    <result column="water_total_amount_day" jdbcType="FLOAT" property="waterTotalAmountDay" />
+    <result column="water_user_total_amount_day" jdbcType="FLOAT" property="waterUserTotalAmountDay" />
+    <result column="loss_total_amount_day" jdbcType="FLOAT" property="lossTotalAmountDay" />
+    <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, data_dt, water_total_amount_year, 
+    water_total_amount_meter, ele_total_amount_year, ele_total_amount_meter, water_total_amount_day, 
+    water_user_total_amount_day, loss_total_amount_day, battery_volt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from rm_timing_report_last
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from rm_timing_report_last
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    <!--@mbg.generated-->
+    insert into rm_timing_report_last (id, controller_id, intake_id, 
+      rtu_addr, dt, rtu_dt, 
+      data_dt, water_total_amount_year, water_total_amount_meter, 
+      ele_total_amount_year, ele_total_amount_meter, water_total_amount_day, 
+      water_user_total_amount_day, loss_total_amount_day, 
+      battery_volt)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{dataDt,jdbcType=DATE}, #{waterTotalAmountYear,jdbcType=FLOAT}, #{waterTotalAmountMeter,jdbcType=FLOAT}, 
+      #{eleTotalAmountYear,jdbcType=FLOAT}, #{eleTotalAmountMeter,jdbcType=FLOAT}, #{waterTotalAmountDay,jdbcType=FLOAT}, 
+      #{waterUserTotalAmountDay,jdbcType=FLOAT}, #{lossTotalAmountDay,jdbcType=FLOAT}, 
+      #{batteryVolt,jdbcType=FLOAT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    <!--@mbg.generated-->
+    insert into rm_timing_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="rtuDt != null">
+        rtu_dt,
+      </if>
+      <if test="dataDt != null">
+        data_dt,
+      </if>
+      <if test="waterTotalAmountYear != null">
+        water_total_amount_year,
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        water_total_amount_meter,
+      </if>
+      <if test="eleTotalAmountYear != null">
+        ele_total_amount_year,
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        ele_total_amount_meter,
+      </if>
+      <if test="waterTotalAmountDay != null">
+        water_total_amount_day,
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        water_user_total_amount_day,
+      </if>
+      <if test="lossTotalAmountDay != null">
+        loss_total_amount_day,
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt,
+      </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="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dataDt != null">
+        #{dataDt,jdbcType=DATE},
+      </if>
+      <if test="waterTotalAmountYear != null">
+        #{waterTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        #{waterTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountYear != null">
+        #{eleTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        #{eleTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountDay != null">
+        #{waterTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="lossTotalAmountDay != null">
+        #{lossTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        #{batteryVolt,jdbcType=FLOAT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    <!--@mbg.generated-->
+    update rm_timing_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="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="dataDt != null">
+        data_dt = #{dataDt,jdbcType=DATE},
+      </if>
+      <if test="waterTotalAmountYear != null">
+        water_total_amount_year = #{waterTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountMeter != null">
+        water_total_amount_meter = #{waterTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountYear != null">
+        ele_total_amount_year = #{eleTotalAmountYear,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotalAmountMeter != null">
+        ele_total_amount_meter = #{eleTotalAmountMeter,jdbcType=FLOAT},
+      </if>
+      <if test="waterTotalAmountDay != null">
+        water_total_amount_day = #{waterTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="waterUserTotalAmountDay != null">
+        water_user_total_amount_day = #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="lossTotalAmountDay != null">
+        loss_total_amount_day = #{lossTotalAmountDay,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    <!--@mbg.generated-->
+    update rm_timing_report_last
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+      dt = #{dt,jdbcType=TIMESTAMP},
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      data_dt = #{dataDt,jdbcType=DATE},
+      water_total_amount_year = #{waterTotalAmountYear,jdbcType=FLOAT},
+      water_total_amount_meter = #{waterTotalAmountMeter,jdbcType=FLOAT},
+      ele_total_amount_year = #{eleTotalAmountYear,jdbcType=FLOAT},
+      ele_total_amount_meter = #{eleTotalAmountMeter,jdbcType=FLOAT},
+      water_total_amount_day = #{waterTotalAmountDay,jdbcType=FLOAT},
+      water_user_total_amount_day = #{waterUserTotalAmountDay,jdbcType=FLOAT},
+      loss_total_amount_day = #{lossTotalAmountDay,jdbcType=FLOAT},
+      battery_volt = #{batteryVolt,jdbcType=FLOAT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇瀹氱偣涓婃姤鏈�鏂版暟鎹�-->
+  <select id="getRmTimingReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast">
+    select
+    <include refid="Base_Column_List" />
+    from rm_timing_report_last
+    where rtu_addr = #{rtuAddr}
+  </select>
+</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
index 9e6940a..a1486ea 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportHistoryMapper.xml
@@ -9,16 +9,40 @@
     <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" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="ic_card_addr" jdbcType="VARCHAR" property="icCardAddr" />
+    <result column="ic_card_no" jdbcType="VARCHAR" property="icCardNo" />
+    <result column="water_level" jdbcType="FLOAT" property="waterLevel" />
+    <result column="water_press" jdbcType="FLOAT" property="waterPress" />
+    <result column="water_instant" jdbcType="FLOAT" property="waterInstant" />
+    <result column="water_total" jdbcType="FLOAT" property="waterTotal" />
+    <result column="ele_total" jdbcType="FLOAT" property="eleTotal" />
+    <result column="money_remain" jdbcType="FLOAT" property="moneyRemain" />
+    <result column="water_remain" jdbcType="FLOAT" property="waterRemain" />
+    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
+    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
+    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
+    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
+    <result column="water_price" jdbcType="FLOAT" property="waterPrice" />
+    <result column="ele_price" jdbcType="FLOAT" property="elePrice" />
+    <result column="a_volt" jdbcType="FLOAT" property="aVolt" />
+    <result column="b_volt" jdbcType="FLOAT" property="bVolt" />
+    <result column="c_volt" jdbcType="FLOAT" property="cVolt" />
+    <result column="a_current" jdbcType="FLOAT" property="aCurrent" />
+    <result column="b_current" jdbcType="FLOAT" property="bCurrent" />
+    <result column="c_current" jdbcType="FLOAT" property="cCurrent" />
+    <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt" />
+    <result column="water_meter_trans_volt" jdbcType="FLOAT" property="waterMeterTransVolt" />
+    <result column="water_meter_work_volt" jdbcType="FLOAT" property="waterMeterWorkVolt" />
   </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
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no, 
+    water_level, water_press, water_instant, water_total, ele_total, money_remain, water_remain, 
+    this_ele, this_water, this_money, this_duration, water_price, ele_price, a_volt, 
+    b_volt, c_volt, a_current, b_current, c_current, battery_volt, water_meter_trans_volt, 
+    water_meter_work_volt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -35,13 +59,27 @@
   <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)
+      rtu_addr, dt, rtu_dt, 
+      order_no, ic_card_addr, ic_card_no, 
+      water_level, water_press, water_instant, 
+      water_total, ele_total, money_remain, 
+      water_remain, this_ele, this_water, 
+      this_money, this_duration, water_price, 
+      ele_price, a_volt, b_volt, c_volt, 
+      a_current, b_current, c_current, 
+      battery_volt, water_meter_trans_volt, water_meter_work_volt
+      )
     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})
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{orderNo,jdbcType=VARCHAR}, #{icCardAddr,jdbcType=VARCHAR}, #{icCardNo,jdbcType=VARCHAR}, 
+      #{waterLevel,jdbcType=FLOAT}, #{waterPress,jdbcType=FLOAT}, #{waterInstant,jdbcType=FLOAT}, 
+      #{waterTotal,jdbcType=FLOAT}, #{eleTotal,jdbcType=FLOAT}, #{moneyRemain,jdbcType=FLOAT}, 
+      #{waterRemain,jdbcType=FLOAT}, #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, 
+      #{thisMoney,jdbcType=FLOAT}, #{thisDuration,jdbcType=INTEGER}, #{waterPrice,jdbcType=FLOAT}, 
+      #{elePrice,jdbcType=FLOAT}, #{aVolt,jdbcType=FLOAT}, #{bVolt,jdbcType=FLOAT}, #{cVolt,jdbcType=FLOAT}, 
+      #{aCurrent,jdbcType=FLOAT}, #{bCurrent,jdbcType=FLOAT}, #{cCurrent,jdbcType=FLOAT}, 
+      #{batteryVolt,jdbcType=FLOAT}, #{waterMeterTransVolt,jdbcType=FLOAT}, #{waterMeterWorkVolt,jdbcType=FLOAT}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory">
     <!--@mbg.generated-->
@@ -62,20 +100,83 @@
       <if test="dt != null">
         dt,
       </if>
+      <if test="rtuDt != null">
+        rtu_dt,
+      </if>
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="icCardAddr != null">
+        ic_card_addr,
+      </if>
       <if test="icCardNo != null">
         ic_card_no,
       </if>
-      <if test="totalAmount != null">
-        total_amount,
+      <if test="waterLevel != null">
+        water_level,
       </if>
-      <if test="instantAmount != null">
-        instant_amount,
+      <if test="waterPress != null">
+        water_press,
       </if>
-      <if test="remainMoney != null">
-        remain_money,
+      <if test="waterInstant != null">
+        water_instant,
       </if>
-      <if test="rtuDt != null">
-        rtu_dt,
+      <if test="waterTotal != null">
+        water_total,
+      </if>
+      <if test="eleTotal != null">
+        ele_total,
+      </if>
+      <if test="moneyRemain != null">
+        money_remain,
+      </if>
+      <if test="waterRemain != null">
+        water_remain,
+      </if>
+      <if test="thisEle != null">
+        this_ele,
+      </if>
+      <if test="thisWater != null">
+        this_water,
+      </if>
+      <if test="thisMoney != null">
+        this_money,
+      </if>
+      <if test="thisDuration != null">
+        this_duration,
+      </if>
+      <if test="waterPrice != null">
+        water_price,
+      </if>
+      <if test="elePrice != null">
+        ele_price,
+      </if>
+      <if test="aVolt != null">
+        a_volt,
+      </if>
+      <if test="bVolt != null">
+        b_volt,
+      </if>
+      <if test="cVolt != null">
+        c_volt,
+      </if>
+      <if test="aCurrent != null">
+        a_current,
+      </if>
+      <if test="bCurrent != null">
+        b_current,
+      </if>
+      <if test="cCurrent != null">
+        c_current,
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt,
+      </if>
+      <if test="waterMeterTransVolt != null">
+        water_meter_trans_volt,
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        water_meter_work_volt,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -94,20 +195,83 @@
       <if test="dt != null">
         #{dt,jdbcType=TIMESTAMP},
       </if>
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="icCardAddr != null">
+        #{icCardAddr,jdbcType=VARCHAR},
+      </if>
       <if test="icCardNo != null">
         #{icCardNo,jdbcType=VARCHAR},
       </if>
-      <if test="totalAmount != null">
-        #{totalAmount,jdbcType=DOUBLE},
+      <if test="waterLevel != null">
+        #{waterLevel,jdbcType=FLOAT},
       </if>
-      <if test="instantAmount != null">
-        #{instantAmount,jdbcType=DOUBLE},
+      <if test="waterPress != null">
+        #{waterPress,jdbcType=FLOAT},
       </if>
-      <if test="remainMoney != null">
-        #{remainMoney,jdbcType=DOUBLE},
+      <if test="waterInstant != null">
+        #{waterInstant,jdbcType=FLOAT},
       </if>
-      <if test="rtuDt != null">
-        #{rtuDt,jdbcType=TIMESTAMP},
+      <if test="waterTotal != null">
+        #{waterTotal,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotal != null">
+        #{eleTotal,jdbcType=FLOAT},
+      </if>
+      <if test="moneyRemain != null">
+        #{moneyRemain,jdbcType=FLOAT},
+      </if>
+      <if test="waterRemain != null">
+        #{waterRemain,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        #{thisDuration,jdbcType=INTEGER},
+      </if>
+      <if test="waterPrice != null">
+        #{waterPrice,jdbcType=FLOAT},
+      </if>
+      <if test="elePrice != null">
+        #{elePrice,jdbcType=FLOAT},
+      </if>
+      <if test="aVolt != null">
+        #{aVolt,jdbcType=FLOAT},
+      </if>
+      <if test="bVolt != null">
+        #{bVolt,jdbcType=FLOAT},
+      </if>
+      <if test="cVolt != null">
+        #{cVolt,jdbcType=FLOAT},
+      </if>
+      <if test="aCurrent != null">
+        #{aCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="bCurrent != null">
+        #{bCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="cCurrent != null">
+        #{cCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        #{batteryVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterTransVolt != null">
+        #{waterMeterTransVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        #{waterMeterWorkVolt,jdbcType=FLOAT},
       </if>
     </trim>
   </insert>
@@ -127,20 +291,83 @@
       <if test="dt != null">
         dt = #{dt,jdbcType=TIMESTAMP},
       </if>
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="icCardAddr != null">
+        ic_card_addr = #{icCardAddr,jdbcType=VARCHAR},
+      </if>
       <if test="icCardNo != null">
         ic_card_no = #{icCardNo,jdbcType=VARCHAR},
       </if>
-      <if test="totalAmount != null">
-        total_amount = #{totalAmount,jdbcType=DOUBLE},
+      <if test="waterLevel != null">
+        water_level = #{waterLevel,jdbcType=FLOAT},
       </if>
-      <if test="instantAmount != null">
-        instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      <if test="waterPress != null">
+        water_press = #{waterPress,jdbcType=FLOAT},
       </if>
-      <if test="remainMoney != null">
-        remain_money = #{remainMoney,jdbcType=DOUBLE},
+      <if test="waterInstant != null">
+        water_instant = #{waterInstant,jdbcType=FLOAT},
       </if>
-      <if test="rtuDt != null">
-        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      <if test="waterTotal != null">
+        water_total = #{waterTotal,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotal != null">
+        ele_total = #{eleTotal,jdbcType=FLOAT},
+      </if>
+      <if test="moneyRemain != null">
+        money_remain = #{moneyRemain,jdbcType=FLOAT},
+      </if>
+      <if test="waterRemain != null">
+        water_remain = #{waterRemain,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        this_ele = #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        this_water = #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        this_money = #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        this_duration = #{thisDuration,jdbcType=INTEGER},
+      </if>
+      <if test="waterPrice != null">
+        water_price = #{waterPrice,jdbcType=FLOAT},
+      </if>
+      <if test="elePrice != null">
+        ele_price = #{elePrice,jdbcType=FLOAT},
+      </if>
+      <if test="aVolt != null">
+        a_volt = #{aVolt,jdbcType=FLOAT},
+      </if>
+      <if test="bVolt != null">
+        b_volt = #{bVolt,jdbcType=FLOAT},
+      </if>
+      <if test="cVolt != null">
+        c_volt = #{cVolt,jdbcType=FLOAT},
+      </if>
+      <if test="aCurrent != null">
+        a_current = #{aCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="bCurrent != null">
+        b_current = #{bCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="cCurrent != null">
+        c_current = #{cCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterTransVolt != null">
+        water_meter_trans_volt = #{waterMeterTransVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        water_meter_work_volt = #{waterMeterWorkVolt,jdbcType=FLOAT},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -152,11 +379,32 @@
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      order_no = #{orderNo,jdbcType=VARCHAR},
+      ic_card_addr = #{icCardAddr,jdbcType=VARCHAR},
       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}
+      water_level = #{waterLevel,jdbcType=FLOAT},
+      water_press = #{waterPress,jdbcType=FLOAT},
+      water_instant = #{waterInstant,jdbcType=FLOAT},
+      water_total = #{waterTotal,jdbcType=FLOAT},
+      ele_total = #{eleTotal,jdbcType=FLOAT},
+      money_remain = #{moneyRemain,jdbcType=FLOAT},
+      water_remain = #{waterRemain,jdbcType=FLOAT},
+      this_ele = #{thisEle,jdbcType=FLOAT},
+      this_water = #{thisWater,jdbcType=FLOAT},
+      this_money = #{thisMoney,jdbcType=FLOAT},
+      this_duration = #{thisDuration,jdbcType=INTEGER},
+      water_price = #{waterPrice,jdbcType=FLOAT},
+      ele_price = #{elePrice,jdbcType=FLOAT},
+      a_volt = #{aVolt,jdbcType=FLOAT},
+      b_volt = #{bVolt,jdbcType=FLOAT},
+      c_volt = #{cVolt,jdbcType=FLOAT},
+      a_current = #{aCurrent,jdbcType=FLOAT},
+      b_current = #{bCurrent,jdbcType=FLOAT},
+      c_current = #{cCurrent,jdbcType=FLOAT},
+      battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      water_meter_trans_volt = #{waterMeterTransVolt,jdbcType=FLOAT},
+      water_meter_work_volt = #{waterMeterWorkVolt,jdbcType=FLOAT}
     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
index d4ab507..9e6c609 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
@@ -9,16 +9,40 @@
     <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" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="ic_card_addr" jdbcType="VARCHAR" property="icCardAddr" />
+    <result column="ic_card_no" jdbcType="VARCHAR" property="icCardNo" />
+    <result column="water_level" jdbcType="FLOAT" property="waterLevel" />
+    <result column="water_press" jdbcType="FLOAT" property="waterPress" />
+    <result column="water_instant" jdbcType="FLOAT" property="waterInstant" />
+    <result column="water_total" jdbcType="FLOAT" property="waterTotal" />
+    <result column="ele_total" jdbcType="FLOAT" property="eleTotal" />
+    <result column="money_remain" jdbcType="FLOAT" property="moneyRemain" />
+    <result column="water_remain" jdbcType="FLOAT" property="waterRemain" />
+    <result column="this_ele" jdbcType="FLOAT" property="thisEle" />
+    <result column="this_water" jdbcType="FLOAT" property="thisWater" />
+    <result column="this_money" jdbcType="FLOAT" property="thisMoney" />
+    <result column="this_duration" jdbcType="INTEGER" property="thisDuration" />
+    <result column="water_price" jdbcType="FLOAT" property="waterPrice" />
+    <result column="ele_price" jdbcType="FLOAT" property="elePrice" />
+    <result column="a_volt" jdbcType="FLOAT" property="aVolt" />
+    <result column="b_volt" jdbcType="FLOAT" property="bVolt" />
+    <result column="c_volt" jdbcType="FLOAT" property="cVolt" />
+    <result column="a_current" jdbcType="FLOAT" property="aCurrent" />
+    <result column="b_current" jdbcType="FLOAT" property="bCurrent" />
+    <result column="c_current" jdbcType="FLOAT" property="cCurrent" />
+    <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt" />
+    <result column="water_meter_trans_volt" jdbcType="FLOAT" property="waterMeterTransVolt" />
+    <result column="water_meter_work_volt" jdbcType="FLOAT" property="waterMeterWorkVolt" />
   </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
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, order_no, ic_card_addr, ic_card_no, 
+    water_level, water_press, water_instant, water_total, ele_total, money_remain, water_remain, 
+    this_ele, this_water, this_money, this_duration, water_price, ele_price, a_volt, 
+    b_volt, c_volt, a_current, b_current, c_current, battery_volt, water_meter_trans_volt, 
+    water_meter_work_volt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -26,13 +50,6 @@
     <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-->
@@ -42,13 +59,27 @@
   <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)
+      rtu_addr, dt, rtu_dt, 
+      order_no, ic_card_addr, ic_card_no, 
+      water_level, water_press, water_instant, 
+      water_total, ele_total, money_remain, 
+      water_remain, this_ele, this_water, 
+      this_money, this_duration, water_price, 
+      ele_price, a_volt, b_volt, c_volt, 
+      a_current, b_current, c_current, 
+      battery_volt, water_meter_trans_volt, water_meter_work_volt
+      )
     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})
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{orderNo,jdbcType=VARCHAR}, #{icCardAddr,jdbcType=VARCHAR}, #{icCardNo,jdbcType=VARCHAR}, 
+      #{waterLevel,jdbcType=FLOAT}, #{waterPress,jdbcType=FLOAT}, #{waterInstant,jdbcType=FLOAT}, 
+      #{waterTotal,jdbcType=FLOAT}, #{eleTotal,jdbcType=FLOAT}, #{moneyRemain,jdbcType=FLOAT}, 
+      #{waterRemain,jdbcType=FLOAT}, #{thisEle,jdbcType=FLOAT}, #{thisWater,jdbcType=FLOAT}, 
+      #{thisMoney,jdbcType=FLOAT}, #{thisDuration,jdbcType=INTEGER}, #{waterPrice,jdbcType=FLOAT}, 
+      #{elePrice,jdbcType=FLOAT}, #{aVolt,jdbcType=FLOAT}, #{bVolt,jdbcType=FLOAT}, #{cVolt,jdbcType=FLOAT}, 
+      #{aCurrent,jdbcType=FLOAT}, #{bCurrent,jdbcType=FLOAT}, #{cCurrent,jdbcType=FLOAT}, 
+      #{batteryVolt,jdbcType=FLOAT}, #{waterMeterTransVolt,jdbcType=FLOAT}, #{waterMeterWorkVolt,jdbcType=FLOAT}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast">
     <!--@mbg.generated-->
@@ -69,20 +100,83 @@
       <if test="dt != null">
         dt,
       </if>
+      <if test="rtuDt != null">
+        rtu_dt,
+      </if>
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="icCardAddr != null">
+        ic_card_addr,
+      </if>
       <if test="icCardNo != null">
         ic_card_no,
       </if>
-      <if test="totalAmount != null">
-        total_amount,
+      <if test="waterLevel != null">
+        water_level,
       </if>
-      <if test="instantAmount != null">
-        instant_amount,
+      <if test="waterPress != null">
+        water_press,
       </if>
-      <if test="remainMoney != null">
-        remain_money,
+      <if test="waterInstant != null">
+        water_instant,
       </if>
-      <if test="rtuDt != null">
-        rtu_dt,
+      <if test="waterTotal != null">
+        water_total,
+      </if>
+      <if test="eleTotal != null">
+        ele_total,
+      </if>
+      <if test="moneyRemain != null">
+        money_remain,
+      </if>
+      <if test="waterRemain != null">
+        water_remain,
+      </if>
+      <if test="thisEle != null">
+        this_ele,
+      </if>
+      <if test="thisWater != null">
+        this_water,
+      </if>
+      <if test="thisMoney != null">
+        this_money,
+      </if>
+      <if test="thisDuration != null">
+        this_duration,
+      </if>
+      <if test="waterPrice != null">
+        water_price,
+      </if>
+      <if test="elePrice != null">
+        ele_price,
+      </if>
+      <if test="aVolt != null">
+        a_volt,
+      </if>
+      <if test="bVolt != null">
+        b_volt,
+      </if>
+      <if test="cVolt != null">
+        c_volt,
+      </if>
+      <if test="aCurrent != null">
+        a_current,
+      </if>
+      <if test="bCurrent != null">
+        b_current,
+      </if>
+      <if test="cCurrent != null">
+        c_current,
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt,
+      </if>
+      <if test="waterMeterTransVolt != null">
+        water_meter_trans_volt,
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        water_meter_work_volt,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -101,20 +195,83 @@
       <if test="dt != null">
         #{dt,jdbcType=TIMESTAMP},
       </if>
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="icCardAddr != null">
+        #{icCardAddr,jdbcType=VARCHAR},
+      </if>
       <if test="icCardNo != null">
         #{icCardNo,jdbcType=VARCHAR},
       </if>
-      <if test="totalAmount != null">
-        #{totalAmount,jdbcType=DOUBLE},
+      <if test="waterLevel != null">
+        #{waterLevel,jdbcType=FLOAT},
       </if>
-      <if test="instantAmount != null">
-        #{instantAmount,jdbcType=DOUBLE},
+      <if test="waterPress != null">
+        #{waterPress,jdbcType=FLOAT},
       </if>
-      <if test="remainMoney != null">
-        #{remainMoney,jdbcType=DOUBLE},
+      <if test="waterInstant != null">
+        #{waterInstant,jdbcType=FLOAT},
       </if>
-      <if test="rtuDt != null">
-        #{rtuDt,jdbcType=TIMESTAMP},
+      <if test="waterTotal != null">
+        #{waterTotal,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotal != null">
+        #{eleTotal,jdbcType=FLOAT},
+      </if>
+      <if test="moneyRemain != null">
+        #{moneyRemain,jdbcType=FLOAT},
+      </if>
+      <if test="waterRemain != null">
+        #{waterRemain,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        #{thisDuration,jdbcType=INTEGER},
+      </if>
+      <if test="waterPrice != null">
+        #{waterPrice,jdbcType=FLOAT},
+      </if>
+      <if test="elePrice != null">
+        #{elePrice,jdbcType=FLOAT},
+      </if>
+      <if test="aVolt != null">
+        #{aVolt,jdbcType=FLOAT},
+      </if>
+      <if test="bVolt != null">
+        #{bVolt,jdbcType=FLOAT},
+      </if>
+      <if test="cVolt != null">
+        #{cVolt,jdbcType=FLOAT},
+      </if>
+      <if test="aCurrent != null">
+        #{aCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="bCurrent != null">
+        #{bCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="cCurrent != null">
+        #{cCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        #{batteryVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterTransVolt != null">
+        #{waterMeterTransVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        #{waterMeterWorkVolt,jdbcType=FLOAT},
       </if>
     </trim>
   </insert>
@@ -134,20 +291,83 @@
       <if test="dt != null">
         dt = #{dt,jdbcType=TIMESTAMP},
       </if>
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="icCardAddr != null">
+        ic_card_addr = #{icCardAddr,jdbcType=VARCHAR},
+      </if>
       <if test="icCardNo != null">
         ic_card_no = #{icCardNo,jdbcType=VARCHAR},
       </if>
-      <if test="totalAmount != null">
-        total_amount = #{totalAmount,jdbcType=DOUBLE},
+      <if test="waterLevel != null">
+        water_level = #{waterLevel,jdbcType=FLOAT},
       </if>
-      <if test="instantAmount != null">
-        instant_amount = #{instantAmount,jdbcType=DOUBLE},
+      <if test="waterPress != null">
+        water_press = #{waterPress,jdbcType=FLOAT},
       </if>
-      <if test="remainMoney != null">
-        remain_money = #{remainMoney,jdbcType=DOUBLE},
+      <if test="waterInstant != null">
+        water_instant = #{waterInstant,jdbcType=FLOAT},
       </if>
-      <if test="rtuDt != null">
-        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      <if test="waterTotal != null">
+        water_total = #{waterTotal,jdbcType=FLOAT},
+      </if>
+      <if test="eleTotal != null">
+        ele_total = #{eleTotal,jdbcType=FLOAT},
+      </if>
+      <if test="moneyRemain != null">
+        money_remain = #{moneyRemain,jdbcType=FLOAT},
+      </if>
+      <if test="waterRemain != null">
+        water_remain = #{waterRemain,jdbcType=FLOAT},
+      </if>
+      <if test="thisEle != null">
+        this_ele = #{thisEle,jdbcType=FLOAT},
+      </if>
+      <if test="thisWater != null">
+        this_water = #{thisWater,jdbcType=FLOAT},
+      </if>
+      <if test="thisMoney != null">
+        this_money = #{thisMoney,jdbcType=FLOAT},
+      </if>
+      <if test="thisDuration != null">
+        this_duration = #{thisDuration,jdbcType=INTEGER},
+      </if>
+      <if test="waterPrice != null">
+        water_price = #{waterPrice,jdbcType=FLOAT},
+      </if>
+      <if test="elePrice != null">
+        ele_price = #{elePrice,jdbcType=FLOAT},
+      </if>
+      <if test="aVolt != null">
+        a_volt = #{aVolt,jdbcType=FLOAT},
+      </if>
+      <if test="bVolt != null">
+        b_volt = #{bVolt,jdbcType=FLOAT},
+      </if>
+      <if test="cVolt != null">
+        c_volt = #{cVolt,jdbcType=FLOAT},
+      </if>
+      <if test="aCurrent != null">
+        a_current = #{aCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="bCurrent != null">
+        b_current = #{bCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="cCurrent != null">
+        c_current = #{cCurrent,jdbcType=FLOAT},
+      </if>
+      <if test="batteryVolt != null">
+        battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterTransVolt != null">
+        water_meter_trans_volt = #{waterMeterTransVolt,jdbcType=FLOAT},
+      </if>
+      <if test="waterMeterWorkVolt != null">
+        water_meter_work_volt = #{waterMeterWorkVolt,jdbcType=FLOAT},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -159,11 +379,32 @@
       intake_id = #{intakeId,jdbcType=BIGINT},
       rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      order_no = #{orderNo,jdbcType=VARCHAR},
+      ic_card_addr = #{icCardAddr,jdbcType=VARCHAR},
       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}
+      water_level = #{waterLevel,jdbcType=FLOAT},
+      water_press = #{waterPress,jdbcType=FLOAT},
+      water_instant = #{waterInstant,jdbcType=FLOAT},
+      water_total = #{waterTotal,jdbcType=FLOAT},
+      ele_total = #{eleTotal,jdbcType=FLOAT},
+      money_remain = #{moneyRemain,jdbcType=FLOAT},
+      water_remain = #{waterRemain,jdbcType=FLOAT},
+      this_ele = #{thisEle,jdbcType=FLOAT},
+      this_water = #{thisWater,jdbcType=FLOAT},
+      this_money = #{thisMoney,jdbcType=FLOAT},
+      this_duration = #{thisDuration,jdbcType=INTEGER},
+      water_price = #{waterPrice,jdbcType=FLOAT},
+      ele_price = #{elePrice,jdbcType=FLOAT},
+      a_volt = #{aVolt,jdbcType=FLOAT},
+      b_volt = #{bVolt,jdbcType=FLOAT},
+      c_volt = #{cVolt,jdbcType=FLOAT},
+      a_current = #{aCurrent,jdbcType=FLOAT},
+      b_current = #{bCurrent,jdbcType=FLOAT},
+      c_current = #{cCurrent,jdbcType=FLOAT},
+      battery_volt = #{batteryVolt,jdbcType=FLOAT},
+      water_meter_trans_volt = #{waterMeterTransVolt,jdbcType=FLOAT},
+      water_meter_work_volt = #{waterMeterWorkVolt,jdbcType=FLOAT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index 54511ba..f7da91d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -21,7 +21,8 @@
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select 
-    <include refid="Base_Column_List" />
+<!--    <include refid="Base_Column_List" />-->
+    *
     from se_virtual_card
     where id = #{id,jdbcType=BIGINT}
   </select>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 4a7d391..226b17f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -161,6 +161,12 @@
 			if(ServerProperties.cacheUpDownDataMaxCount <= ServerProperties.cacheUpDownDataWarnCount){
 				throw new Exception("cacheUpDownDataMaxCount蹇呴』澶т簬cacheUpDownDataWarnCount") ;
 			}
+			//娌℃湁涓婅鏁版嵁鐨勫垎閽熸暟锛岃揪鍒拌繖涓垎閽熸暟锛岃涓篟TU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2_100
+			ServerProperties.disconnectedByNoUpDataMinutes =  0L + conf.getSetAttrPlusInt(doc, "config.base", "disconnectedByNoUpDataMinutes", null, 1, 100, null) ;
+			if(ServerProperties.disconnectedByNoUpDataMinutes < 1 || ServerProperties.disconnectedByNoUpDataMinutes > 100){
+				throw new Exception("disconnectedByNoUpDataMinutes鍙栧�煎繀椤绘槸1~100") ;
+			}
+			ServerProperties.disconnectedByNoUpDataMinutes = ServerProperties.disconnectedByNoUpDataMinutes * 60 * 1000 ;
 
 			//璁剧疆ID鐢熸垚鍣ㄧ殑鍚庣紑
 			IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue());
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
index 83dc7e2..855d88f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -33,4 +33,7 @@
 	//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬渶澶у�硷紝杩欎釜涓庡疄浣撻」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
 	public static Integer cacheUpDownDataMaxCount = 1100000 ;
 
+	//娌℃湁涓婅鏁版嵁鐨勫垎閽熸暟锛岃揪鍒拌繖涓垎閽熸暟锛岃涓篟TU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2000_100000
+	public static Long disconnectedByNoUpDataMinutes = 3000L ;
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
index be169b9..edf8d68 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
@@ -9,4 +9,5 @@
 	public String protocolName ;//閫氫俊鍗忚鍚嶇О
 	public Long lastDownComTime ;//涓婃涓嬪彂鍛戒护鏃跺埢(姣鏃跺埢 System.currentTimeMillis())
 	public Long lastUpDataTime ;//涓婃鏀跺埌涓婅鏁版嵁鏃跺埢(姣鏃跺埢 System.currentTimeMillis())
+	public Long lastUpDataTimeForOnlineCtrl ;//涓婃鏀跺埌涓婅鏁版嵁鏃跺埢(姣鏃跺埢 System.currentTimeMillis())锛岀敤浜庝笂绾挎儏鍐垫帶鍒�
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
index 8d37adf..e821b47 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -2,12 +2,10 @@
 
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 import java.util.Map.Entry;
 
+import com.dy.common.util.DateTime;
 import org.apache.mina.core.session.IoSession;
 
 import com.dy.rtuMw.server.ServerProperties;
@@ -189,27 +187,54 @@
 		TcpSession tcpSe = sessionTable.get(rtuAddr) ;
 		if(tcpSe != null){
 			tcpSe.lastUpDataTime = System.currentTimeMillis() ;
+			tcpSe.lastUpDataTimeForOnlineCtrl = System.currentTimeMillis() ;
 		}
 	}
 	
 	/**
 	 * 鏇存柊涓婅鏁版嵁鏃跺埢
 	 * 褰撲笂琛屾暟鎹椂鍒诲凡缁忚繃鍘讳竴瀹氭椂闀匡紝涓婅鏁版嵁鏃跺埢娓呯┖
+	 * 褰撲竴瀹氭椂闂村唴娌℃湁涓婅鏁版嵁锛屽垯璁や负RTU绂荤嚎
 	 */
-	public static void updateUpDataTime(Long now){
+	public static void updateRtuStatus(Long now){
 		synchronized (sessionTable){
-			Iterator<TcpSession> it = sessionTable.values().iterator() ;
+			Set<Map.Entry<String, TcpSession>> entrySet = sessionTable.entrySet() ;
+			Iterator<Map.Entry<String, TcpSession>> it = entrySet.iterator() ;
+			Map.Entry<String, TcpSession> entry ;
 			TcpSession tcpSe ;
 			while(it.hasNext()){
-				tcpSe = it.next() ;
+				entry = it.next() ;
+				tcpSe = entry.getValue();
 				if(tcpSe.lastUpDataTime != null){
 					if(now - tcpSe.lastUpDataTime > ServerProperties.lastUpDataTimeLive){
 						tcpSe.lastUpDataTime = null ;
 					}
 				}
+				if(tcpSe.lastUpDataTimeForOnlineCtrl != null){
+					if(tcpSe.ioSession != null && tcpSe.ioSession.isConnected()){
+						if(now - tcpSe.lastUpDataTimeForOnlineCtrl > ServerProperties.disconnectedByNoUpDataMinutes){
+							tcpSe.ioSession.closeNow() ;
+						}
+					}
+				}
 			}
 		}
 	}
 
+//	public static void updateRtuStatus(Long now){
+//		synchronized (sessionTable){
+//			Iterator<TcpSession> it = sessionTable.values().iterator() ;
+//			TcpSession tcpSe ;
+//			while(it.hasNext()){
+//				tcpSe = it.next() ;
+//				if(tcpSe.lastUpDataTime != null){
+//					if(now - tcpSe.lastUpDataTime > ServerProperties.lastUpDataTimeLive){
+//						tcpSe.lastUpDataTime = null ;
+//					}
+//				}
+//			}
+//		}
+//	}
+
 
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index 6def3c1..1309936 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -31,10 +31,6 @@
     @Autowired
     private RmAlarmStateHistoryMapper rmAlarmStateHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙叉姤璀﹀拰鐘舵�丏AO
     @Autowired
-    private RmAutoReportLastMapper rmAutoReportLastMapperDao ;//鎺у埗鍣ㄦ渶鏂颁笂鎶ユ暟鎹瓺AO
-    @Autowired
-    private RmAutoReportHistoryMapper rmAutoReportHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙蹭笂鎶ユ暟鎹瓺AO
-    @Autowired
     private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapperDao ;//鎺у埗鍣ㄦ渶鏂板紑鍏抽榾涓婃姤鏁版嵁DAO
     @Autowired
     private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapperDao ;//鎺у埗鍣ㄥ巻鍙插紑鍏抽榾涓婃姤鏁版嵁DAO
@@ -50,6 +46,11 @@
     private RmCommandHistoryMapper rmCommandHistoryDao ;//杩滅▼鍛戒护鏃ュ織鐩稿叧
     @Autowired
     private SeVirtualCardMapper seVirtualCardDao ;//铏氭嫙鍗$浉鍏�
+
+    @Autowired
+    private RmTimingReportHistoryMapper rmTimingReportHistoryDao; // 瀹氱偣涓婃姤鍘嗗彶鏁版嵁DAO
+    @Autowired
+    private RmTimingReportLastMapper rmTimingReportLastDao; // 瀹氱偣涓婃姤鏈�鏂版暟鎹瓺AO
 
     //@Autowired
     //@Lazy
@@ -156,47 +157,50 @@
 
     /////////////////////////////////////////////////
     //
-    // 涓诲姩涓婃姤鏁版嵁鍔熻兘
+    // 瀹氱偣鎶ユ暟鎹姛鑳�
     //
     ////////////////////////////////////////////////
+
     /**
-     * 寰楀埌鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * 淇濆瓨鎺у埗鍣ㄥ畾鐐逛笂鎶ュ巻鍙叉暟鎹�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveRmTimingReportHistory(RmTimingReportHistory po){
+        this.rmTimingReportHistoryDao.insert(po);
+    }
+
+    /**
+     * 鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇瀹氱偣涓婃姤鏈�鏂版暟鎹�
      * @param rtuAddr
      * @return
      */
-    public RmAutoReportLast getRmAutoReportLast(String rtuAddr){
-        List<RmAutoReportLast> list = rmAutoReportLastMapperDao.selectByRtuAddr(rtuAddr) ;
+    @Transactional(rollbackFor = Exception.class)
+    public RmTimingReportLast getRmTimingReportLast(String rtuAddr) {
+        List<RmTimingReportLast> list = this.rmTimingReportLastDao.getRmTimingReportLast(rtuAddr) ;
         if(list != null && list.size() > 0){
             return list.get(0) ;
         }
         return null ;
     }
+
     /**
-     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
+     * 淇濆瓨鎺у埗鍣ㄥ畾鐐逛笂鎶ユ渶鏂版暟鎹�
      * @param po
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveRmAutoReportLast(RmAutoReportLast po){
-        this.rmAutoReportLastMapperDao.insert(po) ;
-    }
-    /**
-     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹渶鏂拌褰�
-     * @param po
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateRmAutoReportLast(RmAutoReportLast po){
-        this.rmAutoReportLastMapperDao.updateByPrimaryKeySelective(po) ;
-    }
-    /**
-     * 淇濆瓨鎺у埗鍣ㄤ笂鎶ユ暟鎹巻鍙茶褰�
-     * @param po
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void saveRmAutoReportHistory(RmAutoReportHistory po){
-        this.rmAutoReportHistoryMapperDao.insert(po) ;
+    public void saveRmTimingReportLast(RmTimingReportLast po) {
+        this.rmTimingReportLastDao.insert(po);
     }
 
-
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ畾鐐逛笂鎶ョ姜琛屾暟鎹�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRmTimingReportLast(RmTimingReportLast po) {
+        this.rmTimingReportLastDao.updateByPrimaryKeySelective(po);
+    }
 
 
     /////////////////////////////////////////////////
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index cafed3b..3d80663 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -46,6 +46,7 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
+                            this.updateVirCardNoUseState(sv, controller, dataCd81Vo.stateVo) ;
                         }
                     } else if (cdObj instanceof DataCd84Vo) {
                         DataCd84Vo dataCd84Vo = (DataCd84Vo)cdObj ;
@@ -55,6 +56,7 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
+                            this.updateVirCardNoUseState(sv, controller, dataCd84Vo.stateVo) ;
                         }
                     } else if (cdObj instanceof DataCdC0Vo) {
                         DataCdC0Vo dataCdC0Vo = (DataCdC0Vo)cdObj ;
@@ -64,6 +66,7 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
+                            this.updateVirCardNoUseState(sv, controller, dataCdC0Vo.stateVo) ;
                         }
                     }
                 } catch (Exception e) {
@@ -109,7 +112,6 @@
             sv.saveRmAlarmStateLast(po) ;
         }else{
             po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
-            this.updateVirCardNoUseState(sv, controller, stateVo) ;
             sv.updateRmAlarmStateLast(po);
         }
     }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
index 30f51c0..0ccee24 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
@@ -1,14 +1,11 @@
 package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.p206V1_0_0.upVos.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.RmAutoReportHistory;
-import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -56,19 +53,19 @@
      * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
-        RmAutoReportLast po = sv.getRmAutoReportLast(rtuAddr) ;
-        if(po == null){
-            po = new RmAutoReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getId(),
-                    rtuAddr,
-                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
-                    dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
-                    dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
-            sv.saveRmAutoReportLast(po) ;
-        }else{
-            po = this.update(controller, po, dV1_0_1, dataCdC0Vo) ;
-            sv.updateRmAutoReportLast(po);
-        }
+        //RmAutoReportLast po = sv.getRmAutoReportLast(rtuAddr) ;
+        //if(po == null){
+        //    po = new RmAutoReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getId(),
+        //            rtuAddr,
+        //            DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+        //            DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+        //            dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
+        //            dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
+        //    sv.saveRmAutoReportLast(po) ;
+        //}else{
+        //    po = this.update(controller, po, dV1_0_1, dataCdC0Vo) ;
+        //    sv.updateRmAutoReportLast(po);
+        //}
     }
 
     /**
@@ -78,31 +75,31 @@
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
      */
-    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
-        RmAutoReportHistory po = new RmAutoReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-                rtuAddr,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
-                dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
-                dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
-        sv.saveRmAutoReportHistory(po) ;
-    }
+    //private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+    //    RmAutoReportHistory po = new RmAutoReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+    //            rtuAddr,
+    //            DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+    //            DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+    //            dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
+    //            dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
+    //    sv.saveRmAutoReportHistory(po) ;
+    //}
 
 
-    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;
-        po.totalamount = dataCdC0Vo.totalAmount;
-        po.lossamount = dataCdC0Vo.lossAmount;
-        po.waterpress = dataCdC0Vo.waterPress;
-        po.batteryvolt = dataCdC0Vo.batteryVolt;
-        po.sunvolt = dataCdC0Vo.sunVolt;
-        po.signalvalue = dataCdC0Vo.signalValue;
-        return po ;
-    }
+    //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;
+    //    po.totalamount = dataCdC0Vo.totalAmount;
+    //    po.lossamount = dataCdC0Vo.lossAmount;
+    //    po.waterpress = dataCdC0Vo.waterPress;
+    //    po.batteryvolt = dataCdC0Vo.batteryVolt;
+    //    po.sunvolt = dataCdC0Vo.sunVolt;
+    //    po.signalvalue = dataCdC0Vo.signalValue;
+    //    return po ;
+    //}
 }
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
index 72cdc87..361434c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -36,16 +36,16 @@
         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);
-//                }
-//            }
+            if (dV1_0_1 != null && dV1_0_1.subData != null && dV1_0_1.subData instanceof DataCdC0Vo) {
+                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, (DataCdC0Vo)dV1_0_1.subData);
+                } catch (Exception e) {
+                    log.error("淇濆瓨閬ユ祴绔欒嚜鎶ュ疄鏃舵暟鎹腑鐨勬紡鎹熸暟鎹椂鍙戠敓寮傚父", e);
+                }
+            }
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
index c393b9d..a1f920f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -55,7 +55,7 @@
      * @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.saveOrUpdateLast(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
         this.saveHistory(sv, controller, rtuAddr, dV1_0_1, dataCd84Vo);
     }
 
@@ -67,30 +67,30 @@
      * @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);
-        }
+    private void saveOrUpdateLast(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);
+//        }
     }
     /**
      * 淇濆瓨闃�寮�宸ヤ綔鎶ュ巻鍙叉暟鎹�
@@ -101,15 +101,15 @@
      * @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) ;
+//        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-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
index 391ebc9..3001448 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
@@ -31,7 +31,10 @@
         Data d = (Data)data ;
         if(d.getCommandId() == null || d.getCommandId().trim().equals("")){
             //鏃犲懡浠D
-            this.toNextTasks(data);
+            Object dataP206V1_0_0 = d.getSubData() ;
+            if(dataP206V1_0_0 != null) {
+                this.toNextTasks(data);
+            }
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
index e3033ee..1828835 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -30,42 +30,41 @@
     @Override
     public void execute(Object data) {
         Data d = (Data)data ;
-        DataV202404 dV202404 = (DataV202404)d.getSubData()  ;//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        DataV202404 dV202404 = (DataV202404)d.getSubData() ;
         Object cdObj = dV202404.subData ;
-        if(cdObj != null){
-            try{
-                Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
-                DbSv sv = (DbSv)objs[0] ;
-                PrController controller = (PrController)objs[1] ;
-                if(cdObj instanceof DataCd81Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd80_5BVo){
-                    //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
-                    DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd93_A3Vo){
-                    //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
-                    DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd84Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCdC2Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }
-            }catch (Exception e){
-                log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
+        //鍓嶉潰浠诲姟宸茬粡鍒ゆ柇cdObj涓嶄负null
+        try{
+            Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            PrController controller = (PrController)objs[1] ;
+            if(cdObj instanceof DataCd81Vo){
+                //璁惧缁堢闅忔満鑷姤
+                DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd80_5BVo){
+                //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
+                DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd93_A3Vo){
+                //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
+                DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd84Vo){
+                //璁惧缁堢鍒峰崱寮�娉�/闃�涓婃姤
+                DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCdC2Vo){
+                //璁惧缁堢寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤
+                DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
             }
+        }catch (Exception e){
+            log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
         }
     }
     /**
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java
index 0d6af4a..1986975 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java
@@ -2,8 +2,10 @@
 
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V202404.DataV202404;
-import com.dy.common.mw.protocol.p206V202404.upVos.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -12,7 +14,7 @@
 /**
  * @Author: liurunyu
  * @Date: 2024/5/20 20:29
- * @Description
+ * @Description 鎺у埗鍣ㄥ畾鏃朵笂鎶�(鍔熻兘鐮�83)
  */
 public class TkDealTimingReportV202404  extends TaskSurpport {
 
@@ -37,14 +39,66 @@
                 DbSv sv = (DbSv) objs[0];
                 PrController controller = (PrController) objs[1];
                 if (cdObj instanceof DataCd83Vo) {
-                    //璁惧缁堢瀹氱偣涓婃姤, 姣忓ぉ12鐐逛笂鎶ユ暟鎹�
                     DataCd83Vo cdData = (DataCd83Vo) (cdObj);
-                    //this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt);
-                    //this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt);
+                    this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd83Vo)cdObj);
                 }
             } catch (Exception e) {
-                log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
+                log.error("淇濆瓨鎺у埗鍣ㄦ帶鍒跺櫒瀹氭椂鎶ユ暟鎹椂鍙戠敓寮傚父", e);
             }
         }
     }
+    /**
+     * 澶勭悊闃�寮�宸ヤ綔鎶ユ暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd83Vo cdData) throws Exception {
+        this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
+        this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
+    }
+
+    /**
+     * 淇濆瓨鎴栨洿鏂版帶鍒跺櫒宸ヤ綔鎶ユ渶鏂版暟鎹�
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd83Vo cdData)throws Exception {
+        RmTimingReportLast po = sv.getRmTimingReportLast(rtuAddr) ;
+        if(po == null){
+            po = new RmTimingReportLast();
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.rtuAddr = rtuAddr;
+            po.valueFrom(dataV202404, cdData);
+            sv.saveRmTimingReportLast(po) ;
+        }else{
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.valueFrom(dataV202404, cdData);
+            sv.updateRmTimingReportLast(po);
+        }
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ伐浣滄姤鍘嗗彶鏁版嵁
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd83Vo cdData)throws Exception {
+        RmTimingReportHistory po = new RmTimingReportHistory();
+        po.controllerId = controller==null?null:controller.getId();
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.rtuAddr = rtuAddr;
+        po.valueFrom(dataV202404, cdData);
+        sv.saveRmTimingReportHistory(po); ;
+    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkReportV202404.java
new file mode 100644
index 0000000..ebb1074
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkReportV202404.java
@@ -0,0 +1,62 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-14 11:23
+ * @LastEditTime 2024-06-14 11:23
+ * @Description 鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤鏁版嵁
+ */
+public class TkDealWorkReportV202404 extends TaskSurpport {
+    private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealWorkReportV202404";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氬鐞嗛榾鎺у櫒闃�寮�宸ヤ綔涓婃姤鏁版嵁
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data) data;
+        DataV202404 dV202404 = (DataV202404) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        //Object cdObj = dV202404.subData;
+        //if (cdObj != null) {
+        //    try {
+        //        Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId);
+        //        DbSv sv = (DbSv) objs[0];
+        //        PrController controller = (PrController) objs[1];
+        //        if (cdObj instanceof DataCd83Vo) {
+        //            //璁惧缁堢瀹氱偣涓婃姤, 姣忓ぉ12鐐逛笂鎶ユ暟鎹�
+        //            DataCd83Vo cdData = (DataCd83Vo) (cdObj);
+        //            //this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt);
+        //            //this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt);
+        //        }
+        //    } catch (Exception e) {
+        //        log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
+        //    }
+        //}
+    }
+
+    /**
+     * 淇濆瓨闃�寮�宸ヤ綔鎶ュ巻鍙叉暟鎹�
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV202404
+     * @param dataCd80_5BVo
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dV202404, DataCd80_5BVo dataCd80_5BVo) {
+
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java
new file mode 100644
index 0000000..c0f5409
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java
@@ -0,0 +1,103 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/6/14 9:19
+ * @Description 澶勭悊鎺у埗鍣ㄥ伐浣滄姤锛堝姛鑳界爜80锛�
+ */
+public class TkDealWorkingReportV202404 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealWorkingReportV202404.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealWorkingReportV202404";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵��
+     *
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data)data ;
+        DataV202404 dV202404 = (DataV202404)d.getSubData() ;
+        Object cdObj = dV202404.subData ;
+        //鍓嶉潰浠诲姟宸茬粡鍒ゆ柇cdObj涓嶄负null
+        try {
+            Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId);
+            DbSv sv = (DbSv) objs[0];
+            PrController controller = (PrController) objs[1];
+            if (cdObj instanceof DataCd80_5BVo) {
+                DataCd80_5BVo cdData = (DataCd80_5BVo) (cdObj);
+                this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd80_5BVo)cdObj);
+            }
+        } catch (Exception e) {
+            log.error("淇濆瓨澶勭悊鎺у埗鍣ㄥ伐浣滄姤鏁版嵁鏃跺彂鐢熷紓甯�", e);
+        }
+    }
+    /**
+     * 澶勭悊闃�寮�宸ヤ綔鎶ユ暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData) throws Exception {
+        this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
+        this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
+    }
+
+    /**
+     * 淇濆瓨鎴栨洿鏂版帶鍒跺櫒宸ヤ綔鎶ユ渶鏂版暟鎹�
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData)throws Exception {
+        RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ;
+        if(po == null){
+            po = new RmWorkReportLast();
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.rtuAddr = rtuAddr;
+            po.valueFrom(dataV202404, cdData);
+            sv.saveRmWorkReportLast(po) ;
+        }else{
+            po.controllerId = controller==null?null:controller.getId();
+            po.intakeId = controller==null?null:controller.getIntakeId();
+            po.valueFrom(dataV202404, cdData);
+            sv.updateRmWorkReportLast(po);
+        }
+    }
+
+    /**
+     * 淇濆瓨鎺у埗鍣ㄥ伐浣滄姤鍘嗗彶鏁版嵁
+     * @param sv 鏈嶅姟bean
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鍗忚鏁版嵁
+     * @param cdData 鍔熻兘鏁版嵁
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData)throws Exception {
+        RmWorkReportHistory po = new RmWorkReportHistory();
+        po.controllerId = controller==null?null:controller.getId();
+        po.intakeId = controller==null?null:controller.getIntakeId();
+        po.rtuAddr = rtuAddr;
+        po.valueFrom(dataV202404, cdData);
+        sv.saveRmWorkReportHistory(po); ;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
index 2959b8e..ca85596 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
@@ -29,8 +29,8 @@
         Data d = (Data)data ;
         if(d.getCommandId() == null || d.getCommandId().trim().equals("")){
             //鏃犲懡浠D
-            Object protocolData = d.getSubData() ;
-            if(protocolData != null) {
+            DataV202404 dataP206V202404 = (DataV202404)d.getSubData() ;
+            if(dataP206V202404 != null && dataP206V202404.subData != null) {
                 this.toNextTasks(data);
             }
         }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
index d788773..6347764 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
@@ -37,7 +37,7 @@
 	 * 澶勭悊TCP缂撳瓨涓殑鍚勪釜TCP Session鐨勪笂琛屾暟鎹椂鍒�
 	 */
 	private void dealTcpSession(){
-		TcpSessionCache.updateUpDataTime(System.currentTimeMillis() ) ;
+		TcpSessionCache.updateRtuStatus(System.currentTimeMillis() ) ;
 	}
 
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
index 44a35aa..762d9eb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -38,8 +38,9 @@
 					<task id="TkDealControllerNoTrampV202404" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealControllerNoTrampV202404">
 						<!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� -->
 						<task id="TkFindReportV202404" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindReportV202404">
-							<task id="TkDealAlarmStatusV202404" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAlarmStatusV202404" />
-							<task id="TkDealTimingReportV202404" name="鎺у埗鍣ㄥ畾鏃朵笂鎶ユ暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" />
+							<task id="TkDealAlarmStatusV202404" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵��" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAlarmStatusV202404" />
+							<task id="TkDealWorkingReportV202404" name="鎺у埗鍣ㄥ伐浣滄姤(鍔熻兘鐮�80)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealWorkingReportV202404" />
+							<task id="TkDealTimingReportV202404" name="鎺у埗鍣ㄥ畾鏃朵笂鎶�(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" />
 						</task>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponseV202404" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404">
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
index ccde4de..9f1a545 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -4,6 +4,7 @@
         type: com.alibaba.druid.pool.DruidDataSource
         driver-class-name: com.mysql.cj.jdbc.Driver
         url: jdbc:mysql://192.168.91.73:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#        url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         username: root
         password: dysql,;.abc!@#
         druid:
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index ba27e78..ef353e2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -16,6 +16,7 @@
 		dbDataIdSuffix锛氭暟鎹簱鏁版嵁id鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 
 		cacheUpDownDataWarnCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鎶ヨ閲忥紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
 		cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
+		disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2_100
 		 -->
 		<base 
 			isLowPower="false"
@@ -28,6 +29,7 @@
 			dbDataIdSuffix="0"
 			cacheUpDownDataWarnCount="100000"
 			cacheUpDownDataMaxCount="110000"
+			disconnectedByNoUpDataMinutes="3"
 		/>
 		
 		<!-- 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/pipIrr-web-demo.iml b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/pipIrr-web-demo.iml
new file mode 100644
index 0000000..9411fca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/pipIrr-web-demo.iml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+          <root url="file://$MODULE_DIR$/target/generated-sources/annotations" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
+      <excludeFolder url="file://$MODULE_DIR$/${project.build.directory}/classes" />
+      <excludeFolder url="file://$MODULE_DIR$/${project.build.directory}/test-classes" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="pipIrr-common" />
+    <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.16" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.20.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" />
+    <orderEntry type="module" module-name="pipIrr-global" />
+    <orderEntry type="library" name="Maven: com.alibaba:easyexcel:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:easyexcel-core:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:easyexcel-support:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
+    <orderEntry type="library" name="Maven: org.ehcache:ehcache:3.2.3" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okio:okio-jvm:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.8.22" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.11.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-security:1.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-common:1.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core:2.2.9" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.9" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.dubbo:dubbo:3.2.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-haproxy:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-memcache:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-mqtt:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-redis:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-smtp:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-stomp:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-xml:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-ssl-ocsp:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-rxtx:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-sctp:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-udt:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-classes-epoll:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-classes-kqueue:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns-classes-macos:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-epoll:linux-aarch_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-kqueue:osx-aarch_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-resolver-dns-native-macos:osx-x86_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-resolver-dns-native-macos:osx-aarch_64:4.1.94.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:hessian-lite:3.2.13" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.8.0" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.11" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.11" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.24.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.14.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:5.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.14.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:5.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:6.0.11" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.9.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/pom.xml b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/pom.xml
index 2efc9f8..df231c5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/pom.xml
@@ -40,6 +40,12 @@
             <optional>true</optional>
         </dependency>
 
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.1</version>
+        </dependency>
+
         <!--OkHttp-->
         <dependency>
             <groupId>com.squareup.okhttp3</groupId>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
index 7d16dba..196f207 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -513,6 +513,7 @@
         String sessionKey = job.getString("session_key");
 
         Long clientId = clientSv.getClientIdByPhone(phoneNumber);
+        String SessionId = "";
         if(clientId != null) {
             // 娣诲姞寰俊鐢ㄦ埛璐︽埛璁板綍
             SeOpenId seOpenId = new SeOpenId();
@@ -520,7 +521,11 @@
             seOpenId.setOpenId(openid);
             seOpenId.setSessionKey(sessionKey);
             seOpenId.setCreateTime(new Date());
-            Long SessionId = clientSv.addOpenId(seOpenId);
+            //Long SessionId = clientSv.addOpenId(seOpenId);
+            Long rec = clientSv.addOpenId(seOpenId);
+            if(rec != null) {
+                SessionId = String.valueOf(rec);
+            }
             return BaseResponseUtils.buildSuccess(SessionId);
 
         } else {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
index a816627..1753ae1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
@@ -174,7 +174,8 @@
      */
     public Long addOpenId(SeOpenId po) {
         seOpenIdMapper.insert(po);
-        return po.getClientId();
+        //return po.getClientId();
+        return po.getId();
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PayInfo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PayInfo.java
index a91afb1..687fabb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PayInfo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PayInfo.java
@@ -41,7 +41,6 @@
     /*
      * 鏀粯缁撴灉閫氱煡API
      */
-    //public static String notifyUrl = "https://www.muxiaobao.com/api/Payment/OrderNotify";
     public static String notifyUrl = "https://44978f7456.imdo.co/sell/payment/orderNotify";
 
     /*
@@ -67,12 +66,14 @@
     /*
      * 灏忕▼搴忓敮涓�鏍囪瘑
      */
-    public static String appid = "wxbc2b6a00dd904ead";
+    //public static String appid = "wxbc2b6a00dd904ead";
+    public static String appid = "wxf773810cd5643196";
 
     /*
      * 灏忕▼搴忕殑 app secret
      */
-    public static String secret = "796ffe3e9921f756db0499e80d6ed0cd";
+    //public static String secret = "796ffe3e9921f756db0499e80d6ed0cd";
+    public static String secret = "080d4f947095551e988cfe9338e27f15";
 
     /*
      * 灏忕▼搴忕殑鎺堟潈绫诲瀷锛岀櫥褰曞嚟璇佹牎楠屼娇鐢�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
index 2d237fa..4314bed 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/PaymentCtrl.java
@@ -18,6 +18,7 @@
 import com.dy.pipIrrSell.virtualCard.enums.LastOperateENUM;
 import com.dy.pipIrrSell.virtualCard.enums.RefundItemStateENUM;
 import com.dy.pipIrrSell.wallet.enums.RefundStatusENUM;
+import com.dy.pipIrrSell.wechatpay.dto.Code2Session;
 import com.dy.pipIrrSell.wechatpay.dto.DtoOrder;
 import com.dy.pipIrrSell.wechatpay.dto.NotifyResource;
 import com.dy.pipIrrSell.wechatpay.dto.OrderNotify;
@@ -73,6 +74,7 @@
 
     private final String privateCertFileName = PayInfo.privateCertFileName;
     private final String appid = PayInfo.appid;
+    private final String secret = PayInfo.secret;
     private final String mchid = PayInfo.mchid;
     private final String schema = PayInfo.schema;
     private final String signType = PayInfo.signType;
@@ -83,6 +85,68 @@
 
     // 骞冲彴璇佷功鍏挜
     private final Map CERTIFICATE_MAP = new HashMap();
+
+    /**
+     * 鐧诲綍鍑瘉鏍¢獙锛屽啘鎴风粦瀹氳处鍙烽�昏緫鍖呭惈鐧诲綍鍑瘉鏍¢獙锛屾鎺ュ彛浣滃簾
+     * @param code2Session 鐧诲綍鍑瘉鏍¢獙浼犲叆瀵硅薄
+     * @param bindingResult
+     * @return
+     * @throws Exception
+     */
+    @Operation(summary = "鐧诲綍鍑瘉鏍¢獙", description = "鐧诲綍鍑瘉鏍¢獙")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "getSessionId")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> getSessionId(@RequestBody @Valid Code2Session code2Session, BindingResult bindingResult) throws Exception {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        String phoneNumber = code2Session.getPhoneNumber();
+        String jsCode = code2Session.getJs_code();
+
+        Map<String, Object> queryParams = new HashMap<>();
+        queryParams.put("appid", appid);
+        queryParams.put("secret", secret);
+        queryParams.put("js_code", jsCode);
+        queryParams.put("grant_type", grantType);
+        Map<String, String> headerParams = new HashMap<>();
+        JSONObject job = restTemplateUtil.get(loginUrl, queryParams, headerParams);
+
+        if(job.getLong("errcode") != null && job.getLong("errcode") >= -1) {
+            return BaseResponseUtils.buildFail("鐧诲綍鍑瘉鏍¢獙澶辫触");
+        }
+
+        String openid = job.getString("openid");
+        String sessionKey = job.getString("session_key");
+
+        Long clientId = clientSv.getClientIdByPhone(phoneNumber);
+        String SessionId = "";
+        if(clientId != null) {
+            // 娣诲姞寰俊鐢ㄦ埛璐︽埛璁板綍
+            SeOpenId seOpenId = new SeOpenId();
+            seOpenId.setClientId(clientId);
+            seOpenId.setOpenId(openid);
+            seOpenId.setSessionKey(sessionKey);
+            seOpenId.setCreateTime(new Date());
+            Long rec = clientSv.addOpenId(seOpenId);
+            if(rec != null) {
+                SessionId = String.valueOf(rec);
+            }
+            return BaseResponseUtils.buildSuccess(SessionId);
+
+        } else {
+            return BaseResponseUtils.buildError(SellResultCode.PHONE_NUMBER_IS_ERROR.getMessage());
+        }
+    }
 
     /**
      * 涓嬭浇寰俊鏀粯骞冲彴璇佷功 娴嬭瘯瀹屽簾闄�
@@ -221,6 +285,7 @@
         if(job_result == null) {
             return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_ADD_FAIL.getMessage());
         }
+
         return BaseResponseUtils.buildSuccess(job_result) ;
     }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/Code2Session.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/Code2Session.java
index ad86942..cc9804c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/Code2Session.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wechatpay/dto/Code2Session.java
@@ -36,4 +36,10 @@
     @Schema(description = "js_code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotBlank(message = "js_code涓嶈兘涓虹┖")
     private String js_code;
+
+    /**
+     * 鎵嬫満鍙�
+     */
+    @NotBlank(message = "鎵嬫満鍙蜂笉鑳戒负绌�")
+    private String phoneNumber;
 }

--
Gitblit v1.8.0