合并代码
This commit is contained in:
commit
bdfc8eabae
@ -37,6 +37,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
|
||||
TimeDensity = -1
|
||||
};
|
||||
result?.Invoke(dto);
|
||||
#if DEBUG
|
||||
_logger.LogWarning($"全部否认:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString}");
|
||||
#endif
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@ -48,7 +48,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.FocusId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.Address;
|
||||
data.DeviceType = MeterTypeEnum.Focus;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
|
||||
|
||||
@ -45,7 +45,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.FocusId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.Address;
|
||||
data.DeviceType = MeterTypeEnum.Focus;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
|
||||
|
||||
@ -45,7 +45,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.FocusId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.Address;
|
||||
data.DeviceType = MeterTypeEnum.Focus;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
|
||||
|
||||
@ -33,7 +33,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input);
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
ArgumentNullException.ThrowIfNull(input.A.A3?.D1_D7);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -48,7 +48,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
TimeDensity = 0
|
||||
};
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
List<AnalysisBaseDto<decimal>> list = GenerateFinalResult(2, datas, "正向有功电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
List<AnalysisBaseDto<decimal?>> list = GenerateFinalResult(2, datas, "正向有功电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
unitDataAnalysis.Data= list;
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
@ -90,22 +90,32 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
}
|
||||
#endregion
|
||||
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
meter.ErrorCodeMsg= errorCode.Item2;
|
||||
meter.ValidData = false;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
meter.DataValue = value;
|
||||
}
|
||||
meter.DataType = $"{afn.ToString().PadLeft(2, '0')}_{fn}_{i - index}";
|
||||
meter.TimeSpan = Convert.ToDateTime($"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00");
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
@ -31,8 +31,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input);
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
List<AnalysisBaseDto<decimal>> list = GenerateFinalResult(2, datas, "正向无功电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
List<AnalysisBaseDto<decimal?>> list = GenerateFinalResult(2, datas, "正向无功电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -78,21 +78,30 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
meter.ValidData = false;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
meter.DataValue = value;
|
||||
}
|
||||
meter.DataType = $"{afn.ToString().PadLeft(2, '0')}_{fn}_{i - index}";
|
||||
meter.TimeSpan = Convert.ToDateTime($"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00");
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00";
|
||||
if(DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
meter.TimeSpan = readingDate;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
@ -6,6 +6,8 @@ using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
{
|
||||
@ -30,8 +32,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input);
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
List<AnalysisBaseDto<decimal>> list = GenerateFinalResult(2, datas, "反向有功总电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
List<AnalysisBaseDto<decimal?>> list = GenerateFinalResult(2, datas, "反向有功总电能示值", input.AFN_FC.AFN, input.DT.Fn);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -78,21 +80,30 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(int index, List<string> data, string filedDesc = "", int afn = 0, int fn = 0)
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
meter.ValidData = false;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
meter.DataValue = value;
|
||||
}
|
||||
meter.DataType = $"{afn.ToString().PadLeft(2, '0')}_{fn}_{i - index}";
|
||||
meter.TimeSpan = Convert.ToDateTime($"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00");
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00";
|
||||
if(DateTime.TryParse(timeSpan, out DateTime readTime))
|
||||
meter.TimeSpan = readTime;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
@ -7,6 +7,7 @@ using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
{
|
||||
@ -34,9 +35,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> list = GenerateFinalResult(2, datas, "反向无功电能示值", dataType);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
List<AnalysisBaseDto<decimal?>> list = GenerateFinalResult(2, datas, "反向无功电能示值", dataType);
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -82,21 +82,33 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(int index, List<string> data, string dataType, string filedDesc = "")
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(int index, List<string> data, string dataType, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
meter.ValidData = false;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
meter.DataValue = value;
|
||||
}
|
||||
|
||||
meter.DataType = $"{dataType}_{i - index}";
|
||||
meter.TimeSpan = Convert.ToDateTime($"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00");
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan,out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
@ -35,8 +35,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "当月正向有功最大需量及发生时间", dataType);
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas, "当月正向有功最大需量及发生时间", dataType);
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -96,19 +96,25 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
return values;
|
||||
}
|
||||
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc,string dataType)
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data, string filedDesc,string dataType)
|
||||
{
|
||||
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();
|
||||
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> dto = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[2].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
dto.ErrorCodeMsg = errorCode.Item2;
|
||||
dto.ValidData = false;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[2], out value);
|
||||
{
|
||||
if(decimal.TryParse(data[2], out decimal value))
|
||||
dto.DataValue = value;
|
||||
}
|
||||
|
||||
dto.DataValue = value;
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[3].Substring(0, 2)}-{data[3].Substring(2, 2)} {data[3].Substring(4, 2)}:{data[3].Substring(6, 2)}:00";//$"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)}";
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[3].Substring(0, 2)}-{data[3].Substring(2, 2)} {data[3].Substring(4, 2)}:{data[3].Substring(6, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
dto.TimeSpan = readingDate;
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
List<string> datas = await AnalysisDataUnit(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, dataType,"上月(上一结算日)正向有功最大需量及发生时间");
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas, dataType,"上月(上一结算日)正向有功最大需量及发生时间");
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
|
||||
if (ammeterInfo != null)
|
||||
@ -46,9 +46,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.MeterId;
|
||||
data.DatabaseBusiID=ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress= ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress= ammeterInfo.AmmerterAddress;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -63,7 +63,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
DensityUnit = DensityUnit.Second,
|
||||
TimeDensity = 0
|
||||
};
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -110,10 +110,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
{
|
||||
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();
|
||||
|
||||
AnalysisBaseDto<decimal?> dto = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCodeInfo = data[2].CheckErrorCode();
|
||||
if (errorCodeInfo != null)
|
||||
{
|
||||
@ -133,7 +135,6 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
else
|
||||
{
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[3].Substring(0, 2)}-{data[3].Substring(2, 2)} {data[3].Substring(4, 2)}:{data[3].Substring(6, 2)}:00";
|
||||
|
||||
//TODO:时间标
|
||||
if (!DateTime.TryParse(timeSpan, out DateTime dataTime))
|
||||
dto.ValidData = false;
|
||||
|
||||
@ -6,6 +6,7 @@ using JiShe.CollectBus.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
{
|
||||
@ -34,8 +35,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input.AFN_FC.AFN);
|
||||
ArgumentNullException.ThrowIfNull(input.DT.Fn);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(input.UnitData.HexMessageList, dataType);
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> dto = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(input.UnitData.HexMessageList, dataType);
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> dto = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -58,10 +59,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
}
|
||||
return await Task.FromResult(false);
|
||||
}
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> hexMessageList,string dataType)
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> hexMessageList,string dataType)
|
||||
{
|
||||
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> dto = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.WaterMeter
|
||||
};
|
||||
var arr = hexMessageList.GetRange(11, 4);
|
||||
var errorCodeInfo = arr.CheckErrorCode();
|
||||
if (errorCodeInfo != null)
|
||||
@ -70,9 +73,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
dto.ErrorCodeMsg = errorCodeInfo.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse($"{arr[11]}{arr[12]}{arr[13]}.{arr[14]}", out value);
|
||||
|
||||
dto.DataValue = value;
|
||||
{
|
||||
if (decimal.TryParse($"{arr[11]}{arr[12]}{arr[13]}.{arr[14]}", out decimal value))
|
||||
dto.DataValue = value;
|
||||
}
|
||||
dto.DataType = dataType;
|
||||
dto.FiledDesc = "水示值";
|
||||
dto.FiledName = dto.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
using JiShe.CollectBus.Common.Enums;
|
||||
using JiShe.CollectBus.Common.Extensions;
|
||||
using JiShe.CollectBus.Common.Helpers;
|
||||
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
{
|
||||
@ -32,13 +35,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
ArgumentNullException.ThrowIfNull(input);
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
List<string> remarks = new List<string>() { "当前总有功功率", "当前A相有功功率", "当前B相有功功率", "当前C相有功功率", "当前总无功功率", "当前A相无功功率", "当前B相无功功率", "当前C相无功功率", "当前总功率因数", "当前A相功率因数", "当前B相功率因数", "当前C相功率因数", "当前A相电压", "当前B相电压", "当前C相电压", "当前A相电流", "当前C相电流", "当前 C相电流", "当前零序电流", "当前总视在功率", "当前A相视在功率", "当前B相视在功率", "当前C相视在功率" };
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
List<string> data = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
|
||||
for (int i = 1; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> dto = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCodeInfo = data[i].CheckErrorCode();
|
||||
if (errorCodeInfo != null)
|
||||
{
|
||||
@ -46,15 +51,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
dto.ErrorCodeMsg = errorCodeInfo.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
dto.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
dto.DataValue = value;
|
||||
}
|
||||
|
||||
dto.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}_{DataType[i-1]}";
|
||||
dto.FiledName = DataType[i - 1];
|
||||
dto.FiledName = DataType[i - 1].GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
dto.TimeSpan = Convert.ToDateTime($"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} {data[0].Substring(8, 2)}:{data[0].Substring(10, 2)}:00");
|
||||
dto.FiledDesc = remarks[i - 1];
|
||||
list.Add(dto);
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
|
||||
@ -6,6 +6,8 @@ using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
using System.Diagnostics.Metrics;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
{
|
||||
@ -71,7 +73,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
{
|
||||
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A1), arr, (value) =>
|
||||
{
|
||||
dto.DataValue = value;
|
||||
var data = (Tuple<string, string>)value;
|
||||
dto.DataValue = $"{data.Item1} {data.Item2}";
|
||||
});
|
||||
}
|
||||
dto.DataType = dataType;
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
using JiShe.CollectBus.Common.Enums;
|
||||
using JiShe.CollectBus.Common.Extensions;
|
||||
using JiShe.CollectBus.Common.Helpers;
|
||||
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
{
|
||||
@ -33,11 +35,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
|
||||
List<string> data = await AnalysisDataUnitAsync(input.UnitData?.HexMessageList!);
|
||||
List<string> remarks = new List<string>() { "Uab/Ua 相位角", "Ub 相位角", "Ucb/Uc 相位角", "Ia 相位角", "Ib 相位角", "Ic 相位角" };
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = 0; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> dto = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCodeInfo = data[i].CheckErrorCode();
|
||||
if (errorCodeInfo != null)
|
||||
{
|
||||
@ -45,15 +49,16 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
dto.ErrorCodeMsg = errorCodeInfo.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
dto.DataValue = value;
|
||||
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
dto.DataValue = value;
|
||||
}
|
||||
dto.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}_{DataType[i]}";
|
||||
dto.FiledName = DataType[i];
|
||||
dto.FiledName = dto.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
dto.FiledDesc= remarks[i];
|
||||
list.Add(dto);
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向无功总电能量");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向无功总电能量");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -51,12 +51,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -71,7 +71,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向有功总电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向有功总电能示值");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向无功总电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向无功总电能示值");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向有功总电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向有功总电能示值");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向无功总电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向无功总电能示值");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "功率因数");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "功率因数");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相功率因数");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相功率因数");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相功率因数");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相功率因数");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相功率因数");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相功率因数");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol.T37612012.Appendix;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
{
|
||||
@ -35,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
List<AnalysisBaseDto<decimal>> data = GenerateFinalResult(datas,3, dataType, "抄表日冻结电能表正向有功最大需量及发生时间");
|
||||
List<AnalysisBaseDto<decimal?>> data = GenerateFinalResult(datas,3, dataType, "抄表日冻结电能表正向有功最大需量及发生时间");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -48,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -86,18 +87,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(12, 1);//费率数 M(1≤M≤12)
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 13;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//12
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);//28
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//48
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
@ -108,7 +109,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
values.Add(errorCode.Item1);
|
||||
else
|
||||
{
|
||||
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
|
||||
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
|
||||
{
|
||||
values.Add(value.ToString());
|
||||
});
|
||||
@ -117,19 +118,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
return values;
|
||||
}
|
||||
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(List<string> data, int index, string dataType, string filedDesc = "")
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(List<string> data, int index, string dataType, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
int fCount = Convert.ToInt32(data[2]) + 1;
|
||||
for (int i = 1; i <= 2; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
int startIndex = i == 1 ? 3 : (3 + i * fCount);
|
||||
|
||||
decimal value = 0;
|
||||
var errorCode = data[startIndex].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -137,12 +137,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[startIndex], out value);
|
||||
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[startIndex], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[startIndex + fCount].Substring(0, 2)}-{data[startIndex + fCount].Substring(2, 2)} {data[startIndex + fCount].Substring(4, 2)}:{data[startIndex + fCount].Substring(6, 2)}:00";
|
||||
DateTime readingDate = DateTime.Now;
|
||||
if (DateTime.TryParse(timeSpan, out readingDate))
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "一象限无功电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "一象限无功电能示值");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -31,13 +31,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
try
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(input);
|
||||
ArgumentNullException.ThrowIfNull(input.A.Code);
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "四象限无功电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "四象限无功电能示值");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "二象限无功电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "二象限无功电能示值");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "三象限无功电能示值");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "三象限无功电能示值");
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType,timeSpan, "正向有功总电能示值").IsValidData(new List<string>() { "0D_161", "0D_161_1", "0D_161_2", "0D_161_3", "0D_161_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType,timeSpan, "正向有功总电能示值").IsValidData(new List<string>() { "0D_161", "0D_161_1", "0D_161_2", "0D_161_3", "0D_161_4" });
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "正向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_162", "0D_162_1", "0D_162_2", "0D_162_3", "0D_162_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "正向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_162", "0D_162_1", "0D_162_2", "0D_162_3", "0D_162_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "反向有功总电能示值").IsValidData(new List<string>() { "0D_163", "0D_163_1", "0D_163_2", "0D_163_3", "0D_163_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "反向有功总电能示值").IsValidData(new List<string>() { "0D_163", "0D_163_1", "0D_163_2", "0D_163_3", "0D_163_4" });
|
||||
|
||||
if (data.Count > 0)
|
||||
{
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结反向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_164", "0D_164_1", "0D_164_2", "0D_164_3", "0D_164_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结反向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_164", "0D_164_1", "0D_164_2", "0D_164_3", "0D_164_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结一象限无功电能示值").IsValidData(new List<string>() { "0D_165", "0D_165_1", "0D_165_2", "0D_165_3", "0D_165_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结一象限无功电能示值").IsValidData(new List<string>() { "0D_165", "0D_165_1", "0D_165_2", "0D_165_3", "0D_165_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结二象限无功电能示值").IsValidData(new List<string>() { "0D_166", "0D_166_1", "0D_166_2", "0D_166_3", "0D_166_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结二象限无功电能示值").IsValidData(new List<string>() { "0D_166", "0D_166_1", "0D_166_2", "0D_166_3", "0D_166_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结三象限无功电能示值").IsValidData(new List<string>() { "0D_167", "0D_167_1", "0D_167_2", "0D_167_3", "0D_167_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结三象限无功电能示值").IsValidData(new List<string>() { "0D_167", "0D_167_1", "0D_167_2", "0D_167_3", "0D_167_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结四象限无功电能示值").IsValidData(new List<string>() { "0D_168", "0D_168_1", "0D_168_2", "0D_168_3", "0D_168_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "日冻结四象限无功电能示值").IsValidData(new List<string>() { "0D_168", "0D_168_1", "0D_168_2", "0D_168_3", "0D_168_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结正向有功电能示值").IsValidData(new List<string>() { "0D_177", "0D_177_1", "0D_177_2", "0D_177_3", "0D_177_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结正向有功电能示值").IsValidData(new List<string>() { "0D_177", "0D_177_1", "0D_177_2", "0D_177_3", "0D_177_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -47,11 +47,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -66,7 +66,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结正向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_178", "0D_178_1", "0D_178_2", "0D_178_3", "0D_178_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结正向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_178", "0D_178_1", "0D_178_2", "0D_178_3", "0D_178_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "反向有功总电能示值").IsValidData(new List<string>() { "0D_179", "0D_179_1", "0D_179_2", "0D_179_3", "0D_179_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "反向有功总电能示值").IsValidData(new List<string>() { "0D_179", "0D_179_1", "0D_179_2", "0D_179_3", "0D_179_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结反向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_180", "0D_180_1", "0D_180_2", "0D_180_3", "0D_180_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结反向无功(组合无功 1)电能示值").IsValidData(new List<string>() { "0D_180", "0D_180_1", "0D_180_2", "0D_180_3", "0D_180_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -47,11 +47,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -66,7 +66,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结一象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_181", "0D_181_1", "0D_181_2", "0D_181_3", "0D_181_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结一象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_181", "0D_181_1", "0D_181_2", "0D_181_3", "0D_181_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结二象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_182", "0D_182_1", "0D_182_2", "0D_182_3", "0D_182_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结二象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_182", "0D_182_1", "0D_182_2", "0D_182_3", "0D_182_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结三象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_183", "0D_183_1", "0D_183_2", "0D_183_3", "0D_183_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结三象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_183", "0D_183_1", "0D_183_2", "0D_183_3", "0D_183_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -47,11 +47,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -66,7 +66,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-01 00:00:00";
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结四象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_184", "0D_184_1", "0D_184_2", "0D_184_3", "0D_184_4" });
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_m(3, dataType, timeSpan, "月冻结四象限无功电能示值(总、费率 1~M)").IsValidData(new List<string>() { "0D_184", "0D_184_1", "0D_184_2", "0D_184_3", "0D_184_4" });
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -48,11 +48,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -67,7 +67,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
string timeSpan = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "抄表日冻结正向有功最大需量及发生时间");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_d(3, dataType, timeSpan, "抄表日冻结正向有功最大需量及发生时间");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +49,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +68,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -87,13 +87,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(12, 1);
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 13;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3;
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
|
||||
@ -34,9 +34,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "抄表日冻结正向无功最大需量及发生时间");
|
||||
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas, "抄表日冻结正向无功最大需量及发生时间", dataType);
|
||||
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
|
||||
@ -45,9 +44,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.MeterId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -62,7 +61,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -81,18 +80,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(12, 1);
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 13;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//12
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);//28
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//48
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
@ -112,15 +111,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
return values;
|
||||
}
|
||||
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc = "")
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data, string filedDesc,string dataType)
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
|
||||
decimal value = 0;
|
||||
var errorCode = data[3].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -128,15 +125,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[3], out value);
|
||||
meter.DataValue = value;
|
||||
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";//$"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)}";
|
||||
DateTime readingDate = DateTime.Now;
|
||||
if (DateTime.TryParse(timeSpan, out readingDate))
|
||||
{
|
||||
if(decimal.TryParse(data[3], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.DataType = dataType;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
return meter;
|
||||
|
||||
@ -35,9 +35,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "月冻结正向有功最大需量及发生时间");
|
||||
data.DataType= $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas, "月冻结正向有功最大需量及发生时间", dataType);
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
|
||||
if (ammeterInfo != null)
|
||||
@ -45,9 +45,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.MeterId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -62,7 +62,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -83,13 +83,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(11, 1);
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 12;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3), 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3), 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3;
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4), 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4), 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
var errorCode = data.CheckErrorCode();
|
||||
@ -104,14 +104,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc = "")
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data, string filedDesc, string dataType)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter,
|
||||
};
|
||||
|
||||
decimal value = 0;
|
||||
var errorCode = data[3].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -119,15 +117,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[3], out value);
|
||||
meter.DataValue = value;
|
||||
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";//$"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)}";
|
||||
DateTime readingDate = DateTime.Now;
|
||||
if (DateTime.TryParse(timeSpan, out readingDate))
|
||||
{
|
||||
if(decimal.TryParse(data[3], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.DataType = dataType;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
return meter;
|
||||
|
||||
@ -35,19 +35,19 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "月冻结反向有功最大需量及发生时间");
|
||||
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
// 查询电表信息
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas, "月冻结反向有功最大需量及发生时间", dataType);
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
|
||||
if (ammeterInfo != null)
|
||||
{
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.MeterId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -62,7 +62,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Month,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -83,13 +83,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(11, 1);
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 12;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3), 3,nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3), 3,nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3;
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4), 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4), 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
var errorCode = data.CheckErrorCode();
|
||||
@ -104,14 +104,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
}
|
||||
return values;
|
||||
}
|
||||
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc = "")
|
||||
public AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data, string filedDesc,string dataType)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
|
||||
decimal value = 0;
|
||||
var errorCode = data[3].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -119,15 +117,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[3], out value);
|
||||
meter.DataValue = value;
|
||||
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";//$"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)}";
|
||||
DateTime readingDate = DateTime.Now;
|
||||
if (DateTime.TryParse(timeSpan, out readingDate))
|
||||
{
|
||||
if(decimal.TryParse(data[3], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[4].Substring(0, 2)}-{data[4].Substring(2, 2)} {data[4].Substring(4, 2)}:{data[4].Substring(6, 2)}:00";
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.DataType = dataType;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
return meter;
|
||||
|
||||
@ -10,6 +10,7 @@ using System.Data;
|
||||
using JiShe.CollectBus.Common.Extensions;
|
||||
using JiShe.CollectBus.IotSystems.Ammeters;
|
||||
using JiShe.CollectBus.Common.Helpers;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
{
|
||||
@ -37,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
List<AnalysisBaseDto<decimal>> data = GenerateFinalResult(datas, dataType, "月冻结电能表正向有功最大需量及发生时间");
|
||||
List<AnalysisBaseDto<decimal?>> data = GenerateFinalResult(datas, dataType, "月冻结电能表正向有功最大需量及发生时间");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -49,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -68,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -87,18 +88,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(11, 1);
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 12;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
@ -118,16 +119,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
return values;
|
||||
}
|
||||
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(List<string> data, string dataType,string filedDesc = "")
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(List<string> data, string dataType,string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
int fCount = Convert.ToInt32(data[2]) + 1;
|
||||
for (int i = 1; i <= 2; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>();
|
||||
meter.DeviceType= MeterTypeEnum.Ammeter;
|
||||
int startIndex = i == 1 ? 3 : (3 + i * fCount);
|
||||
decimal value = 0;
|
||||
var errorCode = data[startIndex].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -135,17 +135,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[startIndex], out value);
|
||||
meter.DataValue = value;
|
||||
//2021 01 15
|
||||
{
|
||||
if(decimal.TryParse(data[startIndex], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
string timeSpan = $"{DateTime.Now.Year}-{data[startIndex + fCount].Substring(0, 2)}-{data[startIndex + fCount].Substring(2, 2)} {data[startIndex + fCount].Substring(4, 2)}:{data[startIndex + fCount].Substring(6, 2)}:00";
|
||||
DateTime readingDate = DateTime.Now;
|
||||
if (DateTime.TryParse(timeSpan, out readingDate))
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
}
|
||||
meter.DataType = i == 1 ? dataType : $"{dataType}_{ i - 1}";
|
||||
|
||||
filedDesc = i == 1 ? filedDesc : filedDesc.Replace("有功", "无功");
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
|
||||
@ -41,7 +41,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
//冻结数据时标
|
||||
var time = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = GenerateFinalResult(datas,dataType, "日冻结正向有/无功最大需量及发生时间");
|
||||
List<AnalysisBaseDto<decimal?>> data = GenerateFinalResult(datas,dataType, "日冻结正向有/无功最大需量及发生时间");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -53,11 +53,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -72,7 +72,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -92,18 +92,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(12, 1);//费率数 M(1≤M≤12)
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 13;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//12
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);//28
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//48
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
@ -123,61 +123,52 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
return values;
|
||||
}
|
||||
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
int fCount = Convert.ToInt32(data[2]) + 1;
|
||||
for (int i = 1; i <= 2; i++)
|
||||
{
|
||||
try
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
int startIndex = i == 1 ? 3 : (3 + i * fCount);
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
int startIndex = i == 1 ? 3 : (3 + i * fCount);
|
||||
|
||||
var errorCode = data[startIndex].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
meter.ValidData = false;
|
||||
decimal.TryParse(data[startIndex], out decimal value);//decimal.TryParse(data[startIndex], out value);
|
||||
var errorCode = data[startIndex].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
meter.ValidData = false;
|
||||
if(decimal.TryParse(data[startIndex], out decimal value))
|
||||
meter.DataValue = value;
|
||||
|
||||
//TODO:日冻结类数据时标Td 20210824
|
||||
var dataTime = string.Empty;
|
||||
errorCode = data[0].CheckErrorCode();
|
||||
if (data[0].Length == 8 && errorCode is null)
|
||||
dataTime = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} 00:00:00";
|
||||
if (!DateTime.TryParse(dataTime, out DateTime readingDate))
|
||||
meter.ValidData = false;
|
||||
meter.TimeSpan = readingDate;//
|
||||
|
||||
//TODO:日冻结类数据时标Td
|
||||
var dataTime = string.Empty;
|
||||
errorCode = data[0].CheckErrorCode();
|
||||
if (data[0].Length == 8 && errorCode is null)
|
||||
dataTime = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} 00:00:00";
|
||||
if (DateTime.TryParse(dataTime, out DateTime readingDate))
|
||||
meter.TimeSpan = readingDate;
|
||||
else
|
||||
meter.ValidData = false;
|
||||
//TODO:最大需量发生时间
|
||||
errorCode = data[startIndex + fCount].CheckErrorCode();
|
||||
if (errorCode != null && data[startIndex + fCount].Length != 8)
|
||||
errorCode = data[startIndex + fCount].CheckErrorCode();
|
||||
if (errorCode != null && data[startIndex + fCount].Length != 8)
|
||||
meter.ValidData = false;
|
||||
else
|
||||
{
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[startIndex + fCount].Substring(0, 2)}-{data[startIndex + fCount].Substring(2, 2)} {data[startIndex + fCount].Substring(4, 2)}:{data[startIndex + fCount].Substring(6, 2)}:00";
|
||||
if (!DateTime.TryParse(timeSpan, out DateTime tsField))
|
||||
meter.ValidData = false;
|
||||
else
|
||||
{
|
||||
string timeSpan = $"{data[0].Substring(0, 4)}-{data[startIndex + fCount].Substring(0, 2)}-{data[startIndex + fCount].Substring(2, 2)} {data[startIndex + fCount].Substring(4, 2)}:{data[startIndex + fCount].Substring(6, 2)}:00";
|
||||
if (!DateTime.TryParse(timeSpan, out DateTime tsField))
|
||||
meter.ValidData = false;
|
||||
else
|
||||
meter.TimeSpan=tsField;
|
||||
}
|
||||
meter.TimeSpan=tsField;
|
||||
}
|
||||
meter.DataType = i == 1 ? dataType : $"{dataType}_{ i - 1}";
|
||||
filedDesc = i == 1 ? filedDesc : filedDesc.Replace("有功", "无功");
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
meter.DataType = i == 1 ? dataType : $"{dataType}_{ i - 1}";
|
||||
filedDesc = i == 1 ? filedDesc : filedDesc.Replace("有功", "无功");
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
if (list.Count == 0)
|
||||
throw new Exception("错误数据");
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
//冻结数据时标
|
||||
var time = $"{datas[0].Substring(0, 4)}-{datas[0].Substring(4, 2)}-{datas[0].Substring(6, 2)} 00:00:00";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = GenerateFinalResult(datas, dataType, "日冻结反向有/无功最大需量及发生时间");
|
||||
List<AnalysisBaseDto<decimal?>> data = GenerateFinalResult(datas, dataType, "日冻结反向有/无功最大需量及发生时间");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -52,11 +52,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -71,7 +71,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Day,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -91,18 +91,18 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int ratingCount = hexMessageList.GetRatingCount(12, 1);//费率数 M(1≤M≤12)
|
||||
values.Add(ratingCount.ToString());
|
||||
int handlerNum = 13;
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向有功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//12
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向有功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);//28
|
||||
values.AddRange(await GetDataAsync<decimal>(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 3 * (ratingCount + 1)), ratingCount, 3, nameof(Appendix_A23)));//正向无功总最大需量
|
||||
handlerNum += 3 * (ratingCount + 1);//48
|
||||
values.AddRange(await GetDataAsync<string>(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
values.AddRange(await GetDataAsync(hexMessageList.GetRange(handlerNum, 4 * (ratingCount + 1)), ratingCount, 4, nameof(Appendix_A17)));//正向无功总最大需量发生时间
|
||||
handlerNum += 4 * (ratingCount + 1);
|
||||
return values;
|
||||
}
|
||||
|
||||
private async Task<List<string>> GetDataAsync<T>(List<string> data, int ratingCount, int len, string appendixName)
|
||||
private async Task<List<string>> GetDataAsync(List<string> data, int ratingCount, int len, string appendixName)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
for (int i = 0; i < ratingCount + 1; i++)
|
||||
@ -122,13 +122,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
return values;
|
||||
}
|
||||
|
||||
public List<AnalysisBaseDto<decimal>> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
public List<AnalysisBaseDto<decimal?>> GenerateFinalResult(List<string> data,string dataType, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
int fCount = Convert.ToInt32(data[2]) + 1;
|
||||
for (int i = 1; i <= 2; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
@ -140,17 +140,17 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.ValidData = false;
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
decimal.TryParse(data[startIndex], out decimal value);//decimal.TryParse(data[startIndex], out value);
|
||||
meter.DataValue = value;
|
||||
|
||||
//TODO:日冻结类数据时标Td 20210824
|
||||
if(decimal.TryParse(data[startIndex], out decimal value))
|
||||
meter.DataValue = value;
|
||||
//TODO:日冻结类数据时标Td
|
||||
var dataTime = string.Empty;
|
||||
errorCode = data[0].CheckErrorCode();
|
||||
if (data[0].Length == 8 && errorCode is null)
|
||||
dataTime = $"{data[0].Substring(0, 4)}-{data[0].Substring(4, 2)}-{data[0].Substring(6, 2)} 00:00:00";
|
||||
if (!DateTime.TryParse(dataTime, out DateTime readingDate))
|
||||
meter.ValidData = false;
|
||||
meter.TimeSpan = readingDate;
|
||||
else
|
||||
meter.TimeSpan = readingDate;
|
||||
|
||||
//TODO:最大需量发生时间
|
||||
errorCode = data[startIndex + fCount].CheckErrorCode();
|
||||
@ -169,7 +169,6 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
list.Add(meter);
|
||||
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "有功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "有功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相有功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相有功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相有功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相有功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相有功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相有功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "无功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "无功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相无功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相无功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相无功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相无功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相无功功率曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相无功功率曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相电压曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相电压曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相电压曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相电压曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相电压曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相电压曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -50,11 +50,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -69,7 +69,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相电流曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "A相电流曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相电流曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "B相电流曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相电流曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "C相电流曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "测量点零序电流曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "测量点零序电流曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向有功总电能量曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向有功总电能量曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向无功总电能量曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "正向无功总电能量曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
int density = Convert.ToInt32(Convert.ToInt32(datas[1]).GetEnumDescription(typeof(DensityEnums)));
|
||||
string dataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
|
||||
|
||||
List<AnalysisBaseDto<decimal>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向有功总电能量曲线");
|
||||
List<AnalysisBaseDto<decimal?>> data = datas.GenerateFinalResultTd_c(3, density, dataType, "反向有功总电能量曲线");
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
@ -51,11 +51,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.MeterId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
item.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>> unitDataAnalysis = new UnitDataAnalysis<List<AnalysisBaseDto<decimal?>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -70,7 +70,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
DensityUnit = DensityUnit.Minute,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
using JiShe.CollectBus.Common.Enums;
|
||||
using JiShe.CollectBus.Common.Extensions;
|
||||
using JiShe.CollectBus.IotSystems.Ammeters;
|
||||
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Dto;
|
||||
using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using JiShe.CollectBus.Protocol3761;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
|
||||
{
|
||||
@ -15,13 +19,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
|
||||
public class AFN14_F1_Analysis : IAnalysisStrategy<TB3761>
|
||||
{
|
||||
private readonly ILogger<AFN14_F1_Analysis> _logger;
|
||||
|
||||
public AFN14_F1_Analysis(ILogger<AFN14_F1_Analysis> logger)
|
||||
private readonly DataStorage _dataStorage;
|
||||
public AFN14_F1_Analysis(ILogger<AFN14_F1_Analysis> logger, DataStorage dataStorage)
|
||||
{
|
||||
_logger = logger;
|
||||
_dataStorage= dataStorage;
|
||||
}
|
||||
|
||||
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
|
||||
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -31,15 +36,35 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
|
||||
bool isOnOffPower = erc.Equals(14) ? true : false;
|
||||
if (!isOnOffPower)
|
||||
{
|
||||
throw new Exception($"ERC{erc}非上掉电事件");
|
||||
// TODO:非终端停/上电事件直接确认
|
||||
_logger.LogWarning($"0E_1解析ERC{erc}非终端停/上电事件:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString}");
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
UnitDataAnalysis<Tuple<string, string>> dto = new UnitDataAnalysis<Tuple<string, string>>
|
||||
|
||||
List<AnalysisBaseDto<string>> data = AnalysisDataUnit(input.UnitData.HexMessageList);
|
||||
if (data.Count > 0)
|
||||
{
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
|
||||
if (ammeterInfo != null)
|
||||
{
|
||||
data.ForEach(item =>
|
||||
{
|
||||
item.ProjectId = ammeterInfo.ProjectID;
|
||||
item.DeviceId = ammeterInfo.FocusId;
|
||||
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
item.DeviceAddress = ammeterInfo.Address;
|
||||
item.DeviceType = MeterTypeEnum.Focus;
|
||||
});
|
||||
}
|
||||
}
|
||||
UnitDataAnalysis<List<AnalysisBaseDto<string>>> dto = new UnitDataAnalysis<List<AnalysisBaseDto<string>>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
Fn = input.DT.Fn,
|
||||
Pn = input.DA.Pn,
|
||||
Data = AnalysisDataUnit(input.UnitData.HexMessageList),
|
||||
Data = data,
|
||||
HexMessage = input.BaseHexMessage.HexMessageString,
|
||||
MessageId = input.MessageId,
|
||||
ReceivedTime = input.ReceivedTime,
|
||||
@ -48,37 +73,55 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
|
||||
};
|
||||
// meterData.DataType = "0E_1";
|
||||
result?.Invoke(dto);
|
||||
return Task.FromResult(true);
|
||||
await _dataStorage.SaveMultipleStatusToIotDbAsync<string>(dto);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"0E_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
|
||||
}
|
||||
return Task.FromResult(false);
|
||||
return await Task.FromResult(false);
|
||||
}
|
||||
|
||||
private Tuple<string, string> AnalysisDataUnit(List<string> hexMessageList)
|
||||
private List<AnalysisBaseDto<string>> AnalysisDataUnit(List<string> hexMessageList)
|
||||
{
|
||||
/// Item1=停电事件
|
||||
/// Item2=上电事件
|
||||
return Tuple.Create(HandlerTime(hexMessageList.GetRange(10, 5)), HandlerTime(hexMessageList.GetRange(15, 5)));
|
||||
List <AnalysisBaseDto<string>> values = new List<AnalysisBaseDto<string>>
|
||||
{
|
||||
new AnalysisBaseDto<string>
|
||||
{
|
||||
FiledDesc = "停电事件",
|
||||
FiledName = "Type",
|
||||
DataValue = "PowerDownEvent",
|
||||
TimeSpan=HandlerTime(hexMessageList.GetRange(10, 5))
|
||||
},
|
||||
new AnalysisBaseDto<string>
|
||||
{
|
||||
FiledDesc = "上电事件",
|
||||
FiledName = "Type",
|
||||
DataValue = "PowerOnEvent",
|
||||
TimeSpan=HandlerTime(hexMessageList.GetRange(15, 5))
|
||||
}
|
||||
};
|
||||
return values;
|
||||
}
|
||||
/// <summary>
|
||||
/// /解析时间
|
||||
/// </summary>
|
||||
/// <param name="times"></param>
|
||||
/// <param name="isSetCurTime">时间验证失败是否默认为当前时间</param>
|
||||
/// <returns></returns>
|
||||
private string HandlerTime(List<string> times)
|
||||
private DateTime? HandlerTime(List<string> times)
|
||||
{
|
||||
var time = string.Empty;
|
||||
try
|
||||
{
|
||||
times.Reverse();
|
||||
time = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{times[0]}-{times[1]}-{times[2]} {times[3]}:{times[4]}:00";
|
||||
string time = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{times[0]}-{times[1]}-{times[2]} {times[3]}:{times[4]}:00";
|
||||
DateTime.TryParse(time, out DateTime dateTime);
|
||||
return dateTime;
|
||||
}
|
||||
catch { }
|
||||
return time;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,9 @@ using static FreeSql.Internal.GlobalFilter;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
{
|
||||
/// <summary>
|
||||
/// 透抄 电网频率
|
||||
/// </summary>
|
||||
public class AFN16_F97_Analysis : IAnalysisStrategy<TB3761>
|
||||
{
|
||||
private readonly ILogger<AFN16_F97_Analysis> _logger;
|
||||
@ -37,7 +40,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
ArgumentNullException.ThrowIfNull(input.UnitData?.HexMessageList);
|
||||
|
||||
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
|
||||
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas);
|
||||
AnalysisBaseDto<decimal?> data = GenerateFinalResult(datas);
|
||||
// 查询电表信息
|
||||
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
|
||||
if (ammeterInfo != null)
|
||||
@ -45,9 +48,9 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
data.ProjectId = ammeterInfo.ProjectID;
|
||||
data.DeviceId = ammeterInfo.MeterId;
|
||||
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
|
||||
data.MeterAddress = ammeterInfo.AmmerterAddress;
|
||||
data.DeviceAddress = ammeterInfo.AmmerterAddress;
|
||||
}
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal>>
|
||||
UnitDataAnalysis<AnalysisBaseDto<decimal?>> unitDataAnalysis = new UnitDataAnalysis<AnalysisBaseDto<decimal?>>
|
||||
{
|
||||
Code = input.A.Code!,
|
||||
AFN = input.AFN_FC.AFN,
|
||||
@ -62,7 +65,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
DensityUnit = DensityUnit.Hour,
|
||||
ReceivedTime = input.ReceivedTime
|
||||
};
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
|
||||
await _dataStorage.SaveDataToIotDbAsync<decimal?>(unitDataAnalysis);
|
||||
result?.Invoke(unitDataAnalysis);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
@ -73,10 +76,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
}
|
||||
}
|
||||
|
||||
private AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data)
|
||||
private AnalysisBaseDto<decimal?> GenerateFinalResult(List<string> data)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
decimal.TryParse(data[7], out decimal value);
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>();
|
||||
|
||||
var errorCode = data[7].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -84,7 +87,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[7], out decimal value))
|
||||
meter.DataValue = value;
|
||||
}
|
||||
|
||||
meter.DataType = "10_97";
|
||||
meter.ValidData = data[2].Equals("91") || data[2].Equals("B1");
|
||||
meter.FiledDesc = "电网频率";//"电网频率";
|
||||
|
||||
@ -124,7 +124,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
|
||||
DatabaseBusiID = data.DatabaseBusiID,
|
||||
PendingCopyReadTime = data.TimeSpan.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity),
|
||||
CreationTime = currentTime,
|
||||
MeterAddress = data.MeterAddress,
|
||||
MeterAddress = data.DeviceAddress,
|
||||
AFN = analysisBaseDto.AFN,
|
||||
Fn = analysisBaseDto.Fn,
|
||||
Seq = analysisBaseDto.PSEQ,
|
||||
@ -228,7 +228,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
|
||||
DatabaseBusiID = item.DatabaseBusiID,
|
||||
PendingCopyReadTime = item.TimeSpan.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity),
|
||||
CreationTime = currentTime,
|
||||
MeterAddress = item.MeterAddress,
|
||||
MeterAddress = item.DeviceAddress,
|
||||
AFN = analysisBaseDto.AFN,
|
||||
Fn = analysisBaseDto.Fn,
|
||||
Seq = analysisBaseDto.PSEQ,
|
||||
@ -271,8 +271,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
|
||||
public async Task<bool> SaveStatusToIotDbAsync<T>(UnitDataAnalysis<AnalysisBaseDto<T>> analysisBaseDto)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(nameof(analysisBaseDto.Data));
|
||||
ArgumentNullException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.FiledName));
|
||||
ArgumentNullException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.DataValue));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.FiledName));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.DataValue));
|
||||
var data = analysisBaseDto.Data!;
|
||||
if (!data.TimeSpan.HasValue)
|
||||
data.TimeSpan = analysisBaseDto.ReceivedTime;
|
||||
@ -335,5 +335,78 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存状态到IotDb
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="analysisBaseDto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> SaveMultipleStatusToIotDbAsync<T>(UnitDataAnalysis<List<AnalysisBaseDto<T>>> analysisBaseDto)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(nameof(analysisBaseDto.Data));
|
||||
|
||||
var data = analysisBaseDto.Data!;
|
||||
foreach (var item in data)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(nameof(item.FiledName));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(nameof(item.DataValue));
|
||||
|
||||
if (!item.TimeSpan.HasValue)
|
||||
item.TimeSpan = analysisBaseDto.ReceivedTime;
|
||||
// 类型(心跳,登录,上电,掉电)
|
||||
long timestamps = DateTime.Now.GetDateTimeOffset().ToUnixTimeNanoseconds();
|
||||
var treeData = new TreeModelSingleMeasuringEntity<T>()
|
||||
{
|
||||
SystemName = _applicationOptions.SystemType,
|
||||
DeviceId = $"{item.DeviceId}",
|
||||
DeviceType = $"{item.DeviceType}.{IOTDBDataType.Status}",
|
||||
ProjectId = $"{item.ProjectId}",
|
||||
Timestamps = timestamps,
|
||||
SingleMeasuring = new Tuple<string, T>(item.FiledName!, item.DataValue!)
|
||||
};
|
||||
_runtimeContext.UseTableSessionPool = false; // 使树模型池
|
||||
await _dbProvider.InsertAsync(treeData);
|
||||
// 数据帧
|
||||
var treeFrameData = new TreeModelSingleMeasuringEntity<string>()
|
||||
{
|
||||
SystemName = _applicationOptions.SystemType,
|
||||
DeviceId = $"{item.DeviceId}",
|
||||
DeviceType = $"{item.DeviceType}.{IOTDBDataType.Status}",
|
||||
ProjectId = $"{item.ProjectId}",
|
||||
Timestamps = timestamps,
|
||||
SingleMeasuring = new Tuple<string, string>(ConcentratorStatusFieldConst.FrameData, analysisBaseDto.HexMessage ?? string.Empty)
|
||||
};
|
||||
|
||||
_runtimeContext.UseTableSessionPool = false; // 使树模型池
|
||||
await _dbProvider.InsertAsync(treeFrameData);
|
||||
|
||||
// 时间
|
||||
var treeRecordingTimeData = new TreeModelSingleMeasuringEntity<long>()
|
||||
{
|
||||
SystemName = _applicationOptions.SystemType,
|
||||
DeviceId = $"{item.DeviceId}",
|
||||
DeviceType = $"{item.DeviceType}.{IOTDBDataType.Status}",
|
||||
ProjectId = $"{item.ProjectId}",
|
||||
Timestamps = timestamps,
|
||||
SingleMeasuring = new Tuple<string, long>(ConcentratorStatusFieldConst.RecordingTime, (item.TimeSpan.HasValue ? item.TimeSpan.Value : DateTime.Now).GetDateTimeOffset().ToUnixTimeNanoseconds())
|
||||
};
|
||||
_runtimeContext.UseTableSessionPool = false; // 使树模型池
|
||||
await _dbProvider.InsertAsync(treeRecordingTimeData);
|
||||
// 备注
|
||||
var treeRemarkData = new TreeModelSingleMeasuringEntity<string>()
|
||||
{
|
||||
SystemName = _applicationOptions.SystemType,
|
||||
DeviceId = $"{item.DeviceId}",
|
||||
DeviceType = $"{item.DeviceType}.{IOTDBDataType.Status}",
|
||||
ProjectId = $"{item.ProjectId}",
|
||||
Timestamps = timestamps,
|
||||
SingleMeasuring = new Tuple<string, string>(ConcentratorStatusFieldConst.Remark, item.FiledDesc ?? string.Empty)
|
||||
};
|
||||
_runtimeContext.UseTableSessionPool = false; // 使树模型池
|
||||
await _dbProvider.InsertAsync(treeRemarkData);
|
||||
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,10 +21,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
|
||||
var day = data[3];
|
||||
string binString = data[4].HexTo4BinZero();
|
||||
var months = (binString.Substring(3, 1).BinToDec() * 10) + Convert.ToInt32(binString.Substring(4, 4).BinToHex());
|
||||
var week = binString.Substring(0, 3).HexTo4BinZero();
|
||||
var week = binString.Substring(0, 3).BinToHex();
|
||||
var year = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{data[5]}";
|
||||
string date= $"{year}-{months.ToString().PadLeft(2, '0')}-{day} {hours}:{minutes}:{seconds}_{week}";
|
||||
result?.Invoke(date);
|
||||
string date= $"{year}-{months.ToString().PadLeft(2, '0')}-{day} {hours}:{minutes}:{seconds}";
|
||||
string[] weekdays = {"", "星期一", "星期二", "星期三","星期四", "星期五", "星期六", "星期日"};
|
||||
int.TryParse(week, out int weekday);
|
||||
// Item1=日期,Item2=星期几
|
||||
result?.Invoke(Tuple.Create(date, weekdays[weekday]));
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ using JiShe.CollectBus.Common.Helpers;
|
||||
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
|
||||
using NUglify.JavaScript.Syntax;
|
||||
using System.Text.RegularExpressions;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace JiShe.CollectBus.Protocol.T37612012
|
||||
{
|
||||
@ -239,15 +240,15 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
public static List<AnalysisBaseDto<decimal>> GenerateFinalResultTd_c(this List<string> data, int index,int density,string dataType, string filedDesc = "")
|
||||
public static List<AnalysisBaseDto<decimal?>> GenerateFinalResultTd_c(this List<string> data, int index,int density,string dataType, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
meter.DeviceType= MeterTypeEnum.Ammeter;
|
||||
|
||||
decimal value = 0;
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -255,8 +256,12 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
meter.DataType = dataType;
|
||||
meter.FiledDesc = filedDesc;
|
||||
meter.FiledName = meter.DataType.GetDataFieldByGatherDataType() ?? string.Empty;
|
||||
@ -276,14 +281,13 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
/// <param name="timeSpan"></param>
|
||||
/// <param name="filedDesc"></param>
|
||||
/// <returns></returns>
|
||||
public static List<AnalysisBaseDto<decimal>> GenerateFinalResultTd_m(this List<string> data, int index,string dataType,string timeSpan, string filedDesc = "")
|
||||
public static List<AnalysisBaseDto<decimal?>> GenerateFinalResultTd_m(this List<string> data, int index,string dataType,string timeSpan, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>();
|
||||
meter.DeviceType = MeterTypeEnum.Ammeter;
|
||||
decimal value = 0;
|
||||
var errorCode = data[i].CheckErrorCode();
|
||||
if (errorCode != null)
|
||||
{
|
||||
@ -291,8 +295,12 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out decimal value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
@ -312,13 +320,13 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
/// <param name="data"></param>
|
||||
/// <param name="remark"></param>
|
||||
/// <returns></returns>
|
||||
public static List<AnalysisBaseDto<decimal>> GenerateFinalResultTd_d(this List<string> data, int index,string dataType, string timeSpan, string filedDesc = "")
|
||||
public static List<AnalysisBaseDto<decimal?>> GenerateFinalResultTd_d(this List<string> data, int index,string dataType, string timeSpan, string filedDesc = "")
|
||||
{
|
||||
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
|
||||
List<AnalysisBaseDto<decimal?>> list = new List<AnalysisBaseDto<decimal?>>();
|
||||
int typeIndex = 0;
|
||||
for (int i = index; i < data.Count; i++)
|
||||
{
|
||||
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
|
||||
AnalysisBaseDto<decimal?> meter = new AnalysisBaseDto<decimal?>
|
||||
{
|
||||
DeviceType = MeterTypeEnum.Ammeter
|
||||
};
|
||||
@ -330,8 +338,12 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
meter.ErrorCodeMsg = errorCode.Item2;
|
||||
}
|
||||
else
|
||||
decimal.TryParse(data[i], out value);
|
||||
meter.DataValue = value;
|
||||
{
|
||||
if(decimal.TryParse(data[i], out value))
|
||||
{
|
||||
meter.DataValue = value;
|
||||
}
|
||||
}
|
||||
if (DateTime.TryParse(timeSpan, out DateTime readingDate))
|
||||
{
|
||||
meter.TimeSpan = readingDate;
|
||||
@ -364,29 +376,33 @@ namespace JiShe.CollectBus.Protocol.T37612012
|
||||
/// <param name="meterDatas"></param>
|
||||
/// <param name="mark"></param>
|
||||
/// <returns></returns>
|
||||
public static List<AnalysisBaseDto<decimal>> IsValidData(this List<AnalysisBaseDto<decimal>> meterDatas, List<string> mark)
|
||||
public static List<AnalysisBaseDto<decimal?>> IsValidData(this List<AnalysisBaseDto<decimal?>> meterDatas, List<string> mark)
|
||||
{
|
||||
bool isUpload = false;
|
||||
var jfpgSum = 0M;
|
||||
var totalItem = meterDatas.Find(f => f.DataType.Equals(mark[0]));//meterDatas.Find(f => f.DataType.Equals(mark[0]));
|
||||
for (int i = 1; i <= meterDatas.Count - 1; i++)
|
||||
foreach (var item in meterDatas)
|
||||
{
|
||||
var value = meterDatas[i];//meterDatas.Find(f => f.DataType.Equals(mark[i]));
|
||||
if (value.ValidData)
|
||||
jfpgSum += value.DataValue;
|
||||
if (item.ValidData && item.DataValue.HasValue)
|
||||
jfpgSum += item.DataValue.Value;
|
||||
}
|
||||
var totalItem = meterDatas.FirstOrDefault(f => f.DataType.Equals(mark[0]));//meterDatas.Find(f => f.DataType.Equals(mark[0]));
|
||||
if (totalItem != null)
|
||||
{
|
||||
var floatingNum = (jfpgSum * 5 / 100);//上下浮动数据
|
||||
var minjfpgSum = jfpgSum - floatingNum;//100-(100*5/100);
|
||||
var maxjfpgSum = jfpgSum + floatingNum;
|
||||
if ((totalItem.DataValue <= maxjfpgSum || totalItem.DataValue >= minjfpgSum))//总值,在JFPG之和的浮动范围内
|
||||
isUpload = true;
|
||||
else
|
||||
isUpload = false;
|
||||
}
|
||||
var floatingNum = (jfpgSum * 5 / 100);//上下浮动数据
|
||||
var minjfpgSum = jfpgSum - floatingNum;//100-(100*5/100);
|
||||
var maxjfpgSum = jfpgSum + floatingNum;
|
||||
if (totalItem.DataValue <= maxjfpgSum || totalItem.DataValue >= minjfpgSum)//总值,在JFPG之和的浮动范围内
|
||||
isUpload = true;
|
||||
else
|
||||
isUpload = false;
|
||||
if (!isUpload)
|
||||
{
|
||||
meterDatas.ForEach(f =>
|
||||
{
|
||||
f.ValidData = false;
|
||||
});
|
||||
}
|
||||
return meterDatas;
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,3 +14,12 @@ public class SampleDto2
|
||||
{
|
||||
public int Value { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class KafkaSendDto
|
||||
{
|
||||
public string Address { get; set; }
|
||||
|
||||
public string Frame { get; set; }
|
||||
|
||||
}
|
||||
|
||||
@ -100,16 +100,17 @@ namespace JiShe.CollectBus.Plugins
|
||||
{
|
||||
//todo: 删除Redis缓存
|
||||
var tcpSessionClient = (ITcpSessionClient)client;
|
||||
var entity = await _deviceRepository.FindAsync(a => a.ClientId == tcpSessionClient.Id);
|
||||
if (entity != null)
|
||||
{
|
||||
entity.UpdateByOnClosed();
|
||||
await _deviceRepository.UpdateAsync(entity);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogWarning($"[TCP] ID:{tcpSessionClient.Id} IP:{client.GetIPPort()}已关闭连接,但采集程序检索失败");
|
||||
}
|
||||
//var entity = await _deviceRepository.FindAsync(a => a.ClientId == tcpSessionClient.Id);
|
||||
//if (entity != null)
|
||||
//{
|
||||
// entity.UpdateByOnClosed();
|
||||
// await _deviceRepository.UpdateAsync(entity);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
//_logger.LogWarning($"[TCP] ID:{tcpSessionClient.Id} IP:{client.GetIPPort()}已关闭连接,但采集程序检索失败");
|
||||
//}
|
||||
_logger.LogWarning($"[TCP] ID:{tcpSessionClient.Id} IP:{client.GetIPPort()}已关闭连接");
|
||||
|
||||
await e.InvokeNext();
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ using JiShe.CollectBus.IotSystems.Ammeters;
|
||||
using JiShe.CollectBus.IotSystems.PrepayModel;
|
||||
using JiShe.CollectBus.Kafka.Attributes;
|
||||
using JiShe.CollectBus.Kafka.Internal;
|
||||
using JiShe.CollectBus.Kafka.Producer;
|
||||
using JiShe.CollectBus.Protocol.Interfaces;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@ -24,6 +25,8 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
using TouchSocket.Core;
|
||||
using TouchSocket.Sockets;
|
||||
|
||||
namespace JiShe.CollectBus.Samples;
|
||||
|
||||
@ -35,14 +38,18 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
|
||||
private readonly IoTDbOptions _options;
|
||||
private readonly IRedisDataCacheService _redisDataCacheService;
|
||||
|
||||
private readonly IProducerService _producerService;
|
||||
private readonly ITcpService _tcpService;
|
||||
public SampleAppService(IIoTDbProvider iotDBProvider, IOptions<IoTDbOptions> options,
|
||||
IoTDBRuntimeContext dbContext, ILogger<SampleAppService> logger, IRedisDataCacheService redisDataCacheService)
|
||||
IoTDBRuntimeContext dbContext, ILogger<SampleAppService> logger, IRedisDataCacheService redisDataCacheService, IProducerService producerService, ITcpService tcpService)
|
||||
{
|
||||
_iotDBProvider = iotDBProvider;
|
||||
_options = options.Value;
|
||||
_dbContext = dbContext;
|
||||
_logger = logger;
|
||||
_redisDataCacheService = redisDataCacheService;
|
||||
_producerService =producerService;
|
||||
_tcpService=tcpService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -416,5 +423,44 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
|
||||
_logger.LogWarning($"收到订阅消息: {obj}");
|
||||
return SubscribeAck.Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试Kafka下发报文
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
public async Task<bool> KafkaSendAsync(KafkaSendDto input)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(input.Address);
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(input.Frame);
|
||||
input.Frame = input.Frame.Replace(" ", "");
|
||||
await _producerService.ProduceAsync<KafkaSendDto>(ProtocolConst.TESTSENDTOPIC, input);
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订阅下发的数据
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[KafkaSubscribe(ProtocolConst.TESTSENDTOPIC)]
|
||||
|
||||
public async Task<ISubscribeAck> KafkaSubscribeTestSendAsync(KafkaSendDto dto)
|
||||
{
|
||||
if (_tcpService.ClientExists(dto.Address))
|
||||
{
|
||||
// 发送给设备
|
||||
await _tcpService.SendAsync(dto.Address, Convert.FromHexString(dto.Frame));
|
||||
_logger.LogWarning($"{dto.Address}下发消息报文:{dto.Frame}");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogWarning($"{dto.Address}集中器未上线: {dto.Serialize()}");
|
||||
}
|
||||
// 测试不管是否上线都ACK
|
||||
return SubscribeAck.Success();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -63,18 +63,18 @@ namespace JiShe.CollectBus.Protocol.Contracts.Protocol.Dto
|
||||
public int DatabaseBusiID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表地址
|
||||
/// 设备地址(电表地址,水表地址,气表地址,集中器地址等)
|
||||
/// </summary>
|
||||
public string MeterAddress { get; set; } = null!;
|
||||
public string DeviceAddress { get; set; } = null!;
|
||||
|
||||
}
|
||||
|
||||
public class AnalysisBaseDto<T> : AnalysisBaseDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 抄读值
|
||||
/// </summary>
|
||||
public T? DataValue { get; set; }
|
||||
/// <summary>
|
||||
/// 抄读值
|
||||
/// </summary>
|
||||
public T? DataValue { get; set; } = default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -170,5 +170,10 @@ namespace JiShe.CollectBus.Common.Consts
|
||||
/// 测试主题格式
|
||||
/// </summary>
|
||||
public const string TESTTOPIC = "test-topic";
|
||||
|
||||
/// <summary>
|
||||
/// 测试下发主题格式
|
||||
/// </summary>
|
||||
public const string TESTSENDTOPIC = "test-send-topic";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1183,10 +1183,10 @@ namespace JiShe.CollectBus.Common.Extensions
|
||||
/// </summary>
|
||||
/// <param name="hexString"></param>
|
||||
/// <returns></returns>
|
||||
public static string HexToDecStr(this int hexString)
|
||||
public static string HexToDecStr(this int hexString,bool isUpper= true)
|
||||
{
|
||||
var decimalString = Convert.ToString(hexString, 16);
|
||||
return decimalString;
|
||||
return isUpper? decimalString.ToUpper(): decimalString;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -16,7 +16,6 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<title>后端服务</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user