feat(api,core,infrastructure): Workload - дополнительная фильтрация по свяанным ЗО и РГ. RedisCacheService - при формирование hash key, дополнительная фильтрация на null, empty.

This commit is contained in:
Mikhail Trubnikov
2026-06-09 10:16:32 +10:00
parent 8cb7a2d599
commit 6fa9c3d445
7 changed files with 102 additions and 77 deletions

View File

@@ -38,11 +38,11 @@ namespace PARR.API.Controllers.V1.Statistics
/// <summary>
/// Отчет о загруженности. Шаблоны
/// </summary>
/// <param name="reportType"></param>
/// <param name="filter"></param>
/// <param name="state"></param>
/// <param name="date"></param>
/// <param name="offset"></param>
/// <param name="reportType">Тип отчета (ЗО, РГ, Работа)</param>
/// <param name="filter">Фильтр, значиение в зависимости от типа отчета</param>
/// <param name="state">Все, активированные, деактивированные</param>
/// <param name="date">Дата</param>
/// <param name="offset">Часовой пояс</param>
/// <returns></returns>
/// <exception cref="ArgumentException"></exception>
[HttpGet(ApiRoutes.StatWorkloadTemplate.GetWorkloadTemplateReport)]
@@ -61,13 +61,7 @@ namespace PARR.API.Controllers.V1.Statistics
throw new ArgumentException(nameof(filter), "Не передано значение фильтра.");
}
if (query.JobSubfilterType.HasValue && string.IsNullOrWhiteSpace(query.JobSubfilterValue))
{
logger.LogWarning("Не передано значение дополнительного фильтра для работы");
throw new ArgumentException(nameof(filter), "Не передано значение дополнительного фильтра для работы.");
}
var report = await workloadService.GetTemplateReportAsync(reportType, filter, state, date, offset.TimeZoneOffset, query.JobSubfilterType, query.JobSubfilterValue);
var report = await workloadService.GetTemplateReportAsync(reportType, filter.Trim(), state, date, offset.TimeZoneOffset, query.ResponseArea?.Trim(), query.WorkGroup?.Trim());
var response = mapper.Map<List<StatWorkloadTemplateReportResponse>>(report);