diff --git a/modules/JiShe.CollectBus.IoTDB/Attribute/EntityTypeAttribute.cs b/modules/JiShe.CollectBus.IoTDB/Attribute/EntityTypeAttribute.cs
new file mode 100644
index 0000000..3610c00
--- /dev/null
+++ b/modules/JiShe.CollectBus.IoTDB/Attribute/EntityTypeAttribute.cs
@@ -0,0 +1,19 @@
+using JiShe.CollectBus.IoTDB.Enums;
+
+namespace JiShe.CollectBus.IoTDB.Attribute
+{
+ ///
+ /// IoTDB实体类型特性
+ ///
+ [AttributeUsage(AttributeTargets.Class)]
+ public class EntityTypeAttribute : System.Attribute
+ {
+ public EntityTypeEnum EntityType { get; }
+
+
+ public EntityTypeAttribute(EntityTypeEnum entityType)
+ {
+ EntityType = entityType;
+ }
+ }
+}
diff --git a/modules/JiShe.CollectBus.IoTDB/Context/IoTDBRuntimeContext.cs b/modules/JiShe.CollectBus.IoTDB/Context/IoTDBRuntimeContext.cs
index cd99b00..f321fa0 100644
--- a/modules/JiShe.CollectBus.IoTDB/Context/IoTDBRuntimeContext.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Context/IoTDBRuntimeContext.cs
@@ -17,7 +17,7 @@ namespace JiShe.CollectBus.IoTDB.Context
}
///
- /// 是否使用表模型存储, 默认false,使用tree模型存储
+ /// 存储模型切换标识,是否使用table模型存储, 默认为false,标识tree模型存储
///
public bool UseTableSessionPool { get; set; }
diff --git a/modules/JiShe.CollectBus.IoTDB/EnumInfo/EntityTypeEnum.cs b/modules/JiShe.CollectBus.IoTDB/EnumInfo/EntityTypeEnum.cs
new file mode 100644
index 0000000..26c6645
--- /dev/null
+++ b/modules/JiShe.CollectBus.IoTDB/EnumInfo/EntityTypeEnum.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiShe.CollectBus.IoTDB.Enums
+{
+ ///
+ /// IoTDB实体类型枚举
+ ///
+ public enum EntityTypeEnum
+ {
+ ///
+ /// 树模型
+ ///
+ TreeModel = 1,
+
+ ///
+ /// 表模型
+ ///
+ TableModel = 2,
+ }
+}
diff --git a/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs b/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
index 447f6ce..a093bb7 100644
--- a/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
@@ -1,4 +1,5 @@
using Apache.IoTDB;
+using JiShe.CollectBus.IoTDB.Enums;
namespace JiShe.CollectBus.IoTDB.Provider
{
@@ -7,6 +8,11 @@ namespace JiShe.CollectBus.IoTDB.Provider
///
public class DeviceMetadata
{
+ ///
+ /// IoTDB实体类型枚举
+ ///
+ public EntityTypeEnum EntityType { get; set; }
+
///
/// 是否有单测量值
///
diff --git a/modules/JiShe.CollectBus.IoTDB/Provider/DevicePathBuilder.cs b/modules/JiShe.CollectBus.IoTDB/Provider/DevicePathBuilder.cs
index 46ce091..b78dfa3 100644
--- a/modules/JiShe.CollectBus.IoTDB/Provider/DevicePathBuilder.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Provider/DevicePathBuilder.cs
@@ -13,7 +13,7 @@
///
public static string GetDevicePath(T entity) where T : IoTEntity
{
- return $"root.{entity.SystemName.ToLower()}.`{entity.ProjectCode}`.`{entity.DeviceId}`";
+ return $"root.{entity.SystemName.ToLower()}.`{entity.ProjectCode}`.`{entity.DeviceType}`.`{entity.DeviceId}`";
}
diff --git a/modules/JiShe.CollectBus.IoTDB/Provider/IoTDBProvider.cs b/modules/JiShe.CollectBus.IoTDB/Provider/IoTDBProvider.cs
index 9e18ac8..468506a 100644
--- a/modules/JiShe.CollectBus.IoTDB/Provider/IoTDBProvider.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Provider/IoTDBProvider.cs
@@ -1,4 +1,5 @@
-using System.Collections.Concurrent;
+using System;
+using System.Collections.Concurrent;
using System.Reflection;
using System.Text;
using Apache.IoTDB;
@@ -9,6 +10,7 @@ using JiShe.CollectBus.IoTDB.Context;
using JiShe.CollectBus.IoTDB.Interface;
using JiShe.CollectBus.IoTDB.Options;
using Microsoft.Extensions.Logging;
+using Volo.Abp.Domain.Entities;
namespace JiShe.CollectBus.IoTDB.Provider
{
@@ -139,66 +141,98 @@ namespace JiShe.CollectBus.IoTDB.Provider
List tempColumnNames = new List();
tempColumnNames.AddRange(metadata.ColumnNames);
- foreach (var entity in entities)
+ var entityTypeAttribute = typeof(T).GetCustomAttribute();
+
+ if (entityTypeAttribute == null)
{
- timestamps.Add(entity.Timestamps);
- var rowValues = new List