forked from ddrilling/AsbCloudServer
Разделение запроса получения ГГД
This commit is contained in:
parent
41695502b0
commit
24887632f4
@ -1,52 +1,84 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace AsbCloudApp.Requests
|
namespace AsbCloudApp.Requests;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Запрос получения ГГД
|
||||||
|
/// </summary>
|
||||||
|
public class WellOperationRequestBase : RequestBase
|
||||||
{
|
{
|
||||||
public class WellOperationRequest : RequestBase
|
/// <summary>
|
||||||
|
/// Больше или равно дате начала операции
|
||||||
|
/// </summary>
|
||||||
|
public DateTimeOffset? GeDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Меньше или равно дате окончания операции
|
||||||
|
/// </summary>
|
||||||
|
public DateTimeOffset? LeDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Больше или равно глубины скважины на начало операции.
|
||||||
|
/// </summary>
|
||||||
|
public double? GeDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Меньше или равно глубины скважины на конец операции.
|
||||||
|
/// </summary>
|
||||||
|
public double? LeDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификаторы категорий операции
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<int>? OperationCategoryIds { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Тип операций
|
||||||
|
/// <list type="bullet">
|
||||||
|
/// <item>0 - плановая операция</item>
|
||||||
|
/// <item>1 - фактическая операция</item>
|
||||||
|
/// </list>
|
||||||
|
/// </summary>
|
||||||
|
public int? OperationType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификаторы конструкций секции
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<int>? SectionTypeIds { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Запрос получения ГГД с идентификаторами скважин
|
||||||
|
/// </summary>
|
||||||
|
public class WellOperationRequest : WellOperationRequestBase
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public WellOperationRequest(IEnumerable<int> idsWell)
|
||||||
{
|
{
|
||||||
/// <summary>
|
IdsWell = idsWell;
|
||||||
/// Идентификаторы скважин
|
|
||||||
/// </summary>
|
|
||||||
public IEnumerable<int>? IdsWell { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Больше или равно дате начала операции
|
|
||||||
/// </summary>
|
|
||||||
public DateTimeOffset? GeDate { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Меньше или равно дате окончания операции
|
|
||||||
/// </summary>
|
|
||||||
public DateTimeOffset? LeDate { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Больше или равно глубины скважины на начало операции.
|
|
||||||
/// </summary>
|
|
||||||
public double? GeDepth { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Меньше или равно глубины скважины на конец операции.
|
|
||||||
/// </summary>
|
|
||||||
public double? LeDepth { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификаторы категорий операции
|
|
||||||
/// </summary>
|
|
||||||
public IEnumerable<int>? OperationCategoryIds { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Тип операций
|
|
||||||
/// <list type="bullet">
|
|
||||||
/// <item>0 - плановая операция</item>
|
|
||||||
/// <item>1 - фактическая операция</item>
|
|
||||||
/// </list>
|
|
||||||
/// </summary>
|
|
||||||
public int? OperationType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Идентификаторы конструкций секции
|
|
||||||
/// </summary>
|
|
||||||
public IEnumerable<int>? SectionTypeIds { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public WellOperationRequest(WellOperationRequestBase request, IEnumerable<int> idsWell)
|
||||||
|
: this(idsWell)
|
||||||
|
{
|
||||||
|
GeDepth = request.GeDepth;
|
||||||
|
LeDepth = request.LeDepth;
|
||||||
|
GeDate = request.GeDate;
|
||||||
|
LeDate = request.LeDate;
|
||||||
|
|
||||||
|
OperationCategoryIds = request.OperationCategoryIds;
|
||||||
|
OperationType = request.OperationType;
|
||||||
|
SectionTypeIds = request.SectionTypeIds;
|
||||||
|
|
||||||
|
Skip = request.Skip;
|
||||||
|
Take = request.Take;
|
||||||
|
SortFields = request.SortFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Идентификаторы скважин
|
||||||
|
/// </summary>
|
||||||
|
public IEnumerable<int>? IdsWell { get; }
|
||||||
}
|
}
|
@ -110,9 +110,8 @@ public class DailyReportService : IDailyReportService
|
|||||||
var geDate = dailyReport.Date.ToDateTime(TimeOnly.MinValue, DateTimeKind.Unspecified);
|
var geDate = dailyReport.Date.ToDateTime(TimeOnly.MinValue, DateTimeKind.Unspecified);
|
||||||
var leDate = dailyReport.Date.AddDays(1).ToDateTime(TimeOnly.MinValue, DateTimeKind.Unspecified);
|
var leDate = dailyReport.Date.AddDays(1).ToDateTime(TimeOnly.MinValue, DateTimeKind.Unspecified);
|
||||||
|
|
||||||
var factOperationRequest = new WellOperationRequest
|
var factOperationRequest = new WellOperationRequest(new []{ idWell })
|
||||||
{
|
{
|
||||||
IdsWell = new []{ idWell },
|
|
||||||
OperationType = WellOperation.IdOperationTypeFact,
|
OperationType = WellOperation.IdOperationTypeFact,
|
||||||
GeDate = geDate,
|
GeDate = geDate,
|
||||||
LeDate = leDate
|
LeDate = leDate
|
||||||
@ -187,9 +186,8 @@ public class DailyReportService : IDailyReportService
|
|||||||
var geDateFactWellOperation = datesRange.From.AddDays(result.Skip);
|
var geDateFactWellOperation = datesRange.From.AddDays(result.Skip);
|
||||||
var leDateFactWellOperation = geDateFactWellOperation.AddDays(result.Take);
|
var leDateFactWellOperation = geDateFactWellOperation.AddDays(result.Take);
|
||||||
|
|
||||||
var factWellOperationRequest = new WellOperationRequest
|
var factWellOperationRequest = new WellOperationRequest(new[] { idWell })
|
||||||
{
|
{
|
||||||
IdsWell = new[] { idWell },
|
|
||||||
OperationType = WellOperation.IdOperationTypeFact,
|
OperationType = WellOperation.IdOperationTypeFact,
|
||||||
GeDate = geDateFactWellOperation,
|
GeDate = geDateFactWellOperation,
|
||||||
LeDate = leDateFactWellOperation
|
LeDate = leDateFactWellOperation
|
||||||
|
@ -56,9 +56,8 @@ public class ProcessMapReportDrillingService : IProcessMapReportDrillingService
|
|||||||
var geDepth = processMapPlanWellDrillings.Min(p => p.DepthStart);
|
var geDepth = processMapPlanWellDrillings.Min(p => p.DepthStart);
|
||||||
var leDepth = processMapPlanWellDrillings.Max(p => p.DepthEnd);
|
var leDepth = processMapPlanWellDrillings.Max(p => p.DepthEnd);
|
||||||
|
|
||||||
var requestWellOperationFact = new WellOperationRequest()
|
var requestWellOperationFact = new WellOperationRequest(new[] { idWell })
|
||||||
{
|
{
|
||||||
IdsWell = new[] { idWell },
|
|
||||||
OperationType = WellOperation.IdOperationTypeFact,
|
OperationType = WellOperation.IdOperationTypeFact,
|
||||||
GeDepth = geDepth,
|
GeDepth = geDepth,
|
||||||
LeDepth = leDepth
|
LeDepth = leDepth
|
||||||
|
@ -145,9 +145,8 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
var idsWellSectionTypes = WellSectionTypesWithCategories.Select(t => t.IdSectionType).Distinct();
|
var idsWellSectionTypes = WellSectionTypesWithCategories.Select(t => t.IdSectionType).Distinct();
|
||||||
var usedCategories = WellSectionTypesWithCategories.Select(c => c.IdCategory).Distinct();
|
var usedCategories = WellSectionTypesWithCategories.Select(c => c.IdCategory).Distinct();
|
||||||
|
|
||||||
var wellOperationRequest = new WellOperationRequest
|
var wellOperationRequest = new WellOperationRequest(idsWells)
|
||||||
{
|
{
|
||||||
IdsWell = idsWells,
|
|
||||||
OperationCategoryIds = usedCategories,
|
OperationCategoryIds = usedCategories,
|
||||||
SectionTypeIds = idsWellSectionTypes,
|
SectionTypeIds = idsWellSectionTypes,
|
||||||
OperationType = WellOperation.IdOperationTypeFact
|
OperationType = WellOperation.IdOperationTypeFact
|
||||||
|
@ -40,9 +40,8 @@ public class WellOperationExport<TTemplate> : ExcelExportService<WellOperationDt
|
|||||||
|
|
||||||
protected override Task<IEnumerable<WellOperationDto>> GetDtosAsync(WellOperationExportRequest options, CancellationToken token)
|
protected override Task<IEnumerable<WellOperationDto>> GetDtosAsync(WellOperationExportRequest options, CancellationToken token)
|
||||||
{
|
{
|
||||||
var request = new WellOperationRequest
|
var request = new WellOperationRequest(new[] { options.IdWell })
|
||||||
{
|
{
|
||||||
IdsWell = new[] { options.IdWell },
|
|
||||||
OperationType = options.IdType
|
OperationType = options.IdType
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public interface IWellOperationClient
|
|||||||
Task<IApiResponse<int>> UpdateRangeAsync(int idWell, [Body] IEnumerable<WellOperationDto> dtos);
|
Task<IApiResponse<int>> UpdateRangeAsync(int idWell, [Body] IEnumerable<WellOperationDto> dtos);
|
||||||
|
|
||||||
[Get(BaseRoute)]
|
[Get(BaseRoute)]
|
||||||
Task<IApiResponse<PaginationContainer<WellOperationDto>>> GetPageOperationsPlanAsync(int idWell, [Query] WellOperationRequest request);
|
Task<IApiResponse<PaginationContainer<WellOperationDto>>> GetPageOperationsPlanAsync(int idWell, [Query] WellOperationRequestBase request);
|
||||||
|
|
||||||
[Multipart]
|
[Multipart]
|
||||||
[Post(BaseRoute + "/parse/{idType}")]
|
[Post(BaseRoute + "/parse/{idType}")]
|
||||||
|
@ -102,7 +102,7 @@ public class WellOperationControllerTest : BaseIntegrationTest
|
|||||||
dto.DateStart = dto.DateStart.ToOffset(timezoneOffset);
|
dto.DateStart = dto.DateStart.ToOffset(timezoneOffset);
|
||||||
dto.LastUpdateDate = dto.LastUpdateDate?.ToOffset(timezoneOffset);
|
dto.LastUpdateDate = dto.LastUpdateDate?.ToOffset(timezoneOffset);
|
||||||
|
|
||||||
var request = new WellOperationRequest
|
var request = new WellOperationRequestBase
|
||||||
{
|
{
|
||||||
OperationType = WellOperation.IdOperationTypePlan
|
OperationType = WellOperation.IdOperationTypePlan
|
||||||
};
|
};
|
||||||
|
@ -150,14 +150,15 @@ public class WellOperationController : ControllerBase
|
|||||||
[ProducesResponseType(typeof(IEnumerable<WellGroupOpertionDto>), (int)System.Net.HttpStatusCode.OK)]
|
[ProducesResponseType(typeof(IEnumerable<WellGroupOpertionDto>), (int)System.Net.HttpStatusCode.OK)]
|
||||||
public async Task<IActionResult> GetGroupOperationsAsync(
|
public async Task<IActionResult> GetGroupOperationsAsync(
|
||||||
[FromRoute] int idWell,
|
[FromRoute] int idWell,
|
||||||
[FromQuery] WellOperationRequest request,
|
[FromQuery] WellOperationRequestBase request,
|
||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
|
|
||||||
request.IdsWell = new[] { idWell };
|
var requestToservice = new WellOperationRequest(request, new[] { idWell });
|
||||||
var result = await wellOperationRepository.GetGroupOperationsStatAsync(request, token);
|
|
||||||
|
var result = await wellOperationRepository.GetGroupOperationsStatAsync(requestToservice, token);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,14 +188,15 @@ public class WellOperationController : ControllerBase
|
|||||||
[ProducesResponseType(typeof(PaginationContainer<WellOperationDto>), StatusCodes.Status200OK)]
|
[ProducesResponseType(typeof(PaginationContainer<WellOperationDto>), StatusCodes.Status200OK)]
|
||||||
public async Task<IActionResult> GetPageOperationsAsync(
|
public async Task<IActionResult> GetPageOperationsAsync(
|
||||||
[FromRoute] int idWell,
|
[FromRoute] int idWell,
|
||||||
[FromQuery] WellOperationRequest request,
|
[FromQuery] WellOperationRequestBase request,
|
||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
if (!await CanUserAccessToWellAsync(idWell, token))
|
if (!await CanUserAccessToWellAsync(idWell, token))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
|
|
||||||
request.IdsWell = new[] { idWell };
|
var requestToService = new WellOperationRequest(request, new[] { idWell });
|
||||||
var result = await wellOperationRepository.GetPageAsync(request, token);
|
|
||||||
|
var result = await wellOperationRepository.GetPageAsync(requestToService, token);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,7 +272,7 @@ public class WellOperationController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Импорт ГГД из excel (xlsx) файла
|
/// Парсинг ГГД из excel (xlsx) файла
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idWell"></param>
|
/// <param name="idWell"></param>
|
||||||
/// <param name="idType"></param>
|
/// <param name="idType"></param>
|
||||||
@ -315,7 +317,6 @@ public class WellOperationController : ControllerBase
|
|||||||
[HttpGet("template")]
|
[HttpGet("template")]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
[ProducesResponseType(typeof(PhysicalFileResult), StatusCodes.Status200OK, "application/octet-stream")]
|
[ProducesResponseType(typeof(PhysicalFileResult), StatusCodes.Status200OK, "application/octet-stream")]
|
||||||
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
||||||
public IActionResult GetTemplate(int idType)
|
public IActionResult GetTemplate(int idType)
|
||||||
{
|
{
|
||||||
var parser = wellOperationParserFactory.CreateParser<WellOperationParserRequest>(idType);
|
var parser = wellOperationParserFactory.CreateParser<WellOperationParserRequest>(idType);
|
||||||
|
Loading…
Reference in New Issue
Block a user