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