From bc2f9b9055d31afb694eeddf244b64e44138832d Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Thu, 21 Aug 2025 11:28:39 +1000 Subject: [PATCH] =?UTF-8?q?feat(templateGeneratorWorker):=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D0=BD=D0=B0=20=D1=81=D1=83?= =?UTF-8?q?=D1=89=D0=B5=D1=81=D1=82=D0=B2=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D1=88=D0=B5=D0=B4=D1=88=D0=B5=D0=B3=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implementations/UnitFilterService.cs | 5 +++++ PARR.TemplateGeneratorWorker/TemplateGenerator.cs | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/PARR.DAL/DomainServices/Implementations/UnitFilterService.cs b/PARR.DAL/DomainServices/Implementations/UnitFilterService.cs index 7822fd9b..7f7cab11 100644 --- a/PARR.DAL/DomainServices/Implementations/UnitFilterService.cs +++ b/PARR.DAL/DomainServices/Implementations/UnitFilterService.cs @@ -38,6 +38,7 @@ namespace PARR.DAL.DomainServices.Implementations .ThenInclude(t => t.FieldFilters) .Include(t => t.UnitFilters) .ThenInclude(t => t.RelationshipFilters) + .Include(t => t.Group) .FirstOrDefaultAsync(t => t.Id == jobId); if (job == null) @@ -94,6 +95,10 @@ namespace PARR.DAL.DomainServices.Implementations } } } + + if (job.Group?.IsUmbrella == true) + query = query.Where(t => t.ChildUnits.Count() >= job.MinValueRelationships && t.ChildUnits.Count() <= job.MaxValueRelationships); + var newUnits = await query.Select(t => t.Id).ToListAsync(); result.AddRange(newUnits); } diff --git a/PARR.TemplateGeneratorWorker/TemplateGenerator.cs b/PARR.TemplateGeneratorWorker/TemplateGenerator.cs index f5368a16..35233931 100644 --- a/PARR.TemplateGeneratorWorker/TemplateGenerator.cs +++ b/PARR.TemplateGeneratorWorker/TemplateGenerator.cs @@ -48,16 +48,28 @@ namespace PARR.TemplateGeneratorWorker if (query == null) return; + var isTemplateExist = templateService.Get() + .AsNoTracking() + .Any(t => t.JobId == query.JobId && t.UnitId == query.UnitId); + if (!await validatorService.IsValidAsync(query.JobId, query.UnitId)) { logger.LogError($"Некорректные параметры регламентной работы или Unit {nameof(Job)}: {query.JobId}, {nameof(Unit)}: {query.UnitId}"); return; } + if (isTemplateExist) + { + logger.LogWarning($"Шаблон с JobId={query.JobId} и UnitId={query.UnitId} уже существует"); + return; + } + var job = await jobService .Get().AsNoTracking() .FirstOrDefaultAsync(t => t.Id == query.JobId); + + var templateName = await shortcodesService.ApplyShortcodesAsync(job!.TemplateNameMask!, query.UnitId, query.JobId); var template = new Template