From dea91e835337ce5b9d653d3325da6d2e01e5f6eb Mon Sep 17 00:00:00 2001 From: ZxL <13613268+LingZxcZ@user.noreply.gitee.com> Date: Fri, 13 Dec 2024 12:06:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=AD=98=E5=82=A8=E7=AD=96=E7=95=A5):=20?= =?UTF-8?q?=E6=B6=9B=E6=80=9D=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=97=A0=E6=A8=A1=E5=BC=8F=E5=86=99=E5=85=A5?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=A1=A8=E7=BC=BA=E5=A4=B1messageId=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../things/TDengineColumnModeSaveOperations.java | 9 ++++++++- .../tdengine/things/TDengineRowModeSaveOperations.java | 8 ++++++++ .../things/data/operations/AbstractSaveOperations.java | 7 +++++-- .../community/things/data/operations/DataSettings.java | 3 ++- .../community/things/data/operations/MetricBuilder.java | 6 ++++++ 5 files changed, 29 insertions(+), 4 deletions(-) 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; + } }