diff --git a/das/src/main/java/com/das/modules/equipment/domain/vo/BaseImptabmappingVo.java b/das/src/main/java/com/das/modules/equipment/domain/vo/BaseImptabmappingVo.java new file mode 100644 index 00000000..80702490 --- /dev/null +++ b/das/src/main/java/com/das/modules/equipment/domain/vo/BaseImptabmappingVo.java @@ -0,0 +1,11 @@ +package com.das.modules.equipment.domain.vo; + +import lombok.Data; + +@Data +public class BaseImptabmappingVo { + + private String code; + + private String params; +} diff --git a/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java b/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java index ff7ae58a..8e8f34ac 100644 --- a/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java +++ b/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.das.modules.auth.mapper.BaseMapperPlus; import com.das.modules.equipment.domain.dto.SysEquipmentDto; import com.das.modules.equipment.domain.excel.SysEquipmentExcel; +import com.das.modules.equipment.domain.vo.BaseImptabmappingVo; import com.das.modules.equipment.domain.vo.SysEquipmentVo; import com.das.modules.equipment.entity.SysEquipment; import org.apache.ibatis.annotations.Mapper; @@ -26,10 +27,10 @@ public interface SysEquipmentMapper extends BaseMapperPlus getEquipmentAttributeInfo(Long equipmentId); + List getEquipmentAttributeInfo(Long equipmentId); // 获取设备的动作信息 - List getEquipmentServiceInfo(Long equipmentId); + List getEquipmentServiceInfo(Long equipmentId); } diff --git a/das/src/main/java/com/das/modules/node/command/InitDeviceDataCommand.java b/das/src/main/java/com/das/modules/node/command/InitDeviceDataCommand.java index 819ffae8..fc7a26a7 100644 --- a/das/src/main/java/com/das/modules/node/command/InitDeviceDataCommand.java +++ b/das/src/main/java/com/das/modules/node/command/InitDeviceDataCommand.java @@ -8,10 +8,14 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.MessageFormat; + @Service(value = NodeConstant.INIT_DEVICE_DATA) @Slf4j public class InitDeviceDataCommand implements BaseCommand{ + public static final String DEVICE_DATA = "deviceData:{0}"; + @Autowired AdminRedisTemplate adminRedisTemplate; @Override @@ -22,8 +26,9 @@ public class InitDeviceDataCommand implements BaseCommand{ if (!dataInfo.isEmpty()) { String deviceId = dataInfo.get("deviceId").asText(); JsonNode values = dataInfo.get("values"); + String key = MessageFormat.format(DEVICE_DATA, deviceId); // 存入redis - adminRedisTemplate.set(deviceId, values); + adminRedisTemplate.set(key, values); } } diff --git a/das/src/main/java/com/das/modules/node/service/impl/DataServiceImpl.java b/das/src/main/java/com/das/modules/node/service/impl/DataServiceImpl.java index 3ddd54ea..f896308c 100644 --- a/das/src/main/java/com/das/modules/node/service/impl/DataServiceImpl.java +++ b/das/src/main/java/com/das/modules/node/service/impl/DataServiceImpl.java @@ -67,6 +67,8 @@ public class DataServiceImpl implements DataService { public ConcurrentHashMap> iotFieldMap = new ConcurrentHashMap<>(10000); + public static final String DEVICE_DATA = "deviceData:{0}"; + @PostConstruct public void init() { //初始化高性能队列 @@ -229,7 +231,8 @@ public class DataServiceImpl implements DataService { // 先从redis里面获取设备的初始化数据 JsonNode jsonNode = data.getData(); String deviceId = jsonNode.get("deviceId").asText(); - HashMap initValue = adminRedisTemplate.get(deviceId); + String key = String.format(DEVICE_DATA, deviceId); + HashMap initValue = adminRedisTemplate.get(key); JsonNode values = jsonNode.get("values"); List> entryList = new ArrayList<>(initValue.entrySet()); HashMap newHashMap = new HashMap<>(); @@ -241,12 +244,12 @@ public class DataServiceImpl implements DataService { } } - adminRedisTemplate.set(deviceId, newHashMap); + adminRedisTemplate.set(key, newHashMap); Long dataTime = data.getTime(); // 存入td库 // 根据设备ID获取对应的物模型属性 String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong()); - HashMap tdValues = adminRedisTemplate.get(deviceId); + HashMap tdValues = adminRedisTemplate.get(key); List list = new ArrayList<>(); RTData rtData = RTData.builder() .dataTime(dataTime) diff --git a/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java index ad731a05..c080275c 100644 --- a/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java +++ b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java @@ -11,6 +11,7 @@ import com.das.common.utils.SequenceUtils; import com.das.modules.auth.domain.vo.SysUserVo; import com.das.modules.auth.entity.SysOrg; import com.das.modules.auth.mapper.SysOrgMapper; +import com.das.modules.equipment.domain.vo.BaseImptabmappingVo; import com.das.modules.equipment.mapper.SysEquipmentMapper; import com.das.modules.equipment.mapper.SysIotModelMapper; import com.das.modules.node.constant.NodeConstant; @@ -213,9 +214,9 @@ public class SysNodeServiceImpl implements SysNodeService { if (CollectionUtils.isEmpty(bindDeviceList)) { addSysImptabmapping(equipmentId, linkId, sysUserVo, addList); } else { + addSysImptabmapping(equipmentId, linkId, sysUserVo, addList); // 删除原来绑定的设备信息 sysImptabmappingMapper.deleteBindDevice(linkId); - addSysImptabmapping(equipmentId, linkId, sysUserVo, addList); } if (!CollectionUtils.isEmpty(addList)) { sysImptabmappingMapper.insertBatch(addList); @@ -350,19 +351,21 @@ public class SysNodeServiceImpl implements SysNodeService { // 获取设备的测点信息 for (BindEquipmentInfoDto info : equipmentId) { - List fieldList = sysEquipmentMapper.getEquipmentAttributeInfo(info.getEquipmentId()); - List serviceList = sysEquipmentMapper.getEquipmentServiceInfo(info.getEquipmentId()); + List fieldList = sysEquipmentMapper.getEquipmentAttributeInfo(info.getEquipmentId()); + List serviceList = sysEquipmentMapper.getEquipmentServiceInfo(info.getEquipmentId()); if (!CollectionUtils.isEmpty(fieldList)) { - for (String field : fieldList) { + for (BaseImptabmappingVo field : fieldList) { SysImptabmapping sysImptabmapping = getSysImptabmapping(linkId, sysUserVo, info); - sysImptabmapping.setEquipmentAttribute(field); + sysImptabmapping.setEquipmentAttribute(field.getCode()); + sysImptabmapping.setParams(field.getParams()); addList.add(sysImptabmapping); } } if (!CollectionUtils.isEmpty(serviceList)) { - for (String service : serviceList) { + for (BaseImptabmappingVo service : serviceList) { SysImptabmapping sysImptabmapping = getSysImptabmapping(linkId, sysUserVo, info); - sysImptabmapping.setEquipmentService(service); + sysImptabmapping.setEquipmentService(service.getCode()); + sysImptabmapping.setParams(service.getParams()); addList.add(sysImptabmapping); } } diff --git a/das/src/main/resources/mapper/SysEquipmentMapper.xml b/das/src/main/resources/mapper/SysEquipmentMapper.xml index aaa35508..905888f6 100644 --- a/das/src/main/resources/mapper/SysEquipmentMapper.xml +++ b/das/src/main/resources/mapper/SysEquipmentMapper.xml @@ -116,15 +116,17 @@ - + select simf.attribute_code as code, si.params from sys_iot_model_field simf left join sys_equipment se on simf.iot_model_id = se.iot_model_id + left join sys_imptabmapping si on si.equipment_attribute = simf.attribute_code where se.id = #{id} - + select sims.service_code as code, si.params from sys_iot_model_service sims left join sys_equipment se on sims.iot_model_id = se.iot_model_id + left join sys_imptabmapping si on si.equipment_attribute = sims.service_code where se.id = #{id}