feat(dal): Добавлены 2 новых шорткода %ИД% и %СВЯЗЬ:ИМЯ АТРИБУТА%

This commit is contained in:
Mikhail Kuznetsov
2026-04-20 12:02:46 +10:00
parent 6d792f04b1
commit be1599aa25
5 changed files with 150 additions and 22 deletions

View File

@@ -2,7 +2,6 @@
using Microsoft.Extensions.Logging;
using PARR.Core.Common.Interfaces.RabbitServices;
using PARR.DAL.DomainServices.Interfaces;
using PARR.DAL.DomainServices.Shortcodes;
using PARR.DAL.DomainServices.UnitFilterService;
using PARR.DAL.Models;
using PARR.DAL.Models.Job;
@@ -38,9 +37,7 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
private readonly ITemplateNameNormalizer templateNameNormalizer;
private readonly ITemplateUpdaterMqSender templateUpdaterMqSender;
private readonly IMatchingStatusService matchingStatusService;
private readonly IShortcodesService shortcodesService;
//private readonly INextRunService nextRunService;
public GroupedTemplateSynchronizer(
ILogger<GroupedTemplateSynchronizer> logger,
@@ -57,9 +54,7 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
ITemplateDeactivator templateDeactivator,
ITemplateNameNormalizer templateNameNormalizer,
ITemplateUpdaterMqSender templateUpdaterMqSender,
IMatchingStatusService matchingStatusService,
IShortcodesService shortcodesService
//INextRunService nextRunService
IMatchingStatusService matchingStatusService
)
{
this.logger = logger;
@@ -77,8 +72,6 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
this.templateNameNormalizer = templateNameNormalizer;
this.templateUpdaterMqSender = templateUpdaterMqSender;
this.matchingStatusService = matchingStatusService;
this.shortcodesService = shortcodesService;
//this.nextRunService = nextRunService;
}
public async Task SyncTemplatesForJobAsync(Guid jobId, HistoryInitiator initiator)
@@ -248,7 +241,7 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
{
// dto.Id - это ParentUnitId, связанные - ChildUnitIds (expectedUnitIds) -> dto.Id идет в UnitsInTemplate
// relatedUnitIds - это ChildUnitIds, которые станут UnitId шаблона
relatedUnitIds = dto.Children.Select(c => c.UnitId).ToList(); // <-- Исправлено
relatedUnitIds = dto.Children.Select(c => c.UnitId).ToList();
}
else
{
@@ -298,7 +291,7 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
.ToDictionary(uv => uv.UnitId, uv => uv.Value.Value);
// 7. Основной цикл обработки: итерируемся по potentialUnitIds (UnitId шаблонов)
var expectedTemplateKeys = new HashSet<(Guid JobId, Guid UnitId, int Index)>();
var expectedTemplateKeys = new HashSet<(Guid JobId, Guid UnitId, int Index)>();
foreach (var kvpOuter in reverseMapping)
{
@@ -318,7 +311,8 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
// 8. Цикл по внутренним группам UnitsInTemplate
foreach (var innerGroup in innerGroupedUnitsInTemplate)
{
var groupingValueName = innerGroup.Key;
var groupingValueName = innerGroup.Key;
var unitsInTemplateInInnerGroup = innerGroup.ToList(); // Список юнитов (UnitId), связанных с potentialUnitId и имеющих одно и то же значение поля
logger.LogDebug("Обработка внутренней группы '{GroupingValue}' для UnitId {PotentialUnitId} с {Count} юнитами.", groupingValueName, potentialUnitId, unitsInTemplateInInnerGroup.Count);