高频,低频数据tdengine入库
This commit is contained in:
parent
225f5d2d81
commit
4340f439cb
@ -0,0 +1,26 @@
|
|||||||
|
package com.das.modules.node.command;
|
||||||
|
|
||||||
|
import com.das.modules.node.constant.NodeConstant;
|
||||||
|
import com.das.modules.node.domain.bo.TerminalMessage;
|
||||||
|
import com.das.modules.node.service.DataService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service(value = NodeConstant.HIS_HIGH_SPEED_DATA)
|
||||||
|
@Slf4j
|
||||||
|
public class HisHighSpeedCommand implements BaseCommand {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
DataService dataService;
|
||||||
|
@Override
|
||||||
|
public void doCommand(TerminalMessage data) {
|
||||||
|
try {
|
||||||
|
//analogData值只存入redis
|
||||||
|
dataService.handleHighSpeed(data);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("解析数据异常", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.das.modules.node.command;
|
||||||
|
|
||||||
|
import com.das.modules.node.constant.NodeConstant;
|
||||||
|
import com.das.modules.node.domain.bo.TerminalMessage;
|
||||||
|
import com.das.modules.node.service.DataService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service(value = NodeConstant.HIS_LOW_SPEED_DATA)
|
||||||
|
@Slf4j
|
||||||
|
public class HisLowSpeedCommand implements BaseCommand {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
DataService dataService;
|
||||||
|
@Override
|
||||||
|
public void doCommand(TerminalMessage data) {
|
||||||
|
try {
|
||||||
|
//analogData值只存入redis
|
||||||
|
dataService.handleLowSpeed(data);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("解析数据异常", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -18,9 +18,9 @@ public interface NodeConstant {
|
|||||||
|
|
||||||
String STATE_DATA = "stateData";
|
String STATE_DATA = "stateData";
|
||||||
|
|
||||||
String HIS_ANALOG_DATA = "historyStateData";
|
String HIS_HIGH_SPEED_DATA = "historyHighSpeedData";
|
||||||
|
|
||||||
String HIS_STATE_DATA = "historyStateData";
|
String HIS_LOW_SPEED_DATA = "historyLowSpeedData";
|
||||||
|
|
||||||
String DEVICE_CONTROL_RESP = "deviceControlResp";
|
String DEVICE_CONTROL_RESP = "deviceControlResp";
|
||||||
}
|
}
|
||||||
|
@ -11,4 +11,8 @@ public interface DataService {
|
|||||||
|
|
||||||
void createTdStable();
|
void createTdStable();
|
||||||
void handleData(TerminalMessage data);
|
void handleData(TerminalMessage data);
|
||||||
|
|
||||||
|
void handleHighSpeed(TerminalMessage data);
|
||||||
|
|
||||||
|
void handleLowSpeed(TerminalMessage data);
|
||||||
}
|
}
|
||||||
|
@ -240,32 +240,16 @@ public class DataServiceImpl implements DataService {
|
|||||||
JsonNode jsonNode = data.getData();
|
JsonNode jsonNode = data.getData();
|
||||||
String deviceId = jsonNode.get("deviceId").asText();
|
String deviceId = jsonNode.get("deviceId").asText();
|
||||||
JsonNode values = jsonNode.get("values");
|
JsonNode values = jsonNode.get("values");
|
||||||
JsonNode high = values.get("high");
|
|
||||||
JsonNode low = values.get("low");
|
|
||||||
Map<String, Object> keyValueMap = new HashMap<>();
|
Map<String, Object> keyValueMap = new HashMap<>();
|
||||||
// 根据设备ID获取对应的物模型属性
|
|
||||||
String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong());
|
|
||||||
Map<String, Object> highFieldMap = highIotFieldMap.get(iotModelCode);
|
|
||||||
Map<String, Object> lowFiledMap = lowIotFieldMap.get(iotModelCode);
|
|
||||||
|
|
||||||
//High数据
|
//数据入redis
|
||||||
Iterator<String> keysHigh = high.fieldNames();
|
Iterator<String> keysHigh = values.fieldNames();
|
||||||
while (keysHigh.hasNext()) {
|
while (keysHigh.hasNext()) {
|
||||||
String fieldName = keysHigh.next();
|
String fieldName = keysHigh.next();
|
||||||
highFieldMap.put(fieldName, high.get(fieldName));
|
|
||||||
String key = String.format("RT:[%s]:[%s]", deviceId, fieldName);
|
String key = String.format("RT:[%s]:[%s]", deviceId, fieldName);
|
||||||
keyValueMap.put(key, high.get(fieldName).asDouble());
|
keyValueMap.put(key, values.get(fieldName).asDouble());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//LOW数据
|
|
||||||
Iterator<String> keysLow = low.fieldNames();
|
|
||||||
while (keysLow.hasNext()) {
|
|
||||||
String fieldName = keysLow.next();
|
|
||||||
lowFiledMap.put(fieldName, low.get(fieldName));
|
|
||||||
String key = String.format("RT:[%s]:[%s]", deviceId, fieldName);
|
|
||||||
keyValueMap.put(key, high.get(fieldName).asDouble());
|
|
||||||
}
|
|
||||||
adminRedisTemplate.mSet(keyValueMap);
|
adminRedisTemplate.mSet(keyValueMap);
|
||||||
// Long dataTime = data.getTime();
|
// Long dataTime = data.getTime();
|
||||||
//
|
//
|
||||||
@ -287,4 +271,59 @@ public class DataServiceImpl implements DataService {
|
|||||||
// tdEngineService.updateYCHighValues(highList, iotModelCode);
|
// tdEngineService.updateYCHighValues(highList, iotModelCode);
|
||||||
// tdEngineService.updateYCLowValues(lowList, iotModelCode);
|
// tdEngineService.updateYCLowValues(lowList, iotModelCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleHighSpeed(TerminalMessage data) {
|
||||||
|
JsonNode jsonNode = data.getData();
|
||||||
|
String deviceId = jsonNode.get("deviceId").asText();
|
||||||
|
JsonNode values = jsonNode.get("values");
|
||||||
|
Map<String, Object> keyValueMap = new HashMap<>();
|
||||||
|
// 根据设备ID获取对应的物模型属性
|
||||||
|
String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong());
|
||||||
|
|
||||||
|
//High数据
|
||||||
|
Iterator<String> keysHigh = values.fieldNames();
|
||||||
|
while (keysHigh.hasNext()) {
|
||||||
|
String fieldName = keysHigh.next();
|
||||||
|
keyValueMap.put(fieldName, values.get(fieldName));
|
||||||
|
|
||||||
|
}
|
||||||
|
Long dataTime = data.getTime();
|
||||||
|
List<RTData> highList = new ArrayList<>();
|
||||||
|
RTData rtHighData = RTData.builder()
|
||||||
|
.dataTime(dataTime)
|
||||||
|
.deviceId(Long.valueOf(deviceId))
|
||||||
|
.values(keyValueMap)
|
||||||
|
.build();
|
||||||
|
highList.add(rtHighData);
|
||||||
|
tdEngineService.updateYCHighValues(highList, iotModelCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleLowSpeed(TerminalMessage data) {
|
||||||
|
JsonNode jsonNode = data.getData();
|
||||||
|
String deviceId = jsonNode.get("deviceId").asText();
|
||||||
|
JsonNode values = jsonNode.get("values");
|
||||||
|
Map<String, Object> keyValueMap = new HashMap<>();
|
||||||
|
// 根据设备ID获取对应的物模型属性
|
||||||
|
String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong());
|
||||||
|
|
||||||
|
//Low数据
|
||||||
|
Iterator<String> keysLow= values.fieldNames();
|
||||||
|
while (keysLow.hasNext()) {
|
||||||
|
String fieldName = keysLow.next();
|
||||||
|
keyValueMap.put(fieldName, values.get(fieldName));
|
||||||
|
|
||||||
|
}
|
||||||
|
Long dataTime = data.getTime();
|
||||||
|
List<RTData> highList = new ArrayList<>();
|
||||||
|
RTData rtHighData = RTData.builder()
|
||||||
|
.dataTime(dataTime)
|
||||||
|
.deviceId(Long.valueOf(deviceId))
|
||||||
|
.values(keyValueMap)
|
||||||
|
.build();
|
||||||
|
highList.add(rtHighData);
|
||||||
|
tdEngineService.updateYCLowValues(highList, iotModelCode);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user