forked from ddrilling/AsbCloudServer
Merge branch 'dev'
This commit is contained in:
commit
fcd77dfead
@ -1,4 +1,4 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using AsbCloudApp.Data.SAUB;
|
using AsbCloudApp.Data.SAUB;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace AsbCloudApp.Comparators
|
namespace AsbCloudApp.Comparators
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace System.Collections.Generic
|
namespace System.Collections.Generic
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using AsbCloudApp.Data.User;
|
using AsbCloudApp.Data.User;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data;
|
namespace AsbCloudApp.Data;
|
||||||
@ -6,12 +6,12 @@ namespace AsbCloudApp.Data;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Часть записи описывающая изменение
|
/// Часть записи описывающая изменение
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class ChangeLogAbstract
|
public class ChangeLogDto<T> where T: IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ИД записи
|
/// Запись
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Id { get; set; }
|
public required T Item { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Автор
|
/// Автор
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -3,18 +3,18 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Статистика механической скорости проходки (МСП) по кусту
|
/// Статистика механической скорости проходки (МСП) по кусту
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ClusterRopStatDto
|
public class ClusterRopStatDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Макс. механическая скорость проходки по кусту
|
/// Макс. механическая скорость проходки по кусту
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double RopMax { get; set; }
|
public double RopMax { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Средняя механическая скорость проходки по кусту
|
/// Средняя механическая скорость проходки по кусту
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double RopAverage { get; set; }
|
public double RopAverage { get; set; }
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -7,22 +7,22 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ProcessMapWellDrillingRecordDto
|
public class ProcessMapWellDrillingRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Режим бурения
|
/// Режим бурения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public string DrillingMode { get; set; } = null!;
|
public string DrillingMode { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Мех. скорость
|
/// Мех. скорость
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина ствола
|
/// Глубина ствола
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? WellBoreDepth { get; set; }
|
public double? WellBoreDepth { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Часы бурения
|
/// Часы бурения
|
||||||
|
@ -5,28 +5,28 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ScheduleRecordDto
|
public class ScheduleRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Начало смены
|
/// Начало смены
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public TimeDto? ShiftStart { get; set; }
|
public TimeDto? ShiftStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конец смены
|
/// Конец смены
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public TimeDto? ShiftEnd { get; set; }
|
public TimeDto? ShiftEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Имя бурильщика
|
/// Имя бурильщика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Фамилия бурильщика
|
/// Фамилия бурильщика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Surname { get; set; }
|
public string? Surname { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отчество бурильщика
|
/// Отчество бурильщика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Patronymic { get; set; }
|
public string? Patronymic { get; set; }
|
||||||
}
|
}
|
@ -5,13 +5,13 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SignBlockDto : ItemInfoDto
|
public class SignBlockDto : ItemInfoDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Подпись мастера буровой
|
/// Подпись мастера буровой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SignRecordDto? DrillingMaster { get; set; }
|
public SignRecordDto? DrillingMaster { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Подпись супервайзера
|
/// Подпись супервайзера
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SignRecordDto? Supervisor { get; set; }
|
public SignRecordDto? Supervisor { get; set; }
|
||||||
}
|
}
|
@ -7,11 +7,11 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SignRecordDto
|
public class SignRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Имя
|
/// Имя
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Фамилия
|
/// Фамилия
|
||||||
@ -19,14 +19,14 @@ public class SignRecordDto
|
|||||||
[Required]
|
[Required]
|
||||||
public string Surname { get; set; } = null!;
|
public string Surname { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отчество
|
/// Отчество
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Patronymic { get; set; }
|
public string? Patronymic { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"{Surname} {Name} {Patronymic}";
|
return $"{Surname} {Name} {Patronymic}";
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,34 +9,34 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SubsystemBlockDto : ItemInfoDto
|
public class SubsystemBlockDto : ItemInfoDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Длина ствола скважины
|
/// Длина ствола скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? Wellbore { get; set; }
|
public double? Wellbore { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Кол-во замеров за сутки
|
/// Кол-во замеров за сутки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? MeasurementsPerDay { get; set; }
|
public double? MeasurementsPerDay { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Общая плановая мех. скорость
|
/// Общая плановая мех. скорость
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? TotalRopPlan { get; set; }
|
public double? TotalRopPlan { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отклонение по ГГД, сут
|
/// Отклонение по ГГД, сут
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? TvgLagDays { get; set; }
|
public double? TvgLagDays { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Рекомендации специалиста
|
/// Рекомендации специалиста
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Comment { get; set; }
|
public string? Comment { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Подсистемы
|
/// Подсистемы
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public IEnumerable<SubsystemRecordDto> Subsystems { get; set; } = Enumerable.Empty<SubsystemRecordDto>();
|
public IEnumerable<SubsystemRecordDto> Subsystems { get; set; } = Enumerable.Empty<SubsystemRecordDto>();
|
||||||
}
|
}
|
@ -7,19 +7,19 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SubsystemParametersDto
|
public class SubsystemParametersDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сумма изменения глубин при включенной подсистеме
|
/// Сумма изменения глубин при включенной подсистеме
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? SumDepthInterval { get; set; }
|
public double? SumDepthInterval { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Наработка подсистемы
|
/// Наработка подсистемы
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? UsedTimeHours { get; set; }
|
public double? UsedTimeHours { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Коэффициент использования
|
/// Коэффициент использования
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Range(0, 1)]
|
[Range(0, 1)]
|
||||||
public double? KUsage { get; set; }
|
public double? KUsage { get; set; }
|
||||||
}
|
}
|
@ -7,19 +7,19 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SubsystemRecordDto
|
public class SubsystemRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название подсистемы
|
/// Название подсистемы
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Использование подсистемы за сутки
|
/// Использование подсистемы за сутки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SubsystemParametersDto? UsagePerDay { get; set; }
|
public SubsystemParametersDto? UsagePerDay { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Использование подсистемы за скважину
|
/// Использование подсистемы за скважину
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SubsystemParametersDto? UsagePerWell { get; set; }
|
public SubsystemParametersDto? UsagePerWell { get; set; }
|
||||||
}
|
}
|
@ -9,29 +9,29 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TimeBalanceBlockDto : ItemInfoDto
|
public class TimeBalanceBlockDto : ItemInfoDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Идентификатор секции
|
/// Идентификатор секции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Range(1, int.MaxValue)]
|
[Range(1, int.MaxValue)]
|
||||||
public int IdSection { get; set; }
|
public int IdSection { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название секции
|
/// Название секции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? SectionName { get; set; }
|
public string? SectionName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Проходка скважины
|
/// Проходка скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public PlanFactDto<double?> WellDepth { get; set; } = new();
|
public PlanFactDto<double?> WellDepth { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Кол-во наращиваний за сутки
|
/// Кол-во наращиваний за сутки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? WellOperationSlipsTimeCount { get; set; }
|
public double? WellOperationSlipsTimeCount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Операции на скважине
|
/// Операции на скважине
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<TimeBalanceRecordDto> WellOperations { get; set; } = Enumerable.Empty<TimeBalanceRecordDto>();
|
public IEnumerable<TimeBalanceRecordDto> WellOperations { get; set; } = Enumerable.Empty<TimeBalanceRecordDto>();
|
||||||
}
|
}
|
@ -5,31 +5,31 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TimeBalanceRecordDto
|
public class TimeBalanceRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Мех. бурение - 1
|
/// Мех. бурение - 1
|
||||||
/// Снятие замера, ориентирование - 2
|
/// Снятие замера, ориентирование - 2
|
||||||
/// Наращивание, выход на режим - 3
|
/// Наращивание, выход на режим - 3
|
||||||
/// Промывка, проработка - 4
|
/// Промывка, проработка - 4
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdWellOperation { get; set; }
|
public int IdWellOperation { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Продолжительность операции, ч
|
/// Продолжительность операции, ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public PlanFactDto<double?> DurationHours { get; set; } = new();
|
public PlanFactDto<double?> DurationHours { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отклонение за секцию
|
/// Отклонение за секцию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DrillingDeviationPerSection { get; set; }
|
public double? DrillingDeviationPerSection { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отклонение за сутки
|
/// Отклонение за сутки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DrillingDeviationPerDay { get; set; }
|
public double? DrillingDeviationPerDay { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Причина отклонения
|
/// Причина отклонения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? ReasonDeviation { get; set; }
|
public string? ReasonDeviation { get; set; }
|
||||||
}
|
}
|
@ -5,23 +5,23 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TrajectoryBlockDto
|
public class TrajectoryBlockDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина по стволу
|
/// Глубина по стволу
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? WellboreDepth { get; set; }
|
public double? WellboreDepth { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина вертикальная
|
/// Глубина вертикальная
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? VerticalDepth { get; set; }
|
public double? VerticalDepth { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Угол зенитный
|
/// Угол зенитный
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? ZenithAngle { get; set; }
|
public double? ZenithAngle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Азимут Географ.
|
/// Азимут Географ.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? AzimuthGeo { get; set; }
|
public double? AzimuthGeo { get; set; }
|
||||||
}
|
}
|
@ -13,11 +13,11 @@ public class WellOperationBlockDto
|
|||||||
/// Продолжительность бурения за секцию
|
/// Продолжительность бурения за секцию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double SectionDrillingHours { get; set; }
|
public double SectionDrillingHours { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Операции проводимые на скважине
|
/// Операции проводимые на скважине
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public IEnumerable<WellOperationRecordDto> WellOperations { get; set; } = Enumerable.Empty<WellOperationRecordDto>();
|
public IEnumerable<WellOperationRecordDto> WellOperations { get; set; } = Enumerable.Empty<WellOperationRecordDto>();
|
||||||
}
|
}
|
@ -5,13 +5,13 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class WellOperationRecordDto
|
public class WellOperationRecordDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название категории
|
/// Название категории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? CategoryName { get; set; }
|
public string? CategoryName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Продолжительность операции
|
/// Продолжительность операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DurationHours { get; set; }
|
public double? DurationHours { get; set; }
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -14,15 +14,15 @@ namespace AsbCloudApp.Data.DailyReport;
|
|||||||
/// Суточный отчёт
|
/// Суточный отчёт
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DailyReportDto : IId,
|
public class DailyReportDto : IId,
|
||||||
IWellRelated
|
IWellRelated
|
||||||
{
|
{
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
[Required]
|
[Required]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
[Required]
|
[Required]
|
||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название скважины
|
/// Название скважины
|
||||||
@ -30,51 +30,51 @@ public class DailyReportDto : IId,
|
|||||||
[Required]
|
[Required]
|
||||||
public string WellCaption { get; set; } = null!;
|
public string WellCaption { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название типа скважины
|
/// Название типа скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? WellType { get; set; }
|
public string? WellType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название куста
|
/// Название куста
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Cluster { get; set; }
|
public string? Cluster { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Заказчик
|
/// Заказчик
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Customer { get; set; }
|
public string? Customer { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Подрядчик
|
/// Подрядчик
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Contractor { get; set; }
|
public string? Contractor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Месторождение
|
/// Месторождение
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Deposit { get; set; }
|
public string? Deposit { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина забоя на дату начала интервала
|
/// Глубина забоя на дату начала интервала
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DepthStart { get; set; }
|
public double? DepthStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина забоя на дату окончания интервала
|
/// Глубина забоя на дату окончания интервала
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DepthEnd { get; set; }
|
public double? DepthEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата формирования отчёта
|
/// Дата формирования отчёта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public DateOnly Date { get; set; }
|
public DateOnly Date { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата последнего обновления
|
/// Дата последнего обновления
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset? DateLastUpdate { get; set; }
|
public DateTimeOffset? DateLastUpdate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Блок фактической траектории
|
/// Блок фактической траектории
|
||||||
@ -88,20 +88,20 @@ public class DailyReportDto : IId,
|
|||||||
[Required]
|
[Required]
|
||||||
public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!;
|
public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Баланс времени
|
/// Баланс времени
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
|
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Наработка подсистем
|
/// Наработка подсистем
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SubsystemBlockDto? SubsystemBlock { get; set; }
|
public SubsystemBlockDto? SubsystemBlock { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Подпись
|
/// Подпись
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SignBlockDto? SignBlock { get; set; }
|
public SignBlockDto? SignBlock { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Блок расписания
|
/// Блок расписания
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using AsbCloudApp.Data.WellOperation;
|
using AsbCloudApp.Data.WellOperation;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// dto для хранения данных статистики сауб
|
||||||
|
/// </summary>
|
||||||
public class DataSaubStatDto:IId
|
public class DataSaubStatDto:IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.DetectedOperation
|
namespace AsbCloudApp.Data.DetectedOperation
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using AsbCloudApp.Data.WellOperation;
|
using AsbCloudApp.Data.WellOperation;
|
||||||
@ -10,82 +10,82 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class DetectedOperationDto : IId
|
public class DetectedOperationDto : IId
|
||||||
{
|
{
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
[Required]
|
[Required]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id телеметрии
|
/// Id телеметрии
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public int IdTelemetry { get; set; }
|
public int IdTelemetry { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id названия/описания операции
|
/// Id названия/описания операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public int IdCategory { get; set; }
|
public int IdCategory { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id пользователя панели на момент начала операции
|
/// Id пользователя панели на момент начала операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? IdUserAtStart { get; set; }
|
public int? IdUserAtStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id пользователя изменившего операцию
|
/// Id пользователя изменившего операцию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? IdEditor { get; set; }
|
public int? IdEditor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата завершения операции в часовом поясе скважины
|
/// Дата завершения операции в часовом поясе скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public DateTimeOffset DateEnd { get; set; }
|
public DateTimeOffset DateEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата начала операции в часовом поясе скважины
|
/// Дата начала операции в часовом поясе скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public DateTimeOffset DateStart { get; set; }
|
public DateTimeOffset DateStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// глубина на завершения операции, м
|
/// глубина на завершения операции, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double DepthEnd { get; set; }
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// глубина на начало операции, м
|
/// глубина на начало операции, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double DepthStart { get; set; }
|
public double DepthStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Продолжительность операции в минутах
|
/// Продолжительность операции в минутах
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
|
public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// название/описание операции
|
/// название/описание операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
|
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Включенные подсистемы
|
/// Включенные подсистемы
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public EnabledSubsystems EnabledSubsystems { get; set; }
|
public EnabledSubsystems EnabledSubsystems { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Значение ключевой параметра операции
|
/// Значение ключевой параметра операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public double Value { get; set; }
|
public double Value { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Доп. инфо по операции
|
/// Доп. инфо по операции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IDictionary<string, object> ExtraData { get; set; } = new Dictionary<string, object>();
|
public IDictionary<string, object> ExtraData { get; set; } = new Dictionary<string, object>();
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.DetectedOperation
|
namespace AsbCloudApp.Data.DetectedOperation
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data.DetectedOperation
|
namespace AsbCloudApp.Data.DetectedOperation
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Автоматически определяемая операция
|
/// Автоматически определяемая операция
|
||||||
|
@ -5,101 +5,101 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public struct EnabledSubsystems
|
public struct EnabledSubsystems
|
||||||
{
|
{
|
||||||
private int value;
|
private int value;
|
||||||
|
|
||||||
private EnabledSubsystems(int value)
|
private EnabledSubsystems(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public static implicit operator int(EnabledSubsystems param) =>
|
public static implicit operator int(EnabledSubsystems param) =>
|
||||||
param.value;
|
param.value;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public static implicit operator EnabledSubsystems(int param) =>
|
public static implicit operator EnabledSubsystems(int param) =>
|
||||||
new(param);
|
new(param);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Бурение ротором
|
/// Бурение ротором
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoRotor
|
public bool IsAutoRotor
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoRotor);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoRotor);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoRotor);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoRotor);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Бурение слайдом
|
/// Бурение слайдом
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoSlide
|
public bool IsAutoSlide
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSlide);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSlide);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSlide);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSlide);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПРОРАБОТКА
|
/// ПРОРАБОТКА
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoConditionig
|
public bool IsAutoConditionig
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoConditionig);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoConditionig);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoConditionig);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoConditionig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// СПУСК СПО
|
/// СПУСК СПО
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoSinking
|
public bool IsAutoSinking
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSinking);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSinking);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSinking);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSinking);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПОДЪЕМ СПО
|
/// ПОДЪЕМ СПО
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoLifting
|
public bool IsAutoLifting
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLifting);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLifting);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLifting);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLifting);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoLiftingWithConditionig
|
public bool IsAutoLiftingWithConditionig
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Блокировка
|
/// Блокировка
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoBlocknig
|
public bool IsAutoBlocknig
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoBlocknig);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoBlocknig);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoBlocknig);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoBlocknig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Осцилляция
|
/// Осцилляция
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAutoOscillation
|
public bool IsAutoOscillation
|
||||||
{
|
{
|
||||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoOscillation);
|
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoOscillation);
|
||||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoOscillation);
|
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoOscillation);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsEnabledSubsystem(EnabledSubsystemsFlags flag) =>
|
private bool IsEnabledSubsystem(EnabledSubsystemsFlags flag) =>
|
||||||
(value & (int)flag) > 0;
|
(value & (int)flag) > 0;
|
||||||
|
|
||||||
private void UpdateEnabledSubsystems(bool isEnable, EnabledSubsystemsFlags flag)
|
private void UpdateEnabledSubsystems(bool isEnable, EnabledSubsystemsFlags flag)
|
||||||
{
|
{
|
||||||
if (isEnable)
|
if (isEnable)
|
||||||
value |= (int)flag;
|
value |= (int)flag;
|
||||||
else
|
else
|
||||||
value &= ~(int)flag;
|
value &= ~(int)flag;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,43 +8,43 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum EnabledSubsystemsFlags
|
public enum EnabledSubsystemsFlags
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Автоподача долота
|
/// Автоподача долота
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoRotor = 1 << 0,
|
AutoRotor = 1 << 0,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// БУРЕНИЕ В СЛАЙДЕ
|
/// БУРЕНИЕ В СЛАЙДЕ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoSlide = 1 << 1,
|
AutoSlide = 1 << 1,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПРОРАБОТКА
|
/// ПРОРАБОТКА
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoConditionig = 1 << 2,
|
AutoConditionig = 1 << 2,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// СПУСК СПО
|
/// СПУСК СПО
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoSinking = 1 << 3,
|
AutoSinking = 1 << 3,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПОДЪЕМ СПО
|
/// ПОДЪЕМ СПО
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoLifting = 1 << 4,
|
AutoLifting = 1 << 4,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoLiftingWithConditionig = 1 << 5,
|
AutoLiftingWithConditionig = 1 << 5,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// блокировка
|
/// блокировка
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoBlocknig = 1 << 6,
|
AutoBlocknig = 1 << 6,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// осцилляция
|
/// осцилляция
|
||||||
/// </summary>
|
/// </summary>
|
||||||
AutoOscillation = 1 << 7,
|
AutoOscillation = 1 << 7,
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ namespace AsbCloudApp.Data
|
|||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DTO параметров бурения
|
/// DTO параметров бурения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DrillParamsDto : IId, IWellRelated
|
public class DrillParamsDto : IId, IWellRelated
|
||||||
{
|
{
|
||||||
@ -15,7 +15,7 @@ namespace AsbCloudApp.Data
|
|||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина интервала
|
/// Глубина интервала
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public MinMaxDto<double> Depth { get; set; } = null!;
|
public MinMaxDto<double> Depth { get; set; } = null!;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using AsbCloudApp.Data.SAUB;
|
using AsbCloudApp.Data.SAUB;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.DrillTestReport
|
namespace AsbCloudApp.Data.DrillTestReport
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.DrillTestReport
|
namespace AsbCloudApp.Data.DrillTestReport
|
||||||
|
@ -4,22 +4,22 @@ using AsbCloudApp.Data.Subsystems;
|
|||||||
namespace AsbCloudApp.Data;
|
namespace AsbCloudApp.Data;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// статистика наработки по бурильщикам
|
/// статистика наработки по бурильщикам
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DrillerDetectedOperationStatDto
|
public class DrillerDetectedOperationStatDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Статистики подсистем
|
/// Статистики подсистем
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<SubsystemStatDto> Statistic { get; set; } = null!;
|
public IEnumerable<SubsystemStatDto> Statistic { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Расписание бурильщика
|
/// Расписание бурильщика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ScheduleDto Schedule { get; set; } = null!;
|
public ScheduleDto Schedule { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Скважина
|
/// Скважина
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public WellDto Well { get; set; } = null!;
|
public WellDto Well { get; set; } = null!;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using AsbCloudApp.Data.User;
|
using AsbCloudApp.Data.User;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -5,7 +5,7 @@ using AsbCloudApp.Data.User;
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отметка для файла
|
/// Отметка для файла
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileMarkDto: IId
|
public class FileMarkDto: IId
|
||||||
{
|
{
|
||||||
@ -14,42 +14,42 @@ namespace AsbCloudApp.Data
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// id файла
|
/// id файла
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
[Range(1, int.MaxValue, ErrorMessage = "Id файла не может быть меньше 1")]
|
[Range(1, int.MaxValue, ErrorMessage = "Id файла не может быть меньше 1")]
|
||||||
public int IdFile { get; set; }
|
public int IdFile { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 0 - отклонен
|
/// 0 - отклонен
|
||||||
/// 1 - согласован
|
/// 1 - согласован
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
[Range(0, int.MaxValue, ErrorMessage = "Id категории действия с файлом не может быть меньше 1")]
|
[Range(0, int.MaxValue, ErrorMessage = "Id категории действия с файлом не может быть меньше 1")]
|
||||||
public int IdMarkType { get; set; }
|
public int IdMarkType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// дата/время добавления.
|
/// дата/время добавления.
|
||||||
/// Необязательно указывать в запросе на создание.
|
/// Необязательно указывать в запросе на создание.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public DateTimeOffset DateCreated { get; set; }
|
public DateTimeOffset DateCreated { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Полезный комментарий
|
/// Полезный комментарий
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[StringLength(4096, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 4096 символов")]
|
[StringLength(4096, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 4096 символов")]
|
||||||
public string? Comment { get; set; }
|
public string? Comment { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// признак удаления отметки
|
/// признак удаления отметки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public bool IsDeleted { get; set; }
|
public bool IsDeleted { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Пользователь создающий отметку.
|
/// Пользователь создающий отметку.
|
||||||
/// Необязательно указывать в запросе на создание.
|
/// Необязательно указывать в запросе на создание.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public UserDto? User { get; set; }
|
public UserDto? User { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -7,228 +7,228 @@ namespace AsbCloudApp.Data.GTR;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class GtrWitsDto
|
public class GtrWitsDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата получения записи
|
/// Дата получения записи
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset DateTime { get; set; }
|
public DateTimeOffset DateTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Забой (скважины), м
|
/// Забой (скважины), м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? DEPTMEAS { get; set; }
|
public float? DEPTMEAS { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Долото, м
|
/// Долото, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float DEPTBITM { get; set; }
|
public float DEPTBITM { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вес на крюке
|
/// Вес на крюке
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? HKLA { get; set; }
|
public float? HKLA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота крюка
|
/// Высота крюка
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? BLKPOS { get; set; }
|
public float? BLKPOS { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Нагрузка на долото
|
/// Нагрузка на долото
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? WOBA { get; set; }
|
public float? WOBA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Момент на роторе/ВСП
|
/// Момент на роторе/ВСП
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TORQA { get; set; }
|
public float? TORQA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Давление на входе (на стояке)
|
/// Давление на входе (на стояке)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? SPPA { get; set; }
|
public float? SPPA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обороты ротора/ВСП
|
/// Обороты ротора/ВСП
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? RPMA { get; set; }
|
public float? RPMA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Механическая скорость
|
/// Механическая скорость
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? ROPA { get; set; }
|
public float? ROPA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Скорость инструмента вверх
|
/// Скорость инструмента вверх
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? RSUX { get; set; }
|
public float? RSUX { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Скорость инструмента вниз
|
/// Скорость инструмента вниз
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? RSDX { get; set; }
|
public float? RSDX { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Расход на входе
|
/// Расход на входе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MFIA { get; set; }
|
public float? MFIA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Расход на выходе
|
/// Расход на выходе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MFOA { get; set; }
|
public float? MFOA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Температура на входе
|
/// Температура на входе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MTIA { get; set; }
|
public float? MTIA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Температура на выходе
|
/// Температура на выходе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MTOA { get; set; }
|
public float? MTOA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ходы насоса №1
|
/// Ходы насоса №1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? SPM1 { get; set; }
|
public float? SPM1 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ходы насоса №2
|
/// Ходы насоса №2
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? SPM2 { get; set; }
|
public float? SPM2 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ходы насоса №3
|
/// Ходы насоса №3
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? SPM3 { get; set; }
|
public float? SPM3 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Общий объем бурового раствора на поверхности
|
/// Общий объем бурового раствора на поверхности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOLACT { get; set; }
|
public float? TVOLACT { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в доливной емкости №1
|
/// Объем бурового раствора в доливной емкости №1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TTVOL1 { get; set; }
|
public float? TTVOL1 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в доливной емкости №2
|
/// Объем бурового раствора в доливной емкости №2
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TTVOL2 { get; set; }
|
public float? TTVOL2 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №1
|
/// Объем бурового раствора в емкости №1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL01 { get; set; }
|
public float? TVOL01 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №2
|
/// Объем бурового раствора в емкости №2
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL02 { get; set; }
|
public float? TVOL02 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №3
|
/// Объем бурового раствора в емкости №3
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL03 { get; set; }
|
public float? TVOL03 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №4
|
/// Объем бурового раствора в емкости №4
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL04 { get; set; }
|
public float? TVOL04 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №5
|
/// Объем бурового раствора в емкости №5
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL05 { get; set; }
|
public float? TVOL05 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №6
|
/// Объем бурового раствора в емкости №6
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL06 { get; set; }
|
public float? TVOL06 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №7
|
/// Объем бурового раствора в емкости №7
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL07 { get; set; }
|
public float? TVOL07 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №8
|
/// Объем бурового раствора в емкости №8
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL08 { get; set; }
|
public float? TVOL08 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №9
|
/// Объем бурового раствора в емкости №9
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL09 { get; set; }
|
public float? TVOL09 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №10
|
/// Объем бурового раствора в емкости №10
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL10 { get; set; }
|
public float? TVOL10 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №11
|
/// Объем бурового раствора в емкости №11
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL11 { get; set; }
|
public float? TVOL11 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №12
|
/// Объем бурового раствора в емкости №12
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL12 { get; set; }
|
public float? TVOL12 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №13
|
/// Объем бурового раствора в емкости №13
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL13 { get; set; }
|
public float? TVOL13 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объем бурового раствора в емкости №14
|
/// Объем бурового раствора в емкости №14
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? TVOL14 { get; set; }
|
public float? TVOL14 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Плотность (удельный вес) бурового раствора на выходе
|
/// Плотность (удельный вес) бурового раствора на выходе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MDOA { get; set; }
|
public float? MDOA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Плотность (удельный вес) бурового раствора на входе
|
/// Плотность (удельный вес) бурового раствора на входе
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? MDIA { get; set; }
|
public float? MDIA { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание метана
|
/// Процентное содержание метана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? METHANE { get; set; }
|
public float? METHANE { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание этана
|
/// Процентное содержание этана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? ETHANE { get; set; }
|
public float? ETHANE { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание пропана
|
/// Процентное содержание пропана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? PROPANE { get; set; }
|
public float? PROPANE { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание бутана
|
/// Процентное содержание бутана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? IBUTANE { get; set; }
|
public float? IBUTANE { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание пентана
|
/// Процентное содержание пентана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? NBUTANE { get; set; }
|
public float? NBUTANE { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание углеводородов
|
/// Процентное содержание углеводородов
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? HydrocarbonPercentage => METHANE + ETHANE + PROPANE + IBUTANE + NBUTANE;
|
public float? HydrocarbonPercentage => METHANE + ETHANE + PROPANE + IBUTANE + NBUTANE;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процентное содержание газов
|
/// Процентное содержание газов
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float? GASA { get; set; }
|
public float? GASA { get; set; }
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data.GTR
|
namespace AsbCloudApp.Data.GTR
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс позволяющий хранить значение неопределенного типа.
|
/// Класс позволяющий хранить значение неопределенного типа.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.GTR
|
namespace AsbCloudApp.Data.GTR
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data;
|
namespace AsbCloudApp.Data;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Интерфейс данных с Id
|
/// Интерфейс данных с Id
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// точка на карте
|
/// точка на карте
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Well related DTO
|
/// Well related DTO
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -8,26 +8,26 @@ namespace AsbCloudApp.Data.Manuals;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ManualDirectoryDto : IId
|
public class ManualDirectoryDto : IId
|
||||||
{
|
{
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название
|
/// Название
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id родительской директории
|
/// Id родительской директории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? IdParent { get; set; }
|
public int? IdParent { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вложенные директории
|
/// Вложенные директории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<ManualDirectoryDto> Children { get; set; } = Enumerable.Empty<ManualDirectoryDto>();
|
public IEnumerable<ManualDirectoryDto> Children { get; set; } = Enumerable.Empty<ManualDirectoryDto>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Хранимые инструкции
|
/// Хранимые инструкции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<ManualDto> Manuals { get; set; } = Enumerable.Empty<ManualDto>();
|
public IEnumerable<ManualDto> Manuals { get; set; } = Enumerable.Empty<ManualDto>();
|
||||||
}
|
}
|
@ -7,31 +7,31 @@ namespace AsbCloudApp.Data.Manuals;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ManualDto : IId
|
public class ManualDto : IId
|
||||||
{
|
{
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название
|
/// Название
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; } = null!;
|
public string Name { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата загрузки
|
/// Дата загрузки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset DateDownload { get; set; }
|
public DateTimeOffset DateDownload { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id автора
|
/// Id автора
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdAuthor { get; set; }
|
public int IdAuthor { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id директории
|
/// Id директории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdDirectory { get; set; }
|
public int IdDirectory { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id категории файла
|
/// Id категории файла
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdCategory { get; set; }
|
public int IdCategory { get; set; }
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Минимальное и максимальное значение
|
/// Минимальное и максимальное значение
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Расширение для класса MinMaxDto
|
/// Расширение для класса MinMaxDto
|
||||||
|
@ -7,11 +7,11 @@ namespace AsbCloudApp.Data;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class NotificationCategoryDto : IId
|
public class NotificationCategoryDto : IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id категории
|
/// Id категории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название категории
|
/// Название категории
|
||||||
|
@ -8,11 +8,11 @@ namespace AsbCloudApp.Data;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class NotificationDto : IId
|
public class NotificationDto : IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id уведомления
|
/// Id уведомления
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id получателя уведомления
|
/// Id получателя уведомления
|
||||||
@ -26,11 +26,11 @@ public class NotificationDto : IId
|
|||||||
[Required]
|
[Required]
|
||||||
public int IdNotificationCategory { get; set; }
|
public int IdNotificationCategory { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Заголовок уведомления
|
/// Заголовок уведомления
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required, StringLength(300, MinimumLength = 1, ErrorMessage = "Заголовок должен мыть не меньше 1-го знака и не больше 300")]
|
[Required, StringLength(300, MinimumLength = 1, ErrorMessage = "Заголовок должен мыть не меньше 1-го знака и не больше 300")]
|
||||||
public string Title { get; set; } = null!;
|
public string Title { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сообщение уведомления
|
/// Сообщение уведомления
|
||||||
@ -44,15 +44,15 @@ public class NotificationDto : IId
|
|||||||
[Required]
|
[Required]
|
||||||
public DateTimeOffset RegistrationDate { get; set; }
|
public DateTimeOffset RegistrationDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата отправки уведомления
|
/// Дата отправки уведомления
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset? SentDate { get; set; }
|
public DateTimeOffset? SentDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата прочтения уведомления
|
/// Дата прочтения уведомления
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset? ReadDate { get; set; }
|
public DateTimeOffset? ReadDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Состояние уведомления
|
/// Состояние уведомления
|
||||||
@ -62,36 +62,36 @@ public class NotificationDto : IId
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public int IdState
|
public int IdState
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (SentDate is not null && ReadDate is not null)
|
if (SentDate is not null && ReadDate is not null)
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
if (SentDate is not null)
|
if (SentDate is not null)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
switch (value)
|
switch (value)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
SentDate = null;
|
SentDate = null;
|
||||||
ReadDate = null;
|
ReadDate = null;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
SentDate = DateTimeOffset.UtcNow;
|
SentDate = DateTimeOffset.UtcNow;
|
||||||
ReadDate = null;
|
ReadDate = null;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SentDate = DateTimeOffset.UtcNow;
|
SentDate = DateTimeOffset.UtcNow;
|
||||||
ReadDate = DateTimeOffset.UtcNow;
|
ReadDate = DateTimeOffset.UtcNow;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id типа доставки уведомления
|
/// Id типа доставки уведомления
|
||||||
@ -100,7 +100,7 @@ public class NotificationDto : IId
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
[Range(0,1)]
|
[Range(0,1)]
|
||||||
public int IdTransportType { get; set; }
|
public int IdTransportType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DTO категории уведомления
|
/// DTO категории уведомления
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
|
@ -8,10 +8,10 @@ namespace AsbCloudApp.Data;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="TDto"></typeparam>
|
/// <typeparam name="TDto"></typeparam>
|
||||||
public class ParserResultDto<TDto> : ValidationResultDto<IEnumerable<ValidationResultDto<TDto>>>
|
public class ParserResultDto<TDto> : ValidationResultDto<IEnumerable<ValidationResultDto<TDto>>>
|
||||||
where TDto : class, IId
|
where TDto : class, IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Объекты полученные из файла
|
/// Объекты полученные из файла
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override IEnumerable<ValidationResultDto<TDto>> Item { get; set; } = Enumerable.Empty<ValidationResultDto<TDto>>();
|
public override IEnumerable<ValidationResultDto<TDto>> Item { get; set; } = Enumerable.Empty<ValidationResultDto<TDto>>();
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DTO объединяющее плановые и фактические значения
|
/// DTO объединяющее плановые и фактические значения
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lines container for Time Vs Depth chart
|
/// Lines container for Time Vs Depth chart
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план противоаварийное вращение
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanAntiCrashRotationDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Минимальные обороты ВСП, об/мин
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 250.0, ErrorMessage = "Минимальные обороты ВСП, об/мин., должно быть в пределах от 0 до 250")]
|
||||||
|
public double TopDriveRpmMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Минимальный расход для запуска оборотов ВСП, л/сек
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Минимальный расход для запуска оборотов ВСП, л/сек., должно быть в пределах от 0 до 100")]
|
||||||
|
public double TopDriveStartMinFlowRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м
|
||||||
|
/// </summary>
|
||||||
|
[Range(1.0, 35.0, ErrorMessage = "Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м., должно быть в пределах от 1 до 35")]
|
||||||
|
public double TopDriveTorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план авто удержание TF
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanAutoHoldTFDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Зенитный угол, градусы
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")]
|
||||||
|
public double ZenithAngle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план демпфер
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanDamperDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// StickSlip
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")]
|
||||||
|
public double StickSlip { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план дрил тест
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка минимальная, т
|
||||||
|
/// </summary>
|
||||||
|
[Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")]
|
||||||
|
public double WeightOnBitMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Количество шагов по нагрузке
|
||||||
|
/// </summary>
|
||||||
|
[Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")]
|
||||||
|
public int WeightOnBitStepsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Минимальные обороты на ВСП, об/мин.
|
||||||
|
/// </summary>
|
||||||
|
[Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")]
|
||||||
|
public int RpmMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Количество шагов оборотов на ВСП, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")]
|
||||||
|
public int RpmStepsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Величина проходки шага, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")]
|
||||||
|
public double LengthStep { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план осцилляция
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanOscillationDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Оптимальный угол осцилляции, градусы
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 6000.0, ErrorMessage = "Оптимальный угол осцилляции, градусы, должно быть в пределах от 0 до 6000")]
|
||||||
|
public double OptimalOscillationAngle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость вправо, об/мин
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")]
|
||||||
|
public double RpmRight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость влево, об/мин
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")]
|
||||||
|
public double RpmLeft { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ограничение момента вправо, кН*м
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMaxRight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ограничение момента влево, кН*м
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMaxLeft { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Режим Авто/Руч
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1, ErrorMessage = "Режим Авто/Руч, должен быть либо 0, либо 1")]
|
||||||
|
public int Mode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план shocktest
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanShockTestDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// StickSlip
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")]
|
||||||
|
public double StickSlip { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whirl
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")]
|
||||||
|
public double Whirl { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Осевые вибрации
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")]
|
||||||
|
public double AxialVibrations { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Комбинированные вибрации
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")]
|
||||||
|
public double CombinedVibrations { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка минимальная, т
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")]
|
||||||
|
public double WeightOnBitMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Минимальные обороты на ВСП, об/мин.
|
||||||
|
/// </summary>
|
||||||
|
[Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")]
|
||||||
|
public double RpmMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план выход статического замера
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Время ожидания выхода сигнала с ТМС, сек.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")]
|
||||||
|
public double SignalWaitingTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план выработка нагрузки
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanLoadCapacityDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Время выработки минимальное, сек
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 800.0, ErrorMessage = "Время выработки минимальное, сек., должно быть в пределах от 0 до 800")]
|
||||||
|
public double TimeLoadCapacityMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления минимальный, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.1, 400.0, ErrorMessage = "Перепад давления минимальный, атм., должно быть в пределах от 0.1 до 400")]
|
||||||
|
public double DifferentialPressureMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка минимальная, т
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.1, 99.0, ErrorMessage = "Нагрузка минимальная, т, должно быть в пределах от 0.1 до 99")]
|
||||||
|
public double WeightOnBitMin { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план определения углов осцилляции
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanOscillationAnglesDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Момент на ВСП, кН*м., Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., Уставка, должно быть в пределах от 0 до 35")]
|
||||||
|
public double TopDriveTorque { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Момент на ВСП, кН*м., Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., Ограничение, должно быть в пределах от 0 до 35")]
|
||||||
|
public double TopDriveTorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты на ВСП, об/мин., Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., Уставка, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Rpm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты на ВСП, об/мин., Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., Ограничение, должно быть в пределах от 0 до 270")]
|
||||||
|
public double RpmMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план позиционирования над забоем
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanPositioningOffTheBottomDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double StopOffTheBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления уставка, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Затяжка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double Tight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Посадка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double SlackingOff { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимый момент, кН*м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость вверх, м/ч.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")]
|
||||||
|
public double RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость вниз, м/ч.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")]
|
||||||
|
public double RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты вверх, об/мин.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты вверх, об/мин., должно быть в пределах от 0 до 270")]
|
||||||
|
public double RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты вниз, об/мин.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")]
|
||||||
|
public double RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход вверх, л/с.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход вниз, л/с.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,207 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план проработка для ротора
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления уставка, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Затяжка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double Tight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Посадка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double SlackingOff { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимый момент, кН*м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1. Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 99, ErrorMessage = "Проработка 1. Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int Reaming1RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming1RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming1RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming1RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming1RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming1FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming1FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming1Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming1StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 99, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int Reaming2RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming2RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming2RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming2RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming2RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming2FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming2FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming2Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming2StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 99, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int Reaming3RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming3RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming3RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming3RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming3RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming3FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming3FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming3Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming3StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
}
|
@ -0,0 +1,209 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план проработка для слайда
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanReamingSlideDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления уставка, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Затяжка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Затяжка, должно быть в пределах от 0 до 20")]
|
||||||
|
public double Tight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Посадка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Посадка, должно быть в пределах от 0 до 20")]
|
||||||
|
public double SlackingOff { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимый момент, кН*м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int Reaming1RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming1RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming1RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming1RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming1RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming1FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming1FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 1, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming1Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming1StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int Reaming2RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming2RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming2RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming2RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming2RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming2FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming2FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 2, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming2Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming2StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Количество повторений, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int? Reaming3RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Скорость, м/ч., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming3RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Скорость, м/ч., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")]
|
||||||
|
public double Reaming3RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Обороты, об/мин., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming3RpmUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Обороты, об/мин., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")]
|
||||||
|
public double Reaming3RpmDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Расход, л/с., Вверх
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming3FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Расход, л/с., Вниз
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")]
|
||||||
|
public double Reaming3FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проработка 3, Интервал проработки, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Reaming3Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double Reaming3StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string? Note { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план записи статического замера
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanRecordingStaticMeasurementDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Время записи замера, сек
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")]
|
||||||
|
public double MeasurementRecordingTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план бурение скважины в роторе
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимая скорость, м/ч
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")]
|
||||||
|
public double RopMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления, атм. Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., уставка, должно быть в пределах от 0 до 60.0")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления, атм. Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")]
|
||||||
|
public double DifferentialPressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка, т. Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., уставка, должно быть в пределах от 0 до 99.0")]
|
||||||
|
public double WeightOnBit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка, т. Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")]
|
||||||
|
public double WeightOnBitMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Момент на ВСП, кН*м. Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")]
|
||||||
|
public double TopDriveTorque { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Момент на ВСП, кН*м. Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")]
|
||||||
|
public double TopDriveTorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты на ВСП, об/мин. Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")]
|
||||||
|
public double Rpm { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обороты на ВСП, об/мин. Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")]
|
||||||
|
public double RpmMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход л/с. Уставка
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход л/с., уставка, должно быть в пределах от 0 до 100.0")]
|
||||||
|
public double FlowRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход л/с. Ограничение
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")]
|
||||||
|
public double FlowRateMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,75 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план бурение скважины в слайде
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимая скорость, м/ч
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")]
|
||||||
|
public double RopMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления уставка, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления ограничение, атм
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка уставка, т
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")]
|
||||||
|
public double WeightOnBit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Нагрузка ограничение, т
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")]
|
||||||
|
public double WeightOnBitMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход уставка л/с
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход ограничение л/с
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRateMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расчётная пружина, градус
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")]
|
||||||
|
public double Spring { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Складывание инструмента, м
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")]
|
||||||
|
public double Buckling { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план выключение насоса
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Продолжительность, сек.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")]
|
||||||
|
public double Duration { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Лимит остаточного давления, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")]
|
||||||
|
public double ResidualPressureLimit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план выход на плановый расход
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanSwitchingToTheModeDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Время выхода буровых насосов на плановый расход, сек.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")]
|
||||||
|
public double RampTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход, л/с
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимое давление, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// РТК план выставление
|
||||||
|
/// </summary>
|
||||||
|
public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Задание TF, град.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 360.0, ErrorMessage = "Задание TF, град., должно быть в пределах от 0 до 360")]
|
||||||
|
public double TFSetpoint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Пружина, град.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")]
|
||||||
|
public double Spring { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимальное давление, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")]
|
||||||
|
public double PressureMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Перепад давления, атм.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")]
|
||||||
|
public double DifferentialPressure { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Затяжка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double Tight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Посадка, т.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")]
|
||||||
|
public double SlackingOff { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Максимально допустимый момент, кН*м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")]
|
||||||
|
public double TorqueMax { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Количество расхаживаний, шт.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 99.0, ErrorMessage = "Количество расхаживаний, шт., должно быть в пределах от 0 до 99")]
|
||||||
|
public int RepetitionsCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость вверх, м/ч.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")]
|
||||||
|
public double RopUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость вниз, м/ч.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")]
|
||||||
|
public double RopDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход вверх, л/с.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRateUp { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расход вниз, л/с.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")]
|
||||||
|
public double FlowRateDown { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Интервал расхаживания, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 30.0, ErrorMessage = "Интервал расхаживания, м., должно быть в пределах от 0 до 30")]
|
||||||
|
public double Interval { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Остановка над забоем, м.
|
||||||
|
/// </summary>
|
||||||
|
[Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")]
|
||||||
|
public double StopPointOffBottom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Примечание
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
|
||||||
|
public string Note { get; set; } = string.Empty;
|
||||||
|
}
|
@ -1,17 +1,22 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.ProcessMaps;
|
namespace AsbCloudApp.Data.ProcessMaps;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public abstract class ProcessMapPlanBaseDto : ChangeLogAbstract, IId, IWellRelated, IValidatableObject
|
public abstract class ProcessMapPlanBaseDto : IId, IWellRelated, IValidatableObject
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id скважины
|
/// Id скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Id записи
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Тип секции
|
/// Тип секции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.ProcessMaps;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// РТК план бурение скважины
|
|
||||||
/// </summary>
|
|
||||||
public class ProcessMapPlanDrillingDto : ProcessMapPlanBaseDto
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Id режима 1-ротор, 2 - слайд
|
|
||||||
/// </summary>
|
|
||||||
[Range(1, 2, ErrorMessage = "Id режима должен быть либо 1-ротор либо 2-слайд")]
|
|
||||||
public int IdMode { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Название режима бурения
|
|
||||||
/// </summary>
|
|
||||||
public string? Mode { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Осевая нагрузка, т план
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Осевая нагрузка, т должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double AxialLoadPlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Осевая нагрузка, т ограничение
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Осевая нагрузка, т должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double AxialLoadLimitMax { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Перепад давления, атм план
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Перепад давления, атм должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double DeltaPressurePlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Перепад давления, атм ограничение
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Перепад давления, атм должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double DeltaPressureLimitMax { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Момент на ВСП, кН*м план
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Момент на ВСП, кН*м должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double TopDriveTorquePlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Момент на ВСП, кН*м ограничение
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Момент на ВСП, кН*м должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double TopDriveTorqueLimitMax { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Обороты на ВСП, об/мин план
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Обороты на ВСП, об/мин должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double TopDriveSpeedPlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Обороты на ВСП, об/мин ограничение
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Обороты на ВСП, об/мин должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double TopDriveSpeedLimitMax { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Расход, л/с план
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Расход, л/с должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double FlowPlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Расход, л/с ограничение
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Расход, л/с должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double FlowLimitMax { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Плановая механическая скорость, м/ч
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Плановая механическая скорость, м/ч должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double RopPlan { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Плановый процент использования АКБ
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 100, ErrorMessage = "Процент использования АКБ должен быть в пределах от 0 до 100")]
|
|
||||||
public double UsageSaub { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Плановый процент использования spin master
|
|
||||||
/// </summary>
|
|
||||||
[Range(0, 100, ErrorMessage = "Процент использования spin master должен быть в пределах от 0 до 100")]
|
|
||||||
public double UsageSpin { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Комментарий
|
|
||||||
/// </summary>
|
|
||||||
public string Comment { get; set; } = string.Empty;
|
|
||||||
}
|
|
@ -1,82 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.ProcessMaps;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// РТК план проработка скважины
|
|
||||||
/// </summary>
|
|
||||||
public class ProcessMapPlanReamDto : ProcessMapPlanBaseDto, IValidatableObject
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Количество повторений
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 100, ErrorMessage = "Количество повторений должно быть в пределах от 0 до 100")]
|
|
||||||
public double Repeats { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Вращение при движении вверх, об/мин
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Количество вращений вверх должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SpinUpward { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Вращение при движении вниз, об/мин
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Количество вращений вниз должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SpinDownward { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Скорость подъёма, м/ч
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Скорость подъёма должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SpeedUpward { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Скорость спуска, м/ч
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Скорость спуска должна быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SpeedDownward { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Уставка зятяжки, т
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SetpointDrag { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Уставка посадки, т
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double SetpointTight { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Давление, атм
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Давление должно быть в пределах от 0 до 99999.9")]
|
|
||||||
public double Pressure { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Момент, кН*м
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
[Range(0, 99999.9, ErrorMessage = "Крутящий момент должен быть в пределах от 0 до 99999.9")]
|
|
||||||
public double Torque { get; set; }
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
|
||||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
||||||
{
|
|
||||||
if (DepthEnd < DepthStart)
|
|
||||||
yield return new ValidationResult(
|
|
||||||
$"{nameof(DepthEnd)}:{DepthEnd:#0.0} меньше {nameof(DepthStart)}:{DepthStart:#0.0}",
|
|
||||||
new[] { nameof(DepthEnd), nameof(DepthStart) });
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||||
|
|
||||||
@ -12,69 +12,69 @@ public class ProcessMapReportDataSaubStatDto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public double DrilledTime { get; set; } = 0;
|
public double DrilledTime { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id секции скважины
|
/// Id секции скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdWellSectionType { get; set; }
|
public int IdWellSectionType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название секции скважины
|
/// Название секции скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string WellSectionTypeName { get; set; } = null!;
|
public string WellSectionTypeName { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина по стволу от, м
|
/// Глубина по стволу от, м
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на начало интервала
|
/// на начало интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double DepthStart { get; set; }
|
public double DepthStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина по стволу до, м
|
/// Глубина по стволу до, м
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на конец интервала
|
/// на конец интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double DepthEnd { get; set; }
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата/ время
|
/// Дата/ время
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на начало интервала
|
/// на начало интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset DateStart { get; set; }
|
public DateTimeOffset DateStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Режим бурения (Ротор/слайд/ручной)
|
/// Режим бурения (Ротор/слайд/ручной)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string DrillingMode { get; set; } = null!;
|
public string DrillingMode { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Проходка, м
|
/// Проходка, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DeltaDepth { get; set; }
|
public double? DeltaDepth { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Перепад давления, атм
|
/// Перепад давления, атм
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportDataSaubStatParamsDto PressureDiff { get; set; } = new();
|
public ProcessMapReportDataSaubStatParamsDto PressureDiff { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Нагрузка, т
|
/// Нагрузка, т
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportDataSaubStatParamsDto AxialLoad { get; set; } = new();
|
public ProcessMapReportDataSaubStatParamsDto AxialLoad { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Момент на ВСП, кНхМ
|
/// Момент на ВСП, кНхМ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportDataSaubStatParamsDto TopDriveTorque { get; set; } = new();
|
public ProcessMapReportDataSaubStatParamsDto TopDriveTorque { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ограничение скорости, м/ч
|
/// Ограничение скорости, м/ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportDataSaubStatParamsDto SpeedLimit { get; set; } = new();
|
public ProcessMapReportDataSaubStatParamsDto SpeedLimit { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обороты ВСП, об/мин
|
/// Обороты ВСП, об/мин
|
||||||
@ -86,8 +86,8 @@ public class ProcessMapReportDataSaubStatDto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportDataSaubStatParamsDto Flow { get; set; } = new();
|
public ProcessMapReportDataSaubStatParamsDto Flow { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Механическая скорость, м/ч
|
/// Механическая скорость, м/ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Параметры РТК
|
/// Параметры РТК
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||||
|
|
||||||
@ -7,92 +7,92 @@ namespace AsbCloudApp.Data.ProcessMaps.Report;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ProcessMapReportWellDrillingDto
|
public class ProcessMapReportWellDrillingDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Идентификатор скважины
|
/// Идентификатор скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id секции скважины
|
/// Id секции скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdWellSectionType { get; set; }
|
public int IdWellSectionType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Название секции скважины
|
/// Название секции скважины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string WellSectionTypeName { get; set; } = null!;
|
public string WellSectionTypeName { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина по стволу от, м
|
/// Глубина по стволу от, м
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на начало интервала
|
/// на начало интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double DepthStart { get; set; }
|
public double DepthStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Глубина по стволу до, м
|
/// Глубина по стволу до, м
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на конец интервала
|
/// на конец интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double DepthEnd { get; set; }
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата/ время
|
/// Дата/ время
|
||||||
/// <para>
|
/// <para>
|
||||||
/// на начало интервала
|
/// на начало интервала
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTimeOffset DateStart { get; set; }
|
public DateTimeOffset DateStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Время мех бурения, ч
|
/// Время мех бурения, ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double MechDrillingHours { get; set; }
|
public double MechDrillingHours { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Режим бурения (Ротор/слайд/ручной)
|
/// Режим бурения (Ротор/слайд/ручной)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string DrillingMode { get; set; } = null!;
|
public string DrillingMode { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Проходка, м
|
/// Проходка, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double? DeltaDepth { get; set; }
|
public double? DeltaDepth { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Перепад давления, атм
|
/// Перепад давления, атм
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new();
|
public ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Нагрузка, т
|
/// Нагрузка, т
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportWellDrillingParamsDto AxialLoad { get; set; } = new();
|
public ProcessMapReportWellDrillingParamsDto AxialLoad { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Момент на ВСП, кНхМ
|
/// Момент на ВСП, кНхМ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportWellDrillingParamsDto TopDriveTorque { get; set; } = new();
|
public ProcessMapReportWellDrillingParamsDto TopDriveTorque { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ограничение скорости, м/ч
|
/// Ограничение скорости, м/ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProcessMapReportWellDrillingParamsDto SpeedLimit { get; set; } = new();
|
public ProcessMapReportWellDrillingParamsDto SpeedLimit { get; set; } = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процент использования системы АПД план, %
|
/// Процент использования системы АПД план, %
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double UsagePlan { get; set; }
|
public double UsagePlan { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Процент использования системы АПД факт, %
|
/// Процент использования системы АПД факт, %
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double UsageFact { get; set; }
|
public double UsageFact { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Механическая скорость, м/ч
|
/// Механическая скорость, м/ч
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Параметры РТК
|
/// Параметры РТК
|
||||||
|
@ -7,64 +7,64 @@ namespace AsbCloudApp.Data.ProcessMaps;
|
|||||||
/// Секция скважины - план
|
/// Секция скважины - план
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class WellSectionPlanDto : ItemInfoDto,
|
public class WellSectionPlanDto : ItemInfoDto,
|
||||||
IId,
|
IId,
|
||||||
IWellRelated,
|
IWellRelated,
|
||||||
IValidatableObject
|
IValidatableObject
|
||||||
{
|
{
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
[Required]
|
[Required]
|
||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Тип секции
|
/// Тип секции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
||||||
[Range(1, int.MaxValue)]
|
[Range(1, int.MaxValue)]
|
||||||
public int IdSectionType { get; set; }
|
public int IdSectionType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Начальная глубина бурения, м
|
/// Начальная глубина бурения, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
||||||
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
||||||
public double DepthStart { get; set; }
|
public double DepthStart { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конечная глубина бурения, м
|
/// Конечная глубина бурения, м
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
||||||
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
||||||
public double DepthEnd { get; set; }
|
public double DepthEnd { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Внешний диаметр
|
/// Внешний диаметр
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
||||||
public double? OuterDiameter { get; set; }
|
public double? OuterDiameter { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Внутренний диаметр
|
/// Внутренний диаметр
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
||||||
public double? InnerDiameter { get; set; }
|
public double? InnerDiameter { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||||
{
|
{
|
||||||
if (!OuterDiameter.HasValue && !InnerDiameter.HasValue)
|
if (!OuterDiameter.HasValue && !InnerDiameter.HasValue)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
if (!OuterDiameter.HasValue)
|
if (!OuterDiameter.HasValue)
|
||||||
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(OuterDiameter) });
|
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(OuterDiameter) });
|
||||||
|
|
||||||
if (!InnerDiameter.HasValue)
|
if (!InnerDiameter.HasValue)
|
||||||
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(InnerDiameter) });
|
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(InnerDiameter) });
|
||||||
|
|
||||||
if (OuterDiameter <= InnerDiameter)
|
if (OuterDiameter <= InnerDiameter)
|
||||||
yield return new ValidationResult("Внешний диаметр не должен быть больше или равен внутреннему",
|
yield return new ValidationResult("Внешний диаметр не должен быть больше или равен внутреннему",
|
||||||
new[] { nameof(OuterDiameter) });
|
new[] { nameof(OuterDiameter) });
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
namespace AsbCloudApp.Data.Progress;
|
namespace AsbCloudApp.Data.Progress;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DTO прогресса
|
/// DTO прогресса
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user