Parcourir la source

增加误报功能

易涛 il y a 3 ans
Parent
commit
dd1f5c845a

+ 1 - 1
src/main/java/com/persagy/client/WebSocketClientFactory.java

@@ -113,7 +113,7 @@ public class WebSocketClientFactory {
                         log.error("解密失败!", e);
                     }
                 }
-//                log.info("接收信息为:{}", message);
+               //log.info("接收信息为:{}", message);
                 try {
                     while (!LockUtil.getInstance().isExecute()) {
                         try {

+ 10 - 0
src/main/java/com/persagy/entity/Condition.java

@@ -1,8 +1,10 @@
 package com.persagy.entity;
 
 import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -51,6 +53,14 @@ public class Condition {
     private int triggerUphold;
     private int endUphold;
     private JSONObject effectTime;
+    /**
+     * 抑制时间以分钟为单位
+     */
+    @ApiModelProperty(value = "抑制时间以分钟为单位")
+    private Long restraintTime;
+
+    @ApiModelProperty(value = "抑制时间,误报操作时间+抑制时间")
+    private LocalDateTime realRestraintTime;
 
     @Override
     public String toString() {

+ 5 - 0
src/main/java/com/persagy/service/impl/AlarmHandleServiceImpl.java

@@ -93,6 +93,11 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 boolean match = codeDetail.stream().allMatch(p -> currentDataCache.hasKey(p.getString("meterId"), p.getString("funcId")));
                 //报警定义的所有信息点都有采集数值,具备判断条件
                 if (match) {
+                    if(condition.getRealRestraintTime()!=null) {
+                        if (condition.getRealRestraintTime().compareTo(LocalDateTime.now()) > 0) {
+                            continue;
+                        }
+                    }
                     String trigger = condition.getTrigger();
                     String end = condition.getEnd();
                     HashMap paramMap = new HashMap<>();