From 60403ccbf9f343fa1e278afb13f74fe7e82aa313 Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Fri, 13 Sep 2024 09:37:21 +1000 Subject: [PATCH] =?UTF-8?q?fix(templateDistributor):=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20First=20=D0=B2=20=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=B3=D0=B5=D1=80=D0=B5.=20=D0=9F=D1=80=D0=B8=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B8=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=BD=D0=B0=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D1=81=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D1=80=D0=B0,=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=89=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BE=D0=BD=D0=B8,=20=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B2=D0=B5=D1=81=D1=8C=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BE=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TemplateDistributor.cs | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/PARR.TemplateDistributor/TemplateDistributor.cs b/PARR.TemplateDistributor/TemplateDistributor.cs index 0d1992d9..91ac0ed1 100644 --- a/PARR.TemplateDistributor/TemplateDistributor.cs +++ b/PARR.TemplateDistributor/TemplateDistributor.cs @@ -98,13 +98,13 @@ namespace PARR.TemplateDistributor .Where(t => t.ApplicationInWorkId == applicationInWorkId && t.Host!.WorkGroupId == workGroupId) .ToListAsync(); - //Удалим из входных шаблонов уже существующие в БД + //Удалим из входных шаблонов уже существующие в БД (по идее, такого никогда не должно случиться) var duplicates = templates.Select(t => t.Id).Where(t => existingTemplates.Any(et => et.Id == t)).ToList(); if (duplicates.Count > 0) { duplicates.ForEach(t => { - logger.LogInformation($"Для распределения AiW({applicationInWorkId}),workGroupId({workGroupId}) передан существующий в базе данных шаблон {t}"); + logger.LogWarning($"Для распределения AiW({applicationInWorkId}),workGroupId({workGroupId}) передан существующий в базе данных шаблон {t}"); }); templates.RemoveAll(t => duplicates.Any(dt => dt == t.Id)); } @@ -125,7 +125,7 @@ namespace PARR.TemplateDistributor if (activatedTemplates.Count > 0) { Distribute(ref activatedTemplates, refDate, period, periodType, workDays); - result.AddRange(activatedTemplates); + // result.AddRange(activatedTemplates); } //распределяем РР отдельно деактивированные @@ -136,6 +136,19 @@ namespace PARR.TemplateDistributor if (deactivatedTemplates.Count > 0) { Distribute(ref deactivatedTemplates, refDate, period, periodType, workDays); + // result.AddRange(deactivatedTemplates); + } + + + if (templates.Any()) + { + // это была генерация шаблонов, не нужны все шаблоны, нужны только те которые передал для получения NextRun + result.AddRange(templates); + } + else + { + // это было распределение шаблонов, добавляем активированные и деактивированные + result.AddRange(activatedTemplates); result.AddRange(deactivatedTemplates); } @@ -228,7 +241,11 @@ namespace PARR.TemplateDistributor //Проверяем шаблоны уже распределённые, чтобы не перемещать лишний раз var templateToDistrib = GetTemplatesToDistribute(ref distrPlan, templates); - logger.LogInformation($"{GetType().Name}(AppInWId:{templates.Select(t => t.ApplicationInWorkId).First()}, WorkGroup:{templates.Select(t => t.Host!.WorkGroup!.Name).First()}) запланировал изменение даты следующего срабатывания у {templateToDistrib.Count()} существующих шаблона(ов), {templates.Count() - templateToDistrib.Count()} остались без изменений"); + //logger.LogInformation($"{GetType().Name}(AppInWId:{templates.Select(t => t.ApplicationInWorkId).First()}, WorkGroup:{templates.Select(t => t.Host!.WorkGroup!.Name).First()}) запланировал изменение даты следующего срабатывания у {templateToDistrib.Count()} существующих шаблона(ов), {templates.Count() - templateToDistrib.Count()} остались без изменений"); + string? loggerWorkGroup = templates.FirstOrDefault()?.Host?.WorkGroup != null ? templates.FirstOrDefault()?.Host?.WorkGroup?.Name : templates.FirstOrDefault()?.Host?.WorkGroupId?.ToString(); + logger.LogInformation($"{GetType().Name}(AppInWId:{templates.Select(t => t.ApplicationInWorkId).First()}, " + + $"WorkGroup:{loggerWorkGroup}) " + + $"запланировал изменение даты следующего срабатывания у {templateToDistrib.Count()} существующих шаблона(ов), {templates.Count() - templateToDistrib.Count()} остались без изменений"); if (!templateToDistrib.Any()) return;