feat(api,core,infrastructure): Workload - дополнительная фильтрация по свяанным ЗО и РГ. RedisCacheService - при формирование hash key, дополнительная фильтрация на null, empty.
This commit is contained in:
@@ -57,7 +57,7 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
[HttpGet(ApiRoutes.Workload.WorkGroup)]
|
||||
public async Task<IActionResult> GetWorkGroupReport([FromQuery] TimeZoneOffsetClient offset, [FromQuery] WorkloadBaseQuery request)
|
||||
{
|
||||
return await GetReportAsync(WorkloadReportType.WorkGroupAll, request.DurationDays, offset.TimeZoneOffset, null);
|
||||
return await GetReportAsync(WorkloadReportType.WorkGroupAll, request.DurationDays, offset.TimeZoneOffset, null, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -69,12 +69,12 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(ApiRoutes.Workload.WorkGroupJob)]
|
||||
public async Task<IActionResult> GetWorkGroupJobReport([FromRoute] string workGroup, [FromQuery] TimeZoneOffsetClient offset, [FromQuery] WorkloadBaseQuery request)
|
||||
public async Task<IActionResult> GetWorkGroupJobReport([FromRoute] string workGroup, [FromQuery] string? responseArea, [FromQuery] TimeZoneOffsetClient offset, [FromQuery] WorkloadBaseQuery request)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(workGroup))
|
||||
throw new AppValidationException("Не указано значение рабочей группы");
|
||||
|
||||
return await GetReportAsync(WorkloadReportType.WorkGroupJob, request.DurationDays, offset.TimeZoneOffset, workGroup);
|
||||
return await GetReportAsync(WorkloadReportType.WorkGroupJob, request.DurationDays, offset.TimeZoneOffset, responseArea, workGroup);
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
[HttpGet(ApiRoutes.Workload.ResponseArea)]
|
||||
public async Task<IActionResult> GetResponseAreaReport([FromQuery] TimeZoneOffsetClient offset, [FromQuery] WorkloadBaseQuery request)
|
||||
{
|
||||
return await GetReportAsync(WorkloadReportType.ResponseAreaAll, request.DurationDays, offset.TimeZoneOffset, null);
|
||||
return await GetReportAsync(WorkloadReportType.ResponseAreaAll, request.DurationDays, offset.TimeZoneOffset, null, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
if (string.IsNullOrWhiteSpace(responseArea))
|
||||
throw new AppValidationException("Не указано значение зоны ответственности");
|
||||
|
||||
return await GetReportAsync(WorkloadReportType.ResponseAreaWorkGroups, request.DurationDays, offset.TimeZoneOffset, responseArea);
|
||||
return await GetReportAsync(WorkloadReportType.ResponseAreaWorkGroups, request.DurationDays, offset.TimeZoneOffset, responseArea, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -147,13 +147,14 @@ namespace PARR.API.Controllers.V1.Statistics
|
||||
/// Универсальный метод получения отчетности
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private async Task<IActionResult> GetReportAsync(WorkloadReportType reportType, int durationDays, TimeSpan offset, string? filter)
|
||||
//private async Task<IActionResult> GetReportAsync(WorkloadReportType reportType, int durationDays, TimeSpan offset, string? filter)
|
||||
private async Task<IActionResult> GetReportAsync(WorkloadReportType reportType, int durationDays, TimeSpan offset, string? responseArea, string? workGroup)
|
||||
{
|
||||
var utcNow = DateTimeOffset.UtcNow;
|
||||
var localTime = utcNow.ToOffset(offset);
|
||||
var dateStart = DateOnly.FromDateTime(localTime.Date);
|
||||
|
||||
var report = await workloadService.GetWorkloadReportAsync(reportType, dateStart, durationDays, offset, filter?.Trim());
|
||||
var report = await workloadService.GetWorkloadReportAsync(reportType, dateStart, durationDays, offset, responseArea?.Trim(), workGroup?.Trim());
|
||||
|
||||
if (report == null)
|
||||
return BadRequest(new Response<string?>(null, false, new List<ErrorModel> { new ErrorModel { Message = "Необходимо сформировать отчетность." } }, "empty"));
|
||||
|
||||
Reference in New Issue
Block a user