From f844554d994465a14e93b0334c2677a37876d7eb Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 24 七月 2024 14:08:18 +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/util/Org.java                                            |   77 --
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml                                             |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StClient.java           |   50 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsSv.java                    |  121 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLossSv.java           |    9 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java                          |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java  |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml                                  |   49 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsListener.java |   68 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java                                             |   72 +-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                           |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml                                             |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java                         |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java                                     |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskFactory.java                        |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java                        |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java                   |   17 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java                              |   62 ++
 pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml                                                         |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ControllerAlarmStateQueryVo.java  |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLoss.java             |   50 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java                             |   56 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsCtrl.java                  |  153 +++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java       |   38 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml                                    |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml                                      |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                    |    4 
 /dev/null                                                                                                                |   59 --
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ClientAmountDayQueryVo.java       |   38 +
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StIntake.java           |   50 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsJob.java      |   68 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml                                      |   49 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java                                      |   27 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java                       |   17 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                  |    9 
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java                                 |   29 
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml                                             |    2 
 37 files changed, 1,011 insertions(+), 220 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskFactory.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskFactory.java
index 1751d79..3b19a91 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskFactory.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/schedulerTask/SchedulerTaskFactory.java
@@ -61,11 +61,6 @@
 				if(threadPoolPriority != null && threadPoolPriority.intValue() >= 0){
 					pro.put("org.quartz.threadPool.threadPriority", "" + (threadPoolPriority==null?5:(threadPoolPriority<=0?5:threadPoolPriority)));
 				}
-				if(threadPoolMaxCount != null && threadPoolPriority != null){
-					if(threadPoolMaxCount.intValue() < threadPoolPriority.intValue()){
-						throw new SchedulerException("threadPoolMaxCount蹇呴』澶т簬绛変簬threadPoolPriority") ;
-					}
-				}
 				scheduler = new StdSchedulerFactory(pro).getScheduler();
 			} catch (SchedulerException e) {
 				log.error(e) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
index 8e97a16..c5c1bc4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -603,7 +603,7 @@
 	 */
 	public static Long lastXMinuteTime(int xMin)  {
 		Calendar cal = Calendar.getInstance();  
-		cal.add(Calendar.MINUTE, -xMin);
+		cal.add(Calendar.MINUTE, xMin<=0?xMin:-xMin);
 		Date date = cal.getTime() ;
 		return date.getTime() ;
 	}
@@ -619,7 +619,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH(date) ;
 	}
@@ -633,7 +633,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH_mm(date) ;
 	}
@@ -647,7 +647,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -661,7 +661,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHH(date) ;
 	}
@@ -675,7 +675,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHHmm(date) ;
 	}
@@ -689,7 +689,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHHmmss(date) ;
 	}
@@ -703,7 +703,7 @@
 	public static String lastXHour_yyyy_MM_dd_HH(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH(date) ;
 	}
@@ -715,7 +715,7 @@
 	public static String lastXHour_yyyy_MM_dd_HH_mm(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH_mm(date) ;
 	}
@@ -727,7 +727,7 @@
 	public static String lastXHour_yyyy_MM_dd_HH_mm_ss(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -739,7 +739,7 @@
 	public static String lastXHour_yyyyMMddHH(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHH(date) ;
 	}
@@ -751,7 +751,7 @@
 	public static String lastXHour_yyyyMMddHHmm(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHHmm(date) ;
 	}
@@ -763,7 +763,7 @@
 	public static String lastXHour_yyyyMMddHHmmss(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, -xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHHmmss(date) ;
 	}
@@ -779,7 +779,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.MINUTE, xminute);
+		cal.add(Calendar.MINUTE, xminute<=0?-xminute:xminute );
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -795,7 +795,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour );
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH(date) ;
 	}
@@ -809,7 +809,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH_mm(date) ;
 	}	
@@ -823,7 +823,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -837,7 +837,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHH(date) ;
 	}
@@ -851,7 +851,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHHmm(date) ;
 	}	/**
@@ -864,7 +864,7 @@
 		Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMddHHmmss(date) ;
 	}
@@ -878,7 +878,7 @@
 	public static String nextXHour_yyyy_MM_dd_HH(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH(date) ;
 	}
@@ -890,7 +890,7 @@
 	public static String nextXHour_yyyy_MM_dd_HH_mm(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH_mm(date) ;
 	}
@@ -902,7 +902,7 @@
 	public static String nextXHour_yyyy_MM_dd_HH_mm_ss(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -916,7 +916,7 @@
 	public static String nextXHour_yyyyMMddHH(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHH(date) ;
 	}
@@ -928,7 +928,7 @@
 	public static String nextXHour_yyyyMMddHHmm(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHHmm(date) ;
 	}
@@ -940,7 +940,7 @@
 	public static String nextXHour_yyyyMMddHHmmss(int xhour){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.HOUR_OF_DAY, xhour);
+		cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMddHHmmss(date) ;
 	}
@@ -959,7 +959,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.DAY_OF_YEAR, -xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd(date) ;
 	}
@@ -973,7 +973,7 @@
 		Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.DAY_OF_YEAR, -xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMdd(date) ;
 	}
@@ -985,7 +985,7 @@
 	public static String lastXDay_yyyy_MM_dd(int xday){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.DAY_OF_YEAR, -xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd(date) ;
 	}
@@ -997,7 +997,7 @@
 	public static String lastXDay_yyyy_MM_dd_HH_ss(int xday){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.DAY_OF_YEAR, -xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
 	}
@@ -1009,7 +1009,7 @@
 	public static String lastXDay_yyyyMMdd(int xday){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.DAY_OF_YEAR, -xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMdd(date) ;
 	}
@@ -1028,7 +1028,7 @@
 		Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.DAY_OF_YEAR, xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
 		Date date = cal.getTime() ;
 		return DateTime.yyyy_MM_dd(date) ;
 	}
@@ -1042,7 +1042,7 @@
 		Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd);
 		Calendar cal = Calendar.getInstance();  
 		cal.setTime(d);			
-		cal.add(Calendar.DAY_OF_YEAR, xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
 		Date date = cal.getTime() ;
 		return DateTime.yyyyMMdd(date) ;
 	}
@@ -1054,7 +1054,7 @@
 	public static String nextXDay_yyyy_MM_dd(int xday){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.DAY_OF_YEAR, xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyy_MM_dd(date) ;
 	}
@@ -1066,7 +1066,7 @@
 	public static String nextXDay_yyyyMMdd(int xday){
 		Date date = new Date();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.DAY_OF_YEAR, xday);
+		cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
 		date.setTime(cal.getTimeInMillis());			
 		return DateTime.yyyyMMdd(date) ;
 	}
@@ -1640,6 +1640,8 @@
 		Date dt = getDate(1447857387L) ;
 		String s = yyyy_MM_dd_HH_mm_ss(dt);
 		System.out.println(s);
+
+		System.out.println(lastMonth_ym()) ;
 	}
 
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java
index 9f6e86f..3b8a133 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java
@@ -11,7 +11,7 @@
 
 	private static final Object synObj = new Object() ;
 
-	private static final int yearLenght = 4 ;//4锛氬勾搴﹀彇鍥涗綅锛� 3锛氬勾搴﹀彇涓変綅锛� 2锛氬勾搴﹀彇涓や綅锛� 1锛氬勾搴﹀彇涓�浣嶏紝 0锛氬勾搴﹀彇0浣�
+	private static final int yearLength = 4 ;//4锛氬勾搴﹀彇鍥涗綅锛� 3锛氬勾搴﹀彇涓変綅锛� 2锛氬勾搴﹀彇涓や綅锛� 1锛氬勾搴﹀彇涓�浣嶏紝 0锛氬勾搴﹀彇0浣�
 
 	private static int add = 0 ;
 	private static final int chengShu = 1000 ;//1000锛氫笁浣嶈嚜澧為噺锛屽嵆涓�绉掗挓鍙骇鐢�10000涓狪D
@@ -114,17 +114,17 @@
     		//涓婃鐢熸垚ID 涓庢湰娆$敓鎴怚D 涓嶅湪鍚屼竴绉掑唴
     		last = now ;
     		add = 0 ;
-    		id = last * chengShu + add ++;
+    		id = last * chengShu + add++;
     	}else{
     		//涓婃鐢熸垚ID 涓庢湰娆$敓鎴怚D 鍦ㄥ悓涓�绉掑唴
     		if(add >= maxAdd){
     			//闄勫姞閲忓凡缁忕敤灏�
     			waitNextSecond(last) ;//绛夊埌涓嬩竴绉�
-    			id = last * chengShu + add ++ ;//杩斿洖涓婁竴绉掔敓鎴愮殑ID
+    			id = last * chengShu + add++ ;//杩斿洖涓婁竴绉掔敓鎴愮殑ID
 				add = 0 ;//闄勫姞閲忓綊闆讹紝涓轰笅涓�绉掑噯澶�
     		}else{
     			//闄勫姞閲忔湭鐢ㄥ敖
-    			id = last * chengShu + add ++ ;
+    			id = last * chengShu + add++ ;
     		}
     	}
     	return (id * 100) + suffix ;
@@ -238,28 +238,31 @@
 	 * @return 澶勭悊鍚庣殑骞村害
 	 */
 	private static int dealYear(int year){
-		if(yearLenght == 0){
+		if(yearLength == 0){
 			return 0 ;
-		}else if(yearLenght == 1){
+		}else if(yearLength == 1){
 			return year % 10 ;
-		}else if(yearLenght == 2){
+		}else if(yearLength == 2){
 			return year % 100 ;
-		}else if(yearLenght == 3){
+		}else if(yearLength == 3){
 			return year % 1000 ;
-		}else if(yearLenght == 4){
+		}else if(yearLength == 4){
 			return year ;
 		}else{
 			return year ;
 		}
 	}
-//
+
 //	public static void main(String[] args){
+//		Calendar cal = Calendar.getInstance();
+//		System.out.println(cal.get(Calendar.MONTH) + 1) ;
+//
 //		IDLongGenerator o = new IDLongGenerator() ;
-//		int total = 800 ;
-//		long start = System.currentTimeMillis() ;
+//		int total = 1 ;
 //		for(int i = 0 ; i < total ; i++){
 //			System.out.println(o.generate()) ;
 //		}
+//		long start = System.currentTimeMillis() ;
 //		long end = System.currentTimeMillis() ;
 //		System.out.println("浜х敓" + total + "ID鐢ㄦ椂" + (end - start) + "姣");
 //
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java
deleted file mode 100644
index 7497e81..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.dy.pipIrrGlobal.pojoRm;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
-import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
-import com.dy.common.po.BaseEntity;
-import com.dy.common.util.DateTime;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
-import java.util.Date;
-
-/**
- * @Author liurunyu
- * @Date 2024/2/28 15:31
- * @LastEditTime 2024/2/28 15:31
- * @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鍘嗗彶鏁版嵁
- */
-@TableName(value="rm_loss_history_history", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鎺у埗鍣ㄦ棩婕忔崯姘撮噺鍘嗗彶鏁版嵁 ")
-public class RmLossHistory implements BaseEntity {
-
-    public static final long serialVersionUID = 202402281620001L;
-    /**
-     * 涓婚敭
-     */
-    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    public Long id;
-
-
-    /**
-     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-     */
-    @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controllerId;
-
-    /**
-     * 鍙栨按鍙e疄浣揑D锛堝閿級
-     */
-    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeId;
-
-    /**
-     * 鎺у埗鍣ㄥ湴鍧�
-     */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
-    public String rtuAddr;
-
-    /**
-     * 鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿
-     */
-    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    public Date dt;
-
-    /**
-     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�
-     */
-    @Schema(description = "鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
-    public Date dtLast;
-
-    /**
-     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹腑鐨勬帶鍒跺櫒鏃堕挓
-     */
-    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
-    public Date dtRtu;
-
-    /**
-    * 鏃ユ紡鎹熸祦閲�
-    */
-    @Schema(description = "鏃ユ紡鎹熼噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double lossAmount;
-
-
-    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
-        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
-        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
-        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
-        this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
-    }
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java
deleted file mode 100644
index 3630d80..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @Author liurunyu
- * @Date 2024/2/28 15:31
- * @LastEditTime 2024/2/28 15:31
- * @Description
- */   
-@Mapper
-public interface RmLossHistoryMapper {
-    /**
-     * delete by primary key
-     * @param id primaryKey
-     * @return deleteCount
-     */
-    int deleteByPrimaryKey(Long id);
-
-    /**
-     * insert record to table
-     * @param record the record
-     * @return insert count
-     */
-    int insert(RmLossHistory record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(RmLossHistory record);
-
-    /**
-     * select by primary key
-     * @param id primary key
-     * @return object by primary key
-     */
-    RmLossHistory selectByPrimaryKey(Long id);
-
-    /**
-     * select by dt
-     * @param date 鏃ユ湡锛坹yyy-mm-dd锛�
-     * @return object by rtuAddr
-     */
-    List<RmLossHistory> selectByDate(Date date) ;
-
-    /**
-     * update record selective
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKeySelective(RmLossHistory record);
-
-    /**
-     * update record
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKey(RmLossHistory record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml
deleted file mode 100644
index 858ff67..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmLossHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_loss_history-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
-    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
-    <result column="dt_rtu" jdbcType="TIMESTAMP" property="dtRtu" />
-    <result column="loss_amount" jdbcType="DOUBLE" property="lossAmount" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_loss_history
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select
-    <include refid="Base_Column_List" />
-    from rm_loss_history
-    where dt = #{dt,jdbcType=DATE}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_loss_history
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
-    <!--@mbg.generated-->
-    insert into rm_loss_history (id, controller_id, intake_id, 
-      rtu_addr, dt, dt_last, dt_rtu, loss_amount
-      )
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP}, #{lossAmount,jdbcType=DOUBLE}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
-    <!--@mbg.generated-->
-    insert into rm_loss_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="controllerId != null">
-        controller_id,
-      </if>
-      <if test="intakeId != null">
-        intake_id,
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr,
-      </if>
-      <if test="dt != null">
-        dt,
-      </if>
-      <if test="dtLast != null">
-        dt_last,
-      </if>
-     <if test="dtRtu != null">
-        dt_rtu,
-      </if>
-      <if test="lossAmount != null">
-        loss_amount,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        #{dt,jdbcType=DATE},
-      </if>
-      <if test="dtLast != null">
-        #{dtLast,jdbcType=TIMESTAMP},
-      </if>
-      <if test="dtRtu != null">
-        #{dtRtu,jdbcType=TIMESTAMP},
-      </if>
-      <if test="lossAmount != null">
-        #{lossAmount,jdbcType=DOUBLE},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
-    <!--@mbg.generated-->
-    update rm_loss_history
-    <set>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
-      </if>
-      <if test="dtLast != null">
-        dt_last = #{dtLast,jdbcType=TIMESTAMP},
-      </if>
-      <if test="dtRtu != null">
-        dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
-      </if>
-      <if test="lossAmount != null">
-        loss_amount = #{lossAmount,jdbcType=DOUBLE},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossHistory">
-    <!--@mbg.generated-->
-    update rm_loss_history
-    set controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
-      dt_last = #{dtLast,jdbcType=TIMESTAMP},
-      dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
-      loss_amount = #{lossAmount,jdbcType=DOUBLE}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java
deleted file mode 100644
index 5b5479d..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.dy.pipIrrGlobal.pojoRm;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
-import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo;
-import com.dy.common.po.BaseEntity;
-import com.dy.common.util.DateTime;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
-import java.util.Date;
-
-/**
- * @Author liurunyu
- * @Date 2024/2/28 15:31
- * @LastEditTime 2024/2/28 15:31
- * @Description 鎺у埗鍣ㄦ棩婕忔崯姘撮噺鏈�鏂版暟鎹�
- */
-@TableName(value="rm_loss_last_history", autoResultMap = true)
-@Data
-@Builder
-@ToString
-@NoArgsConstructor
-@AllArgsConstructor
-@Schema(name = "鎺у埗鍣ㄦ棩婕忔崯姘撮噺鏈�鏂版暟鎹�")
-public class RmLossLast implements BaseEntity {
-
-    public static final long serialVersionUID = 202402281621001L;
-    /**
-     * 涓婚敭
-     */
-    @Schema(description = "涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    @TableId(type = IdType.INPUT)
-    public Long id;
-
-    /**
-     * 鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
-     * json涓嶅簭鍒楀寲姝ゅ睘鎬э紝鍗充笉鍚戝墠绔〉闈㈠彂閫佸強鏄剧ず
-     */
-    @Schema(hidden=true)
-    @JSONField(serialize = false)
-    public Long lastHistoryId;
-
-    /**
-     * 鎺у埗鍣ㄥ疄浣揑D锛堝閿級
-     */
-    @Schema(description = "鎺у埗鍣ㄥ疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long controllerId;
-
-    /**
-     * 鍙栨按鍙e疄浣揑D锛堝閿級
-     */
-    @Schema(description = "鍙栨按鍙e疄浣撳閿�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JSONField(serializeUsing= ObjectWriterImplToString.class)
-    public Long intakeId;
-
-    /**
-     * 鎺у埗鍣ㄥ湴鍧�
-     */
-    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
-    public String rtuAddr;
-
-    /**
-     * 缁熻鏃�
-     */
-    @Schema(description = "缁熻鏃�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    public Date dt;
-
-    /**
-     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�
-     */
-    @Schema(description = "鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
-    public Date dtLast;
-
-    /**
-     * 鎺у埗鍣ㄥ綋鏃ユ渶鍚庝笂鎶ユ暟鎹腑鐨勬帶鍒跺櫒鏃堕挓
-     */
-    @Schema(description = "鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
-    public Date dtRtu;
-
-    /**
-     * 鏃ユ紡鎹熸祦閲�
-     */
-    @Schema(description = "鏃ユ紡鎹熼噺锛坢3锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    public Double lossAmount;
-
-    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
-        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
-        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
-        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
-        this.lossAmount = cdData.lossAmount ;// 鎹熷け娴侀噺(浠�0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲忥紝24鏃朵竴涓懆鏈燂紝0鏃跺綊0)鍗曚綅涓簃3銆�
-    }
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java
deleted file mode 100644
index 2e7733c..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.dy.pipIrrGlobal.daoRm;
-
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @Author liurunyu
- * @Date 2024/2/28 15:31
- * @LastEditTime 2024/2/28 15:31
- * @Description
- */   
-@Mapper
-public interface RmLossLastMapper {
-    /**
-     * delete by primary key
-     * @param id primaryKey
-     * @return deleteCount
-     */
-    int deleteByPrimaryKey(Long id);
-
-    /**
-     * insert record to table
-     * @param record the record
-     * @return insert count
-     */
-    int insert(RmLossLast record);
-
-    /**
-     * insert record to table selective
-     * @param record the record
-     * @return insert count
-     */
-    int insertSelective(RmLossLast record);
-
-    /**
-     * select by primary key
-     * @param id primary key
-     * @return object by primary key
-     */
-    RmLossLast selectByPrimaryKey(Long id);
-
-    /**
-     * select by rtuAddr
-     * @param intakeId 鎺у埗鍣ㄦ墍缁戝彇姘村彛ID
-     * @return object by rtuAddr
-     */
-    List<RmLossLast> selectByIntakeId(Long intakeId) ;
-   /**
-     * select by dt
-     * @param date 鏃ユ湡锛坹yyy-mm-dd锛�
-     * @return object by rtuAddr
-     */
-    List<RmLossLast> selectByDate(Date date) ;
-
-    /**
-     * update record selective
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKeySelective(RmLossLast record);
-
-    /**
-     * update record
-     * @param record the updated record
-     * @return update count
-     */
-    int updateByPrimaryKey(RmLossLast record);
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml b/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml
deleted file mode 100644
index 5a99947..0000000
--- a/pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dy.pipIrrGlobal.daoRm.RmLossLastMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
-    <!--@mbg.generated-->
-    <!--@Table rm_loss_last-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="last_history_id" jdbcType="BIGINT" property="lastHistoryId" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="dt" jdbcType="DATE" property="dt" />
-    <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" />
-    <result column="dt_rtu" jdbcType="TIMESTAMP" property="dtRtu" />
-    <result column="loss_amount" jdbcType="DOUBLE" property="lossAmount" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, last_history_id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_loss_last
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select
-    <include refid="Base_Column_List" />
-    from rm_loss_last
-    where intake_id = #{intakeId,jdbcType=BIGINT}
-  </select>
-  <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select
-    <include refid="Base_Column_List" />
-    from rm_loss_last
-    where dt = #{dt,jdbcType=DATE}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_loss_last
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
-    <!--@mbg.generated-->
-    insert into rm_loss_last (id, last_history_id, controller_id, 
-      intake_id, rtu_addr, dt, dt_last, dt_rtu,
-      loss_amount)
-    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, 
-      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP},
-      #{lossAmount,jdbcType=DOUBLE})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
-    <!--@mbg.generated-->
-    insert into rm_loss_last
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="lastHistoryId != null">
-        last_history_id,
-      </if>
-      <if test="controllerId != null">
-        controller_id,
-      </if>
-      <if test="intakeId != null">
-        intake_id,
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr,
-      </if>
-      <if test="dt != null">
-        dt,
-      </if>
-      <if test="dtLast != null">
-        dt_last,
-      </if>
-      <if test="dtRtu != null">
-        dt_rtu,
-      </if>
-      <if test="lossAmount != null">
-        loss_amount,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="lastHistoryId != null">
-        #{lastHistoryId,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        #{dt,jdbcType=DATE},
-      </if>
-      <if test="dtLast != null">
-        #{dtLast,jdbcType=TIMESTAMP},
-      </if>
-      <if test="dtRtu != null">
-        #{dtRtu,jdbcType=TIMESTAMP},
-      </if>
-      <if test="lossAmount != null">
-        #{lossAmount,jdbcType=DOUBLE},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
-    <!--@mbg.generated-->
-    update rm_loss_last
-    <set>
-      <if test="lastHistoryId != null">
-        last_history_id = #{lastHistoryId,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=DATE},
-      </if>
-     <if test="dtLast != null">
-       dt_last = #{dtLast,jdbcType=TIMESTAMP},
-      </if>
-     <if test="dtRtu != null">
-       dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
-      </if>
-      <if test="lossAmount != null">
-        loss_amount = #{lossAmount,jdbcType=DOUBLE},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossLast">
-    <!--@mbg.generated-->
-    update rm_loss_last
-    set last_history_id = #{lastHistoryId,jdbcType=BIGINT},
-      controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=DATE},
-      dt_last = #{dtLast,jdbcType=TIMESTAMP},
-      dt_rtu = #{dtRtu,jdbcType=TIMESTAMP},
-      loss_amount = #{lossAmount,jdbcType=DOUBLE}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
index bafb46b..1d7ef01 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
@@ -2,9 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast;
+import com.dy.pipIrrGlobal.voRm.VoClientAmountDay;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: liurunyu
@@ -62,4 +64,19 @@
      * @return update count
      */
     int updateByPrimaryKey(RmClientAmountDayLast record);
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍
+     * @param params
+     * @return
+     */
+    List<VoClientAmountDay> getClientAmountDayLast(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java
index 37d8992..0ab6a70 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayMapper.java
@@ -2,11 +2,14 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDay;
+import com.dy.pipIrrGlobal.voRm.VoClientAmountDay;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: liurunyu
@@ -71,4 +74,18 @@
      * @return update count
      */
     int updateByPrimaryKey(RmClientAmountDay record);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍
+     * @param params
+     * @return
+     */
+    List<VoClientAmountDay> getClientAmountDayHistory(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
index fa3fdc0..5e3341f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/Org.java
@@ -1,67 +1,28 @@
 package com.dy.pipIrrGlobal.util;
 
-
-import com.alibaba.fastjson2.JSONObject;
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.baomidou.mybatisplus.annotation.EnumValue;
-
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public enum Org {
-
-//    Ym("ym", "鍏冭皨"),
-//    Pj("pj", "鐗囪闀�"),
-    Sp("sp", "娌欑洏"),
-    Jyg("ym", "鍢夊唱鍏�");
-
-    @EnumValue
-    public String tag ;
-    public String name ;
-
-    Org(String tag, String name){
-        this.tag = tag ;
-        this.name = name ;
-    }
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 11:45
+ * @Description
+ */
+public class Org {
     //鐢ㄦ潵杞琷son
-    public static List<Map> OrgList = new ArrayList<>();
-    static {
-        Org[] all = Org.values();
-        for (Org one : all) {
-            Map<String, String> objMap = new HashMap<>();
-            objMap.put("tag", one.tag);
-            objMap.put("name", one.name);
-            OrgList.add(objMap) ;
+    public static List<OrgVo> OrgList = new ArrayList<>();
+
+    public class OrgVo{
+        public String tag ;
+        public String name ;
+
+        public String getTag() {
+            return this.tag ;
+        }
+
+        public String getName() {
+            return this.name ;
         }
     }
-
-    public String getTag() {
-        return this.tag ;
-    }
-
-    public String getName() {
-        return this.name ;
-    }
-
-    public static Org get(String tag){
-//        if(tag.equals(Ym.tag) || tag.equals(Jyg.tag)){
-//            return Ym ;
-//        }else if(tag.equals(Pj.tag)){
-//            return Pj ;
-//        }
-        if(tag.equals(Jyg.tag)){
-            return Jyg ;
-        }else if(tag.equals(Sp.tag)) {
-            return Sp;
-        }
-        return null ;
-    }
-
-
-    @JSONField
-    public JSONObject toJson() {
-        return JSONObject.of("tag", getTag(), "name", getName());
-    }
-}
\ No newline at end of file
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java
new file mode 100644
index 0000000..d4c1c14
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/OrgListenerSupport.java
@@ -0,0 +1,56 @@
+package com.dy.pipIrrGlobal.util;
+
+import com.dy.common.util.ConfigXml;
+import com.dy.common.webListener.ConfigListener;
+import org.jdom2.Document;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+
+import java.net.URL;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 13:41
+ * @Description
+ */
+public abstract class OrgListenerSupport {
+
+    /**
+     * 瀹炲鍖�
+     */
+    @SuppressWarnings("unused ")
+    protected void init() {
+        this.init(null);
+    }
+    /**
+     * 瀹炲鍖�
+     */
+    @SuppressWarnings("unused ")
+    protected void init(ApplicationReadyEvent event) {
+        try {
+            URL configFileURL = ConfigListener.class.getResource("/init-config.xml");
+            ConfigXml configXml = new ConfigXml();
+            Document doc = configXml.createDom(configFileURL);
+            this.doInit(configXml, doc);
+        } catch (Exception e) {
+            System.out.println("绯荤粺鍚姩鏃讹紝鍒濆鍖栭厤缃嚭閿� !");
+            System.out.println(e.getMessage());
+            e.printStackTrace();
+        }
+    }
+    private void doInit(ConfigXml configXml, Document doc) throws Exception {
+        if (configXml != null && doc != null) {
+            for (int num = 1; num <= 10000; num++) {
+                if (configXml.existElement(doc, "config.orgs.org" + num)) {
+                    String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num, "tag", null, false, null);
+                    String orgName = configXml.getSetAttrTxt(doc, "config.orgs.org" + num, "name", null, false, null);
+                    Org.OrgVo vo = new Org().new OrgVo() ;
+                    vo.tag = orgTag ;
+                    vo.name = orgName ;
+                    Org.OrgList.add(vo) ;
+                }else{
+                    break ;
+                }
+            }
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java
new file mode 100644
index 0000000..d105f1c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoClientAmountDay.java
@@ -0,0 +1,62 @@
+package com.dy.pipIrrGlobal.voRm;
+
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.sql.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/23  16:21
+ * @LastEditTime :2024/7/23  16:21
+ * @Description
+ */
+@Data
+@Schema(title = "鍐滄埛鏃ョ敤姘撮噺缁熻瑙嗗浘瀵硅薄")
+public class VoClientAmountDay implements BaseEntity {
+
+    private static final long serialVersionUID = 202407231622001L;
+
+    @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String clientId;
+
+    @Schema(description = "鏃ュ彇姘撮噺", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double amount;
+
+    @Schema(description = "鏃ヨ姳璐归噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double money;
+
+    @Schema(description = "缁熻鏃ユ湡(yyyy-mm-dd)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private java.sql.Date dt;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″紑闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private java.util.Date openDtLast;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″叧闃�鏃ユ湡鏃堕棿锛坹yyy-mm-dd HH:MM:SS锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private java.util.Date closeDtLast;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按閲�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double thisAmountLast;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″紑闃�鑺辫垂閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double thisMoneyLast;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″紑闃�鍙栨按鏃堕暱锛堝垎閽燂級", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long thisTimeLast;
+
+    @Schema(description = "缁熻鏃ユ渶鍚庝竴娆″叧闃�涓婃姤鎺у埗鍣ㄦ椂閽�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private java.util.Date rtuDtLast;
+
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String clientName;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java
index 54cf440..5443963 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrGlobal.voRm;
 
+import com.dy.common.po.BaseEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -15,7 +16,7 @@
  */
 @Data
 @Schema(title = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�佽鍥惧璞�")
-public class VoControllerAlarmState {
+public class VoControllerAlarmState implements BaseEntity {
 
     private static final long serialVersionUID = 202407230842001L;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
index 41ba0b1..04da6ce 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-pj.yml
@@ -14,10 +14,10 @@
                 # 鏁版嵁婧愬悕绉帮細褰撳瓨鍦ㄥ涓暟鎹簮鏃讹紝璁剧疆鍚嶅瓧鍙互寰堟柟渚跨殑鏉ヨ繘琛屽尯鍒�,榛樿鑷姩鐢熸垚鍚嶇О锛屾牸寮忔槸锛�"DataSource-" + System.identityHashCode(this)
                 name: druid-mysql-pj
                 #閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
-                initialSize: 1
-                minIdle: 1
+                initialSize: 10
+                minIdle: 10
                 maxActive: 100
-                #閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂达紝鍗曚綅鏄绉�
+                # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
                 maxWait: 6000
                 #閰嶇疆闂撮殧澶氫箙杩涜涓�娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掋�� 榛樿鏄�60s锛屽お闀垮彲鑳戒細瀵艰嚧鏃犳硶鍙婃椂妫�娴嬪埌杩炴帴涓柇
                 timeBetweenEvictionRunsMillis: 60000
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
index 89a4fbc..12a5301 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
@@ -16,7 +16,7 @@
         #閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
         initialSize: 10
         minIdle: 10
-        maxActive: 200
+        maxActive: 100
         # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
         maxWait: 60000
         #閰嶇疆闂撮殧澶氫箙杩涜涓�娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掋�� 榛樿鏄�60s锛屽お闀垮彲鑳戒細瀵艰嚧鏃犳硶鍙婃椂妫�娴嬪埌杩炴帴涓柇
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 3b1c640..407c631 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -16,7 +16,7 @@
                 #閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
                 initialSize: 10
                 minIdle: 10
-                maxActive: 200
+                maxActive: 100
                 # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
                 maxWait: 60000
                 #閰嶇疆闂撮殧澶氫箙杩涜涓�娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掋�� 榛樿鏄�60s锛屽お闀垮彲鑳戒細瀵艰嚧鏃犳硶鍙婃椂妫�娴嬪埌杩炴帴涓柇
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 82bc8e4..12877db 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -159,10 +159,7 @@
         - /sso/sso
         - /remote/comRes/receive
         - /wx/comRes/receive
-#鑷姩缁熻閰嶇疆
+#鑷姩缁熻閰嶇疆锛岃嚜鍔ㄧ粺璁″畾鏃朵换鍔′細姣忓ぉ瀹氭椂杩涜
 auto-statistics:
-    #鏈堢粺璁�
-    month:
-        startDay: 1
-        startHour: 0
-        startMinute: 5
+    startHour: 9 #寮�濮嬪皬鏃� 0
+    startMinute: 51 #寮�濮嬪垎閽� 5
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
index 2302751..e346337 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
@@ -2,7 +2,7 @@
 <config>
     <orgs>
         <!-- 澶氫釜缁勭粐锛岀敤缂栧彿鍖哄垎锛岀紪鍙蜂粠1寮�濮� -->
-        <org1 name="ym">
+        <org1 tag="ym" name="鍏冭皨">
             <districts>
                 <province name="浜戝崡鐪�" num="53" level="1">
                     <city name="妤氶泟褰濇棌鑷不宸�" num="23" level="2">
@@ -18,8 +18,8 @@
                 <item4 name="閾惰杞处"/>
             </payments>
             <settings>
-                    <item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
-                    <item2 item_name="lat" item_value="25.70424" remarks="绾害"/>
+                <item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
+                <item2 item_name="lat" item_value="25.70424" remarks="绾害"/>
             </settings>
             <waterTypes>
                 <item1 typeName="鐏屾簤鐢ㄦ按"/>
@@ -29,7 +29,7 @@
                 <item5 typeName="缁垮寲鐢ㄦ按"/>
             </waterTypes>
         </org1>
-        <org2 name="sp">
+        <org2 tag="sp" name="娌欑洏">
             <districts>
                 <province name="澶╂触" num="53" level="1">
                     <city name="澶╂触甯�" num="23" level="2">
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 069917c..924a29c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -353,7 +353,7 @@
 <select id="getRecordCount" resultType="java.lang.Long">
     select count(*)
     from rm_alarm_state_history rash
-    Left join pr_intake pint on intake_id = pint.id
+    Left join pr_intake pint on rash.intake_id = pint.id
     <where>
        <if test="alarmState == 1">
                 and (
@@ -434,7 +434,7 @@
         rash.alarm_valve as alarmValve,
         rash.power_type as powerType
         from rm_alarm_state_history rash
-        Left join pr_intake pint on intake_id = pint.id
+        Left join pr_intake pint on rash.intake_id = pint.id
         <where>
             <if test="alarmState == 1">
                 and (
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
index c7f20a2..8179361 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
@@ -188,4 +188,53 @@
       rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟-->
+  <select id="getRecordCount" resultType="java.lang.Long">
+    select count(*)
+    from rm_client_amount_day_last rcadl
+    Left join se_client sc on sc.id = rcadl.client_id
+    <where>
+      <if test="clientName != null">
+        and sc.name = #{clientName,jdbcType=VARCHAR}
+      </if>
+      <if test="startDt != null">
+        and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    </select>
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+  <select id="getClientAmountDayLast" resultType="com.dy.pipIrrGlobal.voRm.VoClientAmountDay">
+    select
+    CAST(rcadl.client_id AS char)AS clientId,
+    rcadl.amount as amount,
+    rcadl.money as money,
+    rcadl.dt as dt,
+    rcadl.open_dt_last as openDtLast,
+    rcadl.close_dt_last as closeDtLast,
+    rcadl.this_amount_last as thisAmountLast,
+    rcadl.this_money_last as thisMoneyLast,
+    rcadl.this_time_last as thisTimeLast,
+    rcadl.rtu_dt_last as rtuDtLast,
+    sc.name as clientName
+    from rm_client_amount_day_last rcadl
+    Left join se_client sc on sc.id = rcadl.client_id
+    <where>
+      <if test="clientName != null">
+        and sc.name = #{clientName,jdbcType=VARCHAR}
+      </if>
+      <if test="startDt != null">
+        and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    ORDER BY rcadl.dt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+    </if>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
index cbd5d43..8c8f8ef 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayMapper.xml
@@ -178,4 +178,53 @@
       rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟-->
+  <select id="getRecordCount" resultType="java.lang.Long">
+    select count(*)
+    from rm_client_amount_day rcad
+           Left join se_client sc on sc.id = rcad.client_id
+    <where>
+      <if test="clientName != null">
+        and sc.name = #{clientName,jdbcType=VARCHAR}
+      </if>
+      <if test="startDt != null">
+        and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    </select>
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+  <select id="getClientAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoClientAmountDay">
+    select
+    CAST(rcad.client_id AS char)AS clientId,
+    rcad.amount as amount,
+    rcad.money as money,
+    rcad.dt as dt,
+    rcad.open_dt_last as openDtLast,
+    rcad.close_dt_last as closeDtLast,
+    rcad.this_amount_last as thisAmountLast,
+    rcad.this_money_last as thisMoneyLast,
+    rcad.this_time_last as thisTimeLast,
+    rcad.rtu_dt_last as rtuDtLast,
+    sc.name as clientName
+    from rm_client_amount_day rcad
+    Left join se_client sc on sc.id = rcad.client_id
+    <where>
+      <if test="clientName != null">
+        and sc.name = #{clientName,jdbcType=VARCHAR}
+      </if>
+      <if test="startDt != null">
+        and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    ORDER BY rcad.dt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+    </if>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index cedbfa8..2dd5d45 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -180,13 +180,19 @@
 			if(ServerProperties.cacheUpDownDataMaxCount <= ServerProperties.cacheUpDownDataWarnCount){
 				throw new Exception("cacheUpDownDataMaxCount蹇呴』澶т簬cacheUpDownDataWarnCount") ;
 			}
-			//娌℃湁涓婅鏁版嵁鐨勫垎閽熸暟锛岃揪鍒拌繖涓垎閽熸暟锛岃涓篟TU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2_100
+			//娌℃湁涓婅鏁版嵁鐨勫垎閽熸暟锛岃揪鍒拌繖涓垎閽熸暟锛岃涓篟TU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2-100
 			ServerProperties.disconnectedByNoUpDataMinutes =  0L + conf.getSetAttrPlusInt(doc, "config.base", "disconnectedByNoUpDataMinutes", null, 1, 100, null) ;
 			if(ServerProperties.disconnectedByNoUpDataMinutes < 1 || ServerProperties.disconnectedByNoUpDataMinutes > 100){
 				throw new Exception("disconnectedByNoUpDataMinutes鍙栧�煎繀椤绘槸1~100") ;
 			}
 			ServerProperties.disconnectedByNoUpDataMinutes = ServerProperties.disconnectedByNoUpDataMinutes * 60 * 1000 ;
 
+			//宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100
+			ServerProperties.workReportDealOneByTimes =  conf.getSetAttrPlusInt(doc, "config.base", "workReportDealOneByTimes", null, 1, 100, null) ;
+			if(ServerProperties.workReportDealOneByTimes < 1 || ServerProperties.workReportDealOneByTimes > 100){
+				throw new Exception("workReportDealOneByTimes鍙栧�煎繀椤绘槸1~100") ;
+			}
+
 			//璁剧疆ID鐢熸垚鍣ㄧ殑鍚庣紑
 			IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue());
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
index e225ebd..c68f753 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -43,4 +43,7 @@
 	//娌℃湁涓婅鏁版嵁鐨勫垎閽熸暟锛岃揪鍒拌繖涓垎閽熸暟锛岃涓篟TU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2000_100000
 	public static Long disconnectedByNoUpDataMinutes = 3000L ;
 
+	//宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆�
+	public static Integer workReportDealOneByTimes = 5 ;
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
index c24d04f..62c90c5 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -1,6 +1,7 @@
 package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
 import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.rtuMw.server.ServerProperties;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
@@ -12,6 +13,9 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @Author liurunyu
  * @Date 2024/2/27 14:20
@@ -21,6 +25,8 @@
 public class TkDealWorkReport extends TaskSurpport {
 
     private static final Logger log = LogManager.getLogger(TkDealWorkReport.class.getName()) ;
+
+    private static final Map<String, Integer> RtuReportTimes = new HashMap<>();
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
     public static final String taskId = "TkDealWorkReport" ;
@@ -35,14 +41,30 @@
         DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
         Object cdObj = dV1_0_1.subData;
         if (cdObj != null && cdObj instanceof DataCd84Vo) {
-            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-            DbSv sv = (DbSv)objs[0] ;
-            PrController controller = (PrController)objs[1] ;
-            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
-            try{
-                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ;
-            }catch (Exception e){
-                log.error("淇濆瓨鎺у埗鍣ㄩ榾寮�宸ヤ綔鎶ユ椂鍙戠敓寮傚父", e);
+            boolean deal = false ;
+            Integer times = RtuReportTimes.get(d.rtuAddr) ;
+            if(times == null){
+                times = 1 ;
+                RtuReportTimes.put(d.rtuAddr, times) ;
+                deal = true ;//绗竴娆�
+            }else{
+                times++ ;
+                if(times > ServerProperties.workReportDealOneByTimes){
+                    times = 1 ;//寰幆绗竴娆�
+                    deal = true ;
+                }
+                RtuReportTimes.put(d.rtuAddr, times) ;
+            }
+            if(deal){
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                DbSv sv = (DbSv)objs[0] ;
+                PrController controller = (PrController)objs[1] ;
+                SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
+                try{
+                    this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄩ榾寮�宸ヤ綔鎶ユ椂鍙戠敓寮傚父", e);
+                }
             }
         }
     }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index 2c5875c..fe018e1 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -18,7 +18,8 @@
 		dbDataIdSuffix锛氭暟鎹簱鏁版嵁id鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 
 		cacheUpDownDataWarnCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鎶ヨ閲忥紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
 		cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
-		disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2_100
+		disconnectedByNoUpDataMinutes锛氭病鏈変笂琛屾暟鎹殑鍒嗛挓鏁帮紝杈惧埌杩欎釜鍒嗛挓鏁帮紝璁や负RTU鏂綉浜嗭紝鍙栧�艰寖鍥存槸2-100
+		workReportDealOneByTimes: 宸ヤ綔鎶ュお棰戠箒锛孨娆′笂鎶ュ鐞�1娆★紝鍙栧�艰寖鍥存槸1-100
 		 -->
 		<base
 			orgTag="ym"
@@ -34,6 +35,7 @@
 			cacheUpDownDataWarnCount="100000"
 			cacheUpDownDataMaxCount="110000"
 			disconnectedByNoUpDataMinutes="3"
+			workReportDealOneByTimes="5"
 		/>
 		
 		<!-- 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
index fd569a6..6c87c31 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
@@ -103,7 +103,7 @@
         if(configXml != null && doc != null){
             for(int num = 1; num <= 10000; num++){
                 if(configXml.existElement(doc, "config.orgs.org" + num)){
-                    String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num,"name", null, false, null) ;
+                    String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num,"tag", null, false, null) ;
                     //璁剧疆鏁版嵁婧�
                     DataSourceContext.set(orgTag);
                     if(!this.existDistricts()){
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java
deleted file mode 100644
index ad62a62..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.dy.pipIrrRemote.controllerAlarmState;
-
-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.voRm.VoControllerAlarmState;
-import com.dy.pipIrrGlobal.voSe.VoActiveCard;
-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 lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * @author :WuZeYu
- * @Date :2024/7/22  20:00
- * @LastEditTime :2024/7/22  20:00
- * @Description
- */
-@Slf4j
-@Tag(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵��", description = "鎺у埗鍣ㄦ姤璀︿笌鐘舵��")
-@RestController
-@RequestMapping(path = "controllerAlarmState")
-public class ControllerAlarmStateCtrl {
-    @Autowired
-    private ControllerAlarmStateSv controllerAlarmStateSv;
-
-
-    /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鍘嗗彶锛�
-     *
-     * @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 = "/getControllerAlarmStateHistory")
-    @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateHistory(@RequestBody QueryVo vo) {
-        try {
-            QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateHistory(vo);
-            return BaseResponseUtils.buildSuccess(res);
-        } catch (Exception e) {
-            log.error("鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佽褰曞紓甯�", e);
-            return BaseResponseUtils.buildException(e.getMessage());
-        }
-    }
-
-
-
-    /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鏈�鏂帮級
-     *
-     * @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 = "/getControllerAlarmStateLast")
-    @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateLast(@RequestBody QueryVo vo) {
-        try {
-            QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateLast(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-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java
deleted file mode 100644
index c1db9fb..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.dy.pipIrrRemote.controllerAlarmState;
-
-import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.daoRm.RmAlarmStateHistoryMapper;
-import com.dy.pipIrrGlobal.daoRm.RmAlarmStateLastMapper;
-import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
-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.List;
-import java.util.Map;
-
-/**
- * @author :WuZeYu
- * @Date :2024/7/22  20:01
- * @LastEditTime :2024/7/22  20:01
- * @Description
- */
-@Slf4j
-@Service
-public class ControllerAlarmStateSv {
-    @Autowired
-    private RmAlarmStateHistoryMapper rmAlarmStateHistoryMapper;
-    @Autowired
-    private RmAlarmStateLastMapper rmAlarmStateLastMapper;
-
-    /**
-     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鍘嗗彶)
-     * @param vo
-     * @return
-     */
-    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateHistory(QueryVo vo) {
-
-        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
-
-        Long itemTotal = rmAlarmStateHistoryMapper.getRecordCount(params);
-
-        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
-        rsVo.pageSize = vo.pageSize;
-        rsVo.pageCurr = vo.pageCurr;
-
-        rsVo.calculateAndSet(itemTotal, params);
-        rsVo.obj = rmAlarmStateHistoryMapper.getControllerAlarmStateHistory(params);
-        return rsVo;
-    }
-
-
-    /**
-     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鏈�鏂�)
-     * @param vo
-     * @return
-     */
-    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateLast(QueryVo vo) {
-
-        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
-
-        Long itemTotal = rmAlarmStateLastMapper.getRecordCount(params);
-
-        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
-        rsVo.pageSize = vo.pageSize;
-        rsVo.pageCurr = vo.pageCurr;
-
-        rsVo.calculateAndSet(itemTotal, params);
-        rsVo.obj = rmAlarmStateLastMapper.getControllerAlarmStateLast(params);
-        return rsVo;
-    }
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ClientAmountDayQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ClientAmountDayQueryVo.java
new file mode 100644
index 0000000..15abb5a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ClientAmountDayQueryVo.java
@@ -0,0 +1,38 @@
+package com.dy.pipIrrRemote.records;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/23  15:55
+ * @LastEditTime :2024/7/23  15:55
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鍐滄埛鏃ョ敤姘撮噺缁熻鏌ヨ鏉′欢")
+public class ClientAmountDayQueryVo extends QueryConditionVo {
+
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String clientName;
+
+    @Schema(description = "缁熻寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startDt;
+
+    @Schema(description = "缁熻缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDt;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ControllerAlarmStateQueryVo.java
similarity index 92%
rename from pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java
rename to pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ControllerAlarmStateQueryVo.java
index 90d11ca..199b9b0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/ControllerAlarmStateQueryVo.java
@@ -1,4 +1,4 @@
-package com.dy.pipIrrRemote.controllerAlarmState;
+package com.dy.pipIrrRemote.records;
 
 import com.dy.common.webUtil.QueryConditionVo;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -21,7 +21,7 @@
 @AllArgsConstructor
 @Builder
 @Schema(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹煡璇㈡潯浠�")
-public class QueryVo extends QueryConditionVo {
+public class ControllerAlarmStateQueryVo extends QueryConditionVo {
 
     @Schema(description = "鍙栨按鍙e悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private String intakeName;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsCtrl.java
new file mode 100644
index 0000000..c012a5e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsCtrl.java
@@ -0,0 +1,153 @@
+package com.dy.pipIrrRemote.records;
+
+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.voRm.VoClientAmountDay;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+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 lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/22  20:00
+ * @LastEditTime :2024/7/22  20:00
+ * @Description
+ */
+@Slf4j
+@Tag(name = "妫�娴嬫帶鍒舵煡璇�", description = "妫�娴嬫帶鍒舵煡璇�")
+@RestController
+@RequestMapping(path = "remoteRecords")
+public class RecordsCtrl {
+    @Autowired
+    private RecordsSv recordsSv;
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鍘嗗彶锛�
+     *
+     * @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 = "/getControllerAlarmStateHistory")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateHistory(@RequestBody ControllerAlarmStateQueryVo vo) {
+        try {
+            QueryResultVo<List<VoControllerAlarmState>> res = recordsSv.getControllerAlarmStateHistory(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佽褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鏈�鏂帮級
+     *
+     * @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 = "/getControllerAlarmStateLast")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateLast(@RequestBody ControllerAlarmStateQueryVo vo) {
+        try {
+            QueryResultVo<List<VoControllerAlarmState>> res = recordsSv.getControllerAlarmStateLast(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鎺у埗鍣ㄨ褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏃ョ敤姘撮噺缁熻鍒楄〃锛堝巻鍙诧級
+     *
+     * @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 = "/getClientAmountDayHistory")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayHistory(@RequestBody ClientAmountDayQueryVo vo) {
+        try {
+            QueryResultVo<List<VoClientAmountDay>> res = recordsSv.getClientAmountDayHistory(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鍐滄埛鏃ョ敤姘撮噺缁熻璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏃ョ敤姘撮噺缁熻鍒楄〃锛堟渶鏂帮級
+     *
+     * @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 = "/getClientAmountDayLast")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoClientAmountDay>>> getClientAmountDayLast(@RequestBody ClientAmountDayQueryVo vo) {
+        try {
+            QueryResultVo<List<VoClientAmountDay>> res = recordsSv.getClientAmountDayLast(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-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsSv.java
new file mode 100644
index 0000000..b5c94a7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/records/RecordsSv.java
@@ -0,0 +1,121 @@
+package com.dy.pipIrrRemote.records;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmAlarmStateHistoryMapper;
+import com.dy.pipIrrGlobal.daoRm.RmAlarmStateLastMapper;
+import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper;
+import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayMapper;
+import com.dy.pipIrrGlobal.voRm.VoClientAmountDay;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
+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.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/22  20:01
+ * @LastEditTime :2024/7/22  20:01
+ * @Description
+ */
+@Slf4j
+@Service
+public class RecordsSv {
+    @Autowired
+    private RmAlarmStateHistoryMapper rmAlarmStateHistoryMapper;
+    @Autowired
+    private RmAlarmStateLastMapper rmAlarmStateLastMapper;
+
+    @Autowired
+    private RmClientAmountDayLastMapper rmClientAmountDayLastMapper;
+    @Autowired
+    private RmClientAmountDayMapper rmClientAmountDayMapper;
+
+
+    /**
+     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鍘嗗彶)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateHistory(ControllerAlarmStateQueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmAlarmStateHistoryMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmAlarmStateHistoryMapper.getControllerAlarmStateHistory(params);
+        return rsVo;
+    }
+
+
+    /**
+     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鏈�鏂�)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateLast(ControllerAlarmStateQueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmAlarmStateLastMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmAlarmStateLastMapper.getControllerAlarmStateLast(params);
+        return rsVo;
+    }
+
+
+    /**
+     * 鑾峰緱涓�椤靛啘鎴锋棩鐢ㄦ按閲忕粺璁¤褰�(鍘嗗彶)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoClientAmountDay>> getClientAmountDayHistory(ClientAmountDayQueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmClientAmountDayMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoClientAmountDay>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmClientAmountDayMapper.getClientAmountDayHistory(params);
+        return rsVo;
+    }
+
+
+
+    /**
+     * 鑾峰緱涓�椤靛啘鎴锋棩鐢ㄦ按閲忕粺璁¤褰�(鏈�鏂�)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoClientAmountDay>> getClientAmountDayLast(ClientAmountDayQueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmClientAmountDayLastMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoClientAmountDay>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmClientAmountDayLastMapper.getClientAmountDayLast(params);
+        return rsVo;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
index e2ab54b..b15cb61 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -29,8 +29,6 @@
 import java.util.Objects;
 import java.util.UUID;
 
-//import org.springframework.cache.CacheManager;
-
 /**
  * 娉ㄨВTag 鍦ˋPI涓樉绀猴細 Tag 娉ㄨВ, 缁欐暣涓帴鍙h捣浜嗕釜鍚嶅瓧涓庢弿杩�"
  * 娉ㄨВApiResponses 鍜� 娉ㄨВApiResponse 鐢ㄦ潵閰嶇疆鍝嶅簲锛�
@@ -70,7 +68,7 @@
             )
     })
     @GetMapping(path = "allOrg")
-    public BaseResponse<List<Org>> allOrg(){
+    public BaseResponse<List<Org.OrgVo>> allOrg(){
         //List<Org> list = Arrays.asList(Org.Ym, Org.Pj) ;
         return BaseResponseUtils.buildSuccess(Org.OrgList);
     }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
index 9098e5b..5f6339c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/util/SsoListener.java
@@ -1,22 +1,25 @@
 package com.dy.sso.util;
 
-import jakarta.servlet.ServletContext;
-import jakarta.servlet.ServletContextEvent;
-import jakarta.servlet.ServletContextListener;
-import lombok.extern.slf4j.Slf4j;
+import com.dy.pipIrrGlobal.util.OrgListenerSupport;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.stereotype.Component;
 
-@Slf4j
-public class SsoListener implements ServletContextListener {
+@Component
+public class SsoListener extends OrgListenerSupport implements ApplicationListener<ApplicationReadyEvent> {
+
 
     @Override
-    public void contextInitialized(ServletContextEvent event) {
-        ServletContextListener.super.contextInitialized(event);
-        ServletContext con = event.getServletContext();
+    public void onApplicationEvent(ApplicationReadyEvent event) {
+        try {
+            //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+            Thread.sleep(1000L);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } finally {
+            super.init();
+        }
     }
 
-    @Override
-    public void contextDestroyed(ServletContextEvent event) {
-        ServletContextListener.super.contextDestroyed(event);
-    }
 
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
index bd2ef1d..e658f54 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
@@ -18,7 +18,7 @@
                 })
         }
 )
-@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
+@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoRm", "com.dy.pipIrrGlobal.daoPr", "com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrStatisticsApplication {
 
     public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StClient.java
new file mode 100644
index 0000000..7a917ce
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StClient.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrStatistics.listeners;
+
+import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayMapper;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 9:31
+ * @Description
+ */
+@Component
+public class StClient {
+
+    private static Logger log = LogManager.getLogger(StClient.class.getName()) ;
+
+    @Autowired
+    protected RmClientAmountDayMapper rmClientAmountDayDao ;
+
+    private String statisticsYyyy_mm;
+    private Long statisticsStartId ;
+    private Long statisticsEndId ;
+
+    protected void statistics(String statisticsYyyy_mm,
+                              Long statisticsStartId,
+                              Long statisticsEndId){
+        this.statisticsYyyy_mm = statisticsYyyy_mm ;
+        this.statisticsStartId = statisticsStartId ;
+        this.statisticsEndId = statisticsEndId ;
+        this.statisticsMonth() ;
+        this.statisticsYear() ;
+    }
+
+    /**
+     * 鏈堢粺璁�---鍐滄埛
+     */
+    private void statisticsMonth(){
+        log.info(statisticsYyyy_mm + "  " + statisticsStartId + "  " + statisticsEndId);
+        log.info(rmClientAmountDayDao.toString());
+    }
+
+    /**
+     * 骞寸粺璁�---鍐滄埛
+     */
+    private void statisticsYear(){
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StIntake.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StIntake.java
new file mode 100644
index 0000000..1544c52
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StIntake.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrStatistics.listeners;
+
+import com.dy.pipIrrGlobal.daoRm.RmIntakeAmountDayMapper;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 9:30
+ * @Description
+ */
+@Component
+public class StIntake {
+
+    private static Logger log = LogManager.getLogger(StIntake.class.getName()) ;
+
+    @Autowired
+    protected RmIntakeAmountDayMapper rmIntakeAmountDayDao ;
+
+    private String statisticsYyyy_mm;
+    private Long statisticsStartId ;
+    private Long statisticsEndId ;
+
+    protected void statistics(String statisticsYyyy_mm,
+                              Long statisticsStartId,
+                              Long statisticsEndId){
+        this.statisticsYyyy_mm = statisticsYyyy_mm ;
+        this.statisticsStartId = statisticsStartId ;
+        this.statisticsEndId = statisticsEndId ;
+        this.statisticsMonth() ;
+        this.statisticsYear() ;
+    }
+
+    /**
+     * 鏈堢粺璁�---鍙栨按鍙�
+     */
+    private void statisticsMonth(){
+        log.info(statisticsYyyy_mm + "  " + statisticsStartId + "  " + statisticsEndId);
+        log.info(rmIntakeAmountDayDao.toString());
+    }
+
+    /**
+     * 骞寸粺璁�---鍙栨按鍙�
+     */
+    private void statisticsYear(){
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLoss.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLoss.java
new file mode 100644
index 0000000..f2d6b90
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLoss.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrStatistics.listeners;
+
+import com.dy.pipIrrGlobal.daoRm.RmLossHistoryMapper;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 9:10
+ * @Description
+ */
+@Component
+public class StLoss {
+
+    private static Logger log = LogManager.getLogger(StLoss.class.getName()) ;
+
+    @Autowired
+    protected RmLossHistoryMapper rmLossHistoryDao ;
+
+    private String statisticsYyyy_mm;
+    private Long statisticsStartId ;
+    private Long statisticsEndId ;
+
+    protected void statistics(String statisticsYyyy_mm,
+                              Long statisticsStartId,
+                              Long statisticsEndId){
+        this.statisticsYyyy_mm = statisticsYyyy_mm ;
+        this.statisticsStartId = statisticsStartId ;
+        this.statisticsEndId = statisticsEndId ;
+        this.statisticsMonth() ;
+        this.statisticsYear() ;
+    }
+
+    /**
+     * 鏈堢粺璁�---婕忔崯
+     */
+    private void statisticsMonth(){
+        log.info(statisticsYyyy_mm + "  " + statisticsStartId + "  " + statisticsEndId);
+        log.info(rmLossHistoryDao.toString());
+    }
+
+    /**
+     * 骞寸粺璁�---婕忔崯
+     */
+    private void statisticsYear(){
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLossSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLossSv.java
new file mode 100644
index 0000000..9b6ab74
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLossSv.java
@@ -0,0 +1,9 @@
+package com.dy.pipIrrStatistics.listeners;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/24 11:24
+ * @Description
+ */
+public class StLossSv {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsJob.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsJob.java
new file mode 100644
index 0000000..a7ecb8d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsJob.java
@@ -0,0 +1,68 @@
+package com.dy.pipIrrStatistics.listeners;
+
+import com.dy.common.schedulerTask.TaskJob;
+import com.dy.common.schedulerTask.Test;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.common.util.DateTime;
+import com.dy.common.util.IDLongGenerator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/22 16:41
+ * @Description
+ */
+public class StatisticsJob extends TaskJob {
+
+    private static Logger log = LogManager.getLogger(Test.class.getName()) ;
+
+    private StLoss stLoss ;
+
+    private StIntake stIntake ;
+
+    private StClient stClient ;
+
+    private String statisticsYyyy_mm;
+    private Long statisticsStartId ;
+    private Long statisticsEndId ;
+
+    @Override
+    public void execute(JobExecutionContext ctx) throws JobExecutionException {
+        stLoss = SpringContextUtil.getBean(StLoss.class);
+        stIntake = SpringContextUtil.getBean(StIntake.class);
+        stClient = SpringContextUtil.getBean(StClient.class);
+        if(stLoss != null && stIntake != null && stClient != null){
+            int[] ymd = DateTime.yyyy_MM_dd_2_ymdGroup(DateTime.yyyy_MM_dd()) ;
+            if(ymd[2] == 1){
+                //缁熻涓婁釜鏈堢殑
+                statisticsYyyy_mm = DateTime.lastMonth_ym() ;//缁熻鏈�
+                int lastYear = Integer.parseInt(statisticsYyyy_mm.substring(0, 4)) ;
+                int lastMonth = Integer.parseInt(statisticsYyyy_mm.substring(5, 7)) ;
+                statisticsStartId = IDLongGenerator.generateOneDayStartId(lastYear, lastMonth, 1) ;
+                statisticsEndId = IDLongGenerator.generateOneDayEndId(lastYear, lastMonth, 31) ;
+            }else{
+                //缁熻鏈湀鐨�
+                statisticsYyyy_mm = ymd[0] + "-" + ymd[1] ;//缁熻鏈�
+                statisticsStartId = IDLongGenerator.generateOneDayStartId(ymd[0], ymd[1], 1) ;
+                statisticsEndId = IDLongGenerator.generateOneDayEndId(ymd[0], ymd[1], 31) ;
+            }
+            doStatistics() ;
+        }else{
+            log.error("鏈兘浠嶴pring瀹瑰櫒涓緱鍒扮粺璁ean");
+        }
+    }
+
+    /**
+     * 缁熻
+     */
+    private void doStatistics(){
+        stLoss.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ;
+        stIntake.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ;
+        stClient.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsListener.java
new file mode 100644
index 0000000..4d19109
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsListener.java
@@ -0,0 +1,68 @@
+package com.dy.pipIrrStatistics.listeners;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/22 14:39
+ * @Description
+ */
+
+import com.dy.common.schedulerTask.SchedulerTaskSupport;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.lang.NonNull;
+import org.springframework.stereotype.Component;
+
+/**
+ * 鐩戝惉鍣紝瀹炵幇鍔熻兘锛氬湪绯荤粺鍚姩鏃跺垵濮嬪寲锛屽悜鏁版嵁搴撲腑鎻掑叆鏁版嵁
+ * 鏈洃鍚櫒涓嶈兘閲囩敤ServletContextListener鏂瑰紡锛屽洜涓篠ervlet涓婁笅鏂嘋ontext鍒涘缓鍚�
+ * Spring瀹瑰櫒骞舵病鏈夊垱寤哄畬锛岃�屾湰绫讳腑鐢ㄤ簡Spring瀹瑰櫒涓殑Bean锛屽嵆*Dao 銆�
+ * 鎵�浠ラ噰鐢ㄤ簡Spring浜嬩欢鐩戝惉鍣ㄦ潵瀹炵幇
+ */
+@Component
+public class StatisticsListener implements ApplicationListener<ApplicationReadyEvent> {
+
+    private static Logger log = LogManager.getLogger(StatisticsListener.class.getName()) ;
+
+    private static final String JobName = "statisticsJob" ;
+    private static final String JobGroupName = "statisticsGroup" ;
+    private static final Integer ThreadPoolMaxCount = 1 ;//绾跨▼姹犵嚎绋嬫渶澶т釜鏁�
+    private static final Integer ThreadPoolPriority = 5 ;//绾跨▼浼樺厛绾�
+
+    @Value("${auto-statistics.startHour: 0}")
+    protected Integer startHour;//缁熻寮�濮嬪皬鏃�
+
+    @Value("${auto-statistics.startMinute: 5}")
+    protected Integer startMinute;//缁熻寮�濮嬪垎閽�
+
+    /**
+     * SpringBoot瀹瑰櫒宸茬粡鍑嗗濂戒簡锛屾墽琛屼笅闈㈡柟娉�
+     * @param event 浜嬩欢
+     */
+    @Override
+    public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
+        try {
+            //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
+            Thread.sleep(1000L);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }finally {
+            try{
+                this.start(event);
+            }catch (Exception e){
+                log.error("娉ㄥ唽缁熻瀹氭椂浠诲姟鍑洪敊", e);
+            }
+
+        }
+    }
+    /**
+     * 鍒濆鍖�
+     */
+    private void start(ApplicationReadyEvent event) throws Exception{
+        SchedulerTaskSupport.setThreadPoolPro(ThreadPoolMaxCount, ThreadPoolPriority);
+        SchedulerTaskSupport.addDailyJob(JobName, JobGroupName, StatisticsJob.class, null, startHour, startMinute ) ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java
deleted file mode 100644
index c41f507..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.dy.pipIrrStatistics.listeners;
-
-/**
- * @Author: liurunyu
- * @Date: 2024/7/22 14:39
- * @Description
- */
-
-import com.dy.common.util.ConfigXml;
-import com.dy.common.webListener.ConfigListener;
-import org.jdom2.Document;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.event.ApplicationReadyEvent;
-import org.springframework.context.ApplicationListener;
-import org.springframework.lang.NonNull;
-import org.springframework.stereotype.Component;
-
-import java.net.URL;
-
-/**
- * 鐩戝惉鍣紝瀹炵幇鍔熻兘锛氬湪绯荤粺鍚姩鏃跺垵濮嬪寲锛屽悜鏁版嵁搴撲腑鎻掑叆鏁版嵁
- * 鏈洃鍚櫒涓嶈兘閲囩敤ServletContextListener鏂瑰紡锛屽洜涓篠ervlet涓婁笅鏂嘋ontext鍒涘缓鍚�
- * Spring瀹瑰櫒骞舵病鏈夊垱寤哄畬锛岃�屾湰绫讳腑鐢ㄤ簡Spring瀹瑰櫒涓殑Bean锛屽嵆*Dao 銆�
- * 鎵�浠ラ噰鐢ㄤ簡Spring浜嬩欢鐩戝惉鍣ㄦ潵瀹炵幇
- */
-@Component
-public class StatisticsMonthListener implements ApplicationListener<ApplicationReadyEvent> {
-
-    @Value("${auto-statistics.month.startDay: 1}")
-    private Integer startDay ;//鏈堢粺璁″紑濮嬫棩鏈�
-
-    @Value("${auto-statistics.month.startHour: 0}")
-    private Integer startHour ;//鏈堢粺璁″紑濮嬪皬鏃�
-
-    @Value("${auto-statistics.month.startMinute: 5}")
-    private Integer startMinute ;//鏈堢粺璁″紑濮嬪垎閽�
-
-    /**
-     * SpringBoot瀹瑰櫒宸茬粡鍑嗗濂戒簡
-     * @param event 浜嬩欢
-     */
-    @Override
-    public void onApplicationEvent(@NonNull ApplicationReadyEvent event) {
-        try {
-            //绛�1绉掞紝绛夊緟com.alibaba.druid.pool.DruidDataSource瀹炲鍖栧畬鎴�
-            Thread.sleep(1000L);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }finally {
-            this.start(event);
-        }
-    }
-    /**
-     * 瀹炲鍖�
-     */
-    private void start(ApplicationReadyEvent event){
-
-    }
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml
index 0031756..5e27163 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
     profiles:
-        include: global, database
+        include: global, database, database-ym, database-pj, database-sp
 
 #actutor鐨剋eb绔彛
 management:
@@ -10,9 +10,9 @@
 server:
     port: ${pipIrr.statistics.webPort}
     servlet:
-        context-path: /sso #web璁块棶涓婁笅鏂囪矾寰�
+        context-path: /statistics #web璁块棶涓婁笅鏂囪矾寰�
         context-parameters:
             #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99
             IdSuffix: ${pipIrr.statistics.IdSuffix}
             #ConfigListener涓簲鐢�
-            configFileNames: config-global.xml,config-sso.xml
+            configFileNames: config-global.xml

--
Gitblit v1.8.0