feat(templateGenerator, templateMatcher, dal): INextRunService прикручен к Matcher + Syncer.

This commit is contained in:
Mikhail Trubnikov
2026-01-22 12:06:57 +10:00
parent 9f035efb35
commit 1845154b26
4 changed files with 51 additions and 30 deletions

View File

@@ -11,6 +11,7 @@ using PARR.DAL.DomainServices.Shortcodes;
using PARR.DAL.DomainServices.UnitFilterService;
using PARR.DAL.Models;
using PARR.DAL.Models.Job;
using PARR.DAL.NextRunServices;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.Services.Interfaces.Job;
using PARR.DAL.Services.Interfaces.Unit;
@@ -40,12 +41,13 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
private readonly ITemplateService templateService;
private readonly IJobService jobService;
private readonly ITemplateReuser templateReuser;
private readonly IEsppScheduleTransformService esppScheduleTransformService;
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
private readonly ITemplateDeactivator templateDeactivator;
private readonly ITemplateNameNormalizer templateNameNormalizer;
private readonly ITemplateUpdaterMqSender templateUpdaterMqSender;
private readonly IMatchingStatusService matchingStatusService;
private readonly SettingsFromDb settingsFromDb;
private readonly INextRunService nextRunService;
public SimpleTemplateSynchronizer(
ILogger<SimpleTemplateSynchronizer> logger,
@@ -59,14 +61,15 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
IJobService jobService,
ITemplateReuser templateReuser,
IShortcodesService shortcodesService,
IEsppScheduleTransformService esppScheduleTransformService,
//IEsppScheduleTransformService esppScheduleTransformService,
IUnitRegionalEkPtkGroupService regionalEkPtkGroupService,
IUnitFieldService unitFieldService,
ITemplateDeactivator templateDeactivator,
ITemplateNameNormalizer templateNameNormalizer,
ITemplateUpdaterMqSender templateUpdaterMqSender,
IMatchingStatusService matchingStatusService,
SettingsFromDb settingsFromDb
SettingsFromDb settingsFromDb,
INextRunService nextRunService
)
{
this.logger = logger;
@@ -76,12 +79,13 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
this.templateService = templateService;
this.jobService = jobService;
this.templateReuser = templateReuser;
this.esppScheduleTransformService = esppScheduleTransformService;
//this.esppScheduleTransformService = esppScheduleTransformService;
this.templateDeactivator = templateDeactivator;
this.templateNameNormalizer = templateNameNormalizer;
this.templateUpdaterMqSender = templateUpdaterMqSender;
this.matchingStatusService = matchingStatusService;
this.settingsFromDb = settingsFromDb;
this.nextRunService = nextRunService;
}
public async Task SyncTemplatesForJobAsync(Guid jobId, HistoryInitiator initiator)
@@ -224,7 +228,8 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
};
var expectedName = await templateNameNormalizer.GetNormalizedTemplateNameAsync(tempTemplateForName);
var nextRun = await GetNextRunAsync(job);
//var nextRun = await GetNextRunAsync(job);
var nextRun = await nextRunService.GetNextRunForTemplateAsync(reusableTemplate.Id, true);
var updateRequest = new TemplateUpdaterMq
{
@@ -259,7 +264,8 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
{
logger.LogDebug("Шаблон {TemplateId} требует обновления имени: старое = '{OldName}', новое = '{NewName}'", template.Id, template.Name, expectedName);
var nextRun = await GetNextRunAsync(job, template.NextRun);
//var nextRun = await GetNextRunAsync(job, template.NextRun);
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
var updateRequest = new TemplateUpdaterMq
{
@@ -397,7 +403,8 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
{
logger.LogDebug("Шаблон {TemplateId} требует обновления имени: старое = '{OldName}', новое = '{NewName}'", template.Id, template.Name, expectedName);
var nextRun = await GetNextRunAsync(job, template.NextRun);
//var nextRun = await GetNextRunAsync(job, template.NextRun);
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
var updateRequest = new TemplateUpdaterMq
{
@@ -503,7 +510,8 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
continue;
}
var nextRun = await GetNextRunAsync(unusedJob);
//var nextRun = await GetNextRunAsync(unusedJob);
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
var updateRequest = new TemplateUpdaterMq
{
@@ -594,11 +602,11 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
logger.LogError("Ошибка отправки команды создания простого шаблона для Job {JobId}, UnitId {UnitId}.", jobId, unitId);
}
private async Task<DateTimeOffset> GetNextRunAsync(Job job, DateTimeOffset? currentNextRun = null)
{
var referenceDate = job.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
return await esppScheduleTransformService.GetNextDateAsync(job.GroupId, referenceDate);
}
//private async Task<DateTimeOffset> GetNextRunAsync(Job job, DateTimeOffset? currentNextRun = null)
//{
// var referenceDate = job.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
// return await esppScheduleTransformService.GetNextDateAsync(job.GroupId, referenceDate);
//}
private async Task UpdateMatchingStatusAsync(Guid jobId, string comment)
{