Compare commits

..

No commits in common. "5b93fd2a96fcc7478af61d724ab1b5f486737d07" and "9cda1af5fcb63f6612fac5656d5d0b3f4fc9044b" have entirely different histories.

12 changed files with 2215 additions and 825 deletions

View File

@ -19,12 +19,6 @@ namespace JiShe.CollectBus.ScheduledMeterReading
/// <returns></returns> /// <returns></returns>
Task<List<GatherItemInfo>> GetGatherItemByDataTypes(); Task<List<GatherItemInfo>> GetGatherItemByDataTypes();
/// <summary>
/// 构建待处理的下发指令任务处理
/// </summary>
/// <returns></returns>
Task CreateToBeIssueTasks();
#region #region
/// <summary> /// <summary>
/// 获取电表信息 /// 获取电表信息
@ -41,19 +35,19 @@ namespace JiShe.CollectBus.ScheduledMeterReading
Task InitAmmeterCacheData(string gatherCode = ""); Task InitAmmeterCacheData(string gatherCode = "");
/// <summary> /// <summary>
/// 1分钟采集电表数据,只获取任务数据下发,不构建任务 /// 1分钟采集电表数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task AmmeterScheduledMeterOneMinuteReading(); Task AmmeterScheduledMeterOneMinuteReading();
/// <summary> /// <summary>
/// 5分钟采集电表数据,只获取任务数据下发,不构建任务 /// 5分钟采集电表数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task AmmeterScheduledMeterFiveMinuteReading(); Task AmmeterScheduledMeterFiveMinuteReading();
/// <summary> /// <summary>
/// 15分钟采集电表数据,只获取任务数据下发,不构建任务 /// 15分钟采集电表数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task AmmeterScheduledMeterFifteenMinuteReading(); Task AmmeterScheduledMeterFifteenMinuteReading();
@ -70,7 +64,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
Task<List<WatermeterInfo>> GetWatermeterInfoList(string gatherCode = ""); Task<List<WatermeterInfo>> GetWatermeterInfoList(string gatherCode = "");
/// <summary> /// <summary>
/// 初始化水表缓存数据,只获取任务数据下发,不构建任务 /// 初始化水表缓存数据
/// </summary> /// </summary>
/// <param name="gatherCode">采集端Code</param> /// <param name="gatherCode">采集端Code</param>
/// <returns></returns> /// <returns></returns>
@ -83,13 +77,13 @@ namespace JiShe.CollectBus.ScheduledMeterReading
Task WatermeterScheduledMeterOneMinuteReading(); Task WatermeterScheduledMeterOneMinuteReading();
/// <summary> /// <summary>
/// 5分钟采集水表数据,只获取任务数据下发,不构建任务 /// 5分钟采集水表数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task WatermeterScheduledMeterFiveMinuteReading(); Task WatermeterScheduledMeterFiveMinuteReading();
/// <summary> /// <summary>
/// 15分钟采集水表数据,只获取任务数据下发,不构建任务 /// 15分钟采集水表数据
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task WatermeterScheduledMeterFifteenMinuteReading(); Task WatermeterScheduledMeterFifteenMinuteReading();

View File

@ -34,7 +34,6 @@ namespace JiShe.CollectBus.Subscribers
/// </summary> /// </summary>
/// <param name="logger">The logger.</param> /// <param name="logger">The logger.</param>
/// <param name="tcpService">The TCP service.</param> /// <param name="tcpService">The TCP service.</param>
/// <param name="deviceRepository">The Device pepository.</param>
/// <param name="serviceProvider">The service provider.</param> /// <param name="serviceProvider">The service provider.</param>
public WorkerSubscriberAppService(ILogger<WorkerSubscriberAppService> logger, public WorkerSubscriberAppService(ILogger<WorkerSubscriberAppService> logger,
ITcpService tcpService, ITcpService tcpService,
@ -70,7 +69,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
@ -97,7 +96,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
@ -124,7 +123,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
@ -153,7 +152,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
@ -180,7 +179,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
@ -207,7 +206,7 @@ namespace JiShe.CollectBus.Subscribers
var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo); var device = await _deviceRepository.FindAsync(a => a.Number == receivedMessage.DeviceNo);
if (device != null) if (device != null)
{ {
await _tcpService.SendAsync(device.ClientId, Convert.FromHexString(receivedMessage.MessageHexString)); await _tcpService.SendAsync(device.ClientId, receivedMessage.Message);
} }
} }
} }

View File

@ -1,42 +0,0 @@
using System.Threading;
using System.Threading.Tasks;
using Hangfire;
using JiShe.CollectBus.Common.Consts;
using JiShe.CollectBus.ScheduledMeterReading;
using Microsoft.Extensions.Logging;
using Volo.Abp.BackgroundWorkers.Hangfire;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Uow;
namespace JiShe.CollectBus.Workers
{
/// <summary>
/// 构建待处理的下发指令任务处理
/// </summary>
public class CreateToBeIssueTaskWorker : HangfireBackgroundWorkerBase, ITransientDependency, ICollectWorker
{
private readonly ILogger<CreateToBeIssueTaskWorker> _logger;
private readonly IScheduledMeterReadingService _scheduledMeterReadingService;
/// <summary>
/// Initializes a new instance of the <see cref="CreateToBeIssueTaskWorker"/> class.
/// </summary>
/// <param name="logger">The logger.</param>
/// <param name="scheduledMeterReadingService">定时任务</param>
public CreateToBeIssueTaskWorker(ILogger<CreateToBeIssueTaskWorker> logger, IScheduledMeterReadingService scheduledMeterReadingService)
{
_logger = logger;
RecurringJobId = nameof(CreateToBeIssueTaskWorker);
CronExpression = $"*/{1} * * * *"; ;
this._scheduledMeterReadingService = scheduledMeterReadingService;
}
public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken())
{
_logger.LogWarning($"构建待处理的下发指令任务处理开始");
//await _scheduledMeterReadingService.CreateToBeIssueTasks();
_logger.LogWarning($"构建待处理的下发指令任务处理结束");
}
}
}

View File

@ -26,18 +26,14 @@ namespace JiShe.CollectBus.Workers
{ {
_logger = logger; _logger = logger;
RecurringJobId = nameof(SubscriberFifteenMinuteWorker); RecurringJobId = nameof(SubscriberFifteenMinuteWorker);
CronExpression = $"*/{15} * * * *"; CronExpression = Cron.Hourly(15);
this._scheduledMeterReadingService = scheduledMeterReadingService; this._scheduledMeterReadingService = scheduledMeterReadingService;
} }
public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken()) public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken())
{ {
_logger.LogWarning($"15分钟采集数据开始"); await _scheduledMeterReadingService.AmmeterScheduledMeterFifteenMinuteReading();
//await _scheduledMeterReadingService.AmmeterScheduledMeterFifteenMinuteReading();
//await _scheduledMeterReadingService.WatermeterScheduledMeterFifteenMinuteReading();
_logger.LogWarning($"15分钟采集数据结束");
//using (var uow = LazyServiceProvider.LazyGetRequiredService<IUnitOfWorkManager>().Begin()) //using (var uow = LazyServiceProvider.LazyGetRequiredService<IUnitOfWorkManager>().Begin())
//{ //{
// Logger.LogInformation("Executed MyLogWorker..!"); // Logger.LogInformation("Executed MyLogWorker..!");

View File

@ -18,7 +18,7 @@ namespace JiShe.CollectBus.Workers
private readonly IScheduledMeterReadingService _scheduledMeterReadingService; private readonly IScheduledMeterReadingService _scheduledMeterReadingService;
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="SubscriberFiveMinuteWorker"/> class. /// Initializes a new instance of the <see cref="SubscriberFifteenMinuteWorker"/> class.
/// </summary> /// </summary>
/// <param name="logger">The logger.</param> /// <param name="logger">The logger.</param>
/// <param name="scheduledMeterReadingService">定时任务</param> /// <param name="scheduledMeterReadingService">定时任务</param>
@ -26,18 +26,14 @@ namespace JiShe.CollectBus.Workers
{ {
_logger = logger; _logger = logger;
RecurringJobId = nameof(SubscriberFiveMinuteWorker); RecurringJobId = nameof(SubscriberFiveMinuteWorker);
CronExpression = $"*/{5} * * * *"; CronExpression = Cron.Hourly(15);
this._scheduledMeterReadingService = scheduledMeterReadingService; this._scheduledMeterReadingService = scheduledMeterReadingService;
} }
public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken()) public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken())
{ {
_logger.LogWarning($"5分钟采集数据开始"); await _scheduledMeterReadingService.AmmeterScheduledMeterFifteenMinuteReading();
//await _scheduledMeterReadingService.AmmeterScheduledMeterFiveMinuteReading();
//await _scheduledMeterReadingService.WatermeterScheduledMeterFiveMinuteReading();
_logger.LogWarning($"5分钟采集数据结束");
} }
} }
} }

View File

@ -18,7 +18,7 @@ namespace JiShe.CollectBus.Workers
private readonly IScheduledMeterReadingService _scheduledMeterReadingService; private readonly IScheduledMeterReadingService _scheduledMeterReadingService;
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="SubscriberOneMinuteWorker"/> class. /// Initializes a new instance of the <see cref="SubscriberFifteenMinuteWorker"/> class.
/// </summary> /// </summary>
/// <param name="logger">The logger.</param> /// <param name="logger">The logger.</param>
/// <param name="scheduledMeterReadingService">定时任务</param> /// <param name="scheduledMeterReadingService">定时任务</param>
@ -26,19 +26,14 @@ namespace JiShe.CollectBus.Workers
{ {
_logger = logger; _logger = logger;
RecurringJobId = nameof(SubscriberOneMinuteWorker); RecurringJobId = nameof(SubscriberOneMinuteWorker);
CronExpression = $"*/{1} * * * *"; CronExpression = Cron.Hourly(15);
this._scheduledMeterReadingService = scheduledMeterReadingService; this._scheduledMeterReadingService = scheduledMeterReadingService;
} }
public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken()) public override async Task DoWorkAsync(CancellationToken cancellationToken = new CancellationToken())
{ {
_logger.LogWarning($"1分钟采集数据开始"); await _scheduledMeterReadingService.AmmeterScheduledMeterFifteenMinuteReading();
//await _scheduledMeterReadingService.AmmeterScheduledMeterOneMinuteReading();
//await _scheduledMeterReadingService.WatermeterScheduledMeterOneMinuteReading();
_logger.LogWarning($"1分钟采集数据结束");
} }
} }
} }

View File

@ -1,24 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.Common.BuildSendDatas
{
/// <summary>
/// 待下发的指令生产任务数据
/// </summary>
public class TasksToBeIssueModel
{
/// <summary>
/// 下个任务时间
/// </summary>
public DateTime NextTask { get; set; }
/// <summary>
/// 采集时间间隔,1分钟5分钟15分钟
/// </summary>
public int TimeDensity { get; set; }
}
}

View File

@ -1,34 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.Common.BuildSendDatas
{
/// <summary>
/// 报文构建参数
/// </summary>
public class TelemetryPacketRequest
{
/// <summary>
/// 集中器地址
/// </summary>
public string FocusAddress { get; set; }
/// <summary>
/// 抄读功能码
/// </summary>
public int Fn { get; set; }
/// <summary>
/// 抄读计量点,也就是终端电表对应端口
/// </summary>
public int Pn { get; set; }
/// <summary>
/// 透明转发单元
/// </summary>
public List<string> DataUnit { get; set; }
}
}

View File

@ -29,18 +29,18 @@ namespace JiShe.CollectBus.Common.Consts
public const string FifteenMinuteAcquisitionTimeInterval = "Fifteen"; public const string FifteenMinuteAcquisitionTimeInterval = "Fifteen";
/// <summary> /// <summary>
/// 缓存信息,{0}=>系统类型,{1}=>表计类别 /// 缓存表信息
/// </summary> /// </summary>
public const string CacheMeterInfoKey = $"{CacheBasicDirectoryKey}{"{0}"}:MeterInfo:{"{1}"}:{"{2}"}:"; public const string CacheAmmeterInfoKey = $"{CacheBasicDirectoryKey}:{"{0}"}:{"{1}"}:AmmeterInfo:";
/// <summary> /// <summary>
/// 缓存待下发的指令生产任务数据,{0}=>系统类型,{1}=>表计类别,{2}=>采集频率 /// 缓存水表信息
/// </summary> /// </summary>
public const string CacheTasksToBeIssuedKey = $"{CacheBasicDirectoryKey}{"{0}"}:TaskInfo:{"{1}"}:{"{2}"}"; public const string CacheAmmeterFocusKey = $"{CacheBasicDirectoryKey}:AmmeterFocus";
/// <summary> /// <summary>
/// 缓存表计下发指令数据集,{0}=>系统类型,{1}=>表计类别,{2}=>采集频率 /// 缓存水表信息
/// </summary> /// </summary>
public const string CacheTelemetryPacketInfoKey = $"{CacheBasicDirectoryKey}{"{0}"}:TelemetryPacket:{"{1}"}:{"{2}"}:"; public const string CacheWatermeterInfoKey = $"{CacheBasicDirectoryKey}:{"{0}"}:{"{1}"}:WatermeterInfo:";
} }
} }

View File

@ -12,7 +12,7 @@ namespace JiShe.CollectBus.IotSystems.MessageIssueds
/// <summary> /// <summary>
/// 消息内容 /// 消息内容
/// </summary> /// </summary>
public string MessageHexString { get; set; } public byte[] Message { get; set; }
/// <summary> /// <summary>
/// 集中器编号 /// 集中器编号
@ -33,10 +33,5 @@ namespace JiShe.CollectBus.IotSystems.MessageIssueds
/// 是否下发成功 /// 是否下发成功
/// </summary> /// </summary>
public bool WasSuccessful { get; set; } public bool WasSuccessful { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreationTime { get; set; }
} }
} }