feat(templateTaskGenerator): Написан TemplateTaskGenerator, читает очередь Mq parr-template-task-generator при получении id регламентной работы проверяет несозданные шаблоны. При наличии таковых пишет сообщение в очередь parr-template-generator
This commit is contained in:
60
TemplateTaskGenerator/TemplateTaskGenerator.cs
Normal file
60
TemplateTaskGenerator/TemplateTaskGenerator.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.BLL.Domain.Mq;
|
||||
using PARR.BLL.Services.Interfaces;
|
||||
using PARR.Common.Domain;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.DomainServices.Interfaces;
|
||||
using PARR.TemplateTaskGenerator.Settings;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace PARR.TemplateTaskGenerator
|
||||
{
|
||||
internal class TemplateTaskGenerator : ITemplateTaskGenerator
|
||||
{
|
||||
private readonly ILogger<TemplateTaskGenerator> logger;
|
||||
private readonly IUnitFilterService unitFilterService;
|
||||
private readonly MqSettings mqSettings;
|
||||
private readonly IMqService mqService;
|
||||
|
||||
public TemplateTaskGenerator(
|
||||
ILogger<TemplateTaskGenerator> logger,
|
||||
IUnitFilterService unitFilterService,
|
||||
MqSettings mqSettings,
|
||||
IMqService mqService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.unitFilterService = unitFilterService;
|
||||
this.mqSettings = mqSettings;
|
||||
this.mqService = mqService;
|
||||
}
|
||||
|
||||
|
||||
public async Task GenerateTemplateTaskAsync(Guid jobId)
|
||||
{
|
||||
var unitIdsToCreateTemplate = await unitFilterService.GetUnitsIdForNotExistTemplatesByJobFilterAsync(jobId);
|
||||
|
||||
if (unitIdsToCreateTemplate == null || !unitIdsToCreateTemplate.Any())
|
||||
return;
|
||||
|
||||
foreach (var unitId in unitIdsToCreateTemplate)
|
||||
{
|
||||
var mqRequest = new TemplateGeneratorWorkerMq
|
||||
{
|
||||
JobId = jobId,
|
||||
UnitId = unitId,
|
||||
HistoryInitiator = new HistoryInitiator { InitiatorComment = "Запрос на создание шаблона", InitiatorParrComponentId = ParrComponentsEnum.TemplateTaskGenerator }
|
||||
};
|
||||
|
||||
var msg = JsonSerializer.Serialize(mqRequest);
|
||||
|
||||
var result = await mqService.SendAsync(mqSettings.TemplateGeneratorWorker, new[] { msg });
|
||||
|
||||
if (result.IsSuccess)
|
||||
logger.LogInformation($"Отправлен запрос на создание шаблона: {msg}");
|
||||
else
|
||||
logger.LogError($"Ошибка при отправке запроса на создание шаблона: {msg}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user