日志添加类型

This commit is contained in:
ChenYi 2025-04-29 10:02:10 +08:00
parent 083a28f7af
commit f457e140f6
12 changed files with 153 additions and 37 deletions

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
[Generator(LanguageNames.CSharp)]
public class ComplexTypeSourceAnalyzers : IIncrementalGenerator
{
private const string AttributeFullName = "JiShe.CollectBus.Analyzers.Shared.GenerateAccessorsAttribute";
private const string AttributeFullName = "JiShe.CollectBus.Analyzers.Shared.SourceAnalyzersAttribute";
public void Initialize(IncrementalGeneratorInitializationContext context)
{

View File

@ -1,10 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace JiShe.CollectBus.Analyzers
{
internal class ISourceAnalyzersProvider
{
}
}

View File

@ -8,7 +8,7 @@ namespace JiShe.CollectBus.IoTDB.Model
/// Table模型单项数据实体
/// </summary>
[EntityType(EntityTypeEnum.TableModel)]
[GenerateAccessors]
[SourceAnalyzers]
public class TableModelSingleMeasuringEntity<T> : IoTEntity
{
/// <summary>

View File

@ -8,7 +8,7 @@ namespace JiShe.CollectBus.IoTDB.Model
/// Tree模型单项数据实体
/// </summary>
[EntityType(EntityTypeEnum.TreeModel)]
[GenerateAccessors]
[SourceAnalyzers]
public class TreeModelSingleMeasuringEntity<T> : IoTEntity
{
/// <summary>

View File

@ -124,7 +124,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
/// 水表数据采集
/// </summary>
/// <returns></returns>
Task WatermeterScheduledMeterAutoReading();
Task WatermeterScheduledMeterAutoReadding();
#endregion

View File

@ -709,7 +709,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: tempItem,
subItemCode: null,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: (TelemetryPacketTypeEnum)timeDensity);
taskList.Add(meterReadingRecords);
}
@ -791,7 +792,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: itemCode,
subItemCode: subItemCode,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: TelemetryPacketTypeEnum.AmmeterAutomaticVerificationTime);
taskList.Add(meterReadingRecords);
if (taskList == null || taskList.Count <= 0)
@ -872,7 +874,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: item,
subItemCode: null,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: TelemetryPacketTypeEnum.AmmeterDayFreeze);
taskList.Add(meterReadingRecords);
}
@ -954,7 +957,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: item,
subItemCode: null,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: TelemetryPacketTypeEnum.AmmeterMonthFreeze);
taskList.Add(meterReadingRecords);
}
@ -1097,7 +1101,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
/// 水表数据采集
/// </summary>
/// <returns></returns>
public virtual async Task WatermeterScheduledMeterAutoReading()
public virtual async Task WatermeterScheduledMeterAutoReadding()
{
//获取缓存中的水表信息
int timeDensity = 60;//水表目前只有一个采集频率 60分钟
@ -1129,7 +1133,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
Conditions = conditions,
});
_logger.LogInformation($"{nameof(WatermeterScheduledMeterAutoReading)} {timeDensity}分钟采集水表数据处理完成");
_logger.LogInformation($"{nameof(WatermeterScheduledMeterAutoReadding)} {timeDensity}分钟采集水表数据处理完成");
}
/// <summary>
@ -1214,7 +1218,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
DeviceId = $"{watermeter.MeterId}",
Timestamps = DateTimeOffset.Now.ToUnixTimeNanoseconds(),
DatabaseBusiID = watermeter.DatabaseBusiID,
PendingCopyReadTime = timestamps,
PacketType = (int)TelemetryPacketTypeEnum.WatermeterAutoReadding,
PendingCopyReadTime = timestamps,
CreationTime = currentTime,
MeterAddress = watermeter.MeterAddress,
AFN = builderResponse.AFn,
@ -1298,7 +1303,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: itemCode,
subItemCode: null,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: TelemetryPacketTypeEnum.TerminalVersion);
taskList.Add(meterReadingRecords);
if (taskList == null || taskList.Count <= 0)
@ -1376,7 +1382,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
itemCode: itemCode,
subItemCode: null,
pendingCopyReadTime: currentTime,
creationTime: currentTime);
creationTime: currentTime,
packetType: TelemetryPacketTypeEnum.TelematicsModule);
taskList.Add(meterReadingRecords);
if (taskList == null || taskList.Count <= 0)
@ -1560,8 +1567,9 @@ namespace JiShe.CollectBus.ScheduledMeterReading
/// <param name="subItemCode">端到端采集项编码</param>
/// <param name="pendingCopyReadTime">待采集时间,定时采集频率才是特殊情况,其他默认当前时间戳</param>
/// <param name="creationTime">数据创建时间戳</param>
/// <param name="packetType">数据包类型</param>
/// <returns></returns>
protected MeterReadingTelemetryPacketInfo CreateAmmeterPacketInfo(AmmeterInfo ammeterInfo, long timestamps, ProtocolBuildResponse builderResponse, string itemCode, string subItemCode, DateTime pendingCopyReadTime, DateTime creationTime)
protected MeterReadingTelemetryPacketInfo CreateAmmeterPacketInfo(AmmeterInfo ammeterInfo, long timestamps, ProtocolBuildResponse builderResponse, string itemCode, string subItemCode, DateTime pendingCopyReadTime, DateTime creationTime, TelemetryPacketTypeEnum packetType)
{
string taskMark = CommonHelper.GetTaskMark(builderResponse.AFn, builderResponse.Fn, ammeterInfo.MeteringCode, builderResponse.MSA, builderResponse.Seq);
return new MeterReadingTelemetryPacketInfo()
@ -1575,10 +1583,13 @@ namespace JiShe.CollectBus.ScheduledMeterReading
PendingCopyReadTime = pendingCopyReadTime,
CreationTime = creationTime,
MeterAddress = ammeterInfo.AmmerterAddress,
PacketType = (int)packetType,
AFN = builderResponse.AFn,
Fn = builderResponse.Fn,
Seq = builderResponse.Seq,
MSA = builderResponse.MSA,
FocusId = ammeterInfo.FocusId,
FocusAddress = ammeterInfo.FocusAddress,
ItemCode = itemCode,
SubItemCode = subItemCode,
TaskMark = taskMark,

View File

@ -6,7 +6,7 @@ using JiShe.CollectBus.IoTDB.Model;
namespace JiShe.CollectBus.Ammeters
{
[EntityType(EntityTypeEnum.TableModel)]
[GenerateAccessors]
[SourceAnalyzers]
public class ElectricityMeter : IoTEntity
{
[ATTRIBUTEColumn]

View File

@ -6,7 +6,7 @@ using JiShe.CollectBus.IoTDB.Model;
namespace JiShe.CollectBus.Ammeters
{
[EntityType(EntityTypeEnum.TreeModel)]
[GenerateAccessors]
[SourceAnalyzers]
public class ElectricityMeterTreeModel : IoTEntity
{
[ATTRIBUTEColumn]

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.IotSystems.MeterReadingRecords
/// 抄读任务数据
/// </summary>
[EntityType(EntityTypeEnum.TableModel)]
[GenerateAccessors]
[SourceAnalyzers]
public class MeterReadingTelemetryPacketInfo : IoTEntity
{
/// <summary>
@ -19,6 +19,12 @@ namespace JiShe.CollectBus.IotSystems.MeterReadingRecords
[FIELDColumn]
public string ScoreValue { get; set; }
/// <summary>
/// 数据包类型
/// </summary>
[FIELDColumn]
public int PacketType { get; set; }
/// <summary>
/// 是否手动操作
/// </summary>
@ -56,12 +62,6 @@ namespace JiShe.CollectBus.IotSystems.MeterReadingRecords
[FIELDColumn]
public string FocusAddress { get; set; }
/// <summary>
/// 表Id
/// </summary>
[FIELDColumn]
public int MeterId { get; set; }
/// <summary>
/// 表地址
/// </summary>

View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace JiShe.CollectBus.Analyzers
{
public interface ISourceAnalyzersProvider<T>
{
/// <summary>
/// 获取属性值
/// </summary>
/// <param name="entity"></param>
/// <param name="propertyName"></param>
/// <returns></returns>
object GetPropertyValue(T entity, string propertyName);
/// <summary>
/// 设置属性值
/// </summary>
/// <param name="entity"></param>
/// <param name="propertyName"></param>
/// <param name="value"></param>
void SetPropertyValue(T entity, string propertyName, object value);
/// <summary>
/// 判断是否是元组属性
/// </summary>
/// <param name="propertyName"></param>
/// <returns></returns>
bool IsTupleProperty(string propertyName);
/// <summary>
/// 获取元组属性值
/// </summary>
/// <param name="entity"></param>
/// <param name="tuplePropertyName"></param>
/// <returns></returns>
(object Item1, object Item2) GetTupleParts(T entity, string tuplePropertyName);
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Analyzers.Shared
/// 标记需要生成源码的类
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public class GenerateAccessorsAttribute : Attribute
public class SourceAnalyzersAttribute : Attribute
{
}
}

View File

@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.Common.Enums
{
/// <summary>
/// 遥测数据包类型枚举
/// </summary>
public enum TelemetryPacketTypeEnum
{
/// <summary>
/// 1分钟密度
/// </summary>
[Description("1分钟密度")]
AmmeterOneMinute = 1,
/// <summary>
/// 5分钟密度
/// </summary>
[Description("5分钟密度")]
AmmeterMeterFiveMinute = 5,
/// <summary>
/// 15分钟密度
/// </summary>
[Description("15分钟密度")]
AmmeterFifteenMinute = 15,
/// <summary>
/// 自动校时
/// </summary>
[Description("自动校时")]
AmmeterAutomaticVerificationTime = 16,
/// <summary>
/// 日冻结
/// </summary>
[Description("日冻结")]
AmmeterDayFreeze = 17,
/// <summary>
/// 月冻结
/// </summary>
[Description("月冻结")]
AmmeterMonthFreeze = 18,
/// <summary>
/// 自动阀控
/// </summary>
[Description("自动阀控")]
AmmeterAutoValveControl = 19,
/// <summary>
/// 集中器终端版本
/// </summary>
[Description("集中器终端版本")]
TerminalVersion = 20,
/// <summary>
/// 集中器通信模块SIM
/// </summary>
[Description("集中器通信模块SIM")]
TelematicsModule = 21,
/// <summary>
/// 水表抄读
/// </summary>
[Description("水表抄读")]
WatermeterAutoReadding = 22,
}
}