feat(templateGenerator, templateMatcher, dal): INextRunService прикручен к Matcher + Syncer.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
/// <summary>
|
||||
/// Сервис трансформации расписания ЕСПП в дату/расписание
|
||||
/// </summary>
|
||||
public interface IEsppScheduleTransformService
|
||||
internal interface IEsppScheduleTransformService
|
||||
{
|
||||
///// <summary>
|
||||
///// Получить следующую дату согласно расписания
|
||||
|
||||
@@ -8,6 +8,7 @@ using PARR.DAL.DomainServices.Shortcodes.Models;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.Job;
|
||||
using PARR.DAL.Models.Unit;
|
||||
using PARR.DAL.NextRunServices;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.Job;
|
||||
using PARR.DAL.TransformServices;
|
||||
@@ -23,7 +24,9 @@ namespace PARR.TemplateGeneratorWorker
|
||||
private readonly IJobService jobService;
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
private readonly ITemplateService templateService;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
private readonly INextRunService nextRunService;
|
||||
|
||||
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
|
||||
public TemplateGenerator(
|
||||
ILogger<TemplateGenerator> logger,
|
||||
@@ -32,7 +35,8 @@ namespace PARR.TemplateGeneratorWorker
|
||||
IJobService jobService,
|
||||
IShortcodesService shortcodesService,
|
||||
ITemplateService templateService,
|
||||
IEsppScheduleTransformService esppScheduleTransformService
|
||||
INextRunService nextRunService
|
||||
//IEsppScheduleTransformService esppScheduleTransformService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
@@ -41,7 +45,8 @@ namespace PARR.TemplateGeneratorWorker
|
||||
this.jobService = jobService;
|
||||
this.shortcodesService = shortcodesService;
|
||||
this.templateService = templateService;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
this.nextRunService = nextRunService;
|
||||
//this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
}
|
||||
|
||||
public async Task GenerateTemplateAsync(string msg)
|
||||
@@ -97,7 +102,8 @@ namespace PARR.TemplateGeneratorWorker
|
||||
|
||||
var templateName = await shortcodesService.ApplyShortcodesAsync(job.TemplateNameMask!, tempTemplateForShortcodes);
|
||||
|
||||
var nextRun = await esppScheduleTransformService.GetNextDateAsync(job.GroupId, job.Group!.ReferenceDate);
|
||||
//var nextRun = await esppScheduleTransformService.GetNextDateAsync(job.GroupId, job.Group!.ReferenceDate);
|
||||
var nextRun = await nextRunService.GetNextRunForNewTemplateAsync(job.GroupId);
|
||||
|
||||
var template = new Template
|
||||
{
|
||||
|
||||
@@ -10,6 +10,7 @@ using PARR.DAL.DomainServices.UnitFilterService;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Models.Job;
|
||||
using PARR.DAL.Models.Unit;
|
||||
using PARR.DAL.NextRunServices;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.Job;
|
||||
using PARR.DAL.Services.Interfaces.Unit;
|
||||
@@ -35,13 +36,14 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
private readonly ITemplateService templateService;
|
||||
private readonly IJobGroupService jobGroupService;
|
||||
private readonly ITemplateReuser templateReuser;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
//private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
private readonly IUnitRegionalEkPtkGroupService regionalEkPtkGroupService;
|
||||
private readonly IUnitFieldService unitFieldService;
|
||||
private readonly ITemplateDeactivator templateDeactivator;
|
||||
private readonly ITemplateNameNormalizer templateNameNormalizer;
|
||||
private readonly ITemplateUpdaterMqSender templateUpdaterMqSender;
|
||||
private readonly IMatchingStatusService matchingStatusService;
|
||||
private readonly INextRunService nextRunService;
|
||||
|
||||
public GroupedTemplateSynchronizer(
|
||||
ILogger<GroupedTemplateSynchronizer> logger,
|
||||
@@ -54,13 +56,14 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
ITemplateService templateService,
|
||||
IJobGroupService jobGroupService,
|
||||
ITemplateReuser templateReuser,
|
||||
IEsppScheduleTransformService esppScheduleTransformService,
|
||||
//IEsppScheduleTransformService esppScheduleTransformService,
|
||||
IUnitRegionalEkPtkGroupService regionalEkPtkGroupService,
|
||||
IUnitFieldService unitFieldService,
|
||||
ITemplateDeactivator templateDeactivator,
|
||||
ITemplateNameNormalizer templateNameNormalizer,
|
||||
ITemplateUpdaterMqSender templateUpdaterMqSender,
|
||||
IMatchingStatusService matchingStatusService
|
||||
IMatchingStatusService matchingStatusService,
|
||||
INextRunService nextRunService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
@@ -73,13 +76,14 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
this.templateService = templateService;
|
||||
this.jobGroupService = jobGroupService;
|
||||
this.templateReuser = templateReuser;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
//this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
this.regionalEkPtkGroupService = regionalEkPtkGroupService;
|
||||
this.unitFieldService = unitFieldService;
|
||||
this.templateDeactivator = templateDeactivator;
|
||||
this.templateNameNormalizer = templateNameNormalizer;
|
||||
this.templateUpdaterMqSender = templateUpdaterMqSender;
|
||||
this.matchingStatusService = matchingStatusService;
|
||||
this.nextRunService = nextRunService;
|
||||
}
|
||||
|
||||
public async Task SyncTemplatesForJobAsync(Guid jobId, HistoryInitiator initiator)
|
||||
@@ -501,7 +505,8 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
if (!string.Equals(existingTemplateForSubGroup.Name, expectedName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
logger.LogDebug("Шаблон {TemplateId} требует обновления имени.", existingTemplateForSubGroup.Id);
|
||||
var nextRun = await GetNextRunAsync(targetJob, existingTemplateForSubGroup.NextRun);
|
||||
//var nextRun = await GetNextRunAsync(targetJob, existingTemplateForSubGroup.NextRun);
|
||||
var nextRun = await nextRunService.GetNextRunForTemplateAsync(existingTemplateForSubGroup.Id, false);
|
||||
var updateRequest = new TemplateUpdaterMq
|
||||
{
|
||||
TemplateId = existingTemplateForSubGroup.Id,
|
||||
@@ -555,7 +560,8 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
};
|
||||
|
||||
var expectedName = await templateNameNormalizer.GetNormalizedTemplateNameAsync(tempTemplateForName);
|
||||
var nextRun = await GetNextRunAsync(targetJob);
|
||||
//var nextRun = await GetNextRunAsync(targetJob);
|
||||
var nextRun = await nextRunService.GetNextRunForTemplateAsync(reusableTemplate.Id, true);
|
||||
|
||||
var updateRequest = new TemplateUpdaterMq
|
||||
{
|
||||
@@ -705,7 +711,8 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
};
|
||||
|
||||
var expectedName = await templateNameNormalizer.GetNormalizedTemplateNameAsync(tempTemplateForName);
|
||||
var nextRun = await GetNextRunAsync(targetJob, template.NextRun);
|
||||
//var nextRun = await GetNextRunAsync(targetJob, template.NextRun);
|
||||
var nextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
|
||||
var updateRequest = new TemplateUpdaterMq
|
||||
{
|
||||
TemplateId = template.Id,
|
||||
@@ -745,11 +752,11 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
|
||||
logger.LogError("Ошибка отправки команды создания группового шаблона для Job {JobId}, связанного юнита {RelationshipUnitId}, Index {Index}.", jobId, relationshipUnitId, index);
|
||||
}
|
||||
|
||||
private async Task<DateTimeOffset> GetNextRunAsync(Job targetJob, DateTimeOffset? currentNextRun = null)
|
||||
{
|
||||
var referenceDate = targetJob.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
|
||||
return await esppScheduleTransformService.GetNextDateAsync(targetJob.GroupId, referenceDate);
|
||||
}
|
||||
//private async Task<DateTimeOffset> GetNextRunAsync(Job targetJob, DateTimeOffset? currentNextRun = null)
|
||||
//{
|
||||
// var referenceDate = targetJob.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
|
||||
// return await esppScheduleTransformService.GetNextDateAsync(targetJob.GroupId, referenceDate);
|
||||
//}
|
||||
|
||||
private async Task UpdateMatchingStatusAsync(Guid jobGroupId, string comment)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user