Browse Source

修复 处理报警条件解析异常问题

miaolijing 3 năm trước cách đây
mục cha
commit
7ee8184991

+ 47 - 25
src/main/java/com/persagy/apm/diagnose/maintenance/service/impl/ProjectDataRecordServiceImpl.java

@@ -65,10 +65,10 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
     private String systemCode;
 
     //测试环境  运行状态 上下限值
-//    @Value(value = "${energy.eq.run.state.up.limit}")
-//    private Double runStateUpLimit;
-//    @Value(value = "${energy.eq.run.state.down.limit}")
-//    private Double runStateDownLimit;
+    @Value(value = "${energy.eq.run.state.up.limit}")
+    private Double runStateUpLimit;
+    @Value(value = "${energy.eq.run.state.down.limit}")
+    private Double runStateDownLimit;
 
     //报警分类
     public final static String alarmSplit = "_";
@@ -814,13 +814,11 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                         String time = dto.getTime();
                         Date getDate = com.persagy.apm.diagnose.utils.DateUtils.str2Date(time, com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND);
                         if (getDate.compareTo(twoHourDate) > 0) {
-                            if (Objects.equals(EnumRunStatusType.Open.getCode(), dto.getData())) {
+                            //是否为运行状态
+                            Boolean isRun = getRunStatueFlag(true,dto.getData());
+                            if (isRun){
                                 dateList.add(getDate);
                             }
-                            //测试 运行状态
-//                            if (dto.getData() > runStateDownLimit && dto.getData() < runStateUpLimit) {
-//                                dateList.add(getDate);
-//                            }
                         }
                     }
                     dateRunDataMap.put(dayDate, dateList);
@@ -892,13 +890,11 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                             continue;
                         }
                         Date getDate = com.persagy.apm.diagnose.utils.DateUtils.str2Date(dto.getTime(), com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND);
-                        if (Objects.equals(EnumRunStatusType.Open.getCode(), dto.getData())) {
+                        //是否在运行状态
+                        Boolean isRun = getRunStatueFlag(true,dto.getData());
+                        if (isRun){
                             dateList.add(getDate);
                         }
-                        //测试 运行状态
-//                        if (dto.getData() > runStateDownLimit && dto.getData() < runStateUpLimit) {
-//                            dateList.add(getDate);
-//                        }
                     }
                     Set<Date> dateSet = new HashSet<>(dateList);
                     dateList.clear();
@@ -924,11 +920,9 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                     if (null == dto.getData()) {
                         continue;
                     }
-                    //测试 运行状态
-//                    if (dto.getData() < runStateDownLimit || dto.getData() > runStateUpLimit) {
-//                        return false;
-//                    }
-                    if (Objects.equals(EnumRunStatusType.Close.getCode(), dto.getData())) {
+                    //判断是否为关闭
+                    Boolean isRun = getRunStatueFlag(false,dto.getData());
+                    if (!isRun){
                         return false;
                     }
                 }
@@ -948,13 +942,10 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                 if (null == dto.getData()) {
                     continue;
                 }
-                if (Objects.equals(EnumRunStatusType.Open.getCode(), dto.getData())) {
-                    return dto.getTime();
+                Boolean isRun = getRunStatueFlag(true,dto.getData());
+                if (isRun){
+                    dto.getTime();
                 }
-                //测试 运行状态
-//                if (dto.getData() > runStateDownLimit && dto.getData() < runStateUpLimit) {
-//                    return dto.getTime();
-//                }
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -1230,4 +1221,35 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
     }
 
 
+    /**
+     * 判断是否为运行状态  或者停止状态
+     */
+    public Boolean getRunStatueFlag(Boolean openOrClose,Double data){
+        //获取运行状态时间
+        if (openOrClose){
+            //正式环境  运行状态采用0/1 进行判断
+//        if (Objects.equals(EnumRunStatusType.Open.getCode(), data)) {
+//            return true;
+//        }
+            //测试环境 无法造出0/1 故采用区间数据来判断 运行状态
+            if (data > runStateDownLimit && data < runStateUpLimit) {
+                return true;
+            }
+            return false;
+        }
+        //获取是否在关闭状态
+        if (!openOrClose){
+//            测试 运行状态
+            if (data < runStateDownLimit || data > runStateUpLimit) {
+                return false;
+            }
+//            if (Objects.equals(EnumRunStatusType.Close.getCode(), data)) {
+//                return false;
+//            }
+            return true;
+        }
+        return false;
+    }
+
+
 }