解决冲突
This commit is contained in:
commit
99e19428a1
@ -580,7 +580,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
|
|||||||
$"new EntityMemberInfo(" +
|
$"new EntityMemberInfo(" +
|
||||||
$"\"{prop.Name}.{elementName}\", " +
|
$"\"{prop.Name}.{elementName}\", " +
|
||||||
$"typeof({elementType}), " +
|
$"typeof({elementType}), " +
|
||||||
$"typeof({elementType}).Name, " +//$"\"{elementDeclaredName}\", " +
|
$"GetValueTupleElementName(typeof({elementType})), " +//$"\"{elementDeclaredName}\", " +
|
||||||
$"(e) => Get{prop.Name}_{elementName}(({entityType})e), " +
|
$"(e) => Get{prop.Name}_{elementName}(({entityType})e), " +
|
||||||
$"(e, v) => Set{prop.Name}_{elementName}(({entityType})e, ({elementType})v))");
|
$"(e, v) => Set{prop.Name}_{elementName}(({entityType})e, ({elementType})v))");
|
||||||
}
|
}
|
||||||
@ -589,6 +589,30 @@ namespace JiShe.CollectBus.IncrementalGenerator
|
|||||||
|
|
||||||
code.AppendLine(string.Join(",\n", initializerLines));
|
code.AppendLine(string.Join(",\n", initializerLines));
|
||||||
code.AppendLine(" };");
|
code.AppendLine(" };");
|
||||||
|
|
||||||
|
code.AppendLine(GetValueTupleElementName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetValueTupleElementName()
|
||||||
|
{
|
||||||
|
return """
|
||||||
|
public static string GetValueTupleElementName(Type declaredType)
|
||||||
|
{
|
||||||
|
string typeName;
|
||||||
|
// 处理可空类型
|
||||||
|
if (declaredType.IsGenericType && declaredType.GetGenericTypeDefinition() == typeof(Nullable<>))
|
||||||
|
{
|
||||||
|
Type underlyingType = Nullable.GetUnderlyingType(declaredType);
|
||||||
|
typeName = underlyingType.Name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
typeName = declaredType.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return typeName;
|
||||||
|
}
|
||||||
|
""";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ namespace JiShe.CollectBus.IoTDB.Context
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// IoTDB SessionPool 运行时上下文
|
/// IoTDB SessionPool 运行时上下文
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class IoTDBRuntimeContext: IScopedDependency
|
public class IoTDBRuntimeContext: IScopedDependency//ITransientDependency
|
||||||
{
|
{
|
||||||
private readonly bool _defaultValue;
|
private readonly bool _defaultValue;
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,8 @@ namespace JiShe.CollectBus.IoTDB.Interface
|
|||||||
///// <param name="useTableSession">是否使用表模型</param>
|
///// <param name="useTableSession">是否使用表模型</param>
|
||||||
//void SwitchSessionPool(bool useTableSession);
|
//void SwitchSessionPool(bool useTableSession);
|
||||||
|
|
||||||
|
IIoTDbProvider GetSessionPool(bool sessionpolType);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 插入数据
|
/// 插入数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -42,6 +42,16 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
private IIoTDbSessionPool CurrentSession =>
|
private IIoTDbSessionPool CurrentSession =>
|
||||||
_sessionFactory.GetSessionPool(_runtimeContext.UseTableSessionPool);
|
_sessionFactory.GetSessionPool(_runtimeContext.UseTableSessionPool);
|
||||||
|
|
||||||
|
|
||||||
|
//private IIoTDbSessionPool CurrentSession { get; set; }
|
||||||
|
|
||||||
|
public IIoTDbProvider GetSessionPool(bool sessionpolType)
|
||||||
|
{
|
||||||
|
//CurrentSession = _sessionFactory.GetSessionPool(sessionpolType);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IoTDbProvider
|
/// IoTDbProvider
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -96,6 +106,11 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (entities == null || entities.Count() <= 0)
|
||||||
|
{
|
||||||
|
_logger.LogError($"{nameof(BatchInsertAsync)} 参数异常,-101");
|
||||||
|
return;
|
||||||
|
}
|
||||||
var metadata = await GetMetadata<T>();
|
var metadata = await GetMetadata<T>();
|
||||||
|
|
||||||
var batchSize = 1000;
|
var batchSize = 1000;
|
||||||
@ -321,9 +336,6 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//var accessor = SourceEntityAccessorFactory.GetAccessor<T>();
|
|
||||||
|
|
||||||
//var memberCache = BuildMemberCache(accessor);
|
|
||||||
|
|
||||||
if (metadata.EntityType == null)
|
if (metadata.EntityType == null)
|
||||||
{
|
{
|
||||||
@ -795,7 +807,8 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
{
|
{
|
||||||
return declaredTypeName switch
|
return declaredTypeName switch
|
||||||
{
|
{
|
||||||
"DATETIME" => value => value != null ? ((DateTime)value).GetDateTimeOffset().ToUnixTimeNanoseconds() : null,
|
"DATETIME" => value => value != null ? Convert.ToDateTime(value).GetDateTimeOffset().ToUnixTimeNanoseconds() : null,
|
||||||
|
"DECIMAL" => value => value != null ? Convert.ToDouble( value) : null,
|
||||||
_ => value => value
|
_ => value => value
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -897,7 +910,7 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
["DATETIME"] = TSDataType.TIMESTAMP,
|
["DATETIME"] = TSDataType.TIMESTAMP,
|
||||||
["DATE"] = TSDataType.DATE,
|
["DATE"] = TSDataType.DATE,
|
||||||
["BLOB"] = TSDataType.BLOB,
|
["BLOB"] = TSDataType.BLOB,
|
||||||
["DECIMAL"] = TSDataType.FLOAT,
|
["DECIMAL"] = TSDataType.DOUBLE,
|
||||||
["STRING"] = TSDataType.STRING
|
["STRING"] = TSDataType.STRING
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -933,7 +946,7 @@ namespace JiShe.CollectBus.IoTDB.Provider
|
|||||||
TSDataType.BOOLEAN => Convert.ToBoolean(value),
|
TSDataType.BOOLEAN => Convert.ToBoolean(value),
|
||||||
TSDataType.INT32 => Convert.ToInt32(value),
|
TSDataType.INT32 => Convert.ToInt32(value),
|
||||||
TSDataType.INT64 => Convert.ToInt64(value),
|
TSDataType.INT64 => Convert.ToInt64(value),
|
||||||
TSDataType.FLOAT => Convert.ToDouble(value),
|
TSDataType.FLOAT => Convert.ToSingle(value),
|
||||||
TSDataType.DOUBLE => Convert.ToDouble(value),
|
TSDataType.DOUBLE => Convert.ToDouble(value),
|
||||||
TSDataType.TEXT => Convert.ToString(value),
|
TSDataType.TEXT => Convert.ToString(value),
|
||||||
TSDataType.NONE => null,
|
TSDataType.NONE => null,
|
||||||
|
|||||||
@ -99,5 +99,28 @@ namespace JiShe.CollectBus.Protocol.T6452007.SendData
|
|||||||
return new Telemetry6452007PacketResponse() { Data = dataList };
|
return new Telemetry6452007PacketResponse() { Data = dataList };
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 读数据
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 变量数据标识编码处理
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Telemetry6452007PacketResponse C11_02_Send(Telemetry6452007PacketRequest request)
|
||||||
|
{
|
||||||
|
var itemCodeArr = request.ItemCode.Split('_');//11_02_80_00_02
|
||||||
|
var c_data = itemCodeArr[0];
|
||||||
|
var DI3 = itemCodeArr[1];
|
||||||
|
var DI2 = itemCodeArr[2];
|
||||||
|
var DI1 = itemCodeArr[3];
|
||||||
|
var DI0 = itemCodeArr[4];
|
||||||
|
|
||||||
|
var dataUnit = new List<string>() { DI3, DI2, DI1, DI0 };
|
||||||
|
|
||||||
|
var dataList = Build645SendData.Build645SendCommand(request.MeterAddress, c_data, dataUnit);
|
||||||
|
return new Telemetry6452007PacketResponse() { Data = dataList };
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,6 +91,7 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
|
|||||||
//TableModelSingleMeasuringEntityExtension
|
//TableModelSingleMeasuringEntityExtension
|
||||||
//TableModelSingleMeasuringEntityAccessor.GetSystemName(meter);
|
//TableModelSingleMeasuringEntityAccessor.GetSystemName(meter);
|
||||||
//ElectricityMeterAccessor
|
//ElectricityMeterAccessor
|
||||||
|
await _iotDBProvider.GetSessionPool(true).InsertAsync(meter);
|
||||||
await _iotDBProvider.InsertAsync(meter);
|
await _iotDBProvider.InsertAsync(meter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,14 +212,15 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
|
|||||||
time = DateTime.Now;
|
time = DateTime.Now;
|
||||||
//System.Reflection.PropertyInfo;
|
//System.Reflection.PropertyInfo;
|
||||||
//System.Reflection.FieldInfo
|
//System.Reflection.FieldInfo
|
||||||
var meter = new TreeModelSingleMeasuringEntity<DateTime>()
|
//TreeModelSingleMeasuringEntityAccessor
|
||||||
|
var meter = new TreeModelSingleMeasuringEntity<decimal?>()
|
||||||
{
|
{
|
||||||
SystemName = "energy",
|
SystemName = "energy",
|
||||||
DeviceId = "402440506",
|
DeviceId = "402440506",
|
||||||
DeviceType = "1",
|
DeviceType = "1",
|
||||||
ProjectId = "10059",
|
ProjectId = "10059",
|
||||||
Timestamps = time.GetDateTimeOffset().ToUnixTimeMilliseconds(),
|
Timestamps = time.GetDateTimeOffset().ToUnixTimeMilliseconds(),
|
||||||
SingleMeasuring = (measuring, time)
|
SingleMeasuring = (measuring, 34.534m)
|
||||||
};
|
};
|
||||||
await _iotDBProvider.InsertAsync(meter);
|
await _iotDBProvider.InsertAsync(meter);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -728,17 +728,27 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
|||||||
//var aFN = (AFN)aFNStr.HexToDec();
|
//var aFN = (AFN)aFNStr.HexToDec();
|
||||||
//var fn = int.Parse(itemCodeArr[1]);
|
//var fn = int.Parse(itemCodeArr[1]);
|
||||||
|
|
||||||
|
var itemCodeInfo = T37612012PacketItemCodeConst.MappingItemCodeTo645SubCodeRelationship(tempItem);
|
||||||
|
|
||||||
//TODO:特殊表
|
//TODO:特殊表
|
||||||
ProtocolBuildResponse builderResponse = await protocolPlugin.BuildAsync(new ProtocolBuildRequest()
|
ProtocolBuildResponse builderResponse = await protocolPlugin.BuildAsync(new ProtocolBuildRequest()
|
||||||
{
|
{
|
||||||
FocusAddress = ammeterInfo.FocusAddress,
|
FocusAddress = ammeterInfo.FocusAddress,
|
||||||
Pn = ammeterInfo.MeteringCode,
|
Pn = ammeterInfo.MeteringCode,
|
||||||
ItemCode = tempItem,
|
ItemCode = itemCodeInfo.Item1,
|
||||||
DataTimeMark = new Protocol.DataTimeMark()
|
DataTimeMark = new Protocol.DataTimeMark()
|
||||||
{
|
{
|
||||||
Density = ammeterInfo.TimeDensity.GetFocusDensity(),//转换成协议的值
|
Density = ammeterInfo.TimeDensity.GetFocusDensity(),//转换成协议的值
|
||||||
Point = 1,
|
Point = 1,
|
||||||
DataTime = timestamps,
|
DataTime = timestamps,
|
||||||
|
},
|
||||||
|
SubProtocolRequest = new SubProtocolBuildRequest()
|
||||||
|
{
|
||||||
|
MeterAddress = ammeterInfo.MeterAddress,
|
||||||
|
Password = ammeterInfo.Password,
|
||||||
|
MeteringPort = ammeterInfo.MeteringPort,
|
||||||
|
Baudrate = ammeterInfo.Baudrate,
|
||||||
|
ItemCode = itemCodeInfo.Item2, //10_97 => 11_02_80_00_02
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (builderResponse == null || builderResponse.Data.Length <= 0)
|
if (builderResponse == null || builderResponse.Data.Length <= 0)
|
||||||
|
|||||||
@ -222,7 +222,8 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
|||||||
|
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
sql = $@"{sql} and c.Address in('542410000504','442405000040','442405000039','402410040506')";
|
// sql = $@"{sql} and c.Address in('542410000504','442405000040','442405000039','402410040506')";
|
||||||
|
sql = $@"{sql} and c.Address in('402410040506')";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(gatherCode))
|
if (!string.IsNullOrWhiteSpace(gatherCode))
|
||||||
@ -294,35 +295,49 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
|||||||
if (settingInfos == null || settingInfos.Count <= 0)
|
if (settingInfos == null || settingInfos.Count <= 0)
|
||||||
{
|
{
|
||||||
settingInfos = new List<AmmeterAutoValveControlSetting>();
|
settingInfos = new List<AmmeterAutoValveControlSetting>();
|
||||||
settingInfos.Add(new AmmeterAutoValveControlSetting()
|
//settingInfos.Add(new AmmeterAutoValveControlSetting()
|
||||||
{
|
//{
|
||||||
MeterType = MeterTypeEnum.Ammeter,
|
// MeterType = MeterTypeEnum.Ammeter,
|
||||||
AmmerterAddress = "442405000040",
|
// AmmerterAddress = "442405000040",
|
||||||
FocusAddress = "442400040",
|
// FocusAddress = "442400040",
|
||||||
FocusId = 57683,
|
// FocusId = 57683,
|
||||||
ProjectID = 1,
|
// ProjectID = 1,
|
||||||
TripType = "on",
|
// TripType = "on",
|
||||||
TripTime = $"{DateTime.Now:HH:mm}",
|
// TripTime = $"{DateTime.Now:HH:mm}",
|
||||||
MeterId = 78971,
|
// MeterId = 78971,
|
||||||
LoopType = "EachDay",
|
// LoopType = "EachDay",
|
||||||
EachDayWithout = "周六,周日",
|
// EachDayWithout = "周六,周日",
|
||||||
TimeDensity = 15,
|
// TimeDensity = 15,
|
||||||
});
|
//});
|
||||||
settingInfos.Add(new AmmeterAutoValveControlSetting()
|
//settingInfos.Add(new AmmeterAutoValveControlSetting()
|
||||||
{
|
//{
|
||||||
MeterType = MeterTypeEnum.Ammeter,
|
// MeterType = MeterTypeEnum.Ammeter,
|
||||||
AmmerterAddress = "442405000039",
|
// AmmerterAddress = "442405000039",
|
||||||
FocusAddress = "442400039",
|
// FocusAddress = "442400039",
|
||||||
FocusId = 57684,
|
// FocusId = 57684,
|
||||||
ProjectID = 1,
|
// ProjectID = 1,
|
||||||
TripType = "on",
|
// TripType = "on",
|
||||||
TripTime = $"{DateTime.Now:HH:mm}",
|
// TripTime = $"{DateTime.Now:HH:mm}",
|
||||||
MeterId = 78972,
|
// MeterId = 78972,
|
||||||
LoopType = "EachDay",
|
// LoopType = "EachDay",
|
||||||
EachDayWithout = "周六,周日",
|
// EachDayWithout = "周六,周日",
|
||||||
TimeDensity = 15,
|
// TimeDensity = 15,
|
||||||
});
|
//});
|
||||||
|
|
||||||
|
//settingInfos.Add(new AmmeterAutoValveControlSetting()
|
||||||
|
//{
|
||||||
|
// MeterType = MeterTypeEnum.Ammeter,
|
||||||
|
// AmmerterAddress = "542410000504",
|
||||||
|
// FocusAddress = "542400504",
|
||||||
|
// FocusId = 57686,
|
||||||
|
// ProjectID = 1,
|
||||||
|
// TripType = "on",
|
||||||
|
// TripTime = $"{DateTime.Now:HH:mm}",
|
||||||
|
// MeterId = 78974,
|
||||||
|
// LoopType = "EachDay",
|
||||||
|
// EachDayWithout = "周六,周日",
|
||||||
|
// TimeDensity = 15,
|
||||||
|
//});
|
||||||
|
|
||||||
settingInfos.Add(new AmmeterAutoValveControlSetting()
|
settingInfos.Add(new AmmeterAutoValveControlSetting()
|
||||||
{
|
{
|
||||||
@ -339,21 +354,6 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
|||||||
TimeDensity = 15,
|
TimeDensity = 15,
|
||||||
});
|
});
|
||||||
|
|
||||||
settingInfos.Add(new AmmeterAutoValveControlSetting()
|
|
||||||
{
|
|
||||||
MeterType = MeterTypeEnum.Ammeter,
|
|
||||||
AmmerterAddress = "542410000504",
|
|
||||||
FocusAddress = "542400504",
|
|
||||||
FocusId = 57686,
|
|
||||||
ProjectID = 1,
|
|
||||||
TripType = "on",
|
|
||||||
TripTime = $"{DateTime.Now:HH:mm}",
|
|
||||||
MeterId = 78974,
|
|
||||||
LoopType = "EachDay",
|
|
||||||
EachDayWithout = "周六,周日",
|
|
||||||
TimeDensity = 15,
|
|
||||||
});
|
|
||||||
|
|
||||||
FreeRedisProvider.Instance.Set(redisCacheDeviceSettingInfoHashKey, settingInfos);
|
FreeRedisProvider.Instance.Set(redisCacheDeviceSettingInfoHashKey, settingInfos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,12 @@ namespace JiShe.CollectBus.Common.Consts
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string AFN10HFN01H = $"10_01";
|
public const string AFN10HFN01H = $"10_01";
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 电网频率
|
||||||
|
/// </summary>
|
||||||
|
public const string AFN10HFN97H = $"10_97";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 读取终端信息
|
/// 读取终端信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -181,5 +187,19 @@ namespace JiShe.CollectBus.Common.Consts
|
|||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 特殊645编码关系映射
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="itemCode"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static (string,string) MappingItemCodeTo645SubCodeRelationship(string itemCode)
|
||||||
|
{
|
||||||
|
return itemCode switch
|
||||||
|
{
|
||||||
|
AFN10HFN97H => (AFN10HFN01H,T6452007PacketItemCodeConst.C1102800002),
|
||||||
|
_=> (itemCode,""),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,6 +56,16 @@ namespace JiShe.CollectBus.Common.Consts
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string C08 = "08";
|
public const string C08 = "08";
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 读数据
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 电网频率
|
||||||
|
/// </summary>
|
||||||
|
public const string C1102800002 = "11_02_80_00_02";
|
||||||
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -141,7 +141,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ServerApplicationOptions": {
|
"ServerApplicationOptions": {
|
||||||
"ServerTagName": "JiSheCollectBus99",
|
"ServerTagName": "JiSheCollectBus8",
|
||||||
"SystemType": "Energy",
|
"SystemType": "Energy",
|
||||||
"FirstCollectionTime": "2025-04-28 15:07:00",
|
"FirstCollectionTime": "2025-04-28 15:07:00",
|
||||||
"AutomaticVerificationTime": "16:07:00",
|
"AutomaticVerificationTime": "16:07:00",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user