Forráskód Böngészése

自来水预测数据接口 增加预测数据当前月自添加机制

1037015548@qq.com 1 éve
szülő
commit
cd7433121f

+ 6 - 6
sql.properties

@@ -4,14 +4,14 @@ spring.datasource.data.password=kpr.23417.postgres
 spring.datasource.data.driver-class-name=org.postgis.DriverWrapper
 
 #pgsql 自来水水量预测数据库源
-#spring.datasource.db2.jdbc-url=jdbc:postgresql_postGIS://119.96.165.176:5432/water_volume_prediction?useSSL=false&useAffectedRows=false&allowMultiQueries=true
-#spring.datasource.db2.username=postgres
-#spring.datasource.db2.password=kpr.23417.postgres
-#spring.datasource.db2.driver-class-name=org.postgis.DriverWrapper
-spring.datasource.db2.jdbc-url=jdbc:postgresql_postGIS://10.101.5.50:5432/water_volume_prediction?useSSL=false&useAffectedRows=false&allowMultiQueries=true
+spring.datasource.db2.jdbc-url=jdbc:postgresql_postGIS://119.96.165.176:5432/water_volume_prediction?useSSL=false&useAffectedRows=false&allowMultiQueries=true
 spring.datasource.db2.username=postgres
-spring.datasource.db2.password=ygt.23417.postgres
+spring.datasource.db2.password=kpr.23417.postgres
 spring.datasource.db2.driver-class-name=org.postgis.DriverWrapper
+#spring.datasource.db2.jdbc-url=jdbc:postgresql_postGIS://10.101.5.50:5432/water_volume_prediction?useSSL=false&useAffectedRows=false&allowMultiQueries=true
+#spring.datasource.db2.username=postgres
+#spring.datasource.db2.password=ygt.23417.postgres
+#spring.datasource.db2.driver-class-name=org.postgis.DriverWrapper
 
 
 spring.datasource.data2.jdbc-url=jdbc:postgresql://119.96.165.176:5432/water_smart_central?useSSL=false&useAffectedRows=false&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8

+ 10 - 2
src/main/java/com/shkpr/service/aimodelpower/bizmgr/KprAimWaterCollecationBizFun.java

@@ -298,7 +298,7 @@ public class KprAimWaterCollecationBizFun {
     }
 
     //TODO 定时任务 定时添加预测数据
-    public static void insertYuceDataScheduled(){
+    public static void insertYuceDataScheduled(String monthNow){
         System.out.println("添加预测日数据正在进行"+ TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT));
         try {
             //先获取配置项 根据配置项来进行逻辑添加
@@ -312,6 +312,10 @@ public class KprAimWaterCollecationBizFun {
                     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                     String yearStr = month.split("-")[0];
                     String monthStr = month.split("-")[1];
+                    if(!StringUtils.isEmpty(monthNow)){
+                        yearStr = monthNow.split("-")[0];
+                        monthStr = monthNow.split("-")[1];
+                    }
                     LocalDateTime startDate = LocalDateTime.now().withYear(Integer.valueOf(yearStr))
                             .withMonth(Integer.valueOf(monthStr)).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
                     LocalDateTime endDate = startDate.with(TemporalAdjusters.lastDayOfMonth());
@@ -469,7 +473,7 @@ public class KprAimWaterCollecationBizFun {
     }
 
     //TODO 定时任务 定时添加小时预测数据
-    public static void insertYuceHourDataScheduled(){
+    public static void insertYuceHourDataScheduled(String monthNow){
         System.out.println("添加预测小时数据正在进行"+ TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT));
         try {
             //先获取配置项 根据配置项来进行逻辑添加
@@ -483,6 +487,10 @@ public class KprAimWaterCollecationBizFun {
                     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                     String yearStr = month.split("-")[0];
                     String monthStr = month.split("-")[1];
+                    if(!StringUtils.isEmpty(monthNow)){
+                        yearStr = monthNow.split("-")[0];
+                        monthStr = monthNow.split("-")[1];
+                    }
                     LocalDateTime startDate = LocalDateTime.now().withYear(Integer.valueOf(yearStr))
                             .withMonth(Integer.valueOf(monthStr)).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
                     LocalDateTime endDate = startDate.with(TemporalAdjusters.lastDayOfMonth());

+ 57 - 38
src/main/java/com/shkpr/service/aimodelpower/globalmgr/ScheduleTaskMgr.java

@@ -18,6 +18,9 @@ import javax.annotation.PreDestroy;
 import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.Time;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -107,68 +110,84 @@ public class ScheduleTaskMgr {
         KprAimTapWaterBizFun.checkRecordData();
     }
 
-    //TODO 每天整点的15分执行预测日数据
+    //TODO 每天整点的15分执行配置月预测日数据
     @Scheduled(cron = "0 15 * * * *")
 //    @Scheduled(cron = "0 0/1 * * * ?")
     public void executeTbMWater() {
-        KprAimWaterCollecationBizFun.insertYuceDataScheduled();
+        KprAimWaterCollecationBizFun.insertYuceDataScheduled(null);
     }
 
-    //TODO 每天整点的16分执行预测日小时数据
+    //TODO 每天整点的16分执行配置月预测日小时数据
     @Scheduled(cron = "0 16 * * * *")
     public void executeTbMHourWater() {
-        KprAimWaterCollecationBizFun.insertYuceHourDataScheduled();
+        KprAimWaterCollecationBizFun.insertYuceHourDataScheduled(null);
     }
 
-    //TODO 启动时执行 测试方法
-    @PostConstruct
-    public void initTest(){
-        Timer timer = new Timer();
-        // 创建定时器任务
-        TimerTask timerTask = new TimerTask() {
-            @Override
-            public void run() {
-//                KprAimTapWaterBizFun.checkRecordAllData();
-//                KprAimTapWaterBizFun.checkRecordData();
-                KprAimWaterCollecationBizFun.insertYuceDataScheduled();
-            }
-        };
-        timer.schedule(timerTask, 5000);
-
-        Timer timer2 = new Timer();
-        TimerTask timerTask1 = new TimerTask() {
-            @Override
-            public void run() {
-                KprAimWaterCollecationBizFun.insertYuceHourDataScheduled();
-            }
-        };
-        timer2.schedule(timerTask1, 10000);
+    //TODO 每天整点的15分执行当前月预测日数据
+    @Scheduled(cron = "0 20 * * * *")
+//    @Scheduled(cron = "0 0/1 * * * ?")
+    public void executeTbMWaterNow() {
+        String time = LocalDateTime.now().minusYears(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        KprAimWaterCollecationBizFun.insertYuceDataScheduled(time);
     }
 
+    //TODO 每天整点的16分执行预测当前月日小时数据
+    @Scheduled(cron = "0 21 * * * *")
+    public void executeTbMHourWaterNow() {
+        String time = LocalDateTime.now().minusYears(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        KprAimWaterCollecationBizFun.insertYuceHourDataScheduled(time);
+    }
 
-    //TODO 启动时执行一次
+    //TODO 启动时执行 测试方法
 //    @PostConstruct
-//    public void initOneTapWater(){
+//    public void initTest(){
+//        String time = LocalDateTime.now().minusYears(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
 //        Timer timer = new Timer();
 //        // 创建定时器任务
 //        TimerTask timerTask = new TimerTask() {
 //            @Override
 //            public void run() {
-//                KprAimTapWaterBizFun.initTapWaterData();
+////                KprAimTapWaterBizFun.checkRecordAllData();
+////                KprAimTapWaterBizFun.checkRecordData();
+//                KprAimWaterCollecationBizFun.insertYuceDataScheduled(time);
 //            }
 //        };
-//        timer.schedule(timerTask, 10000); // 10秒后执行一次
-//    }
-
-//    @PostConstruct
-//    public void initWaterRecordAll(){
-//        Timer timer = new Timer();
+//        timer.schedule(timerTask, 5000);
+//
+//        Timer timer2 = new Timer();
 //        TimerTask timerTask1 = new TimerTask() {
 //            @Override
 //            public void run() {
-//                KprAimTapWaterBizFun.initWaterCollecationReacordAll();
+//                KprAimWaterCollecationBizFun.insertYuceHourDataScheduled(time);
 //            }
 //        };
-//        timer.schedule(timerTask1,11000);//11秒后执行一次
+//        timer2.schedule(timerTask1, 10000);
 //    }
+
+
+    //TODO 启动时执行一次
+    @PostConstruct
+    public void initOneTapWater(){
+        Timer timer = new Timer();
+        // 创建定时器任务
+        TimerTask timerTask = new TimerTask() {
+            @Override
+            public void run() {
+                KprAimTapWaterBizFun.initTapWaterData();
+            }
+        };
+        timer.schedule(timerTask, 10000); // 10秒后执行一次
+    }
+
+    @PostConstruct
+    public void initWaterRecordAll(){
+        Timer timer = new Timer();
+        TimerTask timerTask1 = new TimerTask() {
+            @Override
+            public void run() {
+                KprAimTapWaterBizFun.initWaterCollecationReacordAll();
+            }
+        };
+        timer.schedule(timerTask1,11000);//11秒后执行一次
+    }
 }