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) ; 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()) ; } 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个ID @@ -114,17 +114,17 @@ //上次生成ID 与本次生成ID 不在同一秒内 last = now ; add = 0 ; id = last * chengShu + add ++; id = last * chengShu + add++; }else{ //上次生成ID 与本次生成ID 在同一秒内 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) + "毫秒"); // pipIrr-platform/pipIrr-global/src/bak/RmLossHistory.java
File was deleted pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.java
File was deleted pipIrr-platform/pipIrr-global/src/bak/RmLossHistoryMapper.xml
File was deleted pipIrr-platform/pipIrr-global/src/bak/RmLossLast.java
File was deleted pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.java
File was deleted pipIrr-platform/pipIrr-global/src/bak/RmLossLastMapper.xml
File was deleted pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -149,10 +149,7 @@ - /sso/sso - /remote/comRes/receive - /wx/comRes/receive #自动统计配置 #自动统计配置,自动统计定时任务会每天定时进行 auto-statistics: #月统计 month: startDay: 1 startHour: 0 startMinute: 5 startHour: 9 #开始小时 0 startMinute: 51 #开始分钟 5 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") ; } //没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2_100 //没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是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 ; //工作报太频繁,N次上报处理1次,取值范围是1-100 ServerProperties.workReportDealOneByTimes = conf.getSetAttrPlusInt(doc, "config.base", "workReportDealOneByTimes", null, 1, 100, null) ; if(ServerProperties.workReportDealOneByTimes < 1 || ServerProperties.disconnectedByNoUpDataMinutes > 100){ throw new Exception("workReportDealOneByTimes取值必须是1~100") ; } //设置ID生成器的后缀 IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue()); pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -43,4 +43,7 @@ //没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2000_100000 public static Long disconnectedByNoUpDataMinutes = 3000L ; //工作报太频繁,N次上报处理1次 public static Integer workReportDealOneByTimes = 5 ; } 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<>(); //类ID,一定与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和name会有值 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和name会有值 try{ this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ; }catch (Exception e){ log.error("保存控制器阀开工作报时发生异常", e); } } } } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -18,12 +18,13 @@ dbDataIdSuffix:数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1 cacheUpDownDataWarnCount:上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2_100 disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100 workReportDealOneByTimes: 工作报太频繁,N次上报处理1次,取值范围是1-100 --> <base orgTag="ym" isLowPower="false" onlyDealRtus="532328059995" onlyDealRtus="" onlyOneProtocol="false" downComandMaxResendTimes="1" commandSendInterval="2" @@ -34,6 +35,7 @@ cacheUpDownDataWarnCount="100000" cacheUpDownDataMaxCount="110000" disconnectedByNoUpDataMinutes="3" workReportDealOneByTimes="5" /> <!-- 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) { pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StClient.java
New file @@ -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(){ } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StIntake.java
New file @@ -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(){ } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StLoss.java
New file @@ -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(){ } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsJob.java
New file @@ -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("未能从Spring容器中得到统计bean"); } } /** * 统计 */ private void doStatistics(){ stLoss.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; stIntake.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; stClient.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsListener.java
New file @@ -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方式,因为Servlet上下文Context创建后 * 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 ) ; } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/listeners/StatisticsMonthListener.java
File was deleted 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的web端口 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