deviceEvent修改描述根据stateDesc配置
This commit is contained in:
parent
14d49d08bf
commit
8a345f178e
@ -25,6 +25,7 @@ import org.springframework.util.StopWatch;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@ -71,6 +72,10 @@ public class DataServiceImpl implements DataService {
|
||||
|
||||
public ConcurrentHashMap<String, Map<String, Integer>> eventLevelMap = new ConcurrentHashMap<>(10000);
|
||||
|
||||
public ConcurrentHashMap<String, Map<String, String>> stateDescMap = new ConcurrentHashMap<>(10000);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 读取实时数据快照
|
||||
* @param paramList 设备id及设备属性列表
|
||||
@ -234,6 +239,7 @@ public class DataServiceImpl implements DataService {
|
||||
Map<String, String> calculateFieldList = allIotModelField.stream().filter(field -> field.getAttributeType() == 199).collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getDataType, (value1, value2) -> value1));
|
||||
Map<String, String> fieldCodeNameList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getAttributeName, (value1, value2) -> value1));
|
||||
Map<String, Integer> eventLevelList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getLevel, (value1, value2) -> value1));
|
||||
Map<String, String> stateDescList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getStateDesc, (value1, value2) -> value1));
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String field : HighModelFieldList.keySet()) {
|
||||
map.put(field, HighModelFieldList.get(field));
|
||||
@ -247,6 +253,8 @@ public class DataServiceImpl implements DataService {
|
||||
eventLevelMap.put(item.getIotModelCode(),eventLevelList);
|
||||
fieldCodeNameMap.put(item.getIotModelCode(),fieldCodeNameList);
|
||||
calculateIotFieldMap.put(item.getIotModelCode(), calculateFieldList);
|
||||
stateDescMap.put(item.getIotModelCode(),stateDescList);
|
||||
|
||||
}
|
||||
tdEngineService.initIotModel(allIotModel, highIotFieldMap, lowIotFieldMap, calculateIotFieldMap);
|
||||
}
|
||||
|
@ -635,6 +635,16 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
||||
}
|
||||
|
||||
}
|
||||
if (sysIotModelField.getStateDesc() != null){
|
||||
Map<String, String> stateDescMap = dataService.stateDescMap.get(modelCode);
|
||||
if (stateDescMap == null) {
|
||||
Map<String, String> calMap = new HashMap<>();
|
||||
calMap.put(sysIotModelField.getAttributeCode(), sysIotModelField.getStateDesc());
|
||||
dataService.stateDescMap.put(modelCode, calMap);
|
||||
} else {
|
||||
stateDescMap.put(sysIotModelField.getAttributeCode(), sysIotModelField.getStateDesc());
|
||||
}
|
||||
}
|
||||
if (sysIotModelField.getAttributeType() == 199) {
|
||||
Map<String, String> map = dataService.calculateIotFieldMap.get(modelCode);
|
||||
if (map == null) {
|
||||
@ -686,6 +696,9 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
||||
if (sysIotModelField.getLevel() != null){
|
||||
dataService.eventLevelMap.remove(sysIotModelField.getAttributeCode());
|
||||
}
|
||||
if (sysIotModelField.getStateDesc() != null){
|
||||
dataService.stateDescMap.remove(sysIotModelField.getAttributeCode());
|
||||
}
|
||||
if (sysIotModelField.getAttributeType() == 199) {
|
||||
Map<String, String> map = dataService.calculateIotFieldMap.get(modelCode);
|
||||
map.remove(sysIotModelField.getAttributeCode());
|
||||
|
@ -369,12 +369,20 @@ public class NodeMessageServiceImpl extends TextWebSocketHandler implements Node
|
||||
deviceEventInfo.setEventType(item.getEventType());
|
||||
deviceEventInfo.setConfirmed(0);
|
||||
if (!StringUtils.isEmpty(eventType) && eventType.equals("遥信变位")) {
|
||||
String stateDesc = dataService.stateDescMap.get(model).get(item.getAttrCode());
|
||||
if (item.getAttrValue().equals(0)) {
|
||||
deviceEventInfo.setEventText(item.getAttrCode()+fieldName + " 复归");
|
||||
|
||||
if (StringUtils.isNotEmpty(stateDesc)){
|
||||
List<String> descList = Arrays.stream(stateDesc.split("\\|")).toList();
|
||||
deviceEventInfo.setEventText(item.getAttrCode()+fieldName + descList.get(0));
|
||||
}
|
||||
deviceEventInfo.setEventLevel(0);
|
||||
} else {
|
||||
deviceEventInfo.setEventText(item.getAttrCode()+fieldName + " 动作");
|
||||
if (StringUtils.isNotEmpty(stateDesc)){
|
||||
List<String> descList = Arrays.stream(stateDesc.split("\\|")).toList();
|
||||
deviceEventInfo.setEventText(item.getAttrCode()+fieldName + descList.get(1));
|
||||
}
|
||||
Integer level = dataService.eventLevelMap.get(model).get(item.getAttrCode());
|
||||
log.info("level:{}",level);
|
||||
log.info("fieldname{}",fieldName);
|
||||
|
Loading…
Reference in New Issue
Block a user