This commit is contained in:
Степанов Дмитрий 2023-12-08 15:56:00 +05:00
parent f325accca1
commit a2da2c912f

View File

@ -17,6 +17,7 @@ using AsbCloudApp.Services.WellOperationImport;
using AsbCloudApp.Data.WellOperationImport.Options; using AsbCloudApp.Data.WellOperationImport.Options;
using AsbCloudApp.Exceptions; using AsbCloudApp.Exceptions;
using AsbCloudDb.Model; using AsbCloudDb.Model;
using AsbCloudInfrastructure;
namespace AsbCloudWebApi.Controllers namespace AsbCloudWebApi.Controllers
{ {
@ -267,7 +268,7 @@ namespace AsbCloudWebApi.Controllers
if (!await CanUserEditWellOperationsAsync(idWell, cancellationToken)) if (!await CanUserEditWellOperationsAsync(idWell, cancellationToken))
return Forbid(); return Forbid();
if (deleteBeforeInsert && wellOperations.Any()) if (deleteBeforeInsert)
{ {
var existingOperations = await operationRepository.GetAsync(new WellOperationRequest var existingOperations = await operationRepository.GetAsync(new WellOperationRequest
{ {
@ -356,7 +357,6 @@ namespace AsbCloudWebApi.Controllers
[HttpPost("import/fact/default/{deleteBeforeInsert:bool}")] [HttpPost("import/fact/default/{deleteBeforeInsert:bool}")]
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)] [ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[Permission] [Permission]
public Task<IActionResult> ImportFactDefaultExcelFileAsync(int idWell, public Task<IActionResult> ImportFactDefaultExcelFileAsync(int idWell,
[FromForm] IFormFileCollection files, [FromForm] IFormFileCollection files,
@ -384,7 +384,6 @@ namespace AsbCloudWebApi.Controllers
[HttpPost("import/plan/default")] [HttpPost("import/plan/default")]
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)] [ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[Permission] [Permission]
public Task<IActionResult> ImportPlanDefaultExcelFileAsync(int idWell, public Task<IActionResult> ImportPlanDefaultExcelFileAsync(int idWell,
[FromForm] IFormFileCollection files, [FromForm] IFormFileCollection files,
@ -411,7 +410,6 @@ namespace AsbCloudWebApi.Controllers
[HttpPost("import/plan/gazpromKhantos")] [HttpPost("import/plan/gazpromKhantos")]
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)] [ProducesResponseType(typeof(IEnumerable<WellOperationDto>), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[Permission] [Permission]
public Task<IActionResult> ImportPlanGazpromKhantosExcelFileAsync(int idWell, public Task<IActionResult> ImportPlanGazpromKhantosExcelFileAsync(int idWell,
[FromForm] IFormFileCollection files, [FromForm] IFormFileCollection files,
@ -533,14 +531,14 @@ namespace AsbCloudWebApi.Controllers
var wellOperations = wellOperationImportService.Import(idWell, idUser.Value, options.IdType, sheet) var wellOperations = wellOperationImportService.Import(idWell, idUser.Value, options.IdType, sheet)
.OrderBy(w => w.DateStart); .OrderBy(w => w.DateStart);
var dateStart = wellOperations.Min(w => w.DateStart); var dateStart = wellOperations.MinOrDefault(w => w.DateStart);
foreach (var wellOperation in wellOperations) foreach (var wellOperation in wellOperations)
wellOperation.Day = (wellOperation.DateStart - dateStart).TotalDays; {
if (dateStart.HasValue)
if (!wellOperations.Any()) wellOperation.Day = (wellOperation.DateStart - dateStart.Value).TotalDays;
return NoContent(); }
//TODO: очень быстрый костыль //TODO: очень быстрый костыль
if (deleteBeforeInsert is not null && options.IdType == WellOperation.IdOperationTypeFact) if (deleteBeforeInsert is not null && options.IdType == WellOperation.IdOperationTypeFact)
{ {