feat(templateMatcher,dal): Первая реализация SyncTemplatesForJobGroup для сгруппированных типов групп регламентных работ.

This commit is contained in:
Mikhail Kuznetsov
2025-12-19 19:15:58 +10:00
parent cc104c30b1
commit 7ca536ce52
20 changed files with 687 additions and 71 deletions

View File

@@ -59,8 +59,8 @@ namespace PARR.TemplateMatcher
switch (query.EntityType)
{
case SyncTaskEntityTypeEnum.Job:
var validatorService = GetServiceInScope<IJobValidatorService>(scope);
if (!await validatorService.IsValidAsync(query.Id))
var jobValidatorService = GetServiceInScope<IJobValidatorService>(scope);
if (!await jobValidatorService.IsValidJobAsync(query.Id))
{
logger.LogWarning("Сущность {EntityType} с Id {Id} не прошла валидацию", query.EntityType, query.Id);
return;
@@ -83,9 +83,29 @@ namespace PARR.TemplateMatcher
break;
case SyncTaskEntityTypeEnum.JobGroup:
logger.LogWarning("Обработка EntityType JobGroup не реализована. Id: {Id}, Action: {Action}", query.Id, query.Action);
break;
var jobGroupValidatorService = GetServiceInScope<IJobGroupValidatorService>(scope);
if (!await jobGroupValidatorService.IsValidJobGroupAsync(query.Id))
{
logger.LogWarning("Сущность {EntityType} с Id {Id} не прошла валидацию", query.EntityType, query.Id);
return;
}
switch (query.Action)
{
case TemplateMatcherActionEnum.Sync:
// Создать недостающие шаблоны, привязать к нужному Job, включить/выключить по фильтрам
await templateMatcherService.SyncTemplatesForJobGroup(query.Id, query.Initiator);
break;
case TemplateMatcherActionEnum.Update:
// Обновить существующие шаблоны: имя, привязка к Job, вкл/выкл по фильтрам
//await templateMatcherService.UpdateTemplatesForJob(query.Id, query.Initiator);
logger.LogWarning("Обработка EntityType JobGroup и TemplateMatcherActionEnum.Update не реализована. Id: {Id}, Action: {Action}", query.Id, query.Action);
break;
default:
logger.LogWarning("Неизвестное действие для {EntityType}: {Action}", query.EntityType, query.Action);
break;
}
break;
case SyncTaskEntityTypeEnum.Template:
logger.LogWarning("Обработка EntityType Template не реализована. Id: {Id}, Action: {Action}", query.Id, query.Action);
break;