diff --git a/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs b/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs
index 90f74fe9..b0ffecc6 100644
--- a/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs
+++ b/PARR.DAL/TransformServices/IEsppScheduleTransformService.cs
@@ -3,7 +3,7 @@
///
/// Сервис трансформации расписания ЕСПП в дату/расписание
///
- public interface IEsppScheduleTransformService
+ internal interface IEsppScheduleTransformService
{
/////
///// Получить следующую дату согласно расписания
diff --git a/PARR.TemplateGeneratorWorker/TemplateGenerator.cs b/PARR.TemplateGeneratorWorker/TemplateGenerator.cs
index b10755a1..2e1d118d 100644
--- a/PARR.TemplateGeneratorWorker/TemplateGenerator.cs
+++ b/PARR.TemplateGeneratorWorker/TemplateGenerator.cs
@@ -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 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
{
diff --git a/PARR.TemplateMatcher/Services/Implemetaions/GroupedTemplateSynchronizer.cs b/PARR.TemplateMatcher/Services/Implemetaions/GroupedTemplateSynchronizer.cs
index fbbfa87a..0bb8deee 100644
--- a/PARR.TemplateMatcher/Services/Implemetaions/GroupedTemplateSynchronizer.cs
+++ b/PARR.TemplateMatcher/Services/Implemetaions/GroupedTemplateSynchronizer.cs
@@ -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 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 GetNextRunAsync(Job targetJob, DateTimeOffset? currentNextRun = null)
- {
- var referenceDate = targetJob.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
- return await esppScheduleTransformService.GetNextDateAsync(targetJob.GroupId, referenceDate);
- }
+ //private async Task 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)
{
diff --git a/PARR.TemplateMatcher/Services/Implemetaions/SimpleTemplateSynchronizer.cs b/PARR.TemplateMatcher/Services/Implemetaions/SimpleTemplateSynchronizer.cs
index f8136260..f62f95ed 100644
--- a/PARR.TemplateMatcher/Services/Implemetaions/SimpleTemplateSynchronizer.cs
+++ b/PARR.TemplateMatcher/Services/Implemetaions/SimpleTemplateSynchronizer.cs
@@ -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 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 GetNextRunAsync(Job job, DateTimeOffset? currentNextRun = null)
- {
- var referenceDate = job.Group?.ReferenceDate ?? DateTimeOffset.UtcNow;
- return await esppScheduleTransformService.GetNextDateAsync(job.GroupId, referenceDate);
- }
+ //private async Task 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)
{