From cc59b327426819dcf3c00618e4a96d326123cd29 Mon Sep 17 00:00:00 2001
From: ChenYi <296215406@outlook.com>
Date: Mon, 21 Apr 2025 09:45:30 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=E5=AE=8C=E5=96=84IoTDB=E7=9A=84=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E5=AE=9E=E4=BD=93=E7=BA=A6=E6=9D=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Attribute/EntityTypeAttribute.cs | 19 ++
.../Context/IoTDBRuntimeContext.cs | 2 +-
.../EnumInfo/EntityTypeEnum.cs | 24 ++
.../Provider/DeviceMetadata.cs | 6 +
.../Provider/DevicePathBuilder.cs | 2 +-
.../Provider/IoTDBProvider.cs | 210 +++++++++++-------
.../Provider/IoTEntity.cs | 10 +-
.../RedisDataCache/RedisDataCacheService.cs | 2 +
.../Samples/SampleAppService.cs | 3 +-
.../BasicScheduledMeterReadingService.cs | 2 -
.../Ammeters/ElectricityMeter.cs | 3 +
11 files changed, 192 insertions(+), 91 deletions(-)
create mode 100644 modules/JiShe.CollectBus.IoTDB/Attribute/EntityTypeAttribute.cs
create mode 100644 modules/JiShe.CollectBus.IoTDB/EnumInfo/EntityTypeEnum.cs
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