From ebc5094387c83b496f07990f7cc1b8b4a3c90945 Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Mon, 21 Oct 2024 11:58:01 +1000 Subject: [PATCH] =?UTF-8?q?fix(api):=20StatTemplateAutoControlController?= =?UTF-8?q?=20-=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=81=D1=82=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B0=D0=B2=D1=82=D0=BE-=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StatTemplateAutoControlController.cs | 64 +++++++++++++------ PARR.DAL/Services/Abstracts/BaseService.cs | 2 +- 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/PARR.API/Controllers/V1/Statistics/StatTemplateAutoControlController.cs b/PARR.API/Controllers/V1/Statistics/StatTemplateAutoControlController.cs index ca55948b..bf7a028d 100644 --- a/PARR.API/Controllers/V1/Statistics/StatTemplateAutoControlController.cs +++ b/PARR.API/Controllers/V1/Statistics/StatTemplateAutoControlController.cs @@ -42,30 +42,53 @@ namespace PARR.API.Controllers.V1.Statistics var startPeriod = endPeriod.AddDays(-startPeriodDays); var templates = await templateService.Get() + .Where(t => + t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl + && + (( + // измененные + t.DateModified.HasValue + && t.DateModified.Value.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date >= startPeriod.Date + && t.DateModified.Value.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date <= endPeriod.Date + ) || ( + // созданные + t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date >= startPeriod.Date + && t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date <= endPeriod.Date + && t.InitiatorComment != null + && !t.InitiatorComment.Contains(TemplateActivatorActionsEnum.ActivateAllForAutoControl.ToString()) + && !t.InitiatorComment.Contains(TemplateActivatorActionsEnum.DeactivateAllForAutoControl.ToString()) + )) + ) + .Select(t => new QueryResult + { + //TemplateId = t.Id, + DateCreated = t.DateCreated, + DateModified = t.DateModified, + InitiatorComment = t.InitiatorComment, + //InitiatorParrComponentId = t.InitiatorParrComponentId + }) + .ToListAsync(); + + #region ищем созданные, но уже перемещенные в историю + var createdTemplatesAndMoveToHistory = await templateService.Get().Include(t => t.TemplateHistories) .Where(t => - t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl - && - (( - // измененные - t.DateModified.HasValue - && t.DateModified.Value.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date >= startPeriod.Date - && t.DateModified.Value.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date <= endPeriod.Date - ) || ( - // созданные - t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date >= startPeriod.Date - && t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date <= endPeriod.Date - )) + t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date >= startPeriod.Date + && t.DateCreated.DateTime.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date <= endPeriod.Date + && t.TemplateHistories.Any(x => x.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl) ) - .Select(t => new QueryResult - { - //TemplateId = t.Id, - DateCreated = t.DateCreated, - DateModified = t.DateModified, - InitiatorComment = t.InitiatorComment, - //InitiatorParrComponentId = t.InitiatorParrComponentId - }) .ToListAsync(); + // фильтруем чтобы инициатор коммент не содержал ActivateAllForAutoControl и DeactivateAllForAutoControl, если не содержит, то остается последнее единственное - генерация + createdTemplatesAndMoveToHistory = createdTemplatesAndMoveToHistory.Where(t => + t.TemplateHistories.Any(x => + x.InitiatorComment != null + && !x.InitiatorComment.Contains(TemplateActivatorActionsEnum.ActivateAllForAutoControl.ToString()) + && !x.InitiatorComment.Contains(TemplateActivatorActionsEnum.DeactivateAllForAutoControl.ToString()) + && x.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl + )).ToList(); + //TODO: createdTemplatesAndMoveToHistory - возможно тут ошибка. Не убираются дубли шаблонов из template + #endregion + var history = await templateHistoryService.Get() .Where(t => t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl @@ -86,6 +109,7 @@ namespace PARR.API.Controllers.V1.Statistics var objs = new List(); objs.AddRange(templates); objs.AddRange(history); + objs.AddRange(createdTemplatesAndMoveToHistory.Select(t => new QueryResult { DateCreated = t.DateCreated })); // создано var creations = objs.Where(t => t.DateCreated.HasValue).GroupBy(t => t.DateCreated!.Value.AddHours(timeZoneQuery.TimeZoneOffsetHours).Date) diff --git a/PARR.DAL/Services/Abstracts/BaseService.cs b/PARR.DAL/Services/Abstracts/BaseService.cs index a07c4e07..6b457eea 100644 --- a/PARR.DAL/Services/Abstracts/BaseService.cs +++ b/PARR.DAL/Services/Abstracts/BaseService.cs @@ -76,7 +76,7 @@ namespace PARR.DAL.Services.Abstracts /// private void SetInitiator(IHistoryInitiator? initiator) { - // Задваем иницатора только для новых и измененных записей + // Задаем инициатора только для новых и измененных записей var entrities = EntitiContext.ChangeTracker.Entries() .Where(t => t.State == EntityState.Modified || t.State == EntityState.Added);