diff --git a/das/src/main/java/com/das/modules/node/command/HisHighSpeedCommand.java b/das/src/main/java/com/das/modules/node/command/HisHighSpeedCommand.java new file mode 100644 index 00000000..c59a8954 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/command/HisHighSpeedCommand.java @@ -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); + } + } +} diff --git a/das/src/main/java/com/das/modules/node/command/HisLowSpeedCommand.java b/das/src/main/java/com/das/modules/node/command/HisLowSpeedCommand.java new file mode 100644 index 00000000..0d1a6710 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/command/HisLowSpeedCommand.java @@ -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); + } + } +} diff --git a/das/src/main/java/com/das/modules/node/constant/NodeConstant.java b/das/src/main/java/com/das/modules/node/constant/NodeConstant.java index 06e781f5..364fd3c3 100644 --- a/das/src/main/java/com/das/modules/node/constant/NodeConstant.java +++ b/das/src/main/java/com/das/modules/node/constant/NodeConstant.java @@ -18,9 +18,9 @@ public interface NodeConstant { 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"; } diff --git a/das/src/main/java/com/das/modules/node/service/DataService.java b/das/src/main/java/com/das/modules/node/service/DataService.java index 6701aea7..da2fedb6 100644 --- a/das/src/main/java/com/das/modules/node/service/DataService.java +++ b/das/src/main/java/com/das/modules/node/service/DataService.java @@ -11,4 +11,8 @@ public interface DataService { void createTdStable(); void handleData(TerminalMessage data); + + void handleHighSpeed(TerminalMessage data); + + void handleLowSpeed(TerminalMessage data); } 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 cae27f97..c2df0ea3 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 @@ -240,32 +240,16 @@ public class DataServiceImpl implements DataService { JsonNode jsonNode = data.getData(); String deviceId = jsonNode.get("deviceId").asText(); JsonNode values = jsonNode.get("values"); - JsonNode high = values.get("high"); - JsonNode low = values.get("low"); Map keyValueMap = new HashMap<>(); - // 根据设备ID获取对应的物模型属性 - String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong()); - Map highFieldMap = highIotFieldMap.get(iotModelCode); - Map lowFiledMap = lowIotFieldMap.get(iotModelCode); - //High数据 - Iterator keysHigh = high.fieldNames(); + //数据入redis + Iterator keysHigh = values.fieldNames(); while (keysHigh.hasNext()) { String fieldName = keysHigh.next(); - highFieldMap.put(fieldName, high.get(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 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); // Long dataTime = data.getTime(); // @@ -287,4 +271,59 @@ public class DataServiceImpl implements DataService { // tdEngineService.updateYCHighValues(highList, 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 keyValueMap = new HashMap<>(); + // 根据设备ID获取对应的物模型属性 + String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong()); + + //High数据 + Iterator keysHigh = values.fieldNames(); + while (keysHigh.hasNext()) { + String fieldName = keysHigh.next(); + keyValueMap.put(fieldName, values.get(fieldName)); + + } + Long dataTime = data.getTime(); + List 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 keyValueMap = new HashMap<>(); + // 根据设备ID获取对应的物模型属性 + String iotModelCode = sysIotModelMapper.getIotModel(jsonNode.get("deviceId").asLong()); + + //Low数据 + Iterator keysLow= values.fieldNames(); + while (keysLow.hasNext()) { + String fieldName = keysLow.next(); + keyValueMap.put(fieldName, values.get(fieldName)); + + } + Long dataTime = data.getTime(); + List highList = new ArrayList<>(); + RTData rtHighData = RTData.builder() + .dataTime(dataTime) + .deviceId(Long.valueOf(deviceId)) + .values(keyValueMap) + .build(); + highList.add(rtHighData); + tdEngineService.updateYCLowValues(highList, iotModelCode); + } + }