From abf3f4e60bb59570239abff167dc1817223e691a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 25 Sep 2023 11:27:30 +0500 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BC=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Добавил DTO для проработки 2. Добавил интерфейсы для сервиса и репозитория --- .../ProcessMapWellboreDevelopmentDto.cs | 92 +++++++++++++++++++ ...ProcessMapWellboreDevelopmentRepository.cs | 23 +++++ .../IProcessMapWellboreDevelopmentService.cs | 39 ++++++++ 3 files changed, 154 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs create mode 100644 AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs create mode 100644 AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs diff --git a/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs b/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs new file mode 100644 index 00000000..d249d734 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMap/ProcessMapWellboreDevelopmentDto.cs @@ -0,0 +1,92 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMap; + +/// +/// Проработка ствола скважины +/// +public class ProcessMapWellboreDevelopmentDto : IId, IWellRelated +{ + /// + public int Id { get; set; } + + /// + public int IdWell { get; set; } + + /// + /// Дата последнего изменения + /// + public DateTimeOffset LastUpdate { get; set; } + + /// + /// Стартовая глубина + /// + [Range(0, 99999.9, ErrorMessage = "Значение стартовой глубины должна быть в пределах от 0 до 99999.9")] + public double DepthStart { get; set; } + + /// + /// Окончательная глубина + /// + [Range(0, 99999.9, ErrorMessage = "Значение окончательной глубины должна быть в пределах от 0 до 99999.9")] + public double DepthEnd { get; set; } + + /// + /// Количество повторений + /// + [Range(0, 100, ErrorMessage = "Значение количества повторений должно быть в пределах от 0 до 100")] + public double Repeats { get; set; } + + /// + /// Вращение вверх, об/мин + /// + [Range(0, 99999.9, ErrorMessage = "Значение количества вращений вверх должно быть в пределах от 0 до 99999.9")] + public double SpinUpward { get; set; } + + /// + /// Вращение вниз, об/мин + /// + [Range(0, 99999.9, ErrorMessage = "Значение количества вращений вниз должно быть в пределах от 0 до 99999.9")] + public double SpinDownward { get; set; } + + /// + /// Скорость подъема, м/ч + /// + [Range(0, 99999.9, ErrorMessage = "Значение скорости подъёма должна быть в пределах от 0 до 99999.9")] + public double SpeedUpward { get; set; } + + /// + /// Скорость спуска, м/ч + /// + [Range(0, 99999.9, ErrorMessage = "Значение скорости спуска должна быть в пределах от 0 до 99999.9")] + public double SpeedDownward { get; set; } + + /// + /// Уставка зятяжки, т + /// + [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")] + public double SetpointDrags { get; set; } + + /// + /// Уставка посадки, т + /// + [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")] + public double SetpointTights { get; set; } + + /// + /// Давление, атм + /// + [Range(0, 99999.9, ErrorMessage = "Значение давления должно быть в пределах от 0 до 99999.9")] + public double Pressure { get; set; } + + /// + /// Момент, кН м + /// + [Range(0, 99999.9, ErrorMessage = "Значение крутящего момента должно быть в пределах от 0 до 99999.9")] + public double Torque { get; set; } + + /// + /// Комментарий + /// + public string? Comment { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs b/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs new file mode 100644 index 00000000..11e8607e --- /dev/null +++ b/AsbCloudApp/Repositories/IProcessMapWellboreDevelopmentRepository.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using AsbCloudApp.Data.ProcessMap; +using AsbCloudApp.Services; + +namespace AsbCloudApp.Repositories; + +/// +/// Репозиторий для проработки скважины +/// +public interface IProcessMapWellboreDevelopmentRepository : IRepositoryWellRelated +{ + /// + /// Получить проработку начиная с даты + /// + /// + /// + /// + /// + Task> GetAllAsync(int idWell, DateTime? updateFrom, CancellationToken cancellationToken); +} \ No newline at end of file diff --git a/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs b/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs new file mode 100644 index 00000000..6a03e957 --- /dev/null +++ b/AsbCloudApp/Services/IProcessMapWellboreDevelopmentService.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using AsbCloudApp.Data.ProcessMap; + +namespace AsbCloudApp.Services; + +/// +/// Сервис для проработок скважины +/// +public interface IProcessMapWellboreDevelopmentService +{ + /// + /// Добавить запись проработки + /// + /// + /// + /// + Task InsertAsync(ProcessMapWellboreDevelopmentDto processMapWellboreDevelopment, CancellationToken cancellationToken); + + /// + /// Обновить запись проработки + /// + /// + /// + /// + Task UpdateAsync(ProcessMapWellboreDevelopmentDto processMapWellboreDevelopment, CancellationToken cancellationToken); + + /// + /// Получить записи проработок по уникальному ключу телеметрии + /// + /// + /// + /// + /// + Task> GetByTelemetryAsync(string uid, DateTime updateFrom, + CancellationToken cancellationToken); +} \ No newline at end of file