同步数据接口修改
This commit is contained in:
parent
85d2ffa9c2
commit
6771ee6345
@ -14,7 +14,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author chenhaojie
|
* @author chenhaojie
|
||||||
*/
|
*/
|
||||||
public interface SysAuthorityMapper extends BaseMapper<SysAuthority> {
|
public interface SysAuthorityMapper extends BaseMapperPlus<SysAuthority, SysAuthority> {
|
||||||
|
|
||||||
List<SysAuthority> selectByAuthorities(@Param("list")List<SysAuthority> list);
|
List<SysAuthority> selectByAuthorities(@Param("list")List<SysAuthority> list);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public class SysAuthorityServiceImpl implements SysAuthorityService {
|
|||||||
|
|
||||||
// 批量插入不存在的权限
|
// 批量插入不存在的权限
|
||||||
if (!list.isEmpty()) {
|
if (!list.isEmpty()) {
|
||||||
sysAuthorityMapper.batchInsert(list);
|
sysAuthorityMapper.insertOrUpdateBatch(list);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 异常处理:记录日志或执行其他恢复策略
|
// 异常处理:记录日志或执行其他恢复策略
|
||||||
|
@ -59,7 +59,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
BeanCopyUtils.copy(sysIotModelDto, sysIotModel);
|
BeanCopyUtils.copy(sysIotModelDto, sysIotModel);
|
||||||
|
|
||||||
QueryWrapper<SysIotModel> sysIotModelQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysIotModel> sysIotModelQueryWrapper = new QueryWrapper<>();
|
||||||
sysIotModelQueryWrapper.eq("iot_model_code", sysIotModelDto.getIotModelCode());
|
sysIotModelQueryWrapper.eq("iot_model_code", sysIotModelDto.getIotModelCode().toLowerCase());
|
||||||
SysIotModel sysIotModelQuery = sysIotModelMapper.selectOne(sysIotModelQueryWrapper);
|
SysIotModel sysIotModelQuery = sysIotModelMapper.selectOne(sysIotModelQueryWrapper);
|
||||||
if (!(sysIotModelQuery == null)) {
|
if (!(sysIotModelQuery == null)) {
|
||||||
throw new ServiceException("物模型code已经存在");
|
throw new ServiceException("物模型code已经存在");
|
||||||
@ -74,6 +74,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
sysIotModelMapper.insert(sysIotModel);
|
sysIotModelMapper.insert(sysIotModel);
|
||||||
SysIotModelVo sysIotModelVo = new SysIotModelVo();
|
SysIotModelVo sysIotModelVo = new SysIotModelVo();
|
||||||
BeanCopyUtils.copy(sysIotModel, sysIotModelVo);
|
BeanCopyUtils.copy(sysIotModel, sysIotModelVo);
|
||||||
|
sysIotModelVo.setIotModelCode(sysIotModelDto.getIotModelCode().toLowerCase());
|
||||||
return sysIotModelVo;
|
return sysIotModelVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +84,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
||||||
sysIotModel.setUpdatedTime(new Date());
|
sysIotModel.setUpdatedTime(new Date());
|
||||||
sysIotModel.setUpdatedBy(sysUserVo.getAccount());
|
sysIotModel.setUpdatedBy(sysUserVo.getAccount());
|
||||||
// sysIotModel.setUpdatedBy("sysUserVo.getAccount()");
|
sysIotModel.setIotModelCode(sysIotModelDto.getIotModelCode().toLowerCase());
|
||||||
sysIotModelMapper.updateById(sysIotModel);
|
sysIotModelMapper.updateById(sysIotModel);
|
||||||
SysIotModelVo sysIotModelVo = new SysIotModelVo();
|
SysIotModelVo sysIotModelVo = new SysIotModelVo();
|
||||||
BeanCopyUtils.copy(sysIotModel, sysIotModelVo);
|
BeanCopyUtils.copy(sysIotModel, sysIotModelVo);
|
||||||
@ -136,7 +137,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
BeanCopyUtils.copy(sysIotModelFieldDto, sysIotModelField);
|
BeanCopyUtils.copy(sysIotModelFieldDto, sysIotModelField);
|
||||||
|
|
||||||
QueryWrapper<SysIotModelField> sysIotModelFieldQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysIotModelField> sysIotModelFieldQueryWrapper = new QueryWrapper<>();
|
||||||
sysIotModelFieldQueryWrapper.eq("attribute_code", sysIotModelFieldDto.getAttributeCode());
|
sysIotModelFieldQueryWrapper.eq("attribute_code", sysIotModelFieldDto.getAttributeCode().toLowerCase());
|
||||||
SysIotModelField sysIotModelFieldQuery = sysIotModelFieldMapper.selectOne(sysIotModelFieldQueryWrapper);
|
SysIotModelField sysIotModelFieldQuery = sysIotModelFieldMapper.selectOne(sysIotModelFieldQueryWrapper);
|
||||||
if (!(sysIotModelFieldQuery == null)) {
|
if (!(sysIotModelFieldQuery == null)) {
|
||||||
throw new ServiceException("物模型属性code已经存在");
|
throw new ServiceException("物模型属性code已经存在");
|
||||||
@ -151,6 +152,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
sysIotModelFieldMapper.insert(sysIotModelField);
|
sysIotModelFieldMapper.insert(sysIotModelField);
|
||||||
SysIotModelFieldVo sysIotModelFieldVo = new SysIotModelFieldVo();
|
SysIotModelFieldVo sysIotModelFieldVo = new SysIotModelFieldVo();
|
||||||
BeanCopyUtils.copy(sysIotModelField, sysIotModelFieldVo);
|
BeanCopyUtils.copy(sysIotModelField, sysIotModelFieldVo);
|
||||||
|
sysIotModelFieldVo.setAttributeCode(sysIotModelFieldDto.getAttributeCode().toLowerCase());
|
||||||
return sysIotModelFieldVo;
|
return sysIotModelFieldVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,7 +163,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
||||||
sysIotModelField.setUpdatedTime(new Date());
|
sysIotModelField.setUpdatedTime(new Date());
|
||||||
sysIotModelField.setUpdatedBy(sysUserVo.getAccount());
|
sysIotModelField.setUpdatedBy(sysUserVo.getAccount());
|
||||||
// sysIotModelField.setUpdatedBy("sysUserVo.getAccount()");
|
sysIotModelField.setAttributeCode(sysIotModelFieldDto.getAttributeCode().toLowerCase());
|
||||||
sysIotModelFieldMapper.updateById(sysIotModelField);
|
sysIotModelFieldMapper.updateById(sysIotModelField);
|
||||||
SysIotModelFieldVo sysIotModelFieldVo = new SysIotModelFieldVo();
|
SysIotModelFieldVo sysIotModelFieldVo = new SysIotModelFieldVo();
|
||||||
BeanCopyUtils.copy(sysIotModelField, sysIotModelFieldVo);
|
BeanCopyUtils.copy(sysIotModelField, sysIotModelFieldVo);
|
||||||
@ -188,7 +190,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
BeanCopyUtils.copy(sysIotModelServiceDto, sysIotModelServices);
|
BeanCopyUtils.copy(sysIotModelServiceDto, sysIotModelServices);
|
||||||
|
|
||||||
QueryWrapper<SysIotModelServices> sysIotModelServiceQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysIotModelServices> sysIotModelServiceQueryWrapper = new QueryWrapper<>();
|
||||||
sysIotModelServiceQueryWrapper.eq("service_code", sysIotModelServiceDto.getServiceCode());
|
sysIotModelServiceQueryWrapper.eq("service_code", sysIotModelServiceDto.getServiceCode().toLowerCase());
|
||||||
SysIotModelServices sysIotModelServiceQuery = sysIotModelServiceMapper.selectOne(sysIotModelServiceQueryWrapper);
|
SysIotModelServices sysIotModelServiceQuery = sysIotModelServiceMapper.selectOne(sysIotModelServiceQueryWrapper);
|
||||||
if (!(sysIotModelServiceQuery == null)) {
|
if (!(sysIotModelServiceQuery == null)) {
|
||||||
throw new ServiceException("物模型动作code已经存在");
|
throw new ServiceException("物模型动作code已经存在");
|
||||||
@ -203,6 +205,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
sysIotModelServiceMapper.insert(sysIotModelServices);
|
sysIotModelServiceMapper.insert(sysIotModelServices);
|
||||||
SysIotModelServiceVo sysIotModelServiceVo = new SysIotModelServiceVo();
|
SysIotModelServiceVo sysIotModelServiceVo = new SysIotModelServiceVo();
|
||||||
BeanCopyUtils.copy(sysIotModelServices, sysIotModelServiceVo);
|
BeanCopyUtils.copy(sysIotModelServices, sysIotModelServiceVo);
|
||||||
|
sysIotModelServiceVo.setServiceCode(sysIotModelServiceDto.getServiceCode().toLowerCase());
|
||||||
return sysIotModelServiceVo;
|
return sysIotModelServiceVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +216,7 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
||||||
sysIotModelServices.setUpdatedTime(new Date());
|
sysIotModelServices.setUpdatedTime(new Date());
|
||||||
sysIotModelServices.setUpdatedBy(sysUserVo.getAccount());
|
sysIotModelServices.setUpdatedBy(sysUserVo.getAccount());
|
||||||
// sysIotModelServices.setUpdatedBy("sysUserVo.getAccount()");
|
sysIotModelServices.setServiceCode(sysIotModelServiceDto.getServiceCode().toLowerCase());
|
||||||
sysIotModelServiceMapper.updateById(sysIotModelServices);
|
sysIotModelServiceMapper.updateById(sysIotModelServices);
|
||||||
SysIotModelServiceVo sysIotModelServiceVo = new SysIotModelServiceVo();
|
SysIotModelServiceVo sysIotModelServiceVo = new SysIotModelServiceVo();
|
||||||
BeanCopyUtils.copy(sysIotModelServices, sysIotModelServiceVo);
|
BeanCopyUtils.copy(sysIotModelServices, sysIotModelServiceVo);
|
||||||
@ -287,18 +290,23 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
for (List<Object> row : list) {
|
for (List<Object> row : list) {
|
||||||
// 遍历sheet页中记录,构造需要导入的对象
|
// 遍历sheet页中记录,构造需要导入的对象
|
||||||
SysIotModelServices services = new SysIotModelServices();
|
SysIotModelServices services = new SysIotModelServices();
|
||||||
services.setServiceCode(row.get(1).toString());
|
QueryWrapper<SysIotModelServices> sysIotModelServiceQueryWrapper = new QueryWrapper<>();
|
||||||
services.setServiceName(row.get(2).toString());
|
sysIotModelServiceQueryWrapper.eq("service_code", row.get(1).toString().toLowerCase());
|
||||||
services.setServiceType(Integer.valueOf(row.get(3).toString()));
|
SysIotModelServices sysIotModelServiceQuery = sysIotModelServiceMapper.selectOne(sysIotModelServiceQueryWrapper);
|
||||||
services.setPorder(Integer.valueOf(row.get(4).toString()));
|
if (sysIotModelServiceQuery == null) {
|
||||||
services.setIotModelId(Long.valueOf(iotModelId));
|
services.setServiceCode(row.get(1).toString().toLowerCase());
|
||||||
services.setId(SequenceUtils.generateId());
|
services.setServiceName(row.get(2).toString());
|
||||||
services.setCreatedTime(new Date());
|
services.setServiceType(Integer.valueOf(row.get(3).toString()));
|
||||||
services.setUpdatedTime(new Date());
|
services.setPorder(Integer.valueOf(row.get(4).toString()));
|
||||||
services.setRevision(1);
|
services.setIotModelId(Long.valueOf(iotModelId));
|
||||||
services.setCreatedBy(StpUtil.getLoginIdAsString());
|
services.setId(SequenceUtils.generateId());
|
||||||
services.setUpdatedBy(StpUtil.getLoginIdAsString());
|
services.setCreatedTime(new Date());
|
||||||
sysIotModelServiceList.add(services);
|
services.setUpdatedTime(new Date());
|
||||||
|
services.setRevision(1);
|
||||||
|
services.setCreatedBy(StpUtil.getLoginIdAsString());
|
||||||
|
services.setUpdatedBy(StpUtil.getLoginIdAsString());
|
||||||
|
sysIotModelServiceList.add(services);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sysIotModelServiceMapper.insertBatch(sysIotModelServiceList);
|
sysIotModelServiceMapper.insertBatch(sysIotModelServiceList);
|
||||||
}
|
}
|
||||||
@ -309,18 +317,23 @@ public class SysIotModelServiceImpl implements SysIotModelService {
|
|||||||
for (List<Object> row : list) {
|
for (List<Object> row : list) {
|
||||||
// 遍历sheet页中记录,构造需要导入的对象
|
// 遍历sheet页中记录,构造需要导入的对象
|
||||||
SysIotModelField field = new SysIotModelField();
|
SysIotModelField field = new SysIotModelField();
|
||||||
field.setAttributeCode(row.get(1).toString());
|
QueryWrapper<SysIotModelField> sysIotModelFieldQueryWrapper = new QueryWrapper<>();
|
||||||
field.setAttributeName(row.get(2).toString());
|
sysIotModelFieldQueryWrapper.eq("attribute_code", row.get(1).toString().toLowerCase());
|
||||||
field.setAttributeType(Integer.valueOf(row.get(3).toString()));
|
SysIotModelField sysIotModelFieldQuery = sysIotModelFieldMapper.selectOne(sysIotModelFieldQueryWrapper);
|
||||||
field.setPorder(Integer.valueOf(row.get(4).toString()));
|
if (sysIotModelFieldQuery == null) {
|
||||||
field.setIotModelId(Long.valueOf(iotModelId));
|
field.setAttributeCode(row.get(1).toString().toLowerCase());
|
||||||
field.setId(SequenceUtils.generateId());
|
field.setAttributeName(row.get(2).toString());
|
||||||
field.setCreatedTime(new Date());
|
field.setAttributeType(Integer.valueOf(row.get(3).toString()));
|
||||||
field.setUpdatedTime(new Date());
|
field.setPorder(Integer.valueOf(row.get(4).toString()));
|
||||||
field.setRevision(1);
|
field.setIotModelId(Long.valueOf(iotModelId));
|
||||||
field.setCreatedBy(StpUtil.getLoginIdAsString());
|
field.setId(SequenceUtils.generateId());
|
||||||
field.setUpdatedBy(StpUtil.getLoginIdAsString());
|
field.setCreatedTime(new Date());
|
||||||
sysIotModelFieldList.add(field);
|
field.setUpdatedTime(new Date());
|
||||||
|
field.setRevision(1);
|
||||||
|
field.setCreatedBy(StpUtil.getLoginIdAsString());
|
||||||
|
field.setUpdatedBy(StpUtil.getLoginIdAsString());
|
||||||
|
sysIotModelFieldList.add(field);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sysIotModelFieldMapper.insertBatch(sysIotModelFieldList);
|
sysIotModelFieldMapper.insertBatch(sysIotModelFieldList);
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,13 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
@Service(value = NodeConstant.HEARTBEAT)
|
@Service(value = NodeConstant.HEARTBEAT)
|
||||||
public class HeartbeatCommand implements BaseCommand{
|
public class HeartbeatCommand implements BaseCommand{
|
||||||
|
|
||||||
|
public static final String HEART_BEAT = "heartBeat:{0}";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
AdminRedisTemplate adminRedisTemplate;
|
AdminRedisTemplate adminRedisTemplate;
|
||||||
@Override
|
@Override
|
||||||
@ -22,17 +26,17 @@ public class HeartbeatCommand implements BaseCommand{
|
|||||||
for (JsonNode fruitNode : linkNode) {
|
for (JsonNode fruitNode : linkNode) {
|
||||||
String linkId = fruitNode.get("linkId").asText();
|
String linkId = fruitNode.get("linkId").asText();
|
||||||
String online = fruitNode.get("online").asText();
|
String online = fruitNode.get("online").asText();
|
||||||
|
String key = MessageFormat.format(HEART_BEAT, linkId);
|
||||||
if (StringUtils.isEmpty(online)) {
|
if (StringUtils.isEmpty(online)) {
|
||||||
adminRedisTemplate.set(linkId, 0);
|
adminRedisTemplate.set(key, 0);
|
||||||
} else {
|
} else {
|
||||||
if ("true".equals(online)) {
|
if ("true".equals(online)) {
|
||||||
adminRedisTemplate.set(linkId, 1);
|
adminRedisTemplate.set(key, 1);
|
||||||
} else {
|
} else {
|
||||||
adminRedisTemplate.set(linkId, 0);
|
adminRedisTemplate.set(key, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
adminRedisTemplate.expire(linkId, 300L);
|
adminRedisTemplate.expire(key, 300L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.das.modules.node.command;
|
package com.das.modules.node.command;
|
||||||
|
|
||||||
import cn.hutool.core.collection.ListUtil;
|
|
||||||
import com.das.common.utils.AdminRedisTemplate;
|
import com.das.common.utils.AdminRedisTemplate;
|
||||||
import com.das.modules.node.constant.NodeConstant;
|
import com.das.modules.node.constant.NodeConstant;
|
||||||
import com.das.modules.node.domain.bo.TerminalMessage;
|
import com.das.modules.node.domain.bo.TerminalMessage;
|
||||||
@ -22,8 +21,9 @@ public class InitDeviceDataCommand implements BaseCommand{
|
|||||||
JsonNode dataInfo = data.getData();
|
JsonNode dataInfo = data.getData();
|
||||||
if (!dataInfo.isEmpty()) {
|
if (!dataInfo.isEmpty()) {
|
||||||
String deviceId = dataInfo.get("deviceId").asText();
|
String deviceId = dataInfo.get("deviceId").asText();
|
||||||
|
JsonNode values = dataInfo.get("values");
|
||||||
// 存入redis
|
// 存入redis
|
||||||
adminRedisTemplate.set(deviceId, ListUtil.toList(dataInfo.get("values").asText()));
|
adminRedisTemplate.set(deviceId, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.das.modules.node.service.impl;
|
package com.das.modules.node.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.ListUtil;
|
|
||||||
import com.das.common.constant.BaseIotModelType;
|
import com.das.common.constant.BaseIotModelType;
|
||||||
import com.das.common.utils.AdminRedisTemplate;
|
import com.das.common.utils.AdminRedisTemplate;
|
||||||
import com.das.modules.equipment.domain.vo.IotModelFieldVo;
|
import com.das.modules.equipment.domain.vo.IotModelFieldVo;
|
||||||
@ -15,7 +14,6 @@ import com.das.modules.node.mapper.SysCommunicationLinkMapper;
|
|||||||
import com.das.modules.node.mapper.SysImptabmappingMapper;
|
import com.das.modules.node.mapper.SysImptabmappingMapper;
|
||||||
import com.das.modules.node.service.DataService;
|
import com.das.modules.node.service.DataService;
|
||||||
import com.das.modules.node.service.TDEngineService;
|
import com.das.modules.node.service.TDEngineService;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
@ -28,7 +26,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -198,6 +195,16 @@ public class DataServiceImpl implements DataService {
|
|||||||
configUpdateVo.setEquipments(equipments);
|
configUpdateVo.setEquipments(equipments);
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
JsonNode jsonNode = mapper.valueToTree(configUpdateVo);
|
JsonNode jsonNode = mapper.valueToTree(configUpdateVo);
|
||||||
|
|
||||||
|
long time = System.currentTimeMillis();
|
||||||
|
|
||||||
|
TerminalMessage configUpdate = TerminalMessage.builder()
|
||||||
|
.cmd("configUpdate")
|
||||||
|
.cmdId(String.valueOf(nodeId))
|
||||||
|
.time(time)
|
||||||
|
.data(jsonNode)
|
||||||
|
.build();
|
||||||
|
nodeMessageHandler.sendActionMessage(Long.valueOf(nodeId), configUpdate);
|
||||||
return jsonNode;
|
return jsonNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,25 +226,32 @@ public class DataServiceImpl implements DataService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleData(TerminalMessage data) {
|
public void handleData(TerminalMessage data) {
|
||||||
|
// 先从redis里面获取设备的初始化数据
|
||||||
JsonNode jsonNode = data.getData();
|
JsonNode jsonNode = data.getData();
|
||||||
String deviceId = jsonNode.get("deviceId").asText();
|
String deviceId = jsonNode.get("deviceId").asText();
|
||||||
|
HashMap<String, Object> initValue = adminRedisTemplate.get(deviceId);
|
||||||
|
JsonNode values = jsonNode.get("values");
|
||||||
|
List<Map.Entry<String, Object>> entryList = new ArrayList<>(initValue.entrySet());
|
||||||
|
HashMap<String, Object> newHashMap = new HashMap<>();
|
||||||
|
for (Map.Entry<String, Object> entry : entryList) {
|
||||||
|
if(values.get(entry.getKey()) == null){
|
||||||
|
newHashMap.put(entry.getKey(), entry.getValue());
|
||||||
|
} else{
|
||||||
|
newHashMap.put(entry.getKey(), values.get(entry.getKey()).asDouble());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
adminRedisTemplate.set(deviceId, newHashMap);
|
||||||
Long dataTime = data.getTime();
|
Long dataTime = data.getTime();
|
||||||
adminRedisTemplate.set(deviceId, ListUtil.toList(jsonNode.get("values").asText()));
|
|
||||||
// 存入td库
|
// 存入td库
|
||||||
// 根据设备ID获取对应的物模型属性
|
// 根据设备ID获取对应的物模型属性
|
||||||
String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong());
|
String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong());
|
||||||
JsonNode valueJsonNode = jsonNode.get("values");
|
HashMap<String, Object> tdValues = adminRedisTemplate.get(deviceId);
|
||||||
Map<String, Object> resultMap = iotFieldMap.get(iotModelCode);
|
|
||||||
// 使用增强的 for 循环遍历键
|
|
||||||
for (String key : resultMap.keySet()) {
|
|
||||||
float value = (float) valueJsonNode.get(key).asDouble();
|
|
||||||
resultMap.put(key, value);
|
|
||||||
}
|
|
||||||
List<RTData> list = new ArrayList<>();
|
List<RTData> list = new ArrayList<>();
|
||||||
RTData rtData = RTData.builder()
|
RTData rtData = RTData.builder()
|
||||||
.dataTime(dataTime)
|
.dataTime(dataTime)
|
||||||
.deviceId(Long.valueOf(deviceId))
|
.deviceId(Long.valueOf(deviceId))
|
||||||
.values(resultMap)
|
.values(tdValues)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
list.add(rtData);
|
list.add(rtData);
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<select id="getEquipmentId" resultType="java.lang.Long">
|
<select id="getEquipmentId" resultType="java.lang.Long">
|
||||||
select si.equipment_id from sys_imptabmapping si
|
select distinct si.equipment_id from sys_imptabmapping si
|
||||||
left join sys_communicationlink sc on sc.id = si.link_id
|
left join sys_communicationlink sc on sc.id = si.link_id
|
||||||
where sc.id = #{linkId}
|
where sc.id = #{linkId}
|
||||||
</select>
|
</select>
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getAllIotModelField" resultType="java.lang.String">
|
<select id="getAllIotModelField" resultType="java.lang.String">
|
||||||
select simf.attribute_code from sys_iot_model_field simf where simf.iot_model_id = #{id} order by simf.porder
|
select simf.attribute_code from sys_iot_model_field simf where simf.iot_model_id = #{id} order by simf.attribute_code
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user