diff --git a/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineColumnModeSaveOperations.java b/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineColumnModeSaveOperations.java index 12e914c7..a4ad22d1 100644 --- a/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineColumnModeSaveOperations.java +++ b/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineColumnModeSaveOperations.java @@ -13,6 +13,8 @@ import reactor.core.publisher.Mono; import java.util.*; +import static org.jetlinks.community.things.data.ThingsDataConstants.COLUMN_MESSAGE_ID; + class TDengineColumnModeSaveOperations extends ColumnModeSaveOperationsBase { private final TDengineThingDataHelper helper; @@ -34,7 +36,12 @@ class TDengineColumnModeSaveOperations extends ColumnModeSaveOperationsBase { protected String createPropertyDataId(ThingMessage message) { return message.getMessageId(); } - + @Override + protected Map createLogData(String templateId, ThingMessage message) { + Map data = super.createLogData(templateId,message); + data.put(COLUMN_MESSAGE_ID, Objects.isNull(message.getMessageId()) ? "" : message.getMessageId()); + return data; + } @Override protected Map handlePropertiesData(ThingMetadata metadata, Map properties) { properties = super.handlePropertiesData(metadata, properties); diff --git a/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineRowModeSaveOperations.java b/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineRowModeSaveOperations.java index fe8f774b..306469ed 100644 --- a/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineRowModeSaveOperations.java +++ b/jetlinks-components/tdengine-component/src/main/java/org/jetlinks/community/tdengine/things/TDengineRowModeSaveOperations.java @@ -13,6 +13,8 @@ import reactor.core.publisher.Mono; import java.util.*; +import static org.jetlinks.community.things.data.ThingsDataConstants.COLUMN_MESSAGE_ID; + class TDengineRowModeSaveOperations extends RowModeSaveOperationsBase { private final TDengineThingDataHelper helper; @@ -62,6 +64,12 @@ class TDengineRowModeSaveOperations extends RowModeSaveOperationsBase { return helper.doSave(metric, data, this::isTagValue); } + @Override + protected Map createLogData(String templateId, ThingMessage message) { + Map data = super.createLogData(templateId,message); + data.put(COLUMN_MESSAGE_ID, Objects.isNull(message.getMessageId()) ? "" : message.getMessageId()); + return data; + } @Override protected Mono doSave(String metric, Flux data) { return helper.doSave(metric, data, this::isTagValue); diff --git a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/AbstractSaveOperations.java b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/AbstractSaveOperations.java index 5e8e7d01..a11170cf 100644 --- a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/AbstractSaveOperations.java +++ b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/AbstractSaveOperations.java @@ -73,7 +73,7 @@ public abstract class AbstractSaveOperations implements SaveOperations { .then(); } - protected Map createLogData(ThingMessage message) { + protected Map createLogData(String templateId, ThingMessage message) { Map data = Maps.newHashMapWithExpectedSize(8); data.put(COLUMN_ID, getOrCreateUid(message)); data.put(metricBuilder.getThingIdProperty(), message.getThingId()); @@ -81,6 +81,9 @@ public abstract class AbstractSaveOperations implements SaveOperations { data.put(COLUMN_CREATE_TIME, System.currentTimeMillis()); data.put(COLUMN_MESSAGE_ID, message.getMessageId()); data.put(COLUMN_LOG_TYPE, ThingLogType.of(message).name()); + if (settings.getLogFilter().isAllInOne()) { + data.put(metricBuilder.getTemplateIdProperty(), templateId); + } String log; if (message instanceof DeviceLogMessage) { log = ((DeviceLogMessage) message).getLog(); @@ -323,7 +326,7 @@ public abstract class AbstractSaveOperations implements SaveOperations { return Mono.just(Tuples.of( metricBuilder.createLogMetric(message.getThingType(), templateId, message.getThingId()), - TimeSeriesData.of(message.getTimestamp(), createLogData(message)))); + TimeSeriesData.of(message.getTimestamp(), createLogData(templateId,message)))); } protected abstract Flux> convertProperties(String templateId, diff --git a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/DataSettings.java b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/DataSettings.java index 159a17f4..0a48d95c 100644 --- a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/DataSettings.java +++ b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/DataSettings.java @@ -19,7 +19,8 @@ public class DataSettings { @Getter @Setter public static class Log extends MessageTypeMatcher { - + //使用同一个表来存储所有的日志数据 + private boolean allInOne = false; } @Getter diff --git a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/MetricBuilder.java b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/MetricBuilder.java index dccee25f..ed5ab79d 100644 --- a/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/MetricBuilder.java +++ b/jetlinks-components/things-component/src/main/java/org/jetlinks/community/things/data/operations/MetricBuilder.java @@ -36,4 +36,10 @@ public interface MetricBuilder { String eventId) { return thingType + "_event_" + thingTemplateId + "_" + eventId; } + /** + * @return 物模版ID的字段标识, 默认为{@link ThingsDataConstants#COLUMN_THING_ID} + */ + default String getTemplateIdProperty() { + return ThingsDataConstants.COLUMN_TEMPLATE_ID; + } }