1. Разделение методов получения фактических и плановых операций (GetPageOperationsPlanAsync и GetPageOperationsFactAsync)

2. Фикс получения категории операции в BuildQuery
This commit is contained in:
Olga Nemt 2023-02-21 17:16:45 +05:00
parent c15c0e5522
commit c7c5de563a
2 changed files with 34 additions and 5 deletions

View File

@ -356,7 +356,7 @@ namespace AsbCloudInfrastructure.Repository
IdWellSectionType = o.IdWellSectionType,
IdCategory = o.IdCategory,
CategoryName = o.WellSectionType.Caption,
CategoryName = o.OperationCategory.Name,
WellSectionTypeName = o.WellSectionType.Caption,
DateStart = DateTime.SpecifyKind(o.DateStart.UtcDateTime + timeZoneOffset, DateTimeKind.Unspecified),
@ -375,8 +375,7 @@ namespace AsbCloudInfrastructure.Repository
.Where(subOp => subOp.IdType == o.IdType)
.Where(subOp => subOp.DateStart <= o.DateStart)
.Min(subOp => subOp.DateStart))
.TotalDays,
.TotalDays
});
if (request.SortFields?.Any() == true)

View File

@ -86,16 +86,18 @@ namespace AsbCloudWebApi.Controllers
}
/// <summary>
/// Отфильтрованный список операций на скважине. Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате
/// Отфильтрованный список фактических операций на скважине.
/// Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате
/// </summary>
/// <param name="idWell">id скважины</param>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns>Список операций на скважине</returns>
[HttpGet]
[Route("fact")]
[Permission]
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> GetOperationsAsync(
public async Task<IActionResult> GetPageOperationsFactAsync(
[FromRoute] int idWell,
[FromQuery] WellOperationRequestBase request,
CancellationToken token)
@ -111,6 +113,34 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
/// <summary>
/// Отфильтрованный список плановых операций на скважине.
/// Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате
/// </summary>
/// <param name="idWell">id скважины</param>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns>Список операций на скважине в контейнере для постраничного просмотра</returns>
[HttpGet]
[Route("plan")]
[Permission]
[ProducesResponseType(typeof(PaginationContainer<WellOperationDto>), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> GetPageOperationsPlanAsync(
[FromRoute] int idWell,
[FromQuery] WellOperationRequestBase request,
CancellationToken token)
{
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
return Forbid();
var requestToService = new WellOperationRequest(request, idWell);
var result = await operationRepository.GetPageAsync(
requestToService,
token)
.ConfigureAwait(false);
return Ok(result);
}
/// <summary>
/// Статистика операций по скважине, группированая по категориям
/// </summary>