Merge branch 'dev' into fix/daily_report

This commit is contained in:
Степанов Дмитрий 2023-12-11 11:00:24 +05:00
commit ed59cbbb62
2 changed files with 55 additions and 58 deletions

View File

@ -1,12 +1,11 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.User
{
namespace AsbCloudApp.Data.User;
/// <summary>
/// Контакт
/// </summary>
public class ContactDto : IId
{
/// <inheritdoc/>
@ -16,12 +15,14 @@ namespace AsbCloudApp.Data.User
/// ключ типа компании
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int IdCompanyType { get; set; }
/// <summary>
/// ключ скважины
/// </summary>
[Required]
[Range(1,int.MaxValue)]
public int IdWell { get; set; }
/// <summary>
@ -54,8 +55,6 @@ namespace AsbCloudApp.Data.User
/// Компания
/// </summary>
[Required]
[StringLength(260, MinimumLength = 3, ErrorMessage = "Допустимая длина должности от 3 до 260 символов")]
[StringLength(260, MinimumLength = 3, ErrorMessage = "Допустимая длина названия компании от 3 до 260 символов")]
public string Company { get; set; } = null!;
}
}

View File

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