Parcourir la source

解决告警相关BUG

wukai il y a 5 mois
Parent
commit
577b069a9c

+ 32 - 25
ruoyi-admin/src/main/java/com/ruoyi/biz/controller/DataController.java

@@ -4,6 +4,7 @@ import com.ruoyi.biz.service.ITaskService;
 import com.ruoyi.biz.service.ITwinCalcDayService;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -26,6 +27,7 @@ import java.util.Date;
  */
 @Controller
 @RequestMapping("biz/data")
+@Slf4j
 public class DataController extends BaseController {
     private String prefix = "biz/data";
     @Resource
@@ -48,6 +50,7 @@ public class DataController extends BaseController {
         for (; sp <= ep; sp++) {
             //先删除数据,再进行
             LocalDateTime start = ldt.plusHours(1 * sp).minusHours(1);
+            logger.error(start.toString());
             LocalDateTime end = start.plusHours(1);
             Long startTime = start.toInstant(ZoneOffset.of("+8")).toEpochMilli();
             Long endTime = end.toInstant(ZoneOffset.of("+8")).toEpochMilli();
@@ -75,33 +78,37 @@ public class DataController extends BaseController {
     public AjaxResult bl3(String sd, String ed) {
         LocalDate sld = LocalDate.parse(sd);
         LocalDate eld = LocalDate.parse(ed);
+        LocalDateTime start = LocalDateTime.of(sld, LocalTime.MIN).plusHours(7);
+        LocalDateTime end = LocalDateTime.of(eld, LocalTime.MIN).plusHours(6);
+        LocalDateTime curr = LocalDateTime.now();
+        if (end.isAfter(curr)) {
+            end = curr.minusHours(1);
+        }
         do {
-            for (int i = 0; i < 24; i++) {
-                //先删除数据,再进行
-                LocalDateTime start = LocalDateTime.of(sld, LocalTime.MIN).plusHours(i);
-                String date = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-                LocalDateTime edt = start.plusHours(1);
-                Long startTime = start.toInstant(ZoneOffset.of("+8")).toEpochMilli();
-                Long endTime = edt.toInstant(ZoneOffset.of("+8")).toEpochMilli();
-                String sql = "DELETE FROM TWIN_CALC_HOUR WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql, date, i);
-                sql = "DELETE FROM TWIN_RECORD_ALARMS WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql, date, i);
-                sql = "DELETE FROM TWIN_CALC_ALARMS WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql, date, i);
-                sql = "DELETE FROM TWIN_RECORD_STOP WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql, date, i);
-                sql = "DELETE FROM TWIN_CALC_STOP WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql, date, i);
-                sql = "DELETE FROM TWIN_PAN_HEAD_INFO WHERE RECORD_TIME>=? AND RECORD_TIME<=?";
-                jdbcTemplate.update(sql, new Date(startTime), new Date(endTime));
+            int i = start.getHour();
+            logger.error(start.toString());
+            String date = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+            LocalDateTime edt = start.plusHours(1);
+            Long startTime = start.toInstant(ZoneOffset.of("+8")).toEpochMilli();
+            Long endTime = edt.toInstant(ZoneOffset.of("+8")).toEpochMilli();
+            String sql = "DELETE FROM TWIN_CALC_HOUR WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql, date, i);
+            sql = "DELETE FROM TWIN_RECORD_ALARMS WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql, date, i);
+            sql = "DELETE FROM TWIN_CALC_ALARMS WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql, date, i);
+            sql = "DELETE FROM TWIN_RECORD_STOP WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql, date, i);
+            sql = "DELETE FROM TWIN_CALC_STOP WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql, date, i);
+            sql = "DELETE FROM TWIN_PAN_HEAD_INFO WHERE RECORD_TIME>=? AND RECORD_TIME<=?";
+            jdbcTemplate.update(sql, new Date(startTime), new Date(endTime));
 
-                String sql1 = "DELETE FROM TWIN_CALC_HOUR_SPEC WHERE DATA_DATE=? AND HOUR=?";
-                jdbcTemplate.update(sql1, date, i);
-                taskService.calc(date, i);
-            }
-            sld = sld.plusDays(1);
-        } while (!sld.isAfter(eld));
+            String sql1 = "DELETE FROM TWIN_CALC_HOUR_SPEC WHERE DATA_DATE=? AND HOUR=?";
+            jdbcTemplate.update(sql1, date, i);
+            taskService.calc(date, i);
+            start = start.plusHours(1);
+        } while (!start.isAfter(end));
         return success();
     }