diff --git a/AsbCloudInfrastructure/Repository/WellOperationRepository.cs b/AsbCloudInfrastructure/Repository/WellOperationRepository.cs index 2467e470..96b23b96 100644 --- a/AsbCloudInfrastructure/Repository/WellOperationRepository.cs +++ b/AsbCloudInfrastructure/Repository/WellOperationRepository.cs @@ -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) diff --git a/AsbCloudWebApi/Controllers/WellOperationController.cs b/AsbCloudWebApi/Controllers/WellOperationController.cs index 95bbec44..a674b365 100644 --- a/AsbCloudWebApi/Controllers/WellOperationController.cs +++ b/AsbCloudWebApi/Controllers/WellOperationController.cs @@ -86,16 +86,18 @@ namespace AsbCloudWebApi.Controllers } /// - /// Отфильтрованный список операций на скважине. Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате + /// Отфильтрованный список фактических операций на скважине. + /// Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате /// /// id скважины /// /// /// Список операций на скважине [HttpGet] + [Route("fact")] [Permission] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] - public async Task GetOperationsAsync( + public async Task GetPageOperationsFactAsync( [FromRoute] int idWell, [FromQuery] WellOperationRequestBase request, CancellationToken token) @@ -111,6 +113,34 @@ namespace AsbCloudWebApi.Controllers return Ok(result); } + /// + /// Отфильтрованный список плановых операций на скважине. + /// Если не применять фильтр, то вернется весь список. Сортированный по глубине затем по дате + /// + /// id скважины + /// + /// + /// Список операций на скважине в контейнере для постраничного просмотра + [HttpGet] + [Route("plan")] + [Permission] + [ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)] + public async Task 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); + } + /// /// Статистика операций по скважине, группированая по категориям ///