Ver código fonte

获取报警的持续时间的时候 需要根据报警状态 取当前时间还是报警截止时间

王苗苗 1 mês atrás
pai
commit
2f0aae16dd

+ 16 - 2
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -2007,7 +2007,14 @@ public class AsyncTask {
         //2025年02月21日17:09:29 因为报警时间改过一次逻辑,以前是最开始的那个时候,后来每次报警都更新它,所以这里需要的是创建时间
         Date warningTime = tXinyiWarningRecord.getCreateTime();
         String remark = tXinyiWarningRecord.getRemark();
-        int count = DateUtils.differentHoursByMillisecond(warningTime, DateUtils.getNowDate()) + 1;
+        //2025年02月26日16:17:10 这里计算的截止时间可能是当前时间,也可能是报警结束时间,需要判断
+        Date endDate = null;
+        //判断类型 如果结束了 截止时间就是告警截止时间;  如果正在报警 截止时间就是当前时间
+        if(0 == tXinyiWarningRecord.getStatus() || 3 == tXinyiWarningRecord.getStatus())
+            endDate = DateUtils.getNowDate();
+        else
+            endDate = tXinyiWarningRecord.getOffTime();
+        int count = DateUtils.differentHoursByMillisecond(warningTime, endDate) + 1;
         ShowValueSHBasic showValueSHBasic = new ShowValueSHBasic();
         /*if("0".equals(remark)){//水质报警
             showValueSHBasic.setH(ZAIXIANYIBIAO);
@@ -2053,7 +2060,14 @@ public class AsyncTask {
         //2025年02月21日17:09:29 因为报警时间改过一次逻辑,以前是最开始的那个时候,后来每次报警都更新它,所以这里需要的是创建时间
         Date warningTime = tXinyiWarningRecord.getCreateTime();
         String remark = tXinyiWarningRecord.getRemark();
-        int count = DateUtils.differentHoursByMillisecond(warningTime, DateUtils.getNowDate()) + 1;
+        //2025年02月26日16:17:10 这里计算的截止时间可能是当前时间,也可能是报警结束时间,需要判断
+        Date endDate = null;
+        //判断类型 如果结束了 截止时间就是告警截止时间;  如果正在报警 截止时间就是当前时间
+        if(0 == tXinyiWarningRecord.getStatus() || 3 == tXinyiWarningRecord.getStatus())
+            endDate = DateUtils.getNowDate();
+        else
+            endDate = tXinyiWarningRecord.getOffTime();
+        int count = DateUtils.differentHoursByMillisecond(warningTime, endDate) + 1;
         String category = tXinyiWarningRecord.getCategory();
         /*basic.put("title", tXinyiWarningRecord.getReason());
         basic.put("报警时间", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM ,warningTime));

+ 8 - 1
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -470,7 +470,14 @@ public class RyTask
 //        Date warningTime = tXinyiWarningRecord.getTime();
         //2025年02月21日17:09:29 因为报警时间改过一次逻辑,以前是最开始的那个时候,后来每次报警都更新它,所以这里需要的是创建时间
         Date warningTime = tXinyiWarningRecord.getCreateTime();
-        int count = DateUtils.differentHoursByMillisecond(warningTime, DateUtils.getNowDate()) + 1;
+        //2025年02月26日16:17:10 这里计算的截止时间可能是当前时间,也可能是报警结束时间,需要判断
+        Date endDate = null;
+        //判断类型 如果结束了 截止时间就是告警截止时间;  如果正在报警 截止时间就是当前时间
+        if(0 == tXinyiWarningRecord.getStatus() || 3 == tXinyiWarningRecord.getStatus())
+            endDate = DateUtils.getNowDate();
+        else
+            endDate = tXinyiWarningRecord.getOffTime();
+        int count = DateUtils.differentHoursByMillisecond(warningTime, endDate) + 1;
         basic.put("title", tXinyiWarningRecord.getReason());
         basic.put("报警时间", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM ,tXinyiWarningRecord.getTime()));
         basic.put("报警值", DecimalUtils.getAbsAndScale(tXinyiWarningRecord.getWarningVal(), INT_2));