From f5a10d5ae1290d8ceefee143815555d59be6ff9a Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 23 五月 2024 08:50:58 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java                                   |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateUnitMapper.xml                                             |  160 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java        |  135 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java                      |   10 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java                  |   11 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java                |   26 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java                   |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java                      |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java                             |   28 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java |   50 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java                        |   15 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java        |  213 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml                                           |  302 +++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnit.java                                             |   52 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java                         |   16 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnitOne.java                                          |   50 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java                                                 |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java                      |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java                                            |   51 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml                                            |  172 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java          |   91 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml                                        |  296 +++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml                                                |   91 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/po/BaseEntity.java                                                 |    3 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml                                                  |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java                            |   31 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java                      |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java  |  240 ++--
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java          |   89 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java                      |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java                                         |   51 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java                 |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateUnit.java                                   |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateUnitMapper.java                              |   38 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java                   |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java                         |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java                      |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java                                  |   84 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java                              |  120 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java                             |   50 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java                                 |   28 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java                                      |   77 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java                      |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java            |    5 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java                                 |  148 +-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                               |    1 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java       |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/QueryVo.java                 |   26 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java                      |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java      |  301 +++++
 50 files changed, 2,569 insertions(+), 565 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
index 660982d..b837f44 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java
@@ -14,10 +14,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.annotation.Order;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.UriComponentsBuilder;
@@ -105,6 +102,8 @@
                     .build()
                     .toUriString();
             HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
+
             HttpEntity<?> httpEntity = new HttpEntity<>(headers);
             ResponseEntity<SsoVo> response = null;
             try {
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
index ed8cf0a..9a6cfb3 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
@@ -87,7 +87,6 @@
                 bs[index++] = 0 ;
             }
 
-            index += 4 ;
             strTemp = "" + cvo.moneyAlarm ;
             bTemp = ByteUtil.string2BCD_LE(strTemp) ;
             bTempLen = bTemp.length ;
@@ -103,7 +102,6 @@
                 bs[index++] = 0 ;
             }
 
-            index ++ ;
             GlCreate.createPw(bs, index);
 
             index += 2 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
index f9970b2..def9fdb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
@@ -63,7 +63,7 @@
                 throw new Exception("姘翠綅涓嬮檺鍊煎繀椤绘槸0~9999.99鑼冨洿鍐呯殑鏁存暟") ;
             }
 
-            byte[] bs = new byte[17] ;
+            byte[] bs = new byte[16] ;
             int index = 0 ;
             bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
 
@@ -86,7 +86,6 @@
                 bs[index++] = 0 ;
             }
 
-            index += 4 ;
             strTemp = "" + (Double.valueOf(cvo.limitLevel * 100)).longValue() ;
             bTemp = ByteUtil.string2BCD_LE(strTemp) ;
             bTempLen = bTemp.length ;
@@ -102,7 +101,6 @@
                 bs[index++] = 0 ;
             }
 
-            index ++ ;
             GlCreate.createPw(bs, index);
 
             index += 2 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
index 1e77cc4..7996250 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
@@ -5,6 +5,7 @@
 import com.dy.common.mw.protocol.p206V202404.*;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
 import com.dy.common.util.ByteUtil;
+import com.dy.common.util.DateTime;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -115,6 +116,20 @@
         index += 4 ;
         cdData.batteryVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1)/100.0D ;
 
+        index += 2 ;
+        String hh = ByteUtil.BCD2String_LE(bs, index, index) ;
+        index ++ ;
+        String dd = ByteUtil.BCD2String_LE(bs, index, index) ;
+        index ++ ;
+        String mm = ByteUtil.BCD2String_LE(bs, index, index) ;
+        index ++ ;
+        String yy = ByteUtil.BCD2String_LE(bs, index, index) ;
+
+        String ymd = "20" + yy + "-" + mm + "-" + dd ;
+
+        cdData.rtuDt = ymd + " " + hh ;
+
+        cdData.dataDt = DateTime.lastXDay_yyyy_MM_dd(ymd, 1) ;
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
index 5dba686..1193d6b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
@@ -80,7 +80,7 @@
             if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
                 throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
             }
-            if(cvo.orderNo.length() != 12){
+            if(cvo.orderNo.length() != 16){
                 throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
             }
 
@@ -103,7 +103,7 @@
             GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
 
             index += 8 ;
-            if(cvo.waterRemain != null){
+            if(cvo.waterRemain == null){
                 cvo.waterRemain = 0.0 ;
             }
             String strTemp = "" + Double.valueOf(cvo.waterRemain * 100).intValue() ;
@@ -121,7 +121,7 @@
                 bs[index++] = 0 ;
             }
 
-            if(cvo.moneyRemain != null){
+            if(cvo.moneyRemain == null){
                 cvo.moneyRemain = 0.0 ;
             }
             strTemp = "" + (Double.valueOf(cvo.moneyRemain * 100)).intValue() ;
@@ -140,7 +140,7 @@
             }
 
 
-            if(cvo.waterPrice != null){
+            if(cvo.waterPrice == null){
                 cvo.waterPrice = 0.0 ;
             }
             strTemp = "" + (Double.valueOf(cvo.waterPrice * 100)).intValue() ;
@@ -159,7 +159,7 @@
             }
 
 
-            if(cvo.elePrice != null){
+            if(cvo.elePrice == null){
                 cvo.elePrice = 0.0 ;
             }
             strTemp = "" + (Double.valueOf(cvo.elePrice * 100)).intValue() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
index e39949b..b9f58f6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
@@ -68,7 +68,7 @@
         sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue() == 0 ? "姝e父":(alarmEleLowVolt.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
         sb.append("\n") ;
         sb.append("      IC鍗″姛鑳� : ") ;
-        sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue() == 0 ? "涓嶆敮鎸�":(stateIcEnable.byteValue() == 1 ? "鏀寔":"鏈煡"))) ;
+        sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue() == 0 ? "鏃犳晥":(stateIcEnable.byteValue() == 1 ? "鏈夋晥":"鏈煡"))) ;
         sb.append("\n") ;
 
         return sb.toString() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
index 7b367ba..157d4aa 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
@@ -26,7 +26,7 @@
 		sb.append("      椤圭洰缂栧彿 : ") ;
 		sb.append(projectNo == null?"鏈煡":projectNo) ;
 		sb.append("\n") ;
-		sb.append("      鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
+		sb.append("      鍓╀綑閲戦鎶ヨ鍊� : ") ;
 		sb.append(moneyAlarm == null?"鏈煡":moneyAlarm) ;
 		sb.append("\n") ;
 		sb.append("      鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
index 104f326..9260479 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
@@ -16,7 +16,8 @@
 	public Double waterUserTotalAmountDay ;// 褰撴棩鐢ㄦ埛鐢ㄦ按閲�
 	public Double lossTotalAmountDay ;// 婕忔崯姘撮噺
 	public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇
-	public Double rtuDt ;//涓婃姤鏃堕棿锛坹yyy-mm-dd HH锛�
+	public String dataDt ;//鏁版嵁鏃堕棿锛坹yyy-mm-dd锛�
+	public String rtuDt ;//RTU鏃堕挓锛堜笂鎶ユ椂鍒伙級锛坹yyy-mm-dd HH:00:00锛�
 
 	public String comName ;//鍛戒护鍚嶇О
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
index b351c34..86bc1a7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
@@ -11,7 +11,7 @@
 	public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
 	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
 	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-	public String opDt ;//寮�娉�/闃�鏃堕棿(鍒嗘椂鏃ユ湀)
+	public String opDt ;//寮�娉�/闃�鏃堕棿(yyyy-mm-dd HH:MM:SS)
 	public Double waterTotalAmount ;//姘磋〃绱姘撮噺锛屽崟浣�0.01绔嬫柟绫�
 	public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺锛屽崟浣�0.01搴�
 	public Double moneyRemainUser ;//鐢ㄦ埛鍓╀綑閲戦锛� 鍗曚綅0.01鍏�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java
index ddb99e3..8cebaa7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java
@@ -11,7 +11,7 @@
 	public Byte opType1 ;//鎿嶄綔鏂瑰紡锛�0:鍒峰崱寮�姘存车/闃�闂紱1:杩滅▼寮�姘存车/闃�闂紱2:APP寮�姘存车/闃�闂�
 	public Byte opType2 ;//寮�鍚叧闂細0: 寮�鍚� -1:鍏抽棴
 	public Boolean success ;//鎵ц缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
-	public String rutDt ;//璁惧鏃堕挓
+	public String rtuDt;//璁惧鏃堕挓
 
 	public String comName ;//鍛戒护鍚嶇О
 
@@ -35,7 +35,7 @@
 		sb.append(opType2 == null?"鏈煡":(opType2.byteValue()==0?"寮�鍚按娉�/闃�闂�":(opType2.byteValue()==1?"鍏抽棴姘存车/闃�闂�":"鏈煡"))) ;
 		sb.append("\n") ;
 		sb.append("      璁惧鏃堕挓 : ") ;
-		sb.append(rutDt == null?"鏈煡":rutDt) ;
+		sb.append(rtuDt == null?"鏈煡": rtuDt) ;
 		sb.append("\n") ;
 		sb.append("      鎵ц缁撴灉 : ") ;
 		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
index 6265e27..f518814 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/AutoGenerateIdInterceptor.java
@@ -25,8 +25,9 @@
 
     static int MAPPED_STATEMENT_INDEX = 0;
     static int PARAMETER_INDEX = 1;
-    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME = "setId";
-    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME2 = "setUserId";
+    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETID = "setId";
+    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETUSERID = "setUserId";
+    static String BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETROLEID = "setRoleId";
 
     /**
      * 鎷︽埅閫昏緫瀹炵幇
@@ -42,24 +43,35 @@
             if (entity instanceof BaseEntity) {
                 //Class<? extends Object> entityClass = entity.getClass();
                 Class<?> entityClass = entity.getClass();
-                Method setMt = null ;
+                Method setId = null ;
+                Method setUserId = null ;
+                Method setRoleId = null ;
                 try{
+                    /*
                     // 娣诲姞鐢ㄦ埛鏃秛serId涓鸿嚜鍔ㄧ敓鎴愪富閿�俽oleId瀛樺湪鏃舵槸涓虹敤鎴风粦瑙掕壊
                     String jsonString = JSONObject.toJSONString(entity, JSONWriter.Feature.WriteMapNullValue);
                     JSONObject jsonObject = JSONObject.parseObject(jsonString);
                     if(jsonObject.containsKey("userId") && !jsonObject.containsKey("roleId")) {
-                        setMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME2, Long.class) ;
+                        setUserId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETUSERID, Long.class) ;
+                        setRoleId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETROLEID, Long.class) ;
                     }else {
                         //鏈変竴浜涘疄浣撴病鏈塱d锛屼緥濡備腑闂磋〃
-                        setMt = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_NAME, Long.class) ;
+                        setId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETID, Long.class) ;
                     }
+                    */
+                    //鏈変竴浜涘疄浣撴病鏈塱d锛屼緥濡備腑闂磋〃
+                    setId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETID, Long.class) ;
+                    // BaUser瀹炰綋涓槸setUserId, BaUserRole瀹炰綋涓寘鍚玸etUserId,鍜宻etRoleId
+                    setUserId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETUSERID, Long.class) ;
+                    setRoleId = entityClass.getMethod(BASE_FIELD_SET_PRIMARY_KEY_FUNTION_SETROLEID, Long.class) ;
                 }catch (Exception e){
                     //褰揺ntityClass娌℃湁setId鏂规硶鏃讹紝浼氭姏鍑哄紓甯�
                 }
-                if(setMt != null){
-                    setMt.invoke(entity, new IDLongGenerator().generate());
+                if(setUserId != null && setRoleId == null){
+                    setUserId.invoke(entity, new IDLongGenerator().generate());
+                }else if(setId != null){
+                    setId.invoke(entity, new IDLongGenerator().generate());
                 }
-
                 invocation.getArgs()[PARAMETER_INDEX] = entity;
             }
         }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/po/BaseEntity.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/po/BaseEntity.java
index f34a8df..7d65aa4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/po/BaseEntity.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/po/BaseEntity.java
@@ -2,5 +2,8 @@
 
 import java.io.Serializable;
 
+/**
+ * 姝ゆ帴鍙f嫤鎴櫒锛圓utoGenerateIdInterceptor銆愯嚜鍔ㄤ粈鍊糏D銆戯級涓敤鍒般��
+ */
 public interface BaseEntity extends Serializable {
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java
new file mode 100644
index 0000000..5ec4a32
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.daoIr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/22  13:41
+ * @LastEditTime :2024/5/22  13:41
+ * @Description
+ */
+@Mapper
+public interface IrGroupUnitMapper extends BaseMapper<IrGroupUnit> {
+    //澧�
+    int insertSelective(IrGroupUnit record);
+
+    //鍒�
+    int deleteLogicById(Long id);
+
+    //鍒燽y unitId groupId
+    int deleteByUnitIdGroupId(IrGroupUnit record);
+    //鍒燽y unitId
+    int deleteByUnitId(Long unitId);
+    //鍒燽y  groupId
+    int deleteByGroupId(Long groupId);
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
new file mode 100644
index 0000000..744862d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrGlobal.daoIr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
+import com.dy.pipIrrGlobal.voIr.VoGroup;
+import com.dy.pipIrrGlobal.voIr.VoGroupOne;
+import com.dy.pipIrrGlobal.voIr.VoUnit;
+import com.dy.pipIrrGlobal.voIr.VoUnitOne;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  15:32
+ * @LastEditTime :2024/5/21  15:32
+ * @Description
+ */
+@Mapper
+public interface IrIrrigateGroupMapper extends BaseMapper<IrIrrigateGroup> {
+    //澧�
+    int insertSelective(IrIrrigateGroup record);
+
+    //鍒�
+    int deleteLogicById(Long id);
+
+    //鏀�
+    int updateByPrimaryKeySelective(IrIrrigateGroup record);
+
+    //鏌ヤ竴涓�
+    VoGroupOne selectById(Long id);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟
+     *
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�
+     *
+     * @param params
+     * @return
+     */
+    List<VoGroup> getIrrigateGroups(Map<?, ?> params);
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateUnitMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateUnitMapper.java
index 7fc478a..d7cd2b6 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateUnitMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateUnitMapper.java
@@ -1,6 +1,15 @@
 package com.dy.pipIrrGlobal.daoIr;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voIr.VoProjectOne;
+import com.dy.pipIrrGlobal.voIr.VoUnit;
+import com.dy.pipIrrGlobal.voIr.VoUnitOne;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author :WuZeYu
@@ -9,5 +18,32 @@
  * @Description
  */
 @Mapper
-public interface IrIrrigateUnitMapper {
+public interface IrIrrigateUnitMapper extends BaseMapper<IrIrrigateUnit> {
+    //澧�
+    int insertSelective(IrIrrigateUnit record);
+
+    //鍒�
+    int deleteLogicById(Long id);
+
+    //鏀�
+    int updateByPrimaryKeySelective(IrIrrigateUnit record);
+
+    //鏌ヤ竴涓�
+    VoUnitOne selectById(Long id);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟
+     *
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�
+     *
+     * @param params
+     * @return
+     */
+    List<VoUnit> getUnits(Map<?, ?> params);
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
index 3d3e0a0..ddfa487 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
@@ -49,7 +49,7 @@
     Long getSupperByVillageId(long vaId);
 
     /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇椤圭洰璁板綍鏁�
      *
      * @param params
      * @return
@@ -57,7 +57,7 @@
     Long getRecordCount(Map<?, ?> params);
 
     /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇椤圭洰璁板綍
      *
      * @param params
      * @return
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 c96ea37..53741ee 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,19 +1,18 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
- * @Author liurunyu
- * @Date 2024/1/16 11:18
- * @LastEditTime 2024/1/16 11:18
+ * @Author: liurunyu
+ * @Date: 2024/5/20 20:20
  * @Description
- */   
+ */
 @Mapper
-public interface RmAlarmStateHistoryMapper  extends BaseMapper<RmAlarmStateHistory> {
+public interface RmAlarmStateHistoryMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -21,6 +20,7 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
@@ -28,6 +28,7 @@
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
@@ -35,6 +36,7 @@
 
     /**
      * select by primary key
+     *
      * @param id primary key
      * @return object by primary key
      */
@@ -42,6 +44,7 @@
 
     /**
      * update record selective
+     *
      * @param record the updated record
      * @return update count
      */
@@ -49,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/RmAlarmStateLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
index cb9e72a..4a0582d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
@@ -1,21 +1,20 @@
 package com.dy.pipIrrGlobal.daoRm;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
 /**
- * @Author liurunyu
- * @Date 2024/1/16 11:18
- * @LastEditTime 2024/1/16 11:18
+ * @Author: liurunyu
+ * @Date: 2024/5/20 19:55
  * @Description
- */   
+ */
 @Mapper
-public interface RmAlarmStateLastMapper  extends BaseMapper<RmAlarmStateLast> {
+public interface RmAlarmStateLastMapper {
     /**
      * delete by primary key
+     *
      * @param id primaryKey
      * @return deleteCount
      */
@@ -23,6 +22,7 @@
 
     /**
      * insert record to table
+     *
      * @param record the record
      * @return insert count
      */
@@ -30,6 +30,7 @@
 
     /**
      * insert record to table selective
+     *
      * @param record the record
      * @return insert count
      */
@@ -37,20 +38,15 @@
 
     /**
      * select by primary key
+     *
      * @param id primary key
      * @return object by primary key
      */
     RmAlarmStateLast selectByPrimaryKey(Long id);
 
     /**
-     * select by rtuAddr
-     * @param rtuAddr rtuAddr
-     * @return object by rtuAddr
-     */
-    List<RmAlarmStateLast> selectByRtuAddr(String rtuAddr);
-
-    /**
      * update record selective
+     *
      * @param record the updated record
      * @return update count
      */
@@ -58,8 +54,17 @@
 
     /**
      * update record
+     *
      * @param record the updated record
      * @return update count
      */
     int updateByPrimaryKey(RmAlarmStateLast record);
+
+    /**
+     * select by rtuAddr
+     *
+     * @param rtuAddr rtuAddr
+     * @return object by rtuAddr
+     */
+    List<RmAlarmStateLast> selectByRtuAddr(String rtuAddr);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java
new file mode 100644
index 0000000..766d3db
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java
@@ -0,0 +1,77 @@
+package com.dy.pipIrrGlobal.pojoIr;
+
+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 io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/22  13:43
+ * @LastEditTime :2024/5/22  13:43
+ * @Description
+ */
+/**
+ * 杞亴缁勭亴婧夊崟鍏冧腑闂磋〃
+ */
+
+@TableName(value="ir_group_unit", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "杞亴缁勭亴婧夊崟鍏冧腑闂磋〃瀹炰綋")
+public class IrGroupUnit implements BaseEntity {
+
+    public static final long serialVersionUID = 202405221354001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+     * 杞亴缁処D
+     */
+    @Schema(description = "杞亴缁処D", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "杞亴缁処D涓嶈兘涓虹┖")
+    private Long groupId;
+
+    /**
+     * 鐏屾簤鍗曞厓ID
+     */
+    @Schema(description = "鐏屾簤鍗曞厓ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鐏屾簤鍗曞厓ID涓嶈兘涓虹┖")
+    private Long unitId;
+
+    /**
+     * 鎿嶄綔浜篒D
+     */
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
+    private Long operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operateDt;
+
+
+    /**
+     * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎
+     */
+    @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte deleted;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java
new file mode 100644
index 0000000..9c098d3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java
@@ -0,0 +1,84 @@
+package com.dy.pipIrrGlobal.pojoIr;
+
+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 io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  15:34
+ * @LastEditTime :2024/5/21  15:34
+ * @Description
+ */
+/**
+ * 杞亴缁勮〃
+ */
+
+@TableName(value="ir_irrigate_group", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "杞亴缁勫疄浣�")
+public class IrIrrigateGroup implements BaseEntity {
+
+    public static final long serialVersionUID = 202405211534001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+     * 杞亴缁勭紪鐮�
+     */
+    @Schema(description = "杞亴缁勭紪鐮�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "杞亴缁勭紪鐮佷笉鑳戒负绌�")
+    private String groupCode;
+
+    /**
+     * 椤圭洰ID
+     */
+    @Schema(description = "椤圭洰ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "椤圭洰ID涓嶈兘涓虹┖")
+    private Long projectId;
+
+    /**
+     * 澶囨敞
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜篒D
+     */
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
+    private Long operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operateDt;
+
+
+    /**
+     * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎
+     */
+    @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte deleted;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateUnit.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateUnit.java
index 0806184..6f49902 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateUnit.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateUnit.java
@@ -12,11 +12,10 @@
 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 io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
-import org.hibernate.validator.constraints.Length;
 
 import java.util.Date;
 
@@ -30,8 +29,8 @@
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "椤圭洰瀹炰綋")
-public class IrIrrigateUnit {
+@Schema(name = "鐏屾簤鍗曞厓瀹炰綋")
+public class IrIrrigateUnit  implements BaseEntity {
     public static final long serialVersionUID = 202405161833001L;
 
     /**
@@ -52,8 +51,7 @@
      * 鐏屾簤闈㈢Н
      */
     @Schema(description = "鐏屾簤闈㈢Н", requiredMode = Schema.RequiredMode.REQUIRED)
-    @Length(message = "椤圭洰鍚嶇О涓嶅ぇ浜巤max}瀛�",max = 12)
-    private float area;
+    private Float area;
     /**
      * 鎿嶄綔浜篒D
      */
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 4cc887d..71d78d5 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,23 +1,21 @@
 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 11:03
- * @LastEditTime 2024/1/16 11:03
- * @Description 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鍘嗗彶锛�
- */   
+ * @Author: liurunyu
+ * @Date: 2024/5/20 20:20
+ * @Description
+ */
+
+/**
+ * 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鍘嗗彶锛�
+ */
 @TableName(value="rm_alarm_state_history", autoResultMap = true)
 @Data
 @Builder
@@ -26,88 +24,110 @@
 @AllArgsConstructor
 @Schema(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鍘嗗彶锛�")
 public class RmAlarmStateHistory implements BaseEntity {
-
-    public static final long serialVersionUID = 202401161104001L;
+    public static final long serialVersionUID = 202405202021001L;
     /**
      * 涓婚敭
      */
-    @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;
+    public Long controllerId;
 
     /**
      * 鍙栨按鍙D锛堝閿級
      */
-    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeid;
+    public Long intakeId;
 
     /**
      * 鎺у埗鍣ㄥ湴鍧�
      */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String rtuaddr;
+    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;
-    /**
-     * 鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)
-     */
-    @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte bateryvolt;
+    public Date rtuDt;
 
     /**
-     * 鎶ヨ-婕忔崯(1鎶ヨ锛�0姝e父)
+     * 鐘舵��-闃�闂�/娉碉紙1鎵撳紑銆�0鍏抽棴锛�
      */
-    @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte loss;
+    public Byte valveState;
 
     /**
-     * 鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)
+     * 鍓╀綑姘撮噺灏忎簬鎶ヨ涓婇檺鎶ヨ鎶ヨ锛�1锛氭姤璀︼紝 0锛氭甯革級
      */
-    @Schema(description = "鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte meter;
+    public Byte alarmRemainWater;
 
     /**
-     * 鎶ヨ-闃�闂�(1鎶ヨ锛�0姝e父)
+     * 鍓╀綑姘撮噺涓�0鍏虫车/闃�(1锛氬叧娉碉紝0锛氭甯�)
      */
-    @Schema(description = "鎶ヨ-闃�闂�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte valve;
+    public Byte alarm0WaterRemain;
 
     /**
-     * 鐘舵��-IC鍗″姛鑳斤紙1鏈夋晥銆�0鏃犳晥锛�
+     * 骞寸敤姘撮噺澶т簬闄愬埗姘撮噺鎶ヨ(1锛氭姤璀� 0锛氭甯�)
      */
-    @Schema(description = "鐘舵��-IC鍗″姛鑳斤紙1鏈夋晥銆�0鏃犳晥锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte iccard;
+    public Byte alarmExceedYear;
 
     /**
-     * 鐘舵��-宸ヤ綔锛�1鍚姩銆�0鍋滄锛�
+     * 娴侀噺璁℃晠闅�(1锛氭姤璀︼紝0锛氭甯�)
      */
-    @Schema(description = "鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte working;
+    public Byte alarmWaterMeterFault;
 
     /**
-     * 鐘舵��-闃�闂紙1鎵撳紑銆�0鍏抽棴锛�
+     * 婕忔崯(鍋锋按)鎶ヨ(1锛氭姤璀︼紝 0锛氭甯�)
      */
-    @Schema(description = "鐘舵��-闃�闂紙1鎵撳紑銆�0鍏抽棴锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte valvestate;
+    public Byte alarmLoss;
+
+    /**
+     * 娴侀噺璁℃崯鍧�(姝e父閫氳浣嗙灛鏃朵负0)鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmWaterMeterBreak;
+
+    /**
+     * 鐢佃〃鏁呴殰鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleMeterFault;
+
+    /**
+     * 鍓╀綑閲戦涓�0(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarm0MoneyRemain;
+
+    /**
+     * 鎺у埗鍣ㄥ唴闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmInnerDoor;
+
+    /**
+     * 鎺у埗鍣ㄥ闂ㄦ墦寮�鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmOuterDoor;
+
+    /**
+     * 浜ゆ祦缂洪」鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleMiss;
+
+    /**
+     * 浜ゆ祦杩囨祦鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleExceed;
+
+    /**
+     * 涓夌浉鐢垫瑺鍘嬫姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleLowVolt;
+
+    /**
+     * IC鍗$姸鎬�(1銆佹湁鏁堬紝0锛氭棤鏁�)
+     */
+    public Byte stateIcEnable;
 
 }
\ No newline at end of file
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 372fded..ee87103 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,23 +1,21 @@
 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 10:39
- * @LastEditTime 2024/1/16 10:39
- * @Description 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鏈�鏂帮級
- */   
+ * @Author: liurunyu
+ * @Date: 2024/5/20 19:55
+ * @Description
+ */
+
+/**
+ * 鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鏈�鏂帮級
+ */
 @TableName(value="rm_alarm_state_last", autoResultMap = true)
 @Data
 @Builder
@@ -26,92 +24,110 @@
 @AllArgsConstructor
 @Schema(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�侊紙鏈�鏂帮級")
 public class RmAlarmStateLast implements BaseEntity {
-
-    public static final long serialVersionUID = 202401161041001L;
+    public static final long serialVersionUID = 202405202021002L;
     /**
-    * 涓婚敭
-    */
-    @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锛堝閿級
+     */
+    public Long controllerId;
 
     /**
      * 鍙栨按鍙D锛堝閿級
      */
-    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeid;
+    public Long intakeId;
 
     /**
-    * 鎺у埗鍣ㄥ湴鍧�
-    */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public String rtuaddr;
+     * 鎺у埗鍣ㄥ湴鍧�
+     */
+    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;
+     * 鎺у埗鍣ㄦ椂閽�
+     */
+    public Date rtuDt;
 
     /**
-    * 鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)
-    */
-    @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte bateryvolt;
+     * 鐘舵��-闃�闂�/娉碉紙1鎵撳紑銆�0鍏抽棴锛�
+     */
+    public Byte valveState;
 
     /**
-    * 鎶ヨ-婕忔崯(1鎶ヨ锛�0姝e父)
-    */
-    @Schema(description = "鎶ヨ-钃勭數姹犵數鍘�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte loss;
+     * 鍓╀綑姘撮噺灏忎簬鎶ヨ涓婇檺鎶ヨ鎶ヨ锛�1锛氭姤璀︼紝 0锛氭甯革級
+     */
+    public Byte alarmRemainWater;
 
     /**
-    * 鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)
-    */
-    @Schema(description = "鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte meter;
+     * 鍓╀綑姘撮噺涓�0鍏虫车/闃�(1锛氬叧娉碉紝0锛氭甯�)
+     */
+    public Byte alarm0WaterRemain;
 
     /**
-    * 鎶ヨ-闃�闂�(1鎶ヨ锛�0姝e父)
-    */
-    @Schema(description = "鎶ヨ-闃�闂�(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte valve;
+     * 骞寸敤姘撮噺澶т簬闄愬埗姘撮噺鎶ヨ(1锛氭姤璀� 0锛氭甯�)
+     */
+    public Byte alarmExceedYear;
 
     /**
-    * 鐘舵��-IC鍗″姛鑳斤紙1鏈夋晥銆�0鏃犳晥锛�
-    */
-    @Schema(description = "鐘舵��-IC鍗″姛鑳斤紙1鏈夋晥銆�0鏃犳晥锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte iccard;
+     * 娴侀噺璁℃晠闅�(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmWaterMeterFault;
 
     /**
-    * 鐘舵��-宸ヤ綔锛�1鍚姩銆�0鍋滄锛�
-    */
-    @Schema(description = "鎶ヨ-浠〃(1鎶ヨ锛�0姝e父)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte working;
+     * 婕忔崯(鍋锋按)鎶ヨ(1锛氭姤璀︼紝 0锛氭甯�)
+     */
+    public Byte alarmLoss;
 
     /**
-    * 鐘舵��-闃�闂紙1鎵撳紑銆�0鍏抽棴锛�
-    */
-    @Schema(description = "鐘舵��-闃�闂紙1鎵撳紑銆�0鍏抽棴锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Byte valvestate;
+     * 娴侀噺璁℃崯鍧�(姝e父閫氳浣嗙灛鏃朵负0)鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmWaterMeterBreak;
 
+    /**
+     * 鐢佃〃鏁呴殰鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleMeterFault;
 
+    /**
+     * 鍓╀綑閲戦涓�0(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarm0MoneyRemain;
+
+    /**
+     * 鎺у埗鍣ㄥ唴闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmInnerDoor;
+
+    /**
+     * 鎺у埗鍣ㄥ闂ㄦ墦寮�鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmOuterDoor;
+
+    /**
+     * 浜ゆ祦缂洪」鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleMiss;
+
+    /**
+     * 浜ゆ祦杩囨祦鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleExceed;
+
+    /**
+     * 涓夌浉鐢垫瑺鍘嬫姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+     */
+    public Byte alarmEleLowVolt;
+
+    /**
+     * IC鍗$姸鎬�(1銆佹湁鏁堬紝0锛氭棤鏁�)
+     */
+    public Byte stateIcEnable;
 
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java
new file mode 100644
index 0000000..506cd9a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  16:34
+ * @LastEditTime :2024/5/21  16:34
+ * @Description
+ */
+@Data
+@Schema(name = "杞亴缁勮鍥�")
+public class VoGroup  implements BaseEntity {
+    @Schema(description = "鎵�灞為」鐩悕绉�")
+    public String projectName;
+
+    @Schema(description = "杞亴缁勭紪鐮�")
+    private String groupCode;
+
+    @Schema(description = "鐏屾簤鍗曞厓鏁伴噺")
+    private Integer itemCount;
+
+    @Schema(description = "杞亴缁処D")
+    private String id;
+
+
+    @Schema(description = "澶囨敞")
+    private String remarks;
+
+    @Schema(description = "鎵�灞為」鐩甀d")
+    public String projectId;
+
+    /**
+     * 鎿嶄綔浜哄悕瀛�
+     */
+    @Schema(description = "鎿嶄綔浜哄悕瀛�")
+    private String operatorName;
+
+    @Schema(description = "鎿嶄綔浜篒d")
+    private String operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿")
+    private Date operateDt;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java
new file mode 100644
index 0000000..6af70a6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  16:34
+ * @LastEditTime :2024/5/21  16:34
+ * @Description
+ */
+@Data
+@Schema(name = "杞亴缁勮鍥�(鏌ヤ竴涓�)")
+public class VoGroupOne  implements BaseEntity {
+    @Schema(description = "鎵�灞為」鐩悕绉�")
+    public String projectName;
+
+    @Schema(description = "杞亴缁勭紪鐮�")
+    private String groupCode;
+
+    @Schema(description = "鐏屾簤鍗曞厓鏁伴噺")
+    private Integer itemCount;
+
+    @Schema(description = "杞亴缁処D")
+    private String id;
+
+
+    @Schema(description = "澶囨敞")
+    private String remarks;
+
+    @Schema(description = "鎵�灞為」鐩甀d")
+    public String projectId;
+
+    /**
+     * 鎿嶄綔浜哄悕瀛�
+     */
+    @Schema(description = "鎿嶄綔浜哄悕瀛�")
+    private String operatorName;
+
+    @Schema(description = "鎿嶄綔浜篒d")
+    private String operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿")
+    private Date operateDt;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnit.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnit.java
new file mode 100644
index 0000000..a6aaed0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnit.java
@@ -0,0 +1,52 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  9:04
+ * @LastEditTime :2024/5/21  9:04
+ * @Description
+ */
+@Data
+@Schema(title = "鐏屾簤鍗曞厓瑙嗗浘瀵硅薄")
+public class VoUnit  implements BaseEntity {
+    @Schema(description = "鎵�灞為」鐩悕绉�")
+    public String projectName;
+
+    @Schema(description = "杞亴缁勭紪鐮�")
+    private int groupCode;
+
+    @Schema(description = "鐏屾簤鍗曞厓ID")
+    private String unitId;
+
+    @Schema(description = "鐏屾簤闈㈢Н")
+    private Integer area;
+
+    @Schema(description = "澶囨敞")
+    private String remarks;
+
+    @Schema(description = "鎵�灞為」鐩甀d")
+    public String projectId;
+
+    /**
+     * 鎿嶄綔浜哄悕瀛�
+     */
+    @Schema(description = "鎿嶄綔浜哄悕瀛�")
+    private String operatorName;
+
+    @Schema(description = "鎿嶄綔浜篒d")
+    private String operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿")
+    private Date operateDt;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnitOne.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnitOne.java
new file mode 100644
index 0000000..446a101
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoUnitOne.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  9:05
+ * @LastEditTime :2024/5/21  9:05
+ * @Description
+ */
+@Data
+@Schema(name = "鐏屾簤鍗曞厓瑙嗗浘(鏌ヤ竴涓�)")
+public class VoUnitOne implements BaseEntity {
+    @Schema(description = "鎵�灞為」鐩悕绉�")
+    public String projectName;
+
+    @Schema(description = "杞亴缁勭紪鐮�")
+    private int groupCode;
+
+    @Schema(description = "鐏屾簤鍗曞厓ID")
+    private String id;
+
+    @Schema(description = "鐏屾簤闈㈢Н")
+    private Integer area;
+
+    @Schema(description = "澶囨敞")
+    private String remarks;
+
+    @Schema(description = "鎵�灞為」鐩甀d")
+    public String projectId;
+
+    /**
+     * 鎿嶄綔浜哄悕瀛�
+     */
+    @Schema(description = "鎿嶄綔浜哄悕瀛�")
+    private String operatorName;
+
+    @Schema(description = "鎿嶄綔浜篒d")
+    private String operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿")
+    private Date operateDt;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml
new file mode 100644
index 0000000..4fa6d92
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml
@@ -0,0 +1,91 @@
+<?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.daoIr.IrGroupUnitMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit">
+        <!--@mbg.generated-->
+        <!--@Table ir_group_unit-->
+        <id column="id" jdbcType="BIGINT" property="id" />
+        <result column="group_id" jdbcType="BIGINT" property="groupId" />
+        <result column="unit_id" jdbcType="BIGINT" property="unitId" />
+        <result column="operator" jdbcType="BIGINT" property="operator" />
+        <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" />
+        <result column="deleted" jdbcType="TINYINT" property="deleted" />
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, group_id, unit_id, `operator`,
+        operate_time, deleted
+    </sql>
+
+    <!--娣诲姞-->
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit">
+        <!--@mbg.generated-->
+        insert into ir_group_unit
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="groupId != null">
+                group_id,
+            </if>
+            <if test="unitId != null">
+                unit_id,
+            </if>
+            <if test="operator != null">
+                `operator`,
+            </if>
+            <if test="operateDt != null">
+                operate_time,
+            </if>
+            <if test="deleted != null">
+                deleted,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="groupId != null">
+                #{groupId,jdbcType=BIGINT},
+            </if>
+            <if test="unitId != null">
+                #{unitId,jdbcType=BIGINT},
+            </if>
+            <if test="operator != null">
+                #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                #{deleted,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+
+    <!--閫昏緫鍒犻櫎-->
+    <delete id="deleteLogicById" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        update ir_group_unit
+        set deleted = 1
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+
+    <delete id="deleteByUnitIdGroupId" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit">
+        update ir_group_unit
+        set deleted = 1,operator = #{operator,jdbcType=BIGINT},operate_time = #{operateDt,jdbcType=TIMESTAMP}
+        where group_id = #{groupId,jdbcType=BIGINT} and unit_id = #{unitId,jdbcType=BIGINT}
+    </delete>
+
+    <delete id="deleteByUnitId">
+        update ir_group_unit
+        set deleted = 1
+        where unit_id = #{unitId,jdbcType=BIGINT}
+    </delete>
+
+    <delete id="deleteByGroupId">
+        update ir_group_unit
+        set deleted = 1
+        where group_id = #{groupId,jdbcType=BIGINT}
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
new file mode 100644
index 0000000..fa78683
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
@@ -0,0 +1,172 @@
+<?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.daoIr.IrIrrigateGroupMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+        <!--@mbg.generated-->
+        <!--@Table ir_irrigate_group-->
+        <id column="id" jdbcType="BIGINT" property="id" />
+        <result column="project_id" jdbcType="BIGINT" property="projectId" />
+        <result column="group_code" jdbcType="VARCHAR" property="groupCode" />
+        <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+        <result column="operator" jdbcType="BIGINT" property="operator" />
+        <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" />
+        <result column="deleted" jdbcType="TINYINT" property="deleted" />
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, project_id, group_code, remarks, `operator`,
+        operate_time, deleted
+    </sql>
+    <!--娣诲姞-->
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+        <!--@mbg.generated-->
+        insert into ir_irrigate_group
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="projectId != null">
+                project_id,
+            </if>
+            <if test="groupCode != null">
+                group_code,
+            </if>
+            <if test="remarks != null">
+                remarks,
+            </if>
+            <if test="operator != null">
+                `operator`,
+            </if>
+            <if test="operateDt != null">
+                operate_time,
+            </if>
+            <if test="deleted != null">
+                deleted,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="projectId != null">
+                #{projectId,jdbcType=BIGINT},
+            </if>
+            <if test="groupCode != null">
+                #{groupCode,jdbcType=VARCHAR},
+            </if>
+            <if test="remarks != null">
+                #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                #{deleted,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+
+    <!--閫昏緫鍒犻櫎-->
+    <delete id="deleteLogicById" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        update ir_irrigate_group
+        set deleted = 1
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+
+    <!--淇敼涓�涓疆缃愮粍-->
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+        update ir_irrigate_group
+        <set>
+            <if test="projectId != null">
+                project_id = #{projectId,jdbcType=BIGINT},
+            </if>
+            <if test="groupCode != null">
+                group_code = #{groupCode,jdbcType=VARCHAR},
+            </if>
+            <if test="remarks != null">
+                remarks = #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                operator = #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                operate_time = #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                deleted = #{deleted,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--鏌ヤ竴涓疆缃愮粍-->
+    <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoGroupOne">
+        select
+        CAST(pro.id AS char)AS projectId,
+        pro.project_name  AS  projectName,
+        CAST(gro.id AS char)AS id,
+        CAST(gro.operator AS char)AS operator,
+        cli.name         AS operatorName,
+        gro.group_code   AS groupCode,
+        COUNT(gu.group_id)   AS itemCount,
+        gro.remarks,
+        gro.operate_time  AS  operateDt
+        from ir_irrigate_group gro
+        left join ir_project pro on pro.id = gro.project_id
+        left join se_client cli on cli.id = gro.operator
+        left join ir_group_unit gu on gu.group_id = gro.id
+        where gro.id = #{id,jdbcType=BIGINT} and gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0
+    </select>
+
+    <!--鍒嗛〉鏌ヨ疆鐏岀粍-->
+    <select id="getIrrigateGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroup">
+        SELECT
+        CAST(pro.id AS char)AS projectId,
+        pro.project_name  AS  projectName,
+        CAST(gro.id AS char)AS id,
+        CAST(gro.operator AS char)AS operator,
+        cli.name         AS operatorName,
+        gro.group_code   AS groupCode,
+        COUNT(gu.group_id)   AS itemCount,
+        gro.remarks,
+        gro.operate_time  AS  operateDt
+        from ir_irrigate_group gro
+        left join ir_project pro on pro.id = gro.project_id
+        left join se_client cli on cli.id = gro.operator
+        left join ir_group_unit gu on gu.group_id = gro.id
+        <where>
+            gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+        <if test="groupCode != null and groupCode != ''">
+            AND gro.group_code = #{groupCode}
+        </if>
+        </where>
+        ORDER BY gro.operate_time DESC
+        <if test="pageCurr != null and pageSize != null">
+            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+        </if>
+    </select>
+    <!--鍒嗛〉鏌ヨ疆鐏岀粍璁板綍鏁�-->
+    <select id="getRecordCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        from ir_irrigate_group gro
+        left join ir_project pro on pro.id = gro.project_id
+        left join se_client cli on cli.id = gro.operator
+        left join ir_group_unit gu on gu.group_id = gro.id
+        <where>
+            gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+            <if test="groupCode != null and groupCode != ''">
+                AND gro.group_code = #{groupCode}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateUnitMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateUnitMapper.xml
index a23be44..0c9c37a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateUnitMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateUnitMapper.xml
@@ -1,17 +1,12 @@
 <?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.daoIr.IrIrrigateUnitMapper">
-    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrProject">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit">
         <!--@mbg.generated-->
-        <!--@Table ir_project-->
+        <!--@Table ir_irrigate_unit-->
         <id column="id" jdbcType="BIGINT" property="id" />
-        <result column="project_name" jdbcType="VARCHAR" property="projectName" />
-        <result column="province_id" jdbcType="BIGINT" property="provinceId" />
-        <result column="city_id" jdbcType="BIGINT" property="cityId" />
-        <result column="county_id" jdbcType="BIGINT" property="countyId" />
-        <result column="town_id" jdbcType="BIGINT" property="townId" />
-        <result column="village_id" jdbcType="BIGINT" property="villageId" />
-        <result column="project_state" jdbcType="TINYINT" property="projectState" />
+        <result column="project_id" jdbcType="BIGINT" property="projectId" />
+        <result column="area" jdbcType="FLOAT" property="area" />
         <result column="remarks" jdbcType="VARCHAR" property="remarks" />
         <result column="operator" jdbcType="BIGINT" property="operator" />
         <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" />
@@ -19,7 +14,152 @@
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
-        id, project_name, province_id, city_id, county_id, town_id, `village_id`, project_state, remarks, `operator`,
+        id, project_id, area, remarks, `operator`,
         operate_time, deleted
     </sql>
+
+    <!--娣诲姞-->
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit">
+        <!--@mbg.generated-->
+        insert into ir_irrigate_unit
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="projectId != null">
+                project_id,
+            </if>
+            <if test="area != null">
+                area,
+            </if>
+            <if test="remarks != null">
+                remarks,
+            </if>
+            <if test="operator != null">
+                `operator`,
+            </if>
+            <if test="operateDt != null">
+                operate_time,
+            </if>
+            <if test="deleted != null">
+                deleted,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="projectId != null">
+                #{projectId,jdbcType=BIGINT},
+            </if>
+            <if test="area != null">
+                #{area,jdbcType=FLOAT},
+            </if>
+            <if test="remarks != null">
+                #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                #{deleted,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+
+    <!--閫昏緫鍒犻櫎-->
+    <delete id="deleteLogicById" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        update ir_irrigate_unit
+        set deleted = 1
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <!--淇敼涓�涓亴婧夊崟鍏�-->
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit">
+        update ir_irrigate_unit
+        <set>
+            <if test="projectId != null">
+                project_id = #{projectId,jdbcType=BIGINT},
+            </if>
+            <if test="area != null">
+                area = #{area,jdbcType=FLOAT},
+            </if>
+            <if test="remarks != null">
+                remarks = #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                operator = #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                operate_time = #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                deleted = #{deleted,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <!--鏌ヤ竴涓亴婧夊崟鍏�-->
+    <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoUnitOne">
+        select
+        CAST(pro.id AS char)AS projectId,
+        pro.project_name  AS  projectName,
+        CAST(uni.id AS char)AS id,
+        CAST(uni.operator AS char)AS operator,
+        cli.name         AS operatorName,
+        uni.area,
+        uni.remarks,
+        uni.operate_time  AS  operateDt
+        from ir_irrigate_unit uni
+        left join ir_project pro on pro.id = uni.project_id
+        left join se_client cli on cli.id = uni.operator
+        where uni.id = #{id,jdbcType=BIGINT} and uni.deleted = 0
+    </select>
+    <!--鍒嗛〉鏌ョ亴婧夊崟鍏�-->
+    <select id="getUnits" resultType="com.dy.pipIrrGlobal.voIr.VoUnit">
+        SELECT
+        CAST(pro.id AS char)AS projectId,
+        pro.project_name  AS  projectName,
+        CAST(uni.id AS char)AS unitId,
+        CAST(uni.operator AS char)AS operator,
+        cli.name         AS operatorName,
+        uni.area,
+        uni.remarks,
+        uni.operate_time  AS  operateDt
+        FROM ir_irrigate_unit uni
+        left join ir_project pro on pro.id = uni.project_id
+        left join se_client cli on cli.id = uni.operator
+        <where>
+            uni.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+<!--            <if test = "groupCode != null and groupCode != ''">-->
+<!--                AND pro.project_state = #{groupCode}-->
+<!--            </if>-->
+        </where>
+        ORDER BY uni.operate_time DESC
+        <if test="pageCurr != null and pageSize != null">
+            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+        </if>
+    </select>
+    <!--鍒嗛〉鏌ョ亴婧夊崟鍏冭褰曟暟-->
+    <select id="getRecordCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM ir_irrigate_unit uni
+        left join ir_project pro on pro.id = uni.project_id
+        left join se_client cli on cli.id = uni.operator
+        <where>
+            uni.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+            <!--            <if test = "groupCode != null and groupCode != ''">-->
+            <!--                AND pro.project_state = #{groupCode}-->
+            <!--            </if>-->
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
index 3fbb007..daeda58 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
@@ -171,7 +171,7 @@
     <!--鏌ヨ涓�涓俊鎭�-->
     <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoProjectOne">
         select
-        CAST(pro.id AS char)AS projectId,
+        CAST(pro.id AS char)AS id,
         CAST(pro.province_id AS char)AS provinceId,
         CAST(pro.city_id AS char)AS cityId,
         CAST(pro.county_id AS char)AS countyId,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
index 4c29926..e9ea639 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -5,23 +5,33 @@
     <!--@mbg.generated-->
     <!--@Table rm_alarm_state_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="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="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
-    <result column="bateryVolt" jdbcType="TINYINT" property="bateryvolt" />
-    <result column="loss" jdbcType="TINYINT" property="loss" />
-    <result column="meter" jdbcType="TINYINT" property="meter" />
-    <result column="valve" jdbcType="TINYINT" property="valve" />
-    <result column="icCard" jdbcType="TINYINT" property="iccard" />
-    <result column="working" jdbcType="TINYINT" property="working" />
-    <result column="valveState" jdbcType="TINYINT" property="valvestate" />
+    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+    <result column="valve_state" jdbcType="TINYINT" property="valveState" />
+    <result column="alarm_remain_water" jdbcType="TINYINT" property="alarmRemainWater" />
+    <result column="alarm0_water_remain" jdbcType="TINYINT" property="alarm0WaterRemain" />
+    <result column="alarm_exceed_year" jdbcType="TINYINT" property="alarmExceedYear" />
+    <result column="alarm_water_meter_fault" jdbcType="TINYINT" property="alarmWaterMeterFault" />
+    <result column="alarm_loss" jdbcType="TINYINT" property="alarmLoss" />
+    <result column="alarm_water_meter_break" jdbcType="TINYINT" property="alarmWaterMeterBreak" />
+    <result column="alarm_ele_meter_fault" jdbcType="TINYINT" property="alarmEleMeterFault" />
+    <result column="alarm0_money_remain" jdbcType="TINYINT" property="alarm0MoneyRemain" />
+    <result column="alarm_inner_door" jdbcType="TINYINT" property="alarmInnerDoor" />
+    <result column="alarm_outer_door" jdbcType="TINYINT" property="alarmOuterDoor" />
+    <result column="alarm_ele_miss" jdbcType="TINYINT" property="alarmEleMiss" />
+    <result column="alarm_ele_exceed" jdbcType="TINYINT" property="alarmEleExceed" />
+    <result column="alarm_ele_low_volt" jdbcType="TINYINT" property="alarmEleLowVolt" />
+    <result column="state_ic_enable" jdbcType="TINYINT" property="stateIcEnable" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, rtuDt, bateryVolt, loss, meter, valve, icCard,
-    working, valveState
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, valve_state, alarm_remain_water, 
+    alarm0_water_remain, alarm_exceed_year, alarm_water_meter_fault, alarm_loss, alarm_water_meter_break, 
+    alarm_ele_meter_fault, alarm0_money_remain, alarm_inner_door, alarm_outer_door, alarm_ele_miss, 
+    alarm_ele_exceed, alarm_ele_low_volt, state_ic_enable
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -37,16 +47,22 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
     <!--@mbg.generated-->
-    insert into rm_alarm_state_history (id, controllerId, intakeId, 
-      rtuAddr, dt, rtuDt, bateryVolt,
-      loss, meter, valve, 
-      icCard, working, valveState
-      )
-    values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{bateryvolt,jdbcType=TINYINT},
-      #{loss,jdbcType=TINYINT}, #{meter,jdbcType=TINYINT}, #{valve,jdbcType=TINYINT}, 
-      #{iccard,jdbcType=TINYINT}, #{working,jdbcType=TINYINT}, #{valvestate,jdbcType=TINYINT}
-      )
+    insert into rm_alarm_state_history (id, controller_id, intake_id, 
+      rtu_addr, dt, rtu_dt, 
+      valve_state, alarm_remain_water, alarm0_water_remain, 
+      alarm_exceed_year, alarm_water_meter_fault, 
+      alarm_loss, alarm_water_meter_break, alarm_ele_meter_fault, 
+      alarm0_money_remain, alarm_inner_door, alarm_outer_door, 
+      alarm_ele_miss, alarm_ele_exceed, alarm_ele_low_volt, 
+      state_ic_enable)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{valveState,jdbcType=TINYINT}, #{alarmRemainWater,jdbcType=TINYINT}, #{alarm0WaterRemain,jdbcType=TINYINT}, 
+      #{alarmExceedYear,jdbcType=TINYINT}, #{alarmWaterMeterFault,jdbcType=TINYINT}, 
+      #{alarmLoss,jdbcType=TINYINT}, #{alarmWaterMeterBreak,jdbcType=TINYINT}, #{alarmEleMeterFault,jdbcType=TINYINT}, 
+      #{alarm0MoneyRemain,jdbcType=TINYINT}, #{alarmInnerDoor,jdbcType=TINYINT}, #{alarmOuterDoor,jdbcType=TINYINT}, 
+      #{alarmEleMiss,jdbcType=TINYINT}, #{alarmEleExceed,jdbcType=TINYINT}, #{alarmEleLowVolt,jdbcType=TINYINT}, 
+      #{stateIcEnable,jdbcType=TINYINT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
     <!--@mbg.generated-->
@@ -55,82 +71,130 @@
       <if test="id != null">
         id,
       </if>
-      <if test="controllerid != null">
-        controllerId,
+      <if test="controllerId != null">
+        controller_id,
       </if>
-      <if test="intakeid != null">
-        intakeId,
+      <if test="intakeId != null">
+        intake_id,
       </if>
-      <if test="rtuaddr != null">
-        rtuAddr,
+      <if test="rtuAddr != null">
+        rtu_addr,
       </if>
       <if test="dt != null">
         dt,
       </if>
-      <if test="rtudt != null">
-        rtuDt,
+      <if test="rtuDt != null">
+        rtu_dt,
       </if>
-      <if test="bateryvolt != null">
-        bateryVolt,
+      <if test="valveState != null">
+        valve_state,
       </if>
-      <if test="loss != null">
-        loss,
+      <if test="alarmRemainWater != null">
+        alarm_remain_water,
       </if>
-      <if test="meter != null">
-        meter,
+      <if test="alarm0WaterRemain != null">
+        alarm0_water_remain,
       </if>
-      <if test="valve != null">
-        valve,
+      <if test="alarmExceedYear != null">
+        alarm_exceed_year,
       </if>
-      <if test="iccard != null">
-        icCard,
+      <if test="alarmWaterMeterFault != null">
+        alarm_water_meter_fault,
       </if>
-      <if test="working != null">
-        working,
+      <if test="alarmLoss != null">
+        alarm_loss,
       </if>
-      <if test="valvestate != null">
-        valveState,
+      <if test="alarmWaterMeterBreak != null">
+        alarm_water_meter_break,
+      </if>
+      <if test="alarmEleMeterFault != null">
+        alarm_ele_meter_fault,
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        alarm0_money_remain,
+      </if>
+      <if test="alarmInnerDoor != null">
+        alarm_inner_door,
+      </if>
+      <if test="alarmOuterDoor != null">
+        alarm_outer_door,
+      </if>
+      <if test="alarmEleMiss != null">
+        alarm_ele_miss,
+      </if>
+      <if test="alarmEleExceed != null">
+        alarm_ele_exceed,
+      </if>
+      <if test="alarmEleLowVolt != null">
+        alarm_ele_low_volt,
+      </if>
+      <if test="stateIcEnable != null">
+        state_ic_enable,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
       </if>
-      <if test="controllerid != null">
-        #{controllerid,jdbcType=BIGINT},
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
       </if>
-      <if test="intakeid != null">
-        #{intakeid,jdbcType=BIGINT},
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
       </if>
-      <if test="rtuaddr != null">
-        #{rtuaddr,jdbcType=VARCHAR},
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
         #{dt,jdbcType=TIMESTAMP},
       </if>
-      <if test="rtudt != null">
-        #{rtudt,jdbcType=TIMESTAMP},
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
       </if>
-      <if test="bateryvolt != null">
-        #{bateryvolt,jdbcType=TINYINT},
+      <if test="valveState != null">
+        #{valveState,jdbcType=TINYINT},
       </if>
-      <if test="loss != null">
-        #{loss,jdbcType=TINYINT},
+      <if test="alarmRemainWater != null">
+        #{alarmRemainWater,jdbcType=TINYINT},
       </if>
-      <if test="meter != null">
-        #{meter,jdbcType=TINYINT},
+      <if test="alarm0WaterRemain != null">
+        #{alarm0WaterRemain,jdbcType=TINYINT},
       </if>
-      <if test="valve != null">
-        #{valve,jdbcType=TINYINT},
+      <if test="alarmExceedYear != null">
+        #{alarmExceedYear,jdbcType=TINYINT},
       </if>
-      <if test="iccard != null">
-        #{iccard,jdbcType=TINYINT},
+      <if test="alarmWaterMeterFault != null">
+        #{alarmWaterMeterFault,jdbcType=TINYINT},
       </if>
-      <if test="working != null">
-        #{working,jdbcType=TINYINT},
+      <if test="alarmLoss != null">
+        #{alarmLoss,jdbcType=TINYINT},
       </if>
-      <if test="valvestate != null">
-        #{valvestate,jdbcType=TINYINT},
+      <if test="alarmWaterMeterBreak != null">
+        #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMeterFault != null">
+        #{alarmEleMeterFault,jdbcType=TINYINT},
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        #{alarm0MoneyRemain,jdbcType=TINYINT},
+      </if>
+      <if test="alarmInnerDoor != null">
+        #{alarmInnerDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmOuterDoor != null">
+        #{alarmOuterDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMiss != null">
+        #{alarmEleMiss,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleExceed != null">
+        #{alarmEleExceed,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleLowVolt != null">
+        #{alarmEleLowVolt,jdbcType=TINYINT},
+      </if>
+      <if test="stateIcEnable != null">
+        #{stateIcEnable,jdbcType=TINYINT},
       </if>
     </trim>
   </insert>
@@ -138,41 +202,65 @@
     <!--@mbg.generated-->
     update rm_alarm_state_history
     <set>
-      <if test="controllerid != null">
-        controllerId = #{controllerid,jdbcType=BIGINT},
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
       </if>
-      <if test="rtuaddr != null">
-        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
         dt = #{dt,jdbcType=TIMESTAMP},
       </if>
-     <if test="rtudt != null">
-       rtuDt = #{rtudt,jdbcType=TIMESTAMP},
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
       </if>
-      <if test="bateryvolt != null">
-        bateryVolt = #{bateryvolt,jdbcType=TINYINT},
+      <if test="valveState != null">
+        valve_state = #{valveState,jdbcType=TINYINT},
       </if>
-      <if test="loss != null">
-        loss = #{loss,jdbcType=TINYINT},
+      <if test="alarmRemainWater != null">
+        alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
       </if>
-      <if test="meter != null">
-        meter = #{meter,jdbcType=TINYINT},
+      <if test="alarm0WaterRemain != null">
+        alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
       </if>
-      <if test="valve != null">
-        valve = #{valve,jdbcType=TINYINT},
+      <if test="alarmExceedYear != null">
+        alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
       </if>
-      <if test="iccard != null">
-        icCard = #{iccard,jdbcType=TINYINT},
+      <if test="alarmWaterMeterFault != null">
+        alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
       </if>
-      <if test="working != null">
-        working = #{working,jdbcType=TINYINT},
+      <if test="alarmLoss != null">
+        alarm_loss = #{alarmLoss,jdbcType=TINYINT},
       </if>
-      <if test="valvestate != null">
-        valveState = #{valvestate,jdbcType=TINYINT},
+      <if test="alarmWaterMeterBreak != null">
+        alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMeterFault != null">
+        alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
+      </if>
+      <if test="alarmInnerDoor != null">
+        alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmOuterDoor != null">
+        alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMiss != null">
+        alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleExceed != null">
+        alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleLowVolt != null">
+        alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
+      </if>
+      <if test="stateIcEnable != null">
+        state_ic_enable = #{stateIcEnable,jdbcType=TINYINT},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -180,18 +268,26 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
     <!--@mbg.generated-->
     update rm_alarm_state_history
-    set controllerId = #{controllerid,jdbcType=BIGINT},
-      intakeId = #{intakeid,jdbcType=BIGINT},
-      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
-      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      bateryVolt = #{bateryvolt,jdbcType=TINYINT},
-      loss = #{loss,jdbcType=TINYINT},
-      meter = #{meter,jdbcType=TINYINT},
-      valve = #{valve,jdbcType=TINYINT},
-      icCard = #{iccard,jdbcType=TINYINT},
-      working = #{working,jdbcType=TINYINT},
-      valveState = #{valvestate,jdbcType=TINYINT}
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      valve_state = #{valveState,jdbcType=TINYINT},
+      alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
+      alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
+      alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
+      alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
+      alarm_loss = #{alarmLoss,jdbcType=TINYINT},
+      alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
+      alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
+      alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
+      alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
+      alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
+      alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
+      alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
+      state_ic_enable = #{stateIcEnable,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
index a2c0d2f..2056c59 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -5,23 +5,33 @@
     <!--@mbg.generated-->
     <!--@Table rm_alarm_state_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="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="rtuDt" jdbcType="TIMESTAMP" property="rtudt" />
-    <result column="bateryVolt" jdbcType="TINYINT" property="bateryvolt" />
-    <result column="loss" jdbcType="TINYINT" property="loss" />
-    <result column="meter" jdbcType="TINYINT" property="meter" />
-    <result column="valve" jdbcType="TINYINT" property="valve" />
-    <result column="icCard" jdbcType="TINYINT" property="iccard" />
-    <result column="working" jdbcType="TINYINT" property="working" />
-    <result column="valveState" jdbcType="TINYINT" property="valvestate" />
+    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
+    <result column="valve_state" jdbcType="TINYINT" property="valveState" />
+    <result column="alarm_remain_water" jdbcType="TINYINT" property="alarmRemainWater" />
+    <result column="alarm0_water_remain" jdbcType="TINYINT" property="alarm0WaterRemain" />
+    <result column="alarm_exceed_year" jdbcType="TINYINT" property="alarmExceedYear" />
+    <result column="alarm_water_meter_fault" jdbcType="TINYINT" property="alarmWaterMeterFault" />
+    <result column="alarm_loss" jdbcType="TINYINT" property="alarmLoss" />
+    <result column="alarm_water_meter_break" jdbcType="TINYINT" property="alarmWaterMeterBreak" />
+    <result column="alarm_ele_meter_fault" jdbcType="TINYINT" property="alarmEleMeterFault" />
+    <result column="alarm0_money_remain" jdbcType="TINYINT" property="alarm0MoneyRemain" />
+    <result column="alarm_inner_door" jdbcType="TINYINT" property="alarmInnerDoor" />
+    <result column="alarm_outer_door" jdbcType="TINYINT" property="alarmOuterDoor" />
+    <result column="alarm_ele_miss" jdbcType="TINYINT" property="alarmEleMiss" />
+    <result column="alarm_ele_exceed" jdbcType="TINYINT" property="alarmEleExceed" />
+    <result column="alarm_ele_low_volt" jdbcType="TINYINT" property="alarmEleLowVolt" />
+    <result column="state_ic_enable" jdbcType="TINYINT" property="stateIcEnable" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, controllerId, intakeId, rtuAddr, dt, rtuDt, bateryVolt, loss, meter, valve, icCard,
-    working, valveState
+    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, valve_state, alarm_remain_water,
+    alarm0_water_remain, alarm_exceed_year, alarm_water_meter_fault, alarm_loss, alarm_water_meter_break,
+    alarm_ele_meter_fault, alarm0_money_remain, alarm_inner_door, alarm_outer_door, alarm_ele_miss, 
+    alarm_ele_exceed, alarm_ele_low_volt, state_ic_enable
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -30,15 +40,13 @@
     from rm_alarm_state_last
     where id = #{id,jdbcType=BIGINT}
   </select>
-
- <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
+  <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select
     <include refid="Base_Column_List" />
     from rm_alarm_state_last
-    where rtuAddr = #{rtuAddr,jdbcType=VARCHAR}
+    where rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
   </select>
-
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     <!--@mbg.generated-->
     delete from rm_alarm_state_last
@@ -46,16 +54,22 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast">
     <!--@mbg.generated-->
-    insert into rm_alarm_state_last (id, controllerId, intakeId, 
-      rtuAddr, dt, rtuDt, bateryVolt,
-      loss, meter, valve, 
-      icCard, working, valveState
-      )
-    values (#{id,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, 
-      #{rtuaddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtudt,jdbcType=TIMESTAMP}, #{bateryvolt,jdbcType=TINYINT},
-      #{loss,jdbcType=TINYINT}, #{meter,jdbcType=TINYINT}, #{valve,jdbcType=TINYINT}, 
-      #{iccard,jdbcType=TINYINT}, #{working,jdbcType=TINYINT}, #{valvestate,jdbcType=TINYINT}
-      )
+    insert into rm_alarm_state_last (id, controller_id, intake_id, 
+      rtu_addr, dt, rtu_dt, 
+      valve_state, alarm_remain_water, alarm0_water_remain,
+      alarm_exceed_year, alarm_water_meter_fault,
+      alarm_loss, alarm_water_meter_break, alarm_ele_meter_fault, 
+      alarm0_money_remain, alarm_inner_door, alarm_outer_door, 
+      alarm_ele_miss, alarm_ele_exceed, alarm_ele_low_volt, 
+      state_ic_enable)
+    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
+      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
+      #{valveState,jdbcType=TINYINT}, #{alarmRemainWater,jdbcType=TINYINT}, #{alarm0WaterRemain,jdbcType=TINYINT}, 
+      #{alarmExceedYear,jdbcType=TINYINT}, #{alarmWaterMeterFault,jdbcType=TINYINT}, 
+      #{alarmLoss,jdbcType=TINYINT}, #{alarmWaterMeterBreak,jdbcType=TINYINT}, #{alarmEleMeterFault,jdbcType=TINYINT}, 
+      #{alarm0MoneyRemain,jdbcType=TINYINT}, #{alarmInnerDoor,jdbcType=TINYINT}, #{alarmOuterDoor,jdbcType=TINYINT}, 
+      #{alarmEleMiss,jdbcType=TINYINT}, #{alarmEleExceed,jdbcType=TINYINT}, #{alarmEleLowVolt,jdbcType=TINYINT}, 
+      #{stateIcEnable,jdbcType=TINYINT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast">
     <!--@mbg.generated-->
@@ -64,82 +78,130 @@
       <if test="id != null">
         id,
       </if>
-      <if test="controllerid != null">
-        controllerId,
+      <if test="controllerId != null">
+        controller_id,
       </if>
-      <if test="intakeid != null">
-        intakeId,
+      <if test="intakeId != null">
+        intake_id,
       </if>
-      <if test="rtuaddr != null">
-        rtuAddr,
+      <if test="rtuAddr != null">
+        rtu_addr,
       </if>
       <if test="dt != null">
         dt,
       </if>
-      <if test="rtudt != null">
-        rtuDt,
+      <if test="rtuDt != null">
+        rtu_dt,
       </if>
-      <if test="bateryvolt != null">
-        bateryVolt,
+      <if test="valveState != null">
+        valve_state,
       </if>
-      <if test="loss != null">
-        loss,
+      <if test="alarmRemainWater != null">
+        alarm_remain_water,
       </if>
-      <if test="meter != null">
-        meter,
+      <if test="alarm0WaterRemain != null">
+        alarm0_water_remain,
       </if>
-      <if test="valve != null">
-        valve,
+      <if test="alarmExceedYear != null">
+        alarm_exceed_year,
       </if>
-      <if test="iccard != null">
-        icCard,
+      <if test="alarmWaterMeterFault != null">
+        alarm_water_meter_fault,
       </if>
-      <if test="working != null">
-        working,
+      <if test="alarmLoss != null">
+        alarm_loss,
       </if>
-      <if test="valvestate != null">
-        valveState,
+      <if test="alarmWaterMeterBreak != null">
+        alarm_water_meter_break,
+      </if>
+      <if test="alarmEleMeterFault != null">
+        alarm_ele_meter_fault,
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        alarm0_money_remain,
+      </if>
+      <if test="alarmInnerDoor != null">
+        alarm_inner_door,
+      </if>
+      <if test="alarmOuterDoor != null">
+        alarm_outer_door,
+      </if>
+      <if test="alarmEleMiss != null">
+        alarm_ele_miss,
+      </if>
+      <if test="alarmEleExceed != null">
+        alarm_ele_exceed,
+      </if>
+      <if test="alarmEleLowVolt != null">
+        alarm_ele_low_volt,
+      </if>
+      <if test="stateIcEnable != null">
+        state_ic_enable,
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
       </if>
-      <if test="controllerid != null">
-        #{controllerid,jdbcType=BIGINT},
+      <if test="controllerId != null">
+        #{controllerId,jdbcType=BIGINT},
       </if>
-      <if test="intakeid != null">
-        #{intakeid,jdbcType=BIGINT},
+      <if test="intakeId != null">
+        #{intakeId,jdbcType=BIGINT},
       </if>
-      <if test="rtuaddr != null">
-        #{rtuaddr,jdbcType=VARCHAR},
+      <if test="rtuAddr != null">
+        #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
         #{dt,jdbcType=TIMESTAMP},
       </if>
-      <if test="rtudt != null">
-        #{rtudt,jdbcType=TIMESTAMP},
+      <if test="rtuDt != null">
+        #{rtuDt,jdbcType=TIMESTAMP},
       </if>
-      <if test="bateryvolt != null">
-        #{bateryvolt,jdbcType=TINYINT},
+      <if test="valveState != null">
+        #{valveState,jdbcType=TINYINT},
       </if>
-      <if test="loss != null">
-        #{loss,jdbcType=TINYINT},
+      <if test="alarmRemainWater != null">
+        #{alarmRemainWater,jdbcType=TINYINT},
       </if>
-      <if test="meter != null">
-        #{meter,jdbcType=TINYINT},
+      <if test="alarm0WaterRemain != null">
+        #{alarm0WaterRemain,jdbcType=TINYINT},
       </if>
-      <if test="valve != null">
-        #{valve,jdbcType=TINYINT},
+      <if test="alarmExceedYear != null">
+        #{alarmExceedYear,jdbcType=TINYINT},
       </if>
-      <if test="iccard != null">
-        #{iccard,jdbcType=TINYINT},
+      <if test="alarmWaterMeterFault != null">
+        #{alarmWaterMeterFault,jdbcType=TINYINT},
       </if>
-      <if test="working != null">
-        #{working,jdbcType=TINYINT},
+      <if test="alarmLoss != null">
+        #{alarmLoss,jdbcType=TINYINT},
       </if>
-      <if test="valvestate != null">
-        #{valvestate,jdbcType=TINYINT},
+      <if test="alarmWaterMeterBreak != null">
+        #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMeterFault != null">
+        #{alarmEleMeterFault,jdbcType=TINYINT},
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        #{alarm0MoneyRemain,jdbcType=TINYINT},
+      </if>
+      <if test="alarmInnerDoor != null">
+        #{alarmInnerDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmOuterDoor != null">
+        #{alarmOuterDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMiss != null">
+        #{alarmEleMiss,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleExceed != null">
+        #{alarmEleExceed,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleLowVolt != null">
+        #{alarmEleLowVolt,jdbcType=TINYINT},
+      </if>
+      <if test="stateIcEnable != null">
+        #{stateIcEnable,jdbcType=TINYINT},
       </if>
     </trim>
   </insert>
@@ -147,41 +209,65 @@
     <!--@mbg.generated-->
     update rm_alarm_state_last
     <set>
-      <if test="controllerid != null">
-        controllerId = #{controllerid,jdbcType=BIGINT},
+      <if test="controllerId != null">
+        controller_id = #{controllerId,jdbcType=BIGINT},
       </if>
-      <if test="intakeid != null">
-        intakeId = #{intakeid,jdbcType=BIGINT},
+      <if test="intakeId != null">
+        intake_id = #{intakeId,jdbcType=BIGINT},
       </if>
-      <if test="rtuaddr != null">
-        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+      <if test="rtuAddr != null">
+        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       </if>
       <if test="dt != null">
         dt = #{dt,jdbcType=TIMESTAMP},
       </if>
-      <if test="rtudt != null">
-        rtuDt = #{rtudt,jdbcType=TIMESTAMP},
+      <if test="rtuDt != null">
+        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
       </if>
-      <if test="bateryvolt != null">
-        bateryVolt = #{bateryvolt,jdbcType=TINYINT},
+      <if test="valveState != null">
+        valve_state = #{valveState,jdbcType=TINYINT},
       </if>
-      <if test="loss != null">
-        loss = #{loss,jdbcType=TINYINT},
+      <if test="alarmRemainWater != null">
+        alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
       </if>
-      <if test="meter != null">
-        meter = #{meter,jdbcType=TINYINT},
+      <if test="alarm0WaterRemain != null">
+        alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
       </if>
-      <if test="valve != null">
-        valve = #{valve,jdbcType=TINYINT},
+      <if test="alarmExceedYear != null">
+        alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
       </if>
-      <if test="iccard != null">
-        icCard = #{iccard,jdbcType=TINYINT},
+      <if test="alarmWaterMeterFault != null">
+        alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
       </if>
-      <if test="working != null">
-        working = #{working,jdbcType=TINYINT},
+      <if test="alarmLoss != null">
+        alarm_loss = #{alarmLoss,jdbcType=TINYINT},
       </if>
-      <if test="valvestate != null">
-        valveState = #{valvestate,jdbcType=TINYINT},
+      <if test="alarmWaterMeterBreak != null">
+        alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMeterFault != null">
+        alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
+      </if>
+      <if test="alarm0MoneyRemain != null">
+        alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
+      </if>
+      <if test="alarmInnerDoor != null">
+        alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmOuterDoor != null">
+        alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleMiss != null">
+        alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleExceed != null">
+        alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
+      </if>
+      <if test="alarmEleLowVolt != null">
+        alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
+      </if>
+      <if test="stateIcEnable != null">
+        state_ic_enable = #{stateIcEnable,jdbcType=TINYINT},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -189,18 +275,26 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast">
     <!--@mbg.generated-->
     update rm_alarm_state_last
-    set controllerId = #{controllerid,jdbcType=BIGINT},
-      intakeId = #{intakeid,jdbcType=BIGINT},
-      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
+    set controller_id = #{controllerId,jdbcType=BIGINT},
+      intake_id = #{intakeId,jdbcType=BIGINT},
+      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
       dt = #{dt,jdbcType=TIMESTAMP},
-      rtuDt = #{rtudt,jdbcType=TIMESTAMP},
-      bateryVolt = #{bateryvolt,jdbcType=TINYINT},
-      loss = #{loss,jdbcType=TINYINT},
-      meter = #{meter,jdbcType=TINYINT},
-      valve = #{valve,jdbcType=TINYINT},
-      icCard = #{iccard,jdbcType=TINYINT},
-      working = #{working,jdbcType=TINYINT},
-      valveState = #{valvestate,jdbcType=TINYINT}
+      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+      valve_state = #{valveState,jdbcType=TINYINT},
+      alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
+      alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
+      alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
+      alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
+      alarm_loss = #{alarmLoss,jdbcType=TINYINT},
+      alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+      alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
+      alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
+      alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
+      alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
+      alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
+      alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
+      alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
+      state_ic_enable = #{stateIcEnable,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
index d672bb7..95a86a8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -30,7 +30,7 @@
 				MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ;
 				if(resToRtu != null){
 					//鍖归厤鍒颁笅鍙戠殑鍛戒护
-					resFromRtu.matchedCommand(resToRtu.rtuResultSendWebUrl, resToRtu.commandId) ;
+					resFromRtu.matchedCommand(resToRtu.commandId, resToRtu.rtuResultSendWebUrl) ;
 					this.nextDealRtuData(false, resFromRtu);
 					this.nextDealRtuComResult(resFromRtu);
 				}else{
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
index 5971315..ef4a867 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
@@ -35,7 +35,7 @@
 
 	    	log.info("缃戠粶杩炴帴鍏抽棴锛�"
 	    			+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))) ;
-	    			//+ (session==null?"":(session.getRemoteAddress() == null?"":(session.getRemoteAddress().toString()==null?"":("缁堢缃戝潃鏄細" + session.getRemoteAddress().toString()))))) ;
+	    			//+ (session==null?"":(session.getRemoteAddress() == null?"":(session.getRemoteAddress().toString()==null?"":("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()))))) ;
 		}
  	}
 	/**
@@ -46,7 +46,7 @@
     		String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey) ;
     		log.error("缃戠粶浼氳瘽鍙戠敓寮傚父锛�"
     				+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))
-    				+ (session==null?"":(session.getRemoteAddress() != null?("缁堢缃戝潃鏄細" + session.getRemoteAddress().toString()):""))
+    				+ (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):""))
     				+ "\n寮傚父娑堟伅锛�" + cause.getMessage(), cause);
     	}
     }
@@ -58,7 +58,7 @@
       	String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey) ;
     	log.info("缃戠粶鍙戦�佷簡鏁版嵁锛�"
     			+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))
-    			+ (session==null?"":(session.getRemoteAddress() != null?("缁堢缃戝潃鏄細" + session.getRemoteAddress().toString()):"")) );
+    			+ (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):"")) );
     }
 
     /**
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 5d5c027..55cede3 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
@@ -72,19 +72,19 @@
      * @param stateVo 鐘舵�佸璞�
      */
     private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
-        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
-        if(po == null){
-            po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-                    rtuAddr,
-                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
-                    alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
-                    stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
-            sv.saveRmAlarmStateLast(po) ;
-        }else{
-            po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
-            sv.updateRmAlarmStateLast(po);
-        }
+//        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
+//        if(po == null){
+//            po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+//                    rtuAddr,
+//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+//                    alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
+//                    stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
+//            sv.saveRmAlarmStateLast(po) ;
+//        }else{
+//            po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
+//            sv.updateRmAlarmStateLast(po);
+//        }
     }
 
     /**
@@ -97,42 +97,43 @@
      * @param stateVo 鐘舵�佸璞�
      */
     private void saveHistory(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
-        RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-                rtuAddr,
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
-                alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
-                stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
-        sv.saveRmAlarmStateHistory(po) ;
+//        RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+//                rtuAddr,
+//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+//                alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
+//                stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
+//        sv.saveRmAlarmStateHistory(po) ;
     }
 
 
     private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception {
-        po.controllerid = controller==null?null:controller.getId() ;
-        po.intakeid = controller==null?null:controller.getIntakeId() ;
-
-        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
-        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
-        if(alarmVo != null){
-            po.bateryvolt = alarmVo.batteryVolt ;
-            po.loss = alarmVo.loss ;
-            po.meter = alarmVo.meter ;
-            po.valve = alarmVo.valve ;
-        }else{
-            po.bateryvolt = null ;
-            po.loss = null ;
-            po.meter = null ;
-            po.valve = null ;
-        }
-        if(stateVo != null){
-           po.iccard = stateVo.icCard ;
-           po.working = stateVo.working ;
-           po.valvestate = stateVo.valve ;
-        }else{
-            po.iccard = null ;
-            po.working = null ;
-            po.valvestate = null ;
-        }
+//        po.controllerid = controller==null?null:controller.getId() ;
+//        po.intakeid = controller==null?null:controller.getIntakeId() ;
+//
+//        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+//        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
+//        if(alarmVo != null){
+//            po.bateryvolt = alarmVo.batteryVolt ;
+//            po.loss = alarmVo.loss ;
+//            po.meter = alarmVo.meter ;
+//            po.valve = alarmVo.valve ;
+//        }else{
+//            po.bateryvolt = null ;
+//            po.loss = null ;
+//            po.meter = null ;
+//            po.valve = null ;
+//        }
+//        if(stateVo != null){
+//           po.iccard = stateVo.icCard ;
+//           po.working = stateVo.working ;
+//           po.valvestate = stateVo.valve ;
+//        }else{
+//            po.iccard = null ;
+//            po.working = null ;
+//            po.valvestate = null ;
+//        }
         return po ;
+
     }
 }
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 bcf46fc..193e8d8 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
@@ -3,7 +3,9 @@
 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.util.DateTime;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
@@ -28,46 +30,41 @@
     @Override
     public void execute(Object data) {
         Data d = (Data)data ;
-        Object protocolData = d.getSubData() ;
-        if(protocolData != null){
-            DataV202404 dV202404 = (DataV202404)protocolData ;
-            if(dV202404 != 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 DataCd81Vo){
-                            //璁惧缁堢闅忔満鑷姤
-                            DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, cdData, null, null) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, cdData, null, null) ;
-                        }else if(cdObj instanceof DataCd80_5BVo){
-                            //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
-                            DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null, null, null) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null, null, null) ;
-                        }else if(cdObj instanceof DataCd93_A3Vo){
-                            //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
-                            DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null, null, null) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null, null, null) ;
-                        }else if(cdObj instanceof DataCd84Vo){
-                            //璁惧缁堢闅忔満鑷姤
-                            DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, null, cdData, null) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, null, cdData, null) ;
-                        }else if(cdObj instanceof DataCdC2Vo){
-                            //璁惧缁堢闅忔満鑷姤
-                            DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
-                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, null, null, cdData) ;
-                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, null, null, cdData) ;
-                        }
-                    }catch (Exception e){
-                        log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
-                    }
+        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 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);
             }
         }
     }
@@ -77,32 +74,44 @@
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param rtuDt 鎺у埗鍣ㄦ椂閽�
-     * @param vo80_5B
-     * @param vo93_A3_85
-     * @param vo81
+     * @param alarmVo  鎶ヨ鍙婄姸鎬佹暟鎹�
+     * @param receiveDt 鎺ユ敹鏁版嵁鏃舵湰鍦版椂閽�
      */
     private void saveOrUpdateLast(DbSv sv,
                                   PrController controller,
                                   String rtuAddr,
                                   String rtuDt,
-                                  DataCd80_5BVo vo80_5B,
-                                  DataCd93_A3Vo vo93_A3_85,
-                                  DataCd81Vo vo81,
-                                  DataCd84Vo vo84,
-                                  DataCdC2Vo voC2) throws Exception {
-//        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
-//        if(po == null){
-//            po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-//                    rtuAddr,
-//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
-//                    alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
-//                    stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
-//            sv.saveRmAlarmStateLast(po) ;
-//        }else{
-//            po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
-//            sv.updateRmAlarmStateLast(po);
-//        }
+                                  AlarmVo alarmVo,
+                                  String receiveDt) throws Exception {
+        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
+        if(po == null){
+            po = new RmAlarmStateLast(null,
+                    controller==null?null:controller.getId(),
+                    controller==null?null:controller.getIntakeId(),
+                    rtuAddr,
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(receiveDt),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+                    alarmVo==null?null:alarmVo.statePump,
+                    alarmVo==null?null:alarmVo.alarmWaterRemain,
+                    alarmVo==null?null:alarmVo.alarm0WaterRemain,
+                    alarmVo==null?null:alarmVo.alarmExceedYear,
+                    alarmVo==null?null:alarmVo.alarmWaterMeterFault,
+                    alarmVo==null?null:alarmVo.alarmSteal,
+                    alarmVo==null?null:alarmVo.alarmWaterMeterBreak,
+                    alarmVo==null?null:alarmVo.alarmEleMeterFault,
+                    alarmVo==null?null:alarmVo.alarm0MoneyRemain,
+                    alarmVo==null?null:alarmVo.alarmInnerDoor,
+                    alarmVo==null?null:alarmVo.alarmOuterDoor,
+                    alarmVo==null?null:alarmVo.alarmEleMiss,
+                    alarmVo==null?null:alarmVo.alarmEleExceed,
+                    alarmVo==null?null:alarmVo.alarmEleLowVolt,
+                    alarmVo==null?null:alarmVo.stateIcEnable
+            ) ;
+            sv.saveRmAlarmStateLast(po) ;
+        }else{
+            po = this.update(po, controller, rtuDt, alarmVo, receiveDt) ;
+            sv.updateRmAlarmStateLast(po);
+        }
     }
 
     /**
@@ -111,63 +120,76 @@
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param rtuDt 鎺у埗鍣ㄦ椂閽�
-     * @param vo80_5B
-     * @param vo93_A3_85
-     * @param vo81
+     * @param alarmVo 鎶ヨ鍙婄姸鎬佹暟鎹�
+     * @param receiveDt 鎺ユ敹鏁版嵁鏃舵湰鍦版椂閽�
      */
     private void saveHistory(DbSv sv,
                              PrController controller,
                              String rtuAddr,
                              String rtuDt,
-                             DataCd80_5BVo vo80_5B,
-                             DataCd93_A3Vo vo93_A3_85,
-                             DataCd81Vo vo81,
-                             DataCd84Vo vo84,
-                             DataCdC2Vo voC2) throws Exception {
-//        RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
-//                rtuAddr,
-//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
-//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
-//                alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
-//                stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
-//        sv.saveRmAlarmStateHistory(po) ;
+                             AlarmVo alarmVo,
+                             String receiveDt) throws Exception {
+        RmAlarmStateHistory po = new RmAlarmStateHistory(null,
+                controller==null?null:controller.getId(),
+                controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(receiveDt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+                alarmVo==null?null:alarmVo.statePump,
+                alarmVo==null?null:alarmVo.alarmWaterRemain,
+                alarmVo==null?null:alarmVo.alarm0WaterRemain,
+                alarmVo==null?null:alarmVo.alarmExceedYear,
+                alarmVo==null?null:alarmVo.alarmWaterMeterFault,
+                alarmVo==null?null:alarmVo.alarmSteal,
+                alarmVo==null?null:alarmVo.alarmWaterMeterBreak,
+                alarmVo==null?null:alarmVo.alarmEleMeterFault,
+                alarmVo==null?null:alarmVo.alarm0MoneyRemain,
+                alarmVo==null?null:alarmVo.alarmInnerDoor,
+                alarmVo==null?null:alarmVo.alarmOuterDoor,
+                alarmVo==null?null:alarmVo.alarmEleMiss,
+                alarmVo==null?null:alarmVo.alarmEleExceed,
+                alarmVo==null?null:alarmVo.alarmEleLowVolt,
+                alarmVo==null?null:alarmVo.stateIcEnable
+        ) ;
+        sv.saveRmAlarmStateHistory(po) ;
     }
 
 
-    private RmAlarmStateLast update(PrController controller,
-                                    RmAlarmStateLast po,
+    /**
+     * 淇濆瓨鎶ヨ鐘舵�佹渶鏂版暟鎹�
+     * @param po 瀹炰綋瀵硅薄
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuDt 鎺у埗鍣ㄦ椂閽�
+     * @param alarmVo  鎶ヨ鍙婄姸鎬佹暟鎹�
+     * @param receiveDt 鎺ユ敹鏁版嵁鏃舵湰鍦版椂閽�
+     */
+    private RmAlarmStateLast update(RmAlarmStateLast po,
+                                    PrController controller,
                                     String rtuDt,
-                                    DataCd80_5BVo vo80_5B,
-                                    DataCd93_A3Vo vo93_A3_85,
-                                    DataCd81Vo vo81,
-                                    DataCd84Vo vo84,
-                                    DataCdC2Vo voC2) throws Exception {
-//        po.controllerid = controller==null?null:controller.getId() ;
-//        po.intakeid = controller==null?null:controller.getIntakeId() ;
-//
-//        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
-//        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
-//        if(alarmVo != null){
-//            po.bateryvolt = alarmVo.batteryVolt ;
-//            po.loss = alarmVo.loss ;
-//            po.meter = alarmVo.meter ;
-//            po.valve = alarmVo.valve ;
-//        }else{
-//            po.bateryvolt = null ;
-//            po.loss = null ;
-//            po.meter = null ;
-//            po.valve = null ;
-//        }
-//        if(stateVo != null){
-//           po.iccard = stateVo.icCard ;
-//           po.working = stateVo.working ;
-//           po.valvestate = stateVo.valve ;
-//        }else{
-//            po.iccard = null ;
-//            po.working = null ;
-//            po.valvestate = null ;
-//        }
-//        return po ;
-        return null ;
+                                    AlarmVo alarmVo,
+                                    String receiveDt) 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(receiveDt) ;
+        po.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
+        if(alarmVo != null){
+            po.valveState = alarmVo.statePump ;
+            po.alarmRemainWater = alarmVo.alarmWaterRemain ;
+            po.alarm0WaterRemain = alarmVo.alarm0WaterRemain ;
+            po.alarmExceedYear = alarmVo.alarmExceedYear ;
+            po.alarmWaterMeterFault = alarmVo.alarmWaterMeterFault ;
+            po.alarmLoss = alarmVo.alarmSteal ;
+            po.alarmWaterMeterBreak = alarmVo.alarmWaterMeterBreak ;
+            po.alarmEleMeterFault = alarmVo.alarmEleMeterFault ;
+            po.alarm0MoneyRemain = alarmVo.alarm0MoneyRemain ;
+            po.alarmInnerDoor = alarmVo.alarmInnerDoor ;
+            po.alarmOuterDoor = alarmVo.alarmOuterDoor ;
+            po.alarmEleMiss = alarmVo.alarmEleMiss ;
+            po.alarmEleExceed = alarmVo.alarmEleExceed ;
+            po.alarmEleLowVolt = alarmVo.alarmEleLowVolt ;
+            po.stateIcEnable = alarmVo.stateIcEnable ;
+        }
+        return po ;
     }
 }
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
new file mode 100644
index 0000000..0d6af4a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java
@@ -0,0 +1,50 @@
+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.*;
+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: liurunyu
+ * @Date: 2024/5/20 20:29
+ * @Description
+ */
+public class TkDealTimingReportV202404  extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName());
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealTimingReportV202404";
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵��
+     *
+     * @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);
+            }
+        }
+    }
+}
\ 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 1f48b01..2959b8e 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
@@ -1,6 +1,7 @@
 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.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -28,7 +29,10 @@
         Data d = (Data)data ;
         if(d.getCommandId() == null || d.getCommandId().trim().equals("")){
             //鏃犲懡浠D
-            this.toNextTasks(data);
+            Object protocolData = d.getSubData() ;
+            if(protocolData != null) {
+                this.toNextTasks(data);
+            }
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
index 116bdf5..b867a3f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
@@ -3,13 +3,13 @@
 import com.dy.common.mw.protocol.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
+import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.UriComponentsBuilder;
+
+import java.nio.charset.StandardCharsets;
 
 /**
  * @Author liurunyu
@@ -33,7 +33,9 @@
             String url = UriComponentsBuilder.fromUriString(data.rtuResultSendWebUrl)
                     .build()
                     .toUriString();
+            restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
             HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
             HttpEntity<?> httpEntity = new HttpEntity<>(data, headers);
             ResponseEntity<WebResponseVo> response = null;
             try {
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 5218409..2a2e499 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
@@ -39,6 +39,7 @@
 						<!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� -->
 						<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>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponseV202404" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404">
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
index 9be33c9..ec70bf2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandCtrl.java
@@ -3,10 +3,9 @@
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.downVos.*;
 import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @Author: liurunyu
@@ -28,7 +27,7 @@
         //return this.cd16() ;
         //return this.cd22() ;
         //return this.cd31() ;
-        return this.cd10();
+        return this.cd92() ;
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
new file mode 100644
index 0000000..092c73d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -0,0 +1,301 @@
+package com.dy.pipIrrIrrigate.irrigateGroup;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
+import com.dy.pipIrrGlobal.voIr.VoGroup;
+import com.dy.pipIrrGlobal.voIr.VoGroupOne;
+import com.dy.pipIrrGlobal.voIr.VoUnit;
+import com.dy.pipIrrGlobal.voIr.VoUnitOne;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import com.dy.pipIrrIrrigate.irrigateUnit.IrrigateUnitSv;
+import com.dy.pipIrrIrrigate.irrigateGroup.QueryVo;
+import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  16:19
+ * @LastEditTime :2024/5/21  16:19
+ * @Description
+ */
+@Slf4j
+@Tag(name = "杞亴缁�", description = "杞亴缁�")
+@RestController
+@RequestMapping(path = "group")
+@RequiredArgsConstructor
+public class IrrigateGroupCtrl {
+    @Autowired
+    private IrrigateGroupSv irrigateGroupSv;
+
+    /**
+     * 鍒涘缓杞亴缁�
+     *
+     * @param po            杞亴缁勫疄浣撳璞�
+     * @param bindingResult
+     * @return 娣诲姞鏄惁鎴愬姛
+     */
+    @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 = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add(@RequestBody @Valid IrIrrigateGroup po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateGroupSv.addIrrigateGroup(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鍒涘缓杞亴缁勫紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎鐏屾簤鍗曞厓
+     * @param
+     * @return
+     */
+    @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))}
+            )
+    })
+    @GetMapping(path = "delete")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete( Long id) {
+        if (id == null ) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+//        Long groupId = Long.parseLong(map.get("id").toString());
+        try {
+            Integer rows = irrigateGroupSv.deleteIrrigateGroup(id);
+            if (rows == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鍒犻櫎杞亴缁勫紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param groupIds
+     * @return
+     */
+    @PostMapping(path = "delete_batch", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete_batch(@RequestBody Map<String, List> groupIds) {
+        if (groupIds == null || groupIds.size() <= 0) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+        List ids = groupIds.get("groupIds");
+        for (int i = 0; i < ids.size(); i++) {
+            long groupId = Long.parseLong(ids.get(i).toString());
+            try {
+                Integer rows = irrigateGroupSv.deleteIrrigateGroup(groupId);
+                if (rows == 0) {
+                    return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+                }
+            } catch (Exception e) {
+                log.error("鍒犻櫎杞亴缁勫紓甯�", e);
+                return BaseResponseUtils.buildException(e.getMessage());
+            }
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 淇敼鐏屾簤鍗曞厓
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @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 = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Valid IrIrrigateGroup po, BindingResult bindingResult){
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateGroupSv.updateIrrigateGroup(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.UPDATE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("淇敼杞亴缁勫紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鑾峰彇涓�涓疆鐏岀粍
+     *
+     * @return 鑾峰彇涓�涓疆鐏岀粍
+     */
+    @Operation(summary = "鑾峰彇涓�涓疆鐏岀粍", description = "鑾峰彇涓�涓疆鐏岀粍")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰彇涓�涓疆鐏岀粍锛圔aseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = IrIrrigateGroup.class))}
+            )
+    })
+    @GetMapping(path = "one")
+    @SsoAop()
+    public BaseResponse<VoGroupOne> one(@RequestParam Long id) {
+        VoGroupOne irIrrigateGroup = this.irrigateGroupSv.selectById(id);
+
+        return BaseResponseUtils.buildSuccess(irIrrigateGroup);
+
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param vo
+     * @return
+     */
+    @Operation(summary = "鑾峰緱涓�椤佃疆鐏岀粍璁板綍", description = "鑾峰緱涓�椤佃疆鐏岀粍璁板綍")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰緱涓�椤电亴婧夊崟鍏冭褰曪紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = VoActiveCard.class))}
+            )
+    })
+    @GetMapping(path = "some")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoGroup>>> getIrrigateGroups(QueryVo vo) {
+        try {
+            QueryResultVo<List<VoGroup>> res = irrigateGroupSv.getIrrigateGroups(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇杞亴缁勮褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 杞亴缁勬坊鍔犵亴婧夊崟鍏�
+     *
+     * @param po            杞亴缁勭亴婧夊崟鍏冧腑闂磋〃
+     * @param bindingResult
+     * @return 娣诲姞鏄惁鎴愬姛
+     */
+    @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 = "add_unit", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addGroupUnit(@RequestBody @Valid IrGroupUnit po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateGroupSv.addGroupUnit(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("杞亴缁勬坊鍔犵亴婧夊崟鍏冨紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎 杞亴缁勭Щ闄ょ亴婧夊崟鍏�
+     * @param
+     * @return
+     */
+    @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 = "remove_unit")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteGroupUnit(@RequestBody @Valid IrGroupUnit po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateGroupSv.deleteGroupUnit(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("杞亴缁勭Щ闄ょ亴婧夊崟鍏冨紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
new file mode 100644
index 0000000..f776ad5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -0,0 +1,135 @@
+package com.dy.pipIrrIrrigate.irrigateGroup;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper;
+import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
+import com.dy.pipIrrGlobal.voIr.VoGroup;
+import com.dy.pipIrrGlobal.voIr.VoGroupOne;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/21  15:57
+ * @LastEditTime :2024/5/21  15:57
+ * @Description
+ */
+@Slf4j
+@Service
+public class IrrigateGroupSv {
+
+    @Autowired
+    private IrIrrigateGroupMapper irIrrigateGroupMapper;
+    @Autowired
+    private IrGroupUnitMapper irGroupUnitMapper;
+
+    /**
+     * 鍒涘缓杞亴缁�
+     *
+     * @param po
+     * @return
+     */
+    public Integer addIrrigateGroup(IrIrrigateGroup po) {
+        po.setOperateDt(new Date());
+        po.setDeleted((byte) 0);
+        int rows = irIrrigateGroupMapper.insertSelective(po);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鍒犻櫎杞亴缁�
+     *
+     * @param id
+     */
+    public Integer deleteIrrigateGroup(Long id) {
+        int rows = irIrrigateGroupMapper.deleteLogicById(id);
+        int rows1 = irGroupUnitMapper.deleteByGroupId(id);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 淇敼杞亴缁�
+     * @param po
+     * @return
+     */
+    public Integer updateIrrigateGroup(IrIrrigateGroup po){
+        po.setOperateDt(new Date());
+        int rows = irIrrigateGroupMapper.updateByPrimaryKeySelective(po);
+        if (rows == 0){
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鑾峰彇涓�涓疆鐏岀粍
+     * @param id
+     * @return
+     */
+    public VoGroupOne selectById(Long id){
+        VoGroupOne unit = irIrrigateGroupMapper.selectById(id);
+        return unit;
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ杞亴缁�
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoGroup>> getIrrigateGroups(QueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+        Long itemTotal = irIrrigateGroupMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoGroup>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = irIrrigateGroupMapper.getIrrigateGroups(params);
+        return rsVo;
+    }
+
+    /**
+     * 杞亴缁勬坊鍔犵亴婧夊崟鍏�
+     *
+     * @param po
+     * @return
+     */
+    public Integer addGroupUnit(IrGroupUnit po) {
+        po.setOperateDt(new Date());
+        po.setDeleted((byte) 0);
+        int rows = irGroupUnitMapper.insertSelective(po);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 杞亴缁勭Щ闄ょ亴婧夊崟鍏�
+     *
+     * @param po
+     * @return
+     */
+    public Integer deleteGroupUnit(IrGroupUnit po) {
+        po.setOperateDt(new Date());
+        int rows = irGroupUnitMapper.deleteByUnitIdGroupId(po);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java
new file mode 100644
index 0000000..85437aa
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrIrrigate.irrigateGroup;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15  21:11
+ * @LastEditTime :2024/5/15  21:11
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "椤圭洰鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+    @Schema(description = "椤圭洰鍚嶇О")
+    public String projectName;
+
+    @Schema(description = "杞綈缁勫悕绉�")
+    public String groupCode;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
index f2b0bf9..2688634 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
@@ -1,12 +1,39 @@
 package com.dy.pipIrrIrrigate.irrigateUnit;
 
 
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
+import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voIr.VoProjectOne;
+import com.dy.pipIrrGlobal.voIr.VoUnit;
+import com.dy.pipIrrGlobal.voIr.VoUnitOne;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import com.dy.pipIrrIrrigate.irrigateUnit.QueryVo;
+import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
 
 /**
  * @author :WuZeYu
@@ -17,9 +44,189 @@
 @Slf4j
 @Tag(name = "鐏屾簤鍗曞厓", description = "鐏屾簤鍗曞厓")
 @RestController
-@RequestMapping(path = "irrigate/unit")
+@RequestMapping(path = "unit")
 @RequiredArgsConstructor
 public class IrrigateUnitCtrl {
     @Autowired
     private  IrrigateUnitSv irrigateUnitSv;
+
+    /**
+     * 鍒涘缓鐏屾簤鍗曞厓
+     *
+     * @param po            鐏屾簤鍗曞厓瀹炰綋瀵硅薄
+     * @param bindingResult
+     * @return 娣诲姞鏄惁鎴愬姛
+     */
+    @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 = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add(@RequestBody @Valid IrIrrigateUnit po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateUnitSv.addIrrigateUnit(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鍒涘缓鐏屾簤鍗曞厓寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎鐏屾簤鍗曞厓
+     * @param map
+     * @return
+     */
+    @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 = "delete", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete(@RequestBody Map map) {
+        if (map == null || map.size() <= 0) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+        Long unitId = Long.parseLong(map.get("id").toString());
+        try {
+            Integer rows = irrigateUnitSv.deleteUnit(unitId);
+            if (rows == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鍒犻櫎鐏屾簤鍗曞厓寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param unitIds
+     * @return
+     */
+    @PostMapping(path = "delete_batch", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete_batch(@RequestBody Map<String, List> unitIds) {
+        if (unitIds == null || unitIds.size() <= 0) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+        List ids = unitIds.get("unitIds");
+        for (int i = 0; i < ids.size(); i++) {
+            long unitId = Long.parseLong(ids.get(i).toString());
+            try {
+                Integer rows = irrigateUnitSv.deleteUnit(unitId);
+                if (rows == 0) {
+                    return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+                }
+            } catch (Exception e) {
+                log.error("鍒犻櫎鐏屾簤鍗曞厓寮傚父", e);
+                return BaseResponseUtils.buildException(e.getMessage());
+            }
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 淇敼鐏屾簤鍗曞厓
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @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 = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Valid IrIrrigateUnit po, BindingResult bindingResult){
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(irrigateUnitSv.updateUnit(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.UPDATE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("淇敼鐏屾簤鍗曞厓寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鑾峰彇涓�涓亴婧夊崟鍏�
+     *
+     * @return 鑾峰彇涓�涓亴婧夊崟鍏�
+     */
+    @Operation(summary = "鑾峰彇涓�涓亴婧夊崟鍏�", description = "鑾峰彇涓�涓亴婧夊崟鍏�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰彇涓�涓亴婧夊崟鍏冿紙BaseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = IrIrrigateUnit.class))}
+            )
+    })
+    @GetMapping(path = "one")
+    @SsoAop()
+    public BaseResponse<VoUnitOne> one(@RequestParam Long id) {
+        VoUnitOne irIrrigateUnit = this.irrigateUnitSv.selectById(id);
+
+            return BaseResponseUtils.buildSuccess(irIrrigateUnit);
+
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param vo
+     * @return
+     */
+    @Operation(summary = "鑾峰緱涓�椤电亴婧夊崟鍏冭褰�", description = "鑾峰緱涓�椤电亴婧夊崟鍏冭褰�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰緱涓�椤电亴婧夊崟鍏冭褰曪紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = VoActiveCard.class))}
+            )
+    })
+    @GetMapping(path = "some")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoUnit>>> getUnits(QueryVo vo) {
+        try {
+            QueryResultVo<List<VoUnit>> res = irrigateUnitSv.getUnits(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鐏屾簤鍗曞厓璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
index 3ce61e4..620ae40 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
@@ -1,7 +1,23 @@
 package com.dy.pipIrrIrrigate.irrigateUnit;
 
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoIr.IrIrrigateUnitMapper;
+import com.dy.pipIrrGlobal.daoIr.IrProjectMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
+import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voIr.VoProjectOne;
+import com.dy.pipIrrGlobal.voIr.VoUnit;
+import com.dy.pipIrrGlobal.voIr.VoUnitOne;
+import com.dy.pipIrrIrrigate.irrigateUnit.QueryVo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author :WuZeYu
@@ -12,4 +28,77 @@
 @Slf4j
 @Service
 public class IrrigateUnitSv {
+
+    @Autowired
+    private IrIrrigateUnitMapper irIrrigateUnitMapper;
+
+    /**
+     * 鍒涘缓鐏屾簤鍗曞厓
+     *
+     * @param po
+     * @return
+     */
+    public Integer addIrrigateUnit(IrIrrigateUnit po) {
+        po.setOperateDt(new Date());
+        po.setDeleted((byte) 0);
+        int rows = irIrrigateUnitMapper.insertSelective(po);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鍒犻櫎鐏屾簤鍗曞厓
+     *
+     * @param id
+     */
+    public Integer deleteUnit(Long id) {
+        int rows = irIrrigateUnitMapper.deleteLogicById(id);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 淇敼鐏屾簤鍗曞厓
+     * @param po
+     * @return
+     */
+    public Integer updateUnit(IrIrrigateUnit po){
+        po.setOperateDt(new Date());
+        int rows = irIrrigateUnitMapper.updateByPrimaryKeySelective(po);
+        if (rows == 0){
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鑾峰彇涓�涓亴婧夊崟鍏�
+     * @param id
+     * @return
+     */
+    public VoUnitOne selectById(Long id){
+        VoUnitOne unit = irIrrigateUnitMapper.selectById(id);
+        return unit;
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ椤圭洰
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoUnit>> getUnits(QueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+        Long itemTotal = irIrrigateUnitMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoUnit>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = irIrrigateUnitMapper.getUnits(params);
+        return rsVo;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/QueryVo.java
new file mode 100644
index 0000000..bba1fb9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/QueryVo.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrIrrigate.irrigateUnit;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15  21:11
+ * @LastEditTime :2024/5/15  21:11
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "椤圭洰鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+    @Schema(description = "椤圭洰鍚嶇О")
+    public String projectName;
+
+    @Schema(description = "杞綈缁勫悕绉�")
+    public String groupCode;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
index 9308c6e..6f46207 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
@@ -224,11 +224,9 @@
     @SsoAop()
     public BaseResponse<VoProjectOne> one(@RequestParam Long id) {
         VoProjectOne irProject = this.projectSv.selectById(id);
-        if (irProject == null) {
-            return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
-        } else {
+
             return BaseResponseUtils.buildSuccess(irProject);
-        }
+
     }
 
     /**
@@ -247,12 +245,9 @@
     })
     @GetMapping(path = "some")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoProject>>> getIntakes(QueryVo vo) {
+    public BaseResponse<QueryResultVo<List<VoProject>>> getProjects(QueryVo vo) {
         try {
             QueryResultVo<List<VoProject>> res = projectSv.getProjects(vo);
-            if (res == null) {
-                return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
-            }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鑾峰彇椤圭洰璁板綍寮傚父", e);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
index 8d4670b..2dec946 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
@@ -23,6 +23,11 @@
     NO_PROJECT(10005, "鏃犵鍚堟潯浠剁殑椤圭洰璁板綍");
 
 
+//    /**
+//     * 鐏屾簤鍗曞厓
+//     */
+//    ADD_IRRIGATE_UNIT_FAIL(20001, "鍒涘缓鐏屾簤鍗曞厓澶辫触"),
+
     private final Integer code;
     private final String message;
 }

--
Gitblit v1.8.0