fix(api): StatTemplateAutoControlController - исправлена статистика созданных шаблонов по авто-контролю
This commit is contained in:
@@ -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<QueryResult>();
|
||||
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)
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace PARR.DAL.Services.Abstracts
|
||||
/// <param name="initiator"></param>
|
||||
private void SetInitiator(IHistoryInitiator? initiator)
|
||||
{
|
||||
// Задваем иницатора только для новых и измененных записей
|
||||
// Задаем инициатора только для новых и измененных записей
|
||||
var entrities = EntitiContext.ChangeTracker.Entries()
|
||||
.Where(t => t.State == EntityState.Modified || t.State == EntityState.Added);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user