feat(templateTaskGenerator): Написан TemplateTaskGenerator, читает очередь Mq parr-template-task-generator при получении id регламентной работы проверяет несозданные шаблоны. При наличии таковых пишет сообщение в очередь parr-template-generator

This commit is contained in:
Mikhail Kuznetsov
2025-08-26 12:04:26 +10:00
parent a6385ea39a
commit 446a5579f3
21 changed files with 465 additions and 6 deletions

View 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}");
}
}
}
}