完善下发数据的处理。
This commit is contained in:
parent
032c075f2f
commit
5b177759bd
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
@ -118,7 +119,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
List<string> itemCodeList = new List<string>();
|
||||
foreach (var dataType in itemArr)
|
||||
{
|
||||
var excludeItemCode = "10_98,10_94";//排除透明转发:尖峰平谷时段、跳合闸
|
||||
var excludeItemCode = "10_98,10_94";//TODO 排除透明转发:尖峰平谷时段、跳合闸,特殊电表
|
||||
var gatherItem = gatherItemInfos.FirstOrDefault(f => f.DataType.Equals(dataType));
|
||||
if (gatherItem != null)
|
||||
{
|
||||
@ -127,17 +128,21 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
itemCodeList.Add(gatherItem.ItemCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 特殊电表采集项编号处理
|
||||
if (itemArr.Exists(e => e.Equals("95"))) //德力西DTS
|
||||
{
|
||||
itemCodeList.Add("10_95");
|
||||
}
|
||||
//if (itemArr.Exists(e => e.Equals("109")))//WAVE_109
|
||||
// ammeter.ItemCodes += "10_109,";
|
||||
if (itemArr.Exists(e => e.Equals("109")))//WAVE_109
|
||||
{
|
||||
itemCodeList.Add("10_109");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
ammeter.ItemCodes = itemCodeList.Serialize();//转换成JSON字符串
|
||||
|
||||
@ -207,7 +212,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
_logger.LogError($"{nameof(AmmeterScheduledMeterFiveMinuteReading)} 5分钟采集电表数据处理时没有获取到缓存信息,-102");
|
||||
return;
|
||||
}
|
||||
await AmmerterScheduledMeterReadingIssued(ProtocolConst.AmmeterSubscriberWorkerOneMinuteIssuedEventName, meterInfos);
|
||||
await AmmerterScheduledMeterReadingIssued(ProtocolConst.AmmeterSubscriberWorkerFiveMinuteIssuedEventName, meterInfos);
|
||||
|
||||
_logger.LogInformation($"{nameof(AmmeterScheduledMeterFiveMinuteReading)} 5分钟采集电表数据处理完成");
|
||||
}
|
||||
@ -235,8 +240,14 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
return;
|
||||
}
|
||||
|
||||
await AmmerterScheduledMeterReadingIssued(ProtocolConst.AmmeterSubscriberWorkerOneMinuteIssuedEventName, meterInfos);
|
||||
_logger.LogInformation($"{nameof(AmmeterScheduledMeterFifteenMinuteReading)} 15分钟采集电表数据处理完成");
|
||||
Stopwatch stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
|
||||
await AmmerterScheduledMeterReadingIssued(ProtocolConst.AmmeterSubscriberWorkerFifteenMinuteIssuedEventName, meterInfos);
|
||||
|
||||
stopwatch.Stop();
|
||||
|
||||
_logger.LogInformation($"{nameof(AmmeterScheduledMeterFifteenMinuteReading)} 15分钟采集电表数据处理完成,共消耗{stopwatch.ElapsedMilliseconds}毫秒。");
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -494,6 +505,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
foreach (var group in focusHashGroups)
|
||||
{
|
||||
_ = Task.Run(async () => { await CreatePublishTask(eventName, group.Value); });
|
||||
//await CreatePublishTask(eventName, group.Value);
|
||||
}
|
||||
|
||||
await Task.CompletedTask;
|
||||
@ -538,12 +550,12 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
continue;
|
||||
}
|
||||
|
||||
//排除1天未在线的集中器生成指令 或 排除集中器配置为自动上报的集中器
|
||||
if (!IsGennerateCmd(ammeter.LastTime, -1))
|
||||
{
|
||||
_logger.LogInformation($"{nameof(CreatePublishTask)} 集中器{ammeter.FocusAddress}的电表{ammeter.Name},采集时间:{ammeter.LastTime},已超过1天未在线,不生成指令");
|
||||
continue;
|
||||
}
|
||||
////排除1天未在线的集中器生成指令 或 排除集中器配置为自动上报的集中器
|
||||
//if (!IsGennerateCmd(ammeter.LastTime, -1))
|
||||
//{
|
||||
// _logger.LogInformation($"{nameof(CreatePublishTask)} 集中器{ammeter.FocusAddress}的电表{ammeter.Name},采集时间:{ammeter.LastTime},已超过1天未在线,不生成指令");
|
||||
// continue;
|
||||
//}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(ammeter.AreaCode))
|
||||
{
|
||||
@ -615,20 +627,22 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
var aFN = (AFN)itemCodeArr[0].HexToDec();
|
||||
var fn = int.Parse(itemCodeArr[1]);
|
||||
byte[] dataInfos = null;
|
||||
if(ammeter.AutomaticReport.Equals(1) && aFN == AFN.请求实时数据)
|
||||
if (ammeter.AutomaticReport.Equals(1) && aFN == AFN.请求实时数据)
|
||||
{
|
||||
//实时数据
|
||||
dataInfos = Build3761SendData.BuildAmmeterReadRealTimeDataSendCmd(ammeter.FocusAddress, ammeter.MeteringCode, (ATypeOfDataItems)fn);
|
||||
}
|
||||
else
|
||||
{
|
||||
//特殊表暂不处理
|
||||
if (TelemetryPacketBuilder.AFNHandlers.TryGetValue(tempItem, out var handler))
|
||||
{
|
||||
dataInfos = handler(ammeter.FocusAddress, fn, ammeter.MeteringCode);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException($"无效编码: {tempItem}");
|
||||
_logger.LogWarning($"{nameof(CreatePublishTask)} 集中器{ammeter.FocusAddress}的电表{ammeter.Name}采集项{tempItem}无效编码。");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
//TODO:特殊表
|
||||
|
||||
@ -59,11 +59,12 @@ namespace JiShe.CollectBus.ScheduledMeterReading
|
||||
INNER JOIN TB_FocusInfo(NOLOCK) AS B ON A.ID = B.GatherInfoID AND B.RemoveState >= 0 AND B.State>=0
|
||||
INNER JOIN TB_AmmeterInfo(NOLOCK) AS C ON B.ID = C.FocusID AND C.State>= 0 AND C.State<100
|
||||
INNER JOIN TB_AmmeterGatherItem(NOLOCK) AS D ON C.ID = D.AmmeterID AND D.State>=0
|
||||
WHERE 1=1 ";
|
||||
WHERE 1=1 and C.Special = 0 ";
|
||||
//TODO 记得移除特殊表过滤
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(gatherCode))
|
||||
{
|
||||
sql = $@"{sql} A.GatherCode = '{gatherCode}'";
|
||||
sql = $@"{sql} AND A.GatherCode = '{gatherCode}'";
|
||||
}
|
||||
return await SqlProvider.Instance.Change(DbEnum.EnergyDB)
|
||||
.Ado
|
||||
|
||||
@ -81,7 +81,7 @@ namespace JiShe.CollectBus.Subscribers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("ammeter/fiveminute/issued-event")]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerOneMinuteIssuedEventName)]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerFiveMinuteIssuedEventName)]
|
||||
public async Task AmmeterScheduledMeterFiveMinuteReadingIssuedEvent(ScheduledMeterReadingIssuedEventMessage receivedMessage)
|
||||
{
|
||||
_logger.LogInformation("5分钟采集电表数据下行消息消费队列开始处理");
|
||||
@ -108,7 +108,7 @@ namespace JiShe.CollectBus.Subscribers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("ammeter/fifteenminute/issued-event")]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerOneMinuteIssuedEventName)]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerFifteenMinuteIssuedEventName)]
|
||||
public async Task AmmeterScheduledMeterFifteenMinuteReadingIssuedEvent(ScheduledMeterReadingIssuedEventMessage receivedMessage)
|
||||
{
|
||||
_logger.LogInformation("15分钟采集电表数据下行消息消费队列开始处理");
|
||||
@ -164,7 +164,7 @@ namespace JiShe.CollectBus.Subscribers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("watermeter/fiveminute/issued-event")]
|
||||
[CapSubscribe(ProtocolConst.WatermeterSubscriberWorkerOneMinuteIssuedEventName)]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerFiveMinuteIssuedEventName)]
|
||||
public async Task WatermeterScheduledMeterFiveMinuteReadingIssuedEvent(ScheduledMeterReadingIssuedEventMessage receivedMessage)
|
||||
{
|
||||
_logger.LogInformation("5分钟采集电表数据下行消息消费队列开始处理");
|
||||
@ -191,7 +191,7 @@ namespace JiShe.CollectBus.Subscribers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("watermeter/fifteenminute/issued-event")]
|
||||
[CapSubscribe(ProtocolConst.WatermeterSubscriberWorkerOneMinuteIssuedEventName)]
|
||||
[CapSubscribe(ProtocolConst.AmmeterSubscriberWorkerFifteenMinuteIssuedEventName)]
|
||||
public async Task WatermeterScheduledMeterFifteenMinuteReadingIssuedEvent(ScheduledMeterReadingIssuedEventMessage receivedMessage)
|
||||
{
|
||||
_logger.LogInformation("15分钟采集电表数据下行消息消费队列开始处理");
|
||||
|
||||
@ -1401,7 +1401,7 @@ namespace JiShe.CollectBus.Common.BuildSendDatas
|
||||
cmdStrList.AddRange(userDatas);
|
||||
cmdStrList.Add(cs);
|
||||
cmdStrList.Add(endStr);
|
||||
Console.WriteLine(string.Join(" ", cmdStrList));
|
||||
//Console.WriteLine(string.Join(" ", cmdStrList));
|
||||
var bytes = cmdStrList.Select(x => Convert.ToByte(x, 16)).ToArray();
|
||||
return bytes;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -119,7 +119,7 @@ namespace JiShe.CollectBus.Ammeters
|
||||
public string GatherCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否特殊表
|
||||
/// 是否特殊表,1是特殊电表
|
||||
/// </summary>
|
||||
public int Special { get; set; }
|
||||
|
||||
|
||||
@ -86,9 +86,9 @@
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.container {
|
||||
width: 1170 px;
|
||||
padding-right: 15 px;
|
||||
padding-left: 15 px;
|
||||
width: 1170px;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
@ -97,31 +97,31 @@
|
||||
text-align: center;
|
||||
font-weight: 200;
|
||||
display: block;
|
||||
margin: 60 px auto 40 px !important;
|
||||
margin: 60px auto 40px !important;
|
||||
}
|
||||
.page-header {
|
||||
padding-bottom: 9px;
|
||||
margin: 40px auto;
|
||||
border-bottom: 1 px solid #eee;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.projects-header h2 {
|
||||
font-size: 42px;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 20 px;
|
||||
margin-bottom: 10 px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
/* text-align: center; */
|
||||
}
|
||||
p {
|
||||
margin: 0 0 10 px;
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
.row {
|
||||
margin-right: -15 px;
|
||||
margin-left: -15 px;
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
.col-lg-3 {
|
||||
width: 25%;
|
||||
@ -131,7 +131,7 @@
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
text-align: center;
|
||||
margin-bottom: 30 px;
|
||||
margin-bottom: 30px;
|
||||
border-radius: 0;
|
||||
}
|
||||
.thumbnail {
|
||||
@ -139,7 +139,7 @@
|
||||
padding: 4px;
|
||||
line-height: 1.42857143;
|
||||
background-color: #fff;
|
||||
border: 1 px solid #ddd;
|
||||
border: 1px solid #ddd;
|
||||
.transition(border 0.2s ease-in-out);
|
||||
}
|
||||
a {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Default": "Warning",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
"Serilog.Sinks.File"
|
||||
],
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Default": "Warning",
|
||||
"Override": {
|
||||
"Microsoft": "Information",
|
||||
"Volo.Abp": "Warning",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user