diff --git a/modules/JiShe.CollectBus.Analyzers/ComplexTypeSourceAnalyzers.cs b/modules/JiShe.CollectBus.Analyzers/ComplexTypeSourceAnalyzers.cs
index bad9528..ecb9c78 100644
--- a/modules/JiShe.CollectBus.Analyzers/ComplexTypeSourceAnalyzers.cs
+++ b/modules/JiShe.CollectBus.Analyzers/ComplexTypeSourceAnalyzers.cs
@@ -226,7 +226,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
code.AppendLine($" public string EntityName {{get;}} = \"{classSymbol.Name}\";");
// 添加 EntityType 属性
code.AppendLine($" public EntityTypeEnum? EntityType {{ get; }} = {entityTypeValue};");
-
+
foreach (var prop in propList)
{
// 安全类型转换
@@ -573,7 +573,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
$"new EntityMemberInfo(" +
$"\"{prop.Name}.{elementName}\", " +
$"typeof({elementType}), " +
- $"\"{elementDeclaredName}\", " +
+ $"typeof({elementType}).Name, " +//$"\"{elementDeclaredName}\", " +
$"(e) => Get{prop.Name}_{elementName}(({entityType})e), " +
$"(e, v) => Set{prop.Name}_{elementName}(({entityType})e, ({elementType})v))");
}
diff --git a/modules/JiShe.CollectBus.IoTDB/Exceptions/IoTException.cs b/modules/JiShe.CollectBus.IoTDB/Exceptions/IoTException.cs
new file mode 100644
index 0000000..93bed4f
--- /dev/null
+++ b/modules/JiShe.CollectBus.IoTDB/Exceptions/IoTException.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiShe.CollectBus.IoTDB.Exceptions
+{
+ ///
+ /// IoTDB异常
+ ///
+ public class IoTException : Exception
+ {
+ public int ErrorCode { get; }
+
+ public IoTException(string message, int errorCode)
+ : base($"{message} (Code: {errorCode})")
+ {
+ ErrorCode = errorCode;
+ }
+ }
+}
diff --git a/modules/JiShe.CollectBus.IoTDB/JiShe.CollectBus.IoTDB.csproj b/modules/JiShe.CollectBus.IoTDB/JiShe.CollectBus.IoTDB.csproj
index 3911399..78b81e3 100644
--- a/modules/JiShe.CollectBus.IoTDB/JiShe.CollectBus.IoTDB.csproj
+++ b/modules/JiShe.CollectBus.IoTDB/JiShe.CollectBus.IoTDB.csproj
@@ -14,7 +14,6 @@
-
+
diff --git a/modules/JiShe.CollectBus.IoTDB/Model/IoTEntity.cs b/modules/JiShe.CollectBus.IoTDB/Model/IoTEntity.cs
index f2d55a5..9df2488 100644
--- a/modules/JiShe.CollectBus.IoTDB/Model/IoTEntity.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Model/IoTEntity.cs
@@ -1,6 +1,7 @@
using JiShe.CollectBus.Common.Attributes;
using JiShe.CollectBus.Common.Consts;
using JiShe.CollectBus.IoTDB.Attributes;
+using Volo.Abp.Domain.Entities;
namespace JiShe.CollectBus.IoTDB.Model
{
@@ -43,5 +44,27 @@ namespace JiShe.CollectBus.IoTDB.Model
/// 时标,也就是业务时间戳,单位毫秒,必须通过DateTimeOffset获取
///
public long Timestamps { get; set; } = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+
+ ///
+ /// 设备路径
+ ///
+ public virtual string DevicePath
+ {
+ get
+ {
+ return $"root.{SystemName.ToLower()}.`{ProjectId}`.`{DeviceType}`.{DataType}.`{DeviceId}`";
+ }
+ set
+ {
+ if (string.IsNullOrWhiteSpace(value))
+ {
+ DevicePath = $"root.{SystemName.ToLower()}.`{ProjectId}`.`{DeviceType}`.{DataType}.`{DeviceId}`";
+ }
+ else
+ {
+ DevicePath = value;
+ }
+ }
+ }
}
}
diff --git a/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs b/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
index f48d218..92c33ee 100644
--- a/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
+++ b/modules/JiShe.CollectBus.IoTDB/Provider/DeviceMetadata.cs
@@ -6,8 +6,18 @@ namespace JiShe.CollectBus.IoTDB.Provider
///
/// 设备元数据
///
- public class DeviceMetadata
+ public sealed class DeviceMetadata
{
+ ///
+ /// 实体类名称
+ ///
+ public string EntityName { get; set; }
+
+ ///
+ /// 设备表名或树路径,如果实体没有添加TableNameOrTreePath,此处为空
+ ///
+ public string TableNameOrTreePath { get; set; }
+
///
/// 实体类型枚举
///
@@ -31,6 +41,42 @@ namespace JiShe.CollectBus.IoTDB.Provider
///
/// 值类型集合,用于构建Table的值类型,也就是dataTypes参数
///
- public List DataTypes { get; } = new();
+ public List DataTypes { get; set; } = new();
+
+ ///
+ /// 列处理信息集合
+ ///
+ public List Processors { get; } = new List();
+ }
+
+ ///
+ /// 列处理信息结构
+ ///
+ public struct ColumnProcessor
+ {
+ ///
+ /// 列名
+ ///
+ public string ColumnName;
+
+ ///
+ /// 值获取委托
+ ///
+ public Func