|
@@ -7,7 +7,6 @@ import java.util.Objects;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -26,7 +25,6 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
* @since: 2020/10/19 10:57
|
|
|
* @version: V1.0
|
|
|
**/
|
|
|
-@Component
|
|
|
@Slf4j
|
|
|
public class AlarmInfoCache {
|
|
|
public static List<String> isolationSystemList = new ArrayList<>();
|
|
@@ -34,16 +32,16 @@ public class AlarmInfoCache {
|
|
|
* 报警定义 <报警定义标识,报警时间状态>
|
|
|
* 报警定义标识默认为:报警编码-报警对象id
|
|
|
*/
|
|
|
- private final ConcurrentHashMap<String, AlarmState> alarmStateMap = new ConcurrentHashMap<>();
|
|
|
+ private static ConcurrentHashMap<String, AlarmState> alarmStateMap = new ConcurrentHashMap<>(1024);
|
|
|
/**
|
|
|
* 报警定义 <报警定义标识,报警定义详情>
|
|
|
* 报警定义标识默认为:报警编码-报警对象id
|
|
|
*/
|
|
|
- private ConcurrentHashMap<String, AlarmDefine> alarmDefineMap = new ConcurrentHashMap<>();
|
|
|
+ private static ConcurrentHashMap<String, AlarmDefine> alarmDefineMap = new ConcurrentHashMap<>(1024);
|
|
|
/**
|
|
|
* 信息点-报警定义 <表号-功能号,[报警定义1,报警定义2]>
|
|
|
*/
|
|
|
- private ConcurrentHashMap<String, List<AlarmDefine>> infoAlarmMap = new ConcurrentHashMap<>();
|
|
|
+ private static ConcurrentHashMap<String, List<AlarmDefine>> infoAlarmMap = new ConcurrentHashMap<>(1024);
|
|
|
|
|
|
/**
|
|
|
* @param alarmDefine:
|
|
@@ -72,7 +70,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/20 17:12
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public AlarmState getAlarmState(String definitionId) {
|
|
|
+ public static AlarmState getAlarmState(String definitionId) {
|
|
|
return alarmStateMap.get(definitionId);
|
|
|
}
|
|
|
|
|
@@ -87,7 +85,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/20 17:15
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public AlarmState setAlarmState(String definitionId, AlarmState alarmState) {
|
|
|
+ public static AlarmState setAlarmState(String definitionId, AlarmState alarmState) {
|
|
|
return alarmStateMap.put(definitionId, alarmState);
|
|
|
}
|
|
|
|
|
@@ -96,7 +94,7 @@ public class AlarmInfoCache {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public ConcurrentHashMap<String, AlarmDefine> getAlarmDefineMap() {
|
|
|
+ public static ConcurrentHashMap<String, AlarmDefine> getAlarmDefineMap() {
|
|
|
return alarmDefineMap;
|
|
|
}
|
|
|
|
|
@@ -105,8 +103,8 @@ public class AlarmInfoCache {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public void setAlarmDefineMap(ConcurrentHashMap<String, AlarmDefine> alarmDefineMap) {
|
|
|
- this.alarmDefineMap = alarmDefineMap;
|
|
|
+ public static void setAlarmDefineMap(ConcurrentHashMap<String, AlarmDefine> alarmDefineMaps) {
|
|
|
+ alarmDefineMap = alarmDefineMaps;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -114,7 +112,7 @@ public class AlarmInfoCache {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public ConcurrentHashMap<String, List<AlarmDefine>> getInfoAlarmMap() {
|
|
|
+ public static ConcurrentHashMap<String, List<AlarmDefine>> getInfoAlarmMap() {
|
|
|
return infoAlarmMap;
|
|
|
}
|
|
|
|
|
@@ -123,8 +121,8 @@ public class AlarmInfoCache {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public void setInfoAlarmMap(ConcurrentHashMap<String, List<AlarmDefine>> infoAlarmMap) {
|
|
|
- this.infoAlarmMap = infoAlarmMap;
|
|
|
+ public static void setInfoAlarmMap(ConcurrentHashMap<String, List<AlarmDefine>> infoAlarmMaps) {
|
|
|
+ infoAlarmMap = infoAlarmMaps;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -137,7 +135,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 14:32
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public AlarmDefine getAlarmDefinitionById(String definitionId) {
|
|
|
+ public static AlarmDefine getAlarmDefinitionById(String definitionId) {
|
|
|
return alarmDefineMap.get(definitionId);
|
|
|
}
|
|
|
|
|
@@ -152,15 +150,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 14:32
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public void putAlarmDefinitionById(String definitionId, AlarmDefine alarmDefine) {
|
|
|
-// if (alarmDefine.getOpen() == 0) {
|
|
|
-// log.info("报警定义ID为[{}]已经屏蔽", definitionId);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// if(AlarmInfoCache.isolationSystemList.contains(alarmDefine.getSystemCode())){
|
|
|
-// log.info("报警定义ID为[{}]的系统[{}]已经隔离,不产生报警", definitionId, alarmDefine.getSystemCode());
|
|
|
-// return;
|
|
|
-// }
|
|
|
+ public static void putAlarmDefinitionById(String definitionId, AlarmDefine alarmDefine) {
|
|
|
Condition condition = alarmDefine.getCondition();
|
|
|
List<JSONObject> infoCodes = condition.getInfoCodes();
|
|
|
if (CollectionUtil.isEmpty(infoCodes)) {
|
|
@@ -192,7 +182,7 @@ public class AlarmInfoCache {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void putAlarmDefinitionById(AlarmDefine alarmDefine) {
|
|
|
+ public static void putAlarmDefinitionById(AlarmDefine alarmDefine) {
|
|
|
putAlarmDefinitionById(getAlarmDefineId(alarmDefine), alarmDefine);
|
|
|
}
|
|
|
|
|
@@ -202,9 +192,9 @@ public class AlarmInfoCache {
|
|
|
* @param alarmConfig
|
|
|
* @date 2022年2月16日 下午4:26:15
|
|
|
*/
|
|
|
- public void isolationAlarmDefinitionById(JSONObject alarmConfig) {
|
|
|
+ public static void isolationAlarmDefinitionById(JSONObject alarmConfig) {
|
|
|
String defineId = getAlarmDefineId(alarmConfig);
|
|
|
- AlarmDefine alarmDefine = this.alarmDefineMap.get(defineId);
|
|
|
+ AlarmDefine alarmDefine = alarmDefineMap.get(defineId);
|
|
|
if (alarmDefine == null) {
|
|
|
return;
|
|
|
}
|
|
@@ -231,7 +221,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 14:31
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public List<AlarmDefine> getAlarmDefinitionIdByMeterFuncId(String meterId, String funcId) {
|
|
|
+ public static List<AlarmDefine> getAlarmDefinitionIdByMeterFuncId(String meterId, String funcId) {
|
|
|
return infoAlarmMap.get(getKey(meterId, funcId));
|
|
|
}
|
|
|
|
|
@@ -247,7 +237,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 14:26
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public void putAlarmDefinitionIdByMeterFuncId(String meterId, String funcId, AlarmDefine definition) {
|
|
|
+ public static void putAlarmDefinitionIdByMeterFuncId(String meterId, String funcId, AlarmDefine definition) {
|
|
|
List<AlarmDefine> definitionList = getAlarmDefinitionIdByMeterFuncId(meterId, funcId);
|
|
|
if (CollectionUtils.isEmpty(definitionList)) {
|
|
|
definitionList = new ArrayList<>();
|
|
@@ -267,7 +257,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 14:25
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public void clearAllAlarmDefine() {
|
|
|
+ public static void clearAllAlarmDefine() {
|
|
|
alarmDefineMap.clear();
|
|
|
infoAlarmMap.clear();
|
|
|
//清除编译表达式缓存
|
|
@@ -284,7 +274,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/26 20:34
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public void clearAlarmDefine(AlarmDefine ad) {
|
|
|
+ public static void clearAlarmDefine(AlarmDefine ad) {
|
|
|
String defineId = getAlarmDefineId(ad);
|
|
|
AlarmDefine alarmDefine = alarmDefineMap.get(defineId);
|
|
|
if (!Objects.isNull(alarmDefine)) {
|
|
@@ -296,6 +286,7 @@ public class AlarmInfoCache {
|
|
|
infoAlarmMap.put(getKey(meterId, funcId), AlarmDefineList.stream().filter(adTmp -> !getAlarmDefineId(adTmp).equals(defineId)).collect(Collectors.toList()));
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
alarmDefineMap.remove(defineId);
|
|
|
alarmStateMap.remove(defineId);
|
|
|
}
|
|
@@ -311,7 +302,7 @@ public class AlarmInfoCache {
|
|
|
* @since: 2020/10/19 19:54
|
|
|
* @version: V1.0
|
|
|
*/
|
|
|
- public boolean hasKey(String meterId, String funcId) {
|
|
|
+ public static boolean hasKey(String meterId, String funcId) {
|
|
|
return infoAlarmMap.containsKey(getKey(meterId, funcId));
|
|
|
}
|
|
|
|
|
@@ -322,7 +313,7 @@ public class AlarmInfoCache {
|
|
|
* @param funcId
|
|
|
* @return
|
|
|
*/
|
|
|
- private String getKey(String meterId, String funcId) {
|
|
|
+ private static String getKey(String meterId, String funcId) {
|
|
|
return meterId + "-" + funcId;
|
|
|
}
|
|
|
|