From 452e149d7cd5529d86865a0d2e26482b299a7dba Mon Sep 17 00:00:00 2001 From: zhouhao Date: Thu, 20 Feb 2020 12:02:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B1=9E=E6=80=A7=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TimeSeriesMessageWriterConnector.java | 41 ++++++------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/writer/TimeSeriesMessageWriterConnector.java b/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/writer/TimeSeriesMessageWriterConnector.java index cabf93d1..d5e04d40 100644 --- a/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/writer/TimeSeriesMessageWriterConnector.java +++ b/jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/message/writer/TimeSeriesMessageWriterConnector.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.hswebframework.web.id.IDGenerator; +import org.jetlinks.community.device.entity.DevicePropertiesEntity; import org.jetlinks.core.device.DeviceRegistry; import org.jetlinks.core.message.DeviceMessage; import org.jetlinks.core.message.DeviceOfflineMessage; @@ -173,36 +174,18 @@ public class TimeSeriesMessageWriterConnector .collect(Collectors.toMap(PropertyMetadata::getId, Function.identity())); return Flux.fromIterable(properties.entrySet()) .map(entry -> { - Map data = new HashMap<>(); - data.put("deviceId", device.getDeviceId()); - data.put("timestamp", message.getTimestamp()); - data.put("property", entry.getKey()); - data.put("propertyName", entry.getKey()); - data.put("orgId", headers.get("orgId")); - data.put("productId", productId); - data.put("value", entry.getValue().toString()); - ofNullable(propertyMetadata.get(entry.getKey())) - .ifPresent(prop -> { - DataType type = prop.getValueType(); - data.put("propertyName", prop.getName()); - if (type instanceof NumberType) { - NumberType numberType = (NumberType) type; - data.put("numberValue", new BigDecimal(numberType.convert(entry.getValue()).toString())); - } else if (type instanceof DateTimeType) { - DateTimeType dateTimeType = (DateTimeType) type; - data.put("timeValue", dateTimeType.convert(entry.getValue())); - } else if (type instanceof ObjectType) { - ObjectType ObjectType = (ObjectType) type; - data.put("objectValue", ObjectType.convert(entry.getValue())); - } else { - data.put("stringValue", String.valueOf(entry.getValue())); - } - ofNullable(type.format(entry.getValue())) - .map(String::valueOf) - .ifPresent(val -> data.put("formatValue", val)); - }); - return TimeSeriesData.of(message.getTimestamp(), data); + DevicePropertiesEntity entity = DevicePropertiesEntity.builder() + .deviceId(device.getDeviceId()) + .timestamp(message.getTimestamp()) + .property(entry.getKey()) + .propertyName(entry.getKey()) + .orgId((String) headers.get("orgId")) + .productId(productId) + .build() + .withValue(propertyMetadata.get(entry.getKey()), entry.getValue()); + + return TimeSeriesData.of(message.getTimestamp(), entity.toMap()); }) .flatMap(data -> timeSeriesManager.getService(DeviceTimeSeriesMetric.devicePropertyMetric(productId)).save(data)) .then();