fix(api): StatTemplateAutoControlController - исправлена статистика созданных шаблонов по авто-контролю
This commit is contained in:
@@ -42,30 +42,53 @@ namespace PARR.API.Controllers.V1.Statistics
|
|||||||
var startPeriod = endPeriod.AddDays(-startPeriodDays);
|
var startPeriod = endPeriod.AddDays(-startPeriodDays);
|
||||||
|
|
||||||
var templates = await templateService.Get()
|
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 =>
|
.Where(t =>
|
||||||
t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl
|
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)
|
||||||
// измененные
|
|
||||||
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
|
|
||||||
))
|
|
||||||
)
|
)
|
||||||
.Select(t => new QueryResult
|
|
||||||
{
|
|
||||||
//TemplateId = t.Id,
|
|
||||||
DateCreated = t.DateCreated,
|
|
||||||
DateModified = t.DateModified,
|
|
||||||
InitiatorComment = t.InitiatorComment,
|
|
||||||
//InitiatorParrComponentId = t.InitiatorParrComponentId
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
.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()
|
var history = await templateHistoryService.Get()
|
||||||
.Where(t =>
|
.Where(t =>
|
||||||
t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl
|
t.InitiatorParrComponentId == Constants.ParrComponentsEnum.JobAutoControl
|
||||||
@@ -86,6 +109,7 @@ namespace PARR.API.Controllers.V1.Statistics
|
|||||||
var objs = new List<QueryResult>();
|
var objs = new List<QueryResult>();
|
||||||
objs.AddRange(templates);
|
objs.AddRange(templates);
|
||||||
objs.AddRange(history);
|
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)
|
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>
|
/// <param name="initiator"></param>
|
||||||
private void SetInitiator(IHistoryInitiator? initiator)
|
private void SetInitiator(IHistoryInitiator? initiator)
|
||||||
{
|
{
|
||||||
// Задваем иницатора только для новых и измененных записей
|
// Задаем инициатора только для новых и измененных записей
|
||||||
var entrities = EntitiContext.ChangeTracker.Entries()
|
var entrities = EntitiContext.ChangeTracker.Entries()
|
||||||
.Where(t => t.State == EntityState.Modified || t.State == EntityState.Added);
|
.Where(t => t.State == EntityState.Modified || t.State == EntityState.Added);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user