diff --git a/das/src/main/java/com/das/modules/data/service/impl/DataServiceImpl.java b/das/src/main/java/com/das/modules/data/service/impl/DataServiceImpl.java index 7b2e9205..c78aa0aa 100644 --- a/das/src/main/java/com/das/modules/data/service/impl/DataServiceImpl.java +++ b/das/src/main/java/com/das/modules/data/service/impl/DataServiceImpl.java @@ -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> eventLevelMap = new ConcurrentHashMap<>(10000); + public ConcurrentHashMap> stateDescMap = new ConcurrentHashMap<>(10000); + + + /** * 读取实时数据快照 * @param paramList 设备id及设备属性列表 @@ -234,6 +239,7 @@ public class DataServiceImpl implements DataService { Map calculateFieldList = allIotModelField.stream().filter(field -> field.getAttributeType() == 199).collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getDataType, (value1, value2) -> value1)); Map fieldCodeNameList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getAttributeName, (value1, value2) -> value1)); Map eventLevelList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getLevel, (value1, value2) -> value1)); + Map stateDescList = allIotModelField.stream().collect(Collectors.toMap(SysIotModelField::getAttributeCode, SysIotModelField::getStateDesc, (value1, value2) -> value1)); Map 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); } diff --git a/das/src/main/java/com/das/modules/equipment/service/impl/SysIotModelServiceImpl.java b/das/src/main/java/com/das/modules/equipment/service/impl/SysIotModelServiceImpl.java index 4c49bef6..09b86505 100644 --- a/das/src/main/java/com/das/modules/equipment/service/impl/SysIotModelServiceImpl.java +++ b/das/src/main/java/com/das/modules/equipment/service/impl/SysIotModelServiceImpl.java @@ -635,6 +635,16 @@ public class SysIotModelServiceImpl implements SysIotModelService { } } + if (sysIotModelField.getStateDesc() != null){ + Map stateDescMap = dataService.stateDescMap.get(modelCode); + if (stateDescMap == null) { + Map 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 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 map = dataService.calculateIotFieldMap.get(modelCode); map.remove(sysIotModelField.getAttributeCode()); diff --git a/das/src/main/java/com/das/modules/node/service/impl/NodeMessageServiceImpl.java b/das/src/main/java/com/das/modules/node/service/impl/NodeMessageServiceImpl.java index 2d17a5cb..1ad634f1 100644 --- a/das/src/main/java/com/das/modules/node/service/impl/NodeMessageServiceImpl.java +++ b/das/src/main/java/com/das/modules/node/service/impl/NodeMessageServiceImpl.java @@ -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 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 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);