feat(templateMatcher): добавлена поддержка настроек AutoControl.
This commit is contained in:
@@ -18,7 +18,10 @@ namespace PARR.TemplateMatcher
|
|||||||
internal class TemplateMatcher : ITemplateMatcher
|
internal class TemplateMatcher : ITemplateMatcher
|
||||||
{
|
{
|
||||||
private const int UnusedCandidateBatchSize = 10;
|
private const int UnusedCandidateBatchSize = 10;
|
||||||
|
private const bool DefaultUnusedTemplateState = false;
|
||||||
|
private const bool DefaultUnusedScheduleState = false;
|
||||||
|
private const bool DefaultUsedTemplateState = false;
|
||||||
|
private const bool DefaultUsedScheduleState = false;
|
||||||
private readonly ILogger<TemplateMatcher> logger;
|
private readonly ILogger<TemplateMatcher> logger;
|
||||||
private readonly IUnitFilterService unitFilterService;
|
private readonly IUnitFilterService unitFilterService;
|
||||||
private readonly MqSettings mqSettings;
|
private readonly MqSettings mqSettings;
|
||||||
@@ -61,7 +64,7 @@ namespace PARR.TemplateMatcher
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var job = await GetJobWithGroupAsync(jobId);
|
var job = await GetJobWithGroupAndAutoControlAsync(jobId);
|
||||||
if (job == null)
|
if (job == null)
|
||||||
{
|
{
|
||||||
logger.LogError("Job с Id {JobId} не найден.", jobId);
|
logger.LogError("Job с Id {JobId} не найден.", jobId);
|
||||||
@@ -103,8 +106,8 @@ namespace PARR.TemplateMatcher
|
|||||||
JobId = jobId,
|
JobId = jobId,
|
||||||
UnitId = template.UnitId,
|
UnitId = template.UnitId,
|
||||||
Name = template.Name,
|
Name = template.Name,
|
||||||
IsActiveTemplate = false,
|
IsActiveTemplate = DefaultUnusedTemplateState,
|
||||||
IsActiveSchedule = false,
|
IsActiveSchedule = DefaultUnusedScheduleState,
|
||||||
LastRun = template.LastRun,
|
LastRun = template.LastRun,
|
||||||
NextRun = template.NextRun,
|
NextRun = template.NextRun,
|
||||||
Index = template.Index,
|
Index = template.Index,
|
||||||
@@ -139,14 +142,16 @@ namespace PARR.TemplateMatcher
|
|||||||
var expectedName = await GetNormalizedTemplateNameAsync(job, unitId);
|
var expectedName = await GetNormalizedTemplateNameAsync(job, unitId);
|
||||||
var nextRun = await GetNextRunAsync(job); // новый шаблон → всегда пересчитываем
|
var nextRun = await GetNextRunAsync(job); // новый шаблон → всегда пересчитываем
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var updateRequest = new TemplateUpdaterMq
|
var updateRequest = new TemplateUpdaterMq
|
||||||
{
|
{
|
||||||
TemplateId = reused.Id,
|
TemplateId = reused.Id,
|
||||||
JobId = jobId,
|
JobId = jobId,
|
||||||
UnitId = unitId,
|
UnitId = unitId,
|
||||||
Name = expectedName,
|
Name = expectedName,
|
||||||
IsActiveTemplate = false,
|
IsActiveTemplate = job.AutoControl?.InitUsedTemplateState ?? DefaultUsedTemplateState,
|
||||||
IsActiveSchedule = false,
|
IsActiveSchedule = job.AutoControl?.InitUsedScheduleState ?? DefaultUsedScheduleState,
|
||||||
StatusTypeId = TemplateStatusTypeEnum.Used,
|
StatusTypeId = TemplateStatusTypeEnum.Used,
|
||||||
Initiator = initiator,
|
Initiator = initiator,
|
||||||
NextRun = nextRun
|
NextRun = nextRun
|
||||||
@@ -237,7 +242,7 @@ namespace PARR.TemplateMatcher
|
|||||||
|
|
||||||
if (!existingTemplates.Any()) return;
|
if (!existingTemplates.Any()) return;
|
||||||
|
|
||||||
var job = await GetJobWithGroupAsync(jobId);
|
var job = await GetJobWithGroupAndAutoControlAsync(jobId);
|
||||||
if (job == null) return;
|
if (job == null) return;
|
||||||
|
|
||||||
var currentUnitIds = await GetExpectedUnitIdsAsync(jobId);
|
var currentUnitIds = await GetExpectedUnitIdsAsync(jobId);
|
||||||
@@ -264,8 +269,8 @@ namespace PARR.TemplateMatcher
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
targetStatus = TemplateStatusTypeEnum.Unused;
|
targetStatus = TemplateStatusTypeEnum.Unused;
|
||||||
targetIsActiveTemplate = false;
|
targetIsActiveTemplate = DefaultUnusedTemplateState;
|
||||||
targetIsActiveSchedule = false;
|
targetIsActiveSchedule = DefaultUnusedScheduleState;
|
||||||
logger.LogInformation("Шаблон {TemplateId} (UnitId {UnitId}) → деактивация.", template.Id, template.UnitId);
|
logger.LogInformation("Шаблон {TemplateId} (UnitId {UnitId}) → деактивация.", template.Id, template.UnitId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -399,10 +404,11 @@ namespace PARR.TemplateMatcher
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<Job?> GetJobWithGroupAsync(Guid jobId)
|
private async Task<Job?> GetJobWithGroupAndAutoControlAsync(Guid jobId)
|
||||||
{
|
{
|
||||||
return await jobService.Get()
|
return await jobService.Get()
|
||||||
.Include(j => j.Group)
|
.Include(j => j.Group)
|
||||||
|
.Include(j => j.AutoControl)
|
||||||
.FirstOrDefaultAsync(j => j.Id == jobId);
|
.FirstOrDefaultAsync(j => j.Id == jobId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user