Browse Source

江津 优化泵组和水量预测定时任务, 提前执行时间,并联合逻辑

1037015548@qq.com 2 months ago
parent
commit
860db98a35

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/bizmgr/KprAimTapWaterBizFun.java

@@ -59,7 +59,7 @@ public class KprAimTapWaterBizFun {
                             //TODO 根据当前配置信息item 查询远通数据中的历史数据
                             //TODO 首先查询当前水厂设备的从昨天之后到得到数据的数据
                             LocalDateTime today = LocalDateTime.now();
-                            LocalDateTime startDateTime = today.withMinute(0).withSecond(0).withNano(0).minusHours(6);
+                            LocalDateTime startDateTime = today.withMinute(0).withSecond(0).withNano(0).minusHours(2);
 
                             //TODO 需计算的循环天数
 

+ 4 - 1
src/main/java/com/shkpr/service/aimodelpower/bizmgr/KprAimWaterCollecationBizFun.java

@@ -1043,7 +1043,7 @@ public class KprAimWaterCollecationBizFun {
             if("water_volume_prediction_jiangjin2".equals(databaseName)){
                 orgConfig = getWaterTapWaterApi().getOrgConfig(false,0,0,"");
             }
-            for (int i = 0;i<=3;i++){
+            for (int i = 0;i<1;i++){
                 LocalDateTime dateNow = startDate.minusDays(-i);//当前循环时间
                  //TODO 数据库操作 A 调用对应时间预测接口 B 在修改实际值
                  DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -1097,6 +1097,9 @@ public class KprAimWaterCollecationBizFun {
                     .withMonth(Integer.valueOf(monthStr)).withHour(0).withMinute(0).withSecond(0).withNano(0);
 
             List<Map<String,Object>> orgConfig = getWaterTapWaterApi().getOrgConfig(false,0,0," AND org_name not like '%水厂'");
+            if("water_volume_prediction_jiangjin2".equals(databaseName)) {
+                orgConfig = getWaterTapWaterApi().getOrgConfig(false, 0, 0,"");
+            }
             //TODO 总体逻辑: 先查询指定月上一年的每日平均值,再按平均值的上下啊百分比去插入指定的浮动百分比数据
             for (int i = 0;i<1;i++){
                 LocalDateTime dateNow = startDate.minusDays(-i);//当前循环时间

+ 41 - 77
src/main/java/com/shkpr/service/aimodelpower/globalmgr/ScheduleTaskMgr.java

@@ -102,11 +102,37 @@ public class ScheduleTaskMgr {
         }
     }
 
-    //TODO 每天整点的五分执行检查小时用水量是否对齐,检查时间范围为当前时间到昨天
-    @Scheduled(cron = "0 5 * * * *")
+    //TODO 每天整点的五分执行检查用水量是否对齐,检查时间范围为当前时间到昨天
+    @Scheduled(cron = "0 15 * * * *")
 //    @Scheduled(cron = "0 0/1 * * * ?")
-    public void executeTaskEveryHourAtTenMinutesRecordAll() {
+    public void executeWork() {
         KprAimTapWaterBizFun.checkRecordAllData();
+        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
+        //TODO 当前月预测日数据
+        Timer timer = new Timer();
+        TimerTask timerTask = new TimerTask() {
+            @Override
+            public void run() {
+                KprAimWaterCollecationBizFun.insertYuceDayAddData(time);
+            }
+        };
+        timer.schedule(timerTask, 1000);
+
+        Timer timer2 = new Timer();
+        TimerTask timerTask2 = new TimerTask() {
+            @Override
+            public void run() {
+                //TODO 当前月预测水量数据
+                KprAimWaterCollecationBizFun.insertYuceHourAddData(time);
+                //TODO 当前月泵的日小时用电量数据
+                KprAimWaterCollecationBizFun.initPumpPowerZero();
+                //TODO 预测泵组优化小时数据
+                KprAimWaterCollecationBizFun.insertYucePump(time);
+                //TODO 修改泵组优化小时数据的实际电耗
+                KprAimWaterCollecationBizFun.insertYucePumpReal(time,LocalDateTime.now().getDayOfMonth());
+            }
+        };
+        timer2.schedule(timerTask2, 1000);
     }
 
     //TODO 每天整点的十分执行检查小时用水量是否对齐,检查时间范围为当前时间到昨天
@@ -115,51 +141,6 @@ public class ScheduleTaskMgr {
         KprAimTapWaterBizFun.checkRecordData();
     }
 
-    //TODO 每天每小时的20分执行当前月预测日数据
-    @Scheduled(cron = "0 20 * * * *")
-//    @Scheduled(cron = "0 0/1 * * * ?")
-    public void executeTbMWaterNow() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        KprAimWaterCollecationBizFun.insertYuceDayAddData(time);
-    }
-
-    //TODO 每天每小时的21分执行预测当前月日小时数据
-    @Scheduled(cron = "0 21 * * * *")
-    public void executeTbMHourWaterNow() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        KprAimWaterCollecationBizFun.insertYuceHourAddData(time);
-//        KprAimWaterCollecationBizFun.insertYuceHourDataScheduled(time);
-    }
-
-    //TODO 每天每小时的20分执行预测当前月泵的日小时用电量数据
-    @Scheduled(cron = "0 20 * * * *")
-    public void executeTbMHourPumpPower() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        //TODO 实际调用调度模型的接口
-        KprAimWaterCollecationBizFun.initPumpPowerZero();
-    }
-    //TODO 每天每小时的25分执行预测当前月泵的日小时数据
-    @Scheduled(cron = "0 25 * * * *")
-    public void executeTbMHourPumpNow() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        //TODO 实际调用调度模型的接口
-        KprAimWaterCollecationBizFun.insertYucePump(time);
-    }
-    @Scheduled(cron = "0 35 * * * *")
-    public void executeTbMHour35PumpNow() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-        //TODO 实际调用调度模型的接口
-        KprAimWaterCollecationBizFun.insertYucePump(time);
-    }
-    //TODO 每天每五分钟执行预测当前月泵的日实际小时数据
-    @Scheduled(cron = "0 30 * * * *")
-    public void executeTbMHourRealPumpNow() {
-        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-//                KprAimWaterCollecationBizFun.insertYuceHourData(time);
-        //TODO 实际调用调度模型的接口
-        KprAimWaterCollecationBizFun.insertYucePumpReal(time,LocalDateTime.now().getDayOfMonth());
-    }
-
     //TODO 启动时执行 测试方法
 //    @PostConstruct
 //    public void initTest(){
@@ -211,32 +192,6 @@ public class ScheduleTaskMgr {
             }
         };
         timer.schedule(timerTask1,11000);//11秒后执行一次
-
-        Timer timer2 = new Timer();
-        TimerTask timerTask2 = new TimerTask() {
-            @Override
-            public void run() {
-                KprAimTapWaterBizFun.checkRecordAllData();
-                String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-                Timer timer3=new Timer();
-                Timer timer4=new Timer();
-                TimerTask timerTask3 = new TimerTask(){
-                    @Override
-                    public void run() {
-                        KprAimWaterCollecationBizFun.insertYuceDayAddData(time);
-                    }
-                };
-                timer3.schedule(timerTask3,1000);
-                TimerTask timerTask4 = new TimerTask(){
-                    @Override
-                    public void run() {
-                        KprAimWaterCollecationBizFun.insertYuceHourAddData(time);
-                    }
-                };
-                timer4.schedule(timerTask4,1000);
-            }
-        };
-        timer2.schedule(timerTask2,11000);//11秒后执行一次
     }
     //TODO 启动时跑今天泵的数据
     @PostConstruct
@@ -248,7 +203,7 @@ public class ScheduleTaskMgr {
                 String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
 //                KprAimWaterCollecationBizFun.insertYuceHourData(time);
                 //TODO 实际调用调度模型的接口
-                KprAimWaterCollecationBizFun.insertYucePumpReal(time,15);
+                KprAimWaterCollecationBizFun.insertYucePumpReal(time,LocalDateTime.now().getDayOfMonth());
             }
         };
         timer.schedule(timerTask1,9000);//9秒后执行一次
@@ -256,15 +211,24 @@ public class ScheduleTaskMgr {
 
     @PostConstruct
     public void initPumpPowerCons(){
+        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
         Timer timer = new Timer();
         TimerTask timerTask1 = new TimerTask() {
             @Override
             public void run() {
-                String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
-//                KprAimWaterCollecationBizFun.insertYuceHourData(time);
                 //TODO 实际调用调度模型的接口
+                KprAimTapWaterBizFun.checkRecordAllData();
                 KprAimWaterCollecationBizFun.initPumpPowerZero();
+                KprAimWaterCollecationBizFun.insertYuceHourAddData(time);
                 KprAimWaterCollecationBizFun.insertYucePump(time);
+                Timer timer3=new Timer();
+                TimerTask timerTask3 = new TimerTask(){
+                    @Override
+                    public void run() {
+                        KprAimWaterCollecationBizFun.insertYuceDayAddData(time);
+                    }
+                };
+                timer3.schedule(timerTask3,1000);
             }
         };
         timer.schedule(timerTask1,9000);//9秒后执行一次