feat(templateMatcher): Приоритет автоконтроля JobGroup>Job при создании/переиспользовании шаблона

This commit is contained in:
Mikhail Kuznetsov
2026-07-03 11:59:46 +10:00
parent 36e866f637
commit 9c27f81fe8
4 changed files with 8 additions and 11 deletions

View File

@@ -9,6 +9,7 @@ using PARR.Domain.Entities.Base.History;
using PARR.Domain.Entities.JobEntities; using PARR.Domain.Entities.JobEntities;
using PARR.Domain.Enums; using PARR.Domain.Enums;
using PARR.TemplateMatcher.Models; using PARR.TemplateMatcher.Models;
using PARR.TemplateMatcher.Services.Implementations;
using PARR.TemplateMatcher.Services.Interfaces; using PARR.TemplateMatcher.Services.Interfaces;
using PARR.TemplateMatcher.Settings; using PARR.TemplateMatcher.Settings;
@@ -173,11 +174,9 @@ internal class GroupedTemplateProcessor : IGroupedTemplateProcessor
HistoryInitiator initiator, HistoryInitiator initiator,
CancellationToken ct) CancellationToken ct)
{ {
// Вычисляем флаги активности var (isActiveTemplate, isActiveSchedule) = AutoControlResolver.ResolveInitStates(
var isActiveTemplate = targetJob.AutoControl?.InitUsedTemplateState ?? false; targetJob, targetJob.Group);
var isActiveSchedule = targetJob.AutoControl?.InitUsedScheduleState ?? false;
// Маппим кортежи в сообщения
var unitsInTemplateMsg = unitsInTemplateSubGroup var unitsInTemplateMsg = unitsInTemplateSubGroup
.Select(e => new UnitInTemplateMessage .Select(e => new UnitInTemplateMessage
{ {

View File

@@ -1,7 +1,7 @@
using PARR.Domain.Entities.JobEntities; using PARR.Domain.Entities.JobEntities;
using PARR.Domain.Entities.JobGroupEntities; using PARR.Domain.Entities.JobGroupEntities;
namespace PARR.TemplateMatcher.Services namespace PARR.TemplateMatcher.Services.Implementations
{ {
/// <summary> /// <summary>
/// Определяет начальные статусы шаблона и расписания на основе типа группы работ. /// Определяет начальные статусы шаблона и расписания на основе типа группы работ.

View File

@@ -28,8 +28,9 @@ internal class AllocateTemplatesStage : ISimpleSyncWriteStage
foreach (var unitId in context.NewUnitIds) foreach (var unitId in context.NewUnitIds)
{ {
var isActiveTemplate = context.Job.AutoControl?.InitUsedTemplateState ?? defaultUsedTemplateState; var (isActiveTemplate, isActiveSchedule) = AutoControlResolver.ResolveInitStates(
var isActiveSchedule = context.Job.AutoControl?.InitUsedScheduleState ?? defaultUsedScheduleState; context.Job, context.Job.Group,
defaultUsedTemplateState, defaultUsedScheduleState);
var request = new TemplateAllocationRequest( var request = new TemplateAllocationRequest(
TargetJob: context.Job, TargetJob: context.Job,

View File

@@ -1,13 +1,11 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using PARR.Core.Common.Interfaces; using PARR.Core.Common.Interfaces;
using PARR.Core.Repositories.Interfaces.JobGroupRepositories; using PARR.Core.Repositories.Interfaces.JobGroupRepositories;
using PARR.Domain.Cache;
using PARR.Domain.Entities.Base.History; using PARR.Domain.Entities.Base.History;
using PARR.Domain.Enums; using PARR.Domain.Enums;
using PARR.EsppApi; using PARR.EsppApi;
using PARR.EsppApi.Constants; using PARR.EsppApi.Constants;
using PARR.EsppApi.Models.Query; using PARR.EsppApi.Models.Query;
using PARR.TemplateMatcher;
using PARR.TemplateMatcher.Services.Implementations; using PARR.TemplateMatcher.Services.Implementations;
using PARR.TemplateMatcher.Services.Interfaces; using PARR.TemplateMatcher.Services.Interfaces;
using PARR.Test.NextRun; using PARR.Test.NextRun;
@@ -44,8 +42,7 @@ namespace PARR.Test
//var bbb = aaa.ToOffset(new TimeSpan(3, 0, 0)); //var bbb = aaa.ToOffset(new TimeSpan(3, 0, 0));
//await TemplateMatcherTest(); await TemplateMatcherTest();
await SimpleSyncTest();