feat(dal,templateMatcher): уточнена логика UnitFilterService, в TemplateMatcher добавлены методы синхронизации и обновлению существующих шаблонов по группе
This commit is contained in:
@@ -95,11 +95,26 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
if (unitIds == null || !unitIds.Any())
|
||||
{
|
||||
logger.LogInformation("Для Job {JobId} фильтры не дали Unit'ов.", jobId);
|
||||
|
||||
// Деактивировать все существующие шаблоны для этого Job
|
||||
var existingTemplatesForDeactivation = await templateService.Get()
|
||||
.AsNoTracking()
|
||||
.Include(t => t.UnitsInTemplate)
|
||||
.Where(t => t.JobId == jobId && t.StatusTypeId == TemplateStatusTypeEnum.Used)
|
||||
.ToListAsync();
|
||||
|
||||
foreach (var unusedTemplate in existingTemplatesForDeactivation)
|
||||
{
|
||||
logger.LogInformation("Деактивация лишнего шаблона {TemplateId} (Job {JobId}, UnitId {UnitId}).", unusedTemplate.Id, jobId, unusedTemplate.UnitId);
|
||||
await templateDeactivator.DeactivateTemplateAsync(unusedTemplate, initiator);
|
||||
}
|
||||
|
||||
logger.LogInformation("Синхронизация шаблонов завершена для Job {JobId}.", jobId);
|
||||
return;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
// ✅ Отладка: проверить, есть ли юнит в unitIds
|
||||
// Отладка: проверить, есть ли юнит в unitIds
|
||||
if (unitIds.Contains(targetUnitId))
|
||||
{
|
||||
logger.LogDebug("Юнит {TargetUnitId} найден в unitIds.", targetUnitId);
|
||||
@@ -107,12 +122,10 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
else
|
||||
{
|
||||
logger.LogDebug("Юнит {TargetUnitId} НЕ найден в unitIds.", targetUnitId);
|
||||
return; // ❌ юнит отсеялся на этом этапе
|
||||
}
|
||||
#endif
|
||||
|
||||
var existingTemplates = await templateService.Get()
|
||||
.AsNoTracking()
|
||||
.Include(t => t.UnitsInTemplate)
|
||||
.Where(t => t.JobId == jobId)
|
||||
.ToListAsync();
|
||||
@@ -203,7 +216,7 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
// ✅ Отладка: проверить, есть ли юнит в unitIds
|
||||
// Отладка: проверить, есть ли юнит в unitIds
|
||||
if (unitIds.Contains(targetUnitId))
|
||||
{
|
||||
logger.LogDebug("Юнит {TargetUnitId} найден в unitIds.", targetUnitId);
|
||||
@@ -211,7 +224,6 @@ internal class SimpleTemplateSynchronizer : ITemplateSynchronizer
|
||||
else
|
||||
{
|
||||
logger.LogDebug("Юнит {TargetUnitId} НЕ найден в unitIds.", targetUnitId);
|
||||
return; // ❌ юнит отсеялся на этом этапе
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user