Merge pull request 'Добавление контроллеров РТК-план' (#285) from feature/#34164243-add-process-maps-apis into dev

Reviewed-on: https://test.digitaldrilling.ru:8443/DDrilling/AsbCloudServer/pulls/285
This commit is contained in:
Никита Фролов 2024-07-01 17:12:21 +05:00
commit 79b1795d63
166 changed files with 49505 additions and 605 deletions

View File

@ -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;
}

View File

@ -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; } = string.Empty;
}

View File

@ -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; } = string.Empty;
}

View File

@ -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; } = string.Empty;
}

View File

@ -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; } = string.Empty;
}

View File

@ -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; } = string.Empty;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 double 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; } = string.Empty;
}

View File

@ -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 double 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 double 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 double 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; } = string.Empty;
}

View File

@ -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;
}

View File

@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.ProcessMaps; namespace AsbCloudApp.Data.ProcessMaps.Operations;
/// <summary> /// <summary>
/// РТК план бурение скважины в роторе /// РТК план бурение скважины в роторе
@ -11,13 +11,13 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Максимально допустимая скорость, м/ч /// Максимально допустимая скорость, м/ч
/// </summary> /// </summary>
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")]
public double RopLimitMax { get; set; } public double RopMax { get; set; }
/// <summary> /// <summary>
/// Максимально допустимое давление, атм /// Максимально допустимое давление, атм
/// </summary> /// </summary>
[Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")]
public double PressureLimitMax { get; set; } public double PressureMax { get; set; }
/// <summary> /// <summary>
/// Перепад давления, атм. Уставка /// Перепад давления, атм. Уставка
@ -29,7 +29,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Перепад давления, атм. Ограничение /// Перепад давления, атм. Ограничение
/// </summary> /// </summary>
[Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
/// <summary> /// <summary>
/// Нагрузка, т. Уставка /// Нагрузка, т. Уставка
@ -41,7 +41,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Нагрузка, т. Ограничение /// Нагрузка, т. Ограничение
/// </summary> /// </summary>
[Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
/// <summary> /// <summary>
/// Момент на ВСП, кН*м. Уставка /// Момент на ВСП, кН*м. Уставка
@ -53,19 +53,19 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Момент на ВСП, кН*м. Ограничение /// Момент на ВСП, кН*м. Ограничение
/// </summary> /// </summary>
[Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")]
public double TopDriveTorqueLimit { get; set; } public double TopDriveTorqueMax { get; set; }
/// <summary> /// <summary>
/// Обороты на ВСП, об/мин. Уставка /// Обороты на ВСП, об/мин. Уставка
/// </summary> /// </summary>
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")]
public double RevolutionsPerMinute { get; set; } public double Rpm { get; set; }
/// <summary> /// <summary>
/// Обороты на ВСП, об/мин. Ограничение /// Обороты на ВСП, об/мин. Ограничение
/// </summary> /// </summary>
[Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")]
public double RevolutionsPerMinuteLimitMax { get; set; } public double RpmMax { get; set; }
/// <summary> /// <summary>
/// Расход л/с. Уставка /// Расход л/с. Уставка
@ -77,7 +77,7 @@ public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto
/// Расход л/с. Ограничение /// Расход л/с. Ограничение
/// </summary> /// </summary>
[Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
/// <summary> /// <summary>
/// Примечание /// Примечание

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 override 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) });
}
}

View File

@ -1,75 +0,0 @@
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.ProcessMaps;
/// <summary>
/// РТК план бурение скважины в слайде
/// </summary>
public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto
{
/// <summary>
/// Максимально допустимая скорость, м/ч
/// </summary>
[Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")]
public double RopLimitMax { get; set; }
/// <summary>
/// Максимально допустимое давление, атм
/// </summary>
[Range(0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")]
public double PressureLimitMax { get; set; }
/// <summary>
/// Перепад давления, атм. Уставка
/// </summary>
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм. уставка, должно быть в пределах от 0 до 60.0")]
public double DifferentialPressure { get; set; }
/// <summary>
/// Перепад давления, атм. Ограничение
/// </summary>
[Range(0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")]
public double DifferentialPressureLimitMax { get; set; }
/// <summary>
/// Нагрузка, т. Уставка
/// </summary>
[Range(0, 50.0, ErrorMessage = " Нагрузка, т., уставка, должно быть в пределах от 0 до 50.0")]
public double WeightOnBit { get; set; }
/// <summary>
/// Нагрузка, т. Ограничение
/// </summary>
[Range(0, 50.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 50.0")]
public double WeightOnBitLimitMax { get; set; }
/// <summary>
/// Расход л/с. Уставка
/// </summary>
[Range(0, 100.0, ErrorMessage = "Расход, л/с., уставка, должно быть в пределах от 0 до 50.0")]
public double FlowRate { get; set; }
/// <summary>
/// Расход л/с. Ограничение
/// </summary>
[Range(0, 100.0, ErrorMessage = "Расход, л/с., ограничение, должно быть в пределах от 0 до 100.0")]
public double FlowRateLimitMax { get; set; }
/// <summary>
/// Расчётная пружина, градус
/// </summary>
[Range(0, 9999.9, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999.9")]
public double Spring { get; set; }
/// <summary>
/// Складывание инструмента, м
/// </summary>
[Range(0, 9999.9, ErrorMessage = "Складывание инструмента, м, должно быть в пределах от 0 до 9999.9")]
public double ToolBuckling { get; set; }
/// <summary>
/// Примечание
/// </summary>
[StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")]
public string Note { get; set; } = string.Empty;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,142 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace AsbCloudDb.Migrations
{
/// <inheritdoc />
public partial class Update_Tables_ProcessMapOperationsAndFunctions : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "buckling",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropColumn(
name: "zenit_angle",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.AddColumn<string>(
name: "note",
table: "t_process_map_plan_tf_orientation",
type: "character varying(1024)",
maxLength: 1024,
nullable: false,
defaultValue: "",
comment: "Примечание");
migrationBuilder.AddColumn<string>(
name: "note",
table: "t_process_map_plan_static_measurement_output",
type: "character varying(1024)",
maxLength: 1024,
nullable: false,
defaultValue: "",
comment: "Примечание");
migrationBuilder.AddColumn<double>(
name: "rpm",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Обороты на ВСП уставка, об/мин.");
migrationBuilder.AddColumn<double>(
name: "rpm_max",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Обороты на ВСП ограничение, об/мин.");
migrationBuilder.AddColumn<double>(
name: "top_drive_torque",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Момент на ВСП уставка, кН*м.");
migrationBuilder.AddColumn<double>(
name: "top_drive_torque_max",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Момент на ВСП ограничение, кН*м.");
migrationBuilder.AddColumn<string>(
name: "note",
table: "t_process_map_plan_operation_switching_off_the_pump",
type: "character varying(1024)",
maxLength: 1024,
nullable: false,
defaultValue: "",
comment: "Примечание");
migrationBuilder.AddColumn<string>(
name: "note",
table: "t_process_map_plan_anti_crash_rotation",
type: "character varying(1024)",
maxLength: 1024,
nullable: false,
defaultValue: "",
comment: "Примечание");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "note",
table: "t_process_map_plan_tf_orientation");
migrationBuilder.DropColumn(
name: "note",
table: "t_process_map_plan_static_measurement_output");
migrationBuilder.DropColumn(
name: "rpm",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropColumn(
name: "rpm_max",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropColumn(
name: "top_drive_torque",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropColumn(
name: "top_drive_torque_max",
table: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropColumn(
name: "note",
table: "t_process_map_plan_operation_switching_off_the_pump");
migrationBuilder.DropColumn(
name: "note",
table: "t_process_map_plan_anti_crash_rotation");
migrationBuilder.AddColumn<double>(
name: "buckling",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Складывание, м");
migrationBuilder.AddColumn<double>(
name: "zenit_angle",
table: "t_process_map_plan_rotor_rpm_acceleration",
type: "double precision",
nullable: false,
defaultValue: 0.0,
comment: "Зенитный угол, градусы");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,438 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace AsbCloudDb.Migrations
{
/// <inheritdoc />
public partial class Remove_some_processMapsPlan : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "t_process_map_plan_ream");
migrationBuilder.DropTable(
name: "t_process_map_plan_rotor_lowering_bit");
migrationBuilder.DropTable(
name: "t_process_map_plan_rotor_rpm_acceleration");
migrationBuilder.DropTable(
name: "t_process_map_plan_slide_lowering_bit");
migrationBuilder.DropTable(
name: "t_process_map_plan_updating_noload_parameters");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "t_process_map_plan_ream",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false, comment: "Идентификатор")
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
id_author = table.Column<int>(type: "integer", nullable: false, comment: "Автор"),
id_editor = table.Column<int>(type: "integer", nullable: true, comment: "Редактор"),
id_well = table.Column<int>(type: "integer", nullable: false, comment: "Id скважины"),
id_wellsection_type = table.Column<int>(type: "integer", nullable: false, comment: "Тип секции"),
creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "дата создания"),
depth_end = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"),
depth_start = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"),
id_previous = table.Column<int>(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
id_state = table.Column<int>(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"),
pressure = table.Column<double>(type: "double precision", nullable: false, comment: "Давление, атм"),
repeats = table.Column<double>(type: "double precision", nullable: false, comment: "Количество повторений"),
setpoint_drag = table.Column<double>(type: "double precision", nullable: false, comment: "Уставка зятяжки, т"),
setpoint_tight = table.Column<double>(type: "double precision", nullable: false, comment: "Уставка посадки, т"),
speed_downward = table.Column<double>(type: "double precision", nullable: false, comment: "Скорость спуска, м/ч"),
speed_upward = table.Column<double>(type: "double precision", nullable: false, comment: "Скорость подъёма, м/ч"),
spin_downward = table.Column<double>(type: "double precision", nullable: false, comment: "Вращение при движении вниз, об/мин"),
spin_upward = table.Column<double>(type: "double precision", nullable: false, comment: "Вращение при движении вверх, об/мин"),
torque = table.Column<double>(type: "double precision", nullable: false, comment: "Момент, кН*м")
},
constraints: table =>
{
table.PrimaryKey("PK_t_process_map_plan_ream", x => x.id);
table.ForeignKey(
name: "FK_t_process_map_plan_ream_t_user_id_author",
column: x => x.id_author,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_ream_t_user_id_editor",
column: x => x.id_editor,
principalTable: "t_user",
principalColumn: "id");
table.ForeignKey(
name: "FK_t_process_map_plan_ream_t_well_id_well",
column: x => x.id_well,
principalTable: "t_well",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_ream_t_well_section_type_id_wellsection_~",
column: x => x.id_wellsection_type,
principalTable: "t_well_section_type",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
},
comment: "РТК проработка скважины");
migrationBuilder.CreateTable(
name: "t_process_map_plan_rotor_lowering_bit",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false, comment: "Идентификатор")
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
id_author = table.Column<int>(type: "integer", nullable: false, comment: "Автор"),
id_editor = table.Column<int>(type: "integer", nullable: true, comment: "Редактор"),
id_previous = table.Column<int>(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
id_well = table.Column<int>(type: "integer", nullable: false, comment: "Id скважины"),
id_wellsection_type = table.Column<int>(type: "integer", nullable: false, comment: "Тип секции"),
creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "дата создания"),
depth_end = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"),
depth_start = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"),
differential_pressure = table.Column<double>(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."),
flow_rate_down = table.Column<double>(type: "double precision", nullable: false, comment: "Расход вниз, л/с."),
id_state = table.Column<int>(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
note = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"),
obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"),
pressure_max = table.Column<double>(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."),
rop_down = table.Column<double>(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч."),
rpm_down = table.Column<double>(type: "double precision", nullable: false, comment: "Обороты вниз, об/мин."),
slacking_off = table.Column<double>(type: "double precision", nullable: false, comment: "Посадка, т."),
torque_max = table.Column<double>(type: "double precision", nullable: false, comment: "Максимально допустимый момент, кН*м.")
},
constraints: table =>
{
table.PrimaryKey("PK_t_process_map_plan_rotor_lowering_bit", x => x.id);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_lowering_bit_t_process_map_plan_ro~",
column: x => x.id_previous,
principalTable: "t_process_map_plan_rotor_lowering_bit",
principalColumn: "id");
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_author",
column: x => x.id_author,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_lowering_bit_t_user_id_editor",
column: x => x.id_editor,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_id_well",
column: x => x.id_well,
principalTable: "t_well",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_lowering_bit_t_well_section_type_i~",
column: x => x.id_wellsection_type,
principalTable: "t_well_section_type",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
},
comment: "РТК подход к забою в роторе");
migrationBuilder.CreateTable(
name: "t_process_map_plan_rotor_rpm_acceleration",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false, comment: "Идентификатор")
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
id_author = table.Column<int>(type: "integer", nullable: false, comment: "Автор"),
id_editor = table.Column<int>(type: "integer", nullable: true, comment: "Редактор"),
id_previous = table.Column<int>(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
id_well = table.Column<int>(type: "integer", nullable: false, comment: "Id скважины"),
id_wellsection_type = table.Column<int>(type: "integer", nullable: false, comment: "Тип секции"),
creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "дата создания"),
depth_end = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"),
depth_start = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"),
id_state = table.Column<int>(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
note = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"),
obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"),
rpm = table.Column<double>(type: "double precision", nullable: false, comment: "Обороты на ВСП уставка, об/мин."),
rpm_max = table.Column<double>(type: "double precision", nullable: false, comment: "Обороты на ВСП ограничение, об/мин."),
top_drive_torque = table.Column<double>(type: "double precision", nullable: false, comment: "Момент на ВСП уставка, кН*м."),
top_drive_torque_max = table.Column<double>(type: "double precision", nullable: false, comment: "Момент на ВСП ограничение, кН*м.")
},
constraints: table =>
{
table.PrimaryKey("PK_t_process_map_plan_rotor_rpm_acceleration", x => x.id);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_process_map_pla~",
column: x => x.id_previous,
principalTable: "t_process_map_plan_rotor_rpm_acceleration",
principalColumn: "id");
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_author",
column: x => x.id_author,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_user_id_editor",
column: x => x.id_editor,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_id_well",
column: x => x.id_well,
principalTable: "t_well",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_rotor_rpm_acceleration_t_well_section_ty~",
column: x => x.id_wellsection_type,
principalTable: "t_well_section_type",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
},
comment: "Выход на обороты перед ротором");
migrationBuilder.CreateTable(
name: "t_process_map_plan_slide_lowering_bit",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false, comment: "Идентификатор")
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
id_author = table.Column<int>(type: "integer", nullable: false, comment: "Автор"),
id_editor = table.Column<int>(type: "integer", nullable: true, comment: "Редактор"),
id_previous = table.Column<int>(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
id_well = table.Column<int>(type: "integer", nullable: false, comment: "Id скважины"),
id_wellsection_type = table.Column<int>(type: "integer", nullable: false, comment: "Тип секции"),
creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "дата создания"),
depth_end = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"),
depth_start = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"),
differential_pressure = table.Column<double>(type: "double precision", nullable: false, comment: "Перепад давления уставка, атм."),
flow_rate_down = table.Column<double>(type: "double precision", nullable: false, comment: "Расход вниз, л/с."),
id_state = table.Column<int>(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
note = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"),
obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "дата устаревания"),
pressure_max = table.Column<double>(type: "double precision", nullable: false, comment: "Максимально допустимое давление, атм."),
rop_down = table.Column<double>(type: "double precision", nullable: false, comment: "Скорость вниз, м/ч.")
},
constraints: table =>
{
table.PrimaryKey("PK_t_process_map_plan_slide_lowering_bit", x => x.id);
table.ForeignKey(
name: "FK_t_process_map_plan_slide_lowering_bit_t_process_map_plan_sl~",
column: x => x.id_previous,
principalTable: "t_process_map_plan_slide_lowering_bit",
principalColumn: "id");
table.ForeignKey(
name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_author",
column: x => x.id_author,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_slide_lowering_bit_t_user_id_editor",
column: x => x.id_editor,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_slide_lowering_bit_t_well_id_well",
column: x => x.id_well,
principalTable: "t_well",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_slide_lowering_bit_t_well_section_type_i~",
column: x => x.id_wellsection_type,
principalTable: "t_well_section_type",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
},
comment: "РТК подход к забою в слайде");
migrationBuilder.CreateTable(
name: "t_process_map_plan_updating_noload_parameters",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false, comment: "Идентификатор")
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
id_author = table.Column<int>(type: "integer", nullable: false, comment: "Автор"),
id_editor = table.Column<int>(type: "integer", nullable: true, comment: "Редактор"),
id_previous = table.Column<int>(type: "integer", nullable: true, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
id_well = table.Column<int>(type: "integer", nullable: false, comment: "Id скважины"),
id_wellsection_type = table.Column<int>(type: "integer", nullable: false, comment: "Тип секции"),
creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "дата создания"),
depth_end = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу до, м"),
depth_start = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина по стволу от, м"),
id_decline_socket_column = table.Column<bool>(type: "boolean", nullable: false, comment: "СПУСК ОК Да/Нет"),
id_state = table.Column<int>(type: "integer", nullable: false, comment: "ИД состояния записи: \n0 - актуальная\n1 - замененная\n2 - удаленная"),
note = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "Примечание"),
obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "дата устаревания")
},
constraints: table =>
{
table.PrimaryKey("PK_t_process_map_plan_updating_noload_parameters", x => x.id);
table.ForeignKey(
name: "FK_t_process_map_plan_updating_noload_parameters_t_process_map~",
column: x => x.id_previous,
principalTable: "t_process_map_plan_updating_noload_parameters",
principalColumn: "id");
table.ForeignKey(
name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_aut~",
column: x => x.id_author,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_updating_noload_parameters_t_user_id_edi~",
column: x => x.id_editor,
principalTable: "t_user",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_t_process_map_plan_updating_noload_parameters_t_well_id_well",
column: x => x.id_well,
principalTable: "t_well",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_t_process_map_plan_updating_noload_parameters_t_well_sectio~",
column: x => x.id_wellsection_type,
principalTable: "t_well_section_type",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
},
comment: "Обновление холостого хода");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_ream_id_author",
table: "t_process_map_plan_ream",
column: "id_author");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_ream_id_editor",
table: "t_process_map_plan_ream",
column: "id_editor");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_ream_id_well",
table: "t_process_map_plan_ream",
column: "id_well");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_ream_id_wellsection_type",
table: "t_process_map_plan_ream",
column: "id_wellsection_type");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_lowering_bit_id_author",
table: "t_process_map_plan_rotor_lowering_bit",
column: "id_author");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_lowering_bit_id_editor",
table: "t_process_map_plan_rotor_lowering_bit",
column: "id_editor");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_lowering_bit_id_previous",
table: "t_process_map_plan_rotor_lowering_bit",
column: "id_previous");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_lowering_bit_id_well",
table: "t_process_map_plan_rotor_lowering_bit",
column: "id_well");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_lowering_bit_id_wellsection_type",
table: "t_process_map_plan_rotor_lowering_bit",
column: "id_wellsection_type");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_author",
table: "t_process_map_plan_rotor_rpm_acceleration",
column: "id_author");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_editor",
table: "t_process_map_plan_rotor_rpm_acceleration",
column: "id_editor");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_previous",
table: "t_process_map_plan_rotor_rpm_acceleration",
column: "id_previous");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_well",
table: "t_process_map_plan_rotor_rpm_acceleration",
column: "id_well");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_rotor_rpm_acceleration_id_wellsection_ty~",
table: "t_process_map_plan_rotor_rpm_acceleration",
column: "id_wellsection_type");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_slide_lowering_bit_id_author",
table: "t_process_map_plan_slide_lowering_bit",
column: "id_author");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_slide_lowering_bit_id_editor",
table: "t_process_map_plan_slide_lowering_bit",
column: "id_editor");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_slide_lowering_bit_id_previous",
table: "t_process_map_plan_slide_lowering_bit",
column: "id_previous");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_slide_lowering_bit_id_well",
table: "t_process_map_plan_slide_lowering_bit",
column: "id_well");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_slide_lowering_bit_id_wellsection_type",
table: "t_process_map_plan_slide_lowering_bit",
column: "id_wellsection_type");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_updating_noload_parameters_id_author",
table: "t_process_map_plan_updating_noload_parameters",
column: "id_author");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_updating_noload_parameters_id_editor",
table: "t_process_map_plan_updating_noload_parameters",
column: "id_editor");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_updating_noload_parameters_id_previous",
table: "t_process_map_plan_updating_noload_parameters",
column: "id_previous");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_updating_noload_parameters_id_well",
table: "t_process_map_plan_updating_noload_parameters",
column: "id_well");
migrationBuilder.CreateIndex(
name: "IX_t_process_map_plan_updating_noload_parameters_id_wellsectio~",
table: "t_process_map_plan_updating_noload_parameters",
column: "id_wellsection_type");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,10 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using AsbCloudDb.Model.DailyReports; using AsbCloudDb.Model.DailyReports;
using AsbCloudDb.Model.Manuals; using AsbCloudDb.Model.Manuals;
using AsbCloudDb.Model.ProcessMaps;
using AsbCloudDb.Model.WellSections; using AsbCloudDb.Model.WellSections;
using AsbCloudDb.Model.Trajectory; using AsbCloudDb.Model.Trajectory;
using AsbCloudDb.Model.ProcessMapPlan.Functions;
using AsbCloudDb.Model.ProcessMapPlan.Operations;
namespace AsbCloudDb.Model namespace AsbCloudDb.Model
{ {
@ -15,13 +16,28 @@ namespace AsbCloudDb.Model
public virtual DbSet<Cluster> Clusters => Set<Cluster>(); public virtual DbSet<Cluster> Clusters => Set<Cluster>();
public virtual DbSet<Company> Companies => Set<Company>(); public virtual DbSet<Company> Companies => Set<Company>();
public virtual DbSet<CompanyType> CompaniesTypes => Set<CompanyType>(); public virtual DbSet<CompanyType> CompaniesTypes => Set<CompanyType>();
public virtual DbSet<DailyReport> DailyReports => Set <DailyReport>(); public virtual DbSet<DailyReport> DailyReports => Set<DailyReport>();
public virtual DbSet<Deposit> Deposits => Set<Deposit>(); public virtual DbSet<Deposit> Deposits => Set<Deposit>();
public virtual DbSet<DetectedOperation> DetectedOperations => Set<DetectedOperation>(); public virtual DbSet<DetectedOperation> DetectedOperations => Set<DetectedOperation>();
public virtual DbSet<TrajectoryPlan> TrajectoriesPlan => Set<TrajectoryPlan>(); public virtual DbSet<TrajectoryPlan> TrajectoriesPlan => Set<TrajectoryPlan>();
public virtual DbSet<ProcessMapPlanRotor> ProcessMapPlanRotor => Set<ProcessMapPlanRotor>(); public virtual DbSet<ProcessMapPlanRotor> ProcessMapPlanRotor => Set<ProcessMapPlanRotor>();
public virtual DbSet<ProcessMapPlanSlide> ProcessMapPlanSlide => Set<ProcessMapPlanSlide>(); public virtual DbSet<ProcessMapPlanSlide> ProcessMapPlanSlide => Set<ProcessMapPlanSlide>();
public virtual DbSet<ProcessMapPlanReam> ProcessMapPlanReams => Set<ProcessMapPlanReam>(); public virtual DbSet<ProcessMapPlanReamingRotor> ProcessMapPlanReamingRotor => Set<ProcessMapPlanReamingRotor>();
public virtual DbSet<ProcessMapPlanReamingSlide> ProcessMapPlanReamingSlide => Set<ProcessMapPlanReamingSlide>();
public virtual DbSet<ProcessMapPlanLoadCapacity> ProcessMapPlanLoadCapacity => Set<ProcessMapPlanLoadCapacity>();
public virtual DbSet<ProcessMapPlanRecordingStaticMeasurement> ProcessMapPlanRecordingStaticMeasurement => Set<ProcessMapPlanRecordingStaticMeasurement>();
public virtual DbSet<ProcessMapPlanPositioningOffTheBottom> ProcessMapPlanPositioningOffTheBottom => Set<ProcessMapPlanPositioningOffTheBottom>();
public virtual DbSet<ProcessMapPlanOscillationAngles> ProcessMapPlanOscillationAngles => Set<ProcessMapPlanOscillationAngles>();
public virtual DbSet<ProcessMapPlanTFOrientation> ProcessMapPlanTFOrientation => Set<ProcessMapPlanTFOrientation>();
public virtual DbSet<ProcessMapPlanSwitchingOffThePump> ProcessMapPlanSwitchingOffThePump => Set<ProcessMapPlanSwitchingOffThePump>();
public virtual DbSet<ProcessMapPlanSwitchingToTheMode> ProcessMapPlanSwitchingToTheMode => Set<ProcessMapPlanSwitchingToTheMode>();
public virtual DbSet<ProcessMapPlanDrillTest> ProcessMapPlanDrillTest => Set<ProcessMapPlanDrillTest>();
public virtual DbSet<ProcessMapPlanShockTest> ProcessMapPlanShockTest => Set<ProcessMapPlanShockTest>();
public virtual DbSet<ProcessMapPlanDamper> ProcessMapPlanDamper => Set<ProcessMapPlanDamper>();
public virtual DbSet<ProcessMapPlanAutoHoldTF> ProcessMapPlanAutoHoldTF => Set<ProcessMapPlanAutoHoldTF>();
public virtual DbSet<ProcessMapPlanOscillation> ProcessMapPlanOscillation => Set<ProcessMapPlanOscillation>();
public virtual DbSet<ProcessMapPlanAntiCrashRotation> ProcessMapPlanAntiCrashRotation => Set<ProcessMapPlanAntiCrashRotation>();
public virtual DbSet<ProcessMapPlanStaticMeasurementOutput> ProcessMapPlanStaticMeasurementOutput => Set<ProcessMapPlanStaticMeasurementOutput>();
public virtual DbSet<DrillingProgramPart> DrillingProgramParts => Set<DrillingProgramPart>(); public virtual DbSet<DrillingProgramPart> DrillingProgramParts => Set<DrillingProgramPart>();
public virtual DbSet<FileCategory> FileCategories => Set<FileCategory>(); public virtual DbSet<FileCategory> FileCategories => Set<FileCategory>();
public virtual DbSet<FileInfo> Files => Set<FileInfo>(); public virtual DbSet<FileInfo> Files => Set<FileInfo>();
@ -354,7 +370,7 @@ namespace AsbCloudDb.Model
}); });
modelBuilder.Entity<DetectedOperation>(entity => entity modelBuilder.Entity<DetectedOperation>(entity => entity
.Property(p=>p.ExtraData) .Property(p => p.ExtraData)
.HasJsonConversion()); .HasJsonConversion());
modelBuilder.Entity<TelemetryDataSaubStat>(entity => modelBuilder.Entity<TelemetryDataSaubStat>(entity =>
@ -371,7 +387,8 @@ namespace AsbCloudDb.Model
.HasConstraintName("t_schedule_t_driller_id_driller"); .HasConstraintName("t_schedule_t_driller_id_driller");
}); });
modelBuilder.Entity<SetpointsRequest>(entity => { modelBuilder.Entity<SetpointsRequest>(entity =>
{
entity.Property(e => e.Setpoints) entity.Property(e => e.Setpoints)
.HasJsonConversion(); .HasJsonConversion();
}); });
@ -383,7 +400,7 @@ namespace AsbCloudDb.Model
nameof(WitsItemBase<float>.IdRecord), nameof(WitsItemBase<float>.IdRecord),
nameof(WitsItemBase<float>.IdItem), nameof(WitsItemBase<float>.IdItem),
nameof(WitsItemBase<float>.DateTime)); nameof(WitsItemBase<float>.DateTime));
}); });
modelBuilder.Entity<WitsItemInt>(entity => modelBuilder.Entity<WitsItemInt>(entity =>
{ {
entity.HasKey( entity.HasKey(
@ -453,6 +470,86 @@ namespace AsbCloudDb.Model
.WithMany() .WithMany()
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanReamingRotor>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanReamingSlide>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanLoadCapacity>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanRecordingStaticMeasurement>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanPositioningOffTheBottom>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOscillationAngles>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanTFOrientation>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanSwitchingOffThePump>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanSwitchingToTheMode>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanDrillTest>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanShockTest>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanDamper>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanAutoHoldTF>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOscillation>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanAntiCrashRotation>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanStaticMeasurementOutput>()
.HasOne(p => p.Author)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanRotor>() modelBuilder.Entity<ProcessMapPlanRotor>()
.HasOne(p => p.Editor) .HasOne(p => p.Editor)
.WithMany() .WithMany()
@ -463,6 +560,86 @@ namespace AsbCloudDb.Model
.WithMany() .WithMany()
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanReamingRotor>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanReamingSlide>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanLoadCapacity>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanRecordingStaticMeasurement>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanPositioningOffTheBottom>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOscillationAngles>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanTFOrientation>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanSwitchingOffThePump>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanSwitchingToTheMode>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanDrillTest>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanShockTest>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanDamper>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanAutoHoldTF>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanOscillation>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanAntiCrashRotation>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<ProcessMapPlanStaticMeasurementOutput>()
.HasOne(p => p.Editor)
.WithMany()
.OnDelete(DeleteBehavior.Restrict);
DefaultData.DefaultContextData.Fill(modelBuilder); DefaultData.DefaultContextData.Fill(modelBuilder);
} }

View File

@ -8,9 +8,10 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using AsbCloudDb.Model.DailyReports; using AsbCloudDb.Model.DailyReports;
using AsbCloudDb.Model.Manuals; using AsbCloudDb.Model.Manuals;
using AsbCloudDb.Model.ProcessMaps;
using AsbCloudDb.Model.WellSections; using AsbCloudDb.Model.WellSections;
using AsbCloudDb.Model.Trajectory; using AsbCloudDb.Model.Trajectory;
using AsbCloudDb.Model.ProcessMapPlan.Functions;
using AsbCloudDb.Model.ProcessMapPlan.Operations;
namespace AsbCloudDb.Model namespace AsbCloudDb.Model
{ {
@ -80,7 +81,24 @@ namespace AsbCloudDb.Model
DbSet<WellSectionPlan> WellSectionsPlan { get; } DbSet<WellSectionPlan> WellSectionsPlan { get; }
DbSet<DataSaubStat> DataSaubStat { get; } DbSet<DataSaubStat> DataSaubStat { get; }
DatabaseFacade Database { get; } DatabaseFacade Database { get; }
DbSet<ProcessMapPlanReam> ProcessMapPlanReams { get; } DbSet<ProcessMapPlanRotor> ProcessMapPlanRotor { get; }
DbSet<ProcessMapPlanSlide> ProcessMapPlanSlide { get; }
DbSet<ProcessMapPlanReamingRotor> ProcessMapPlanReamingRotor { get; }
DbSet<ProcessMapPlanReamingSlide> ProcessMapPlanReamingSlide { get; }
DbSet<ProcessMapPlanLoadCapacity> ProcessMapPlanLoadCapacity { get; }
DbSet<ProcessMapPlanRecordingStaticMeasurement> ProcessMapPlanRecordingStaticMeasurement { get; }
DbSet<ProcessMapPlanPositioningOffTheBottom> ProcessMapPlanPositioningOffTheBottom { get; }
DbSet<ProcessMapPlanOscillationAngles> ProcessMapPlanOscillationAngles { get; }
DbSet<ProcessMapPlanTFOrientation> ProcessMapPlanTFOrientation { get; }
DbSet<ProcessMapPlanSwitchingOffThePump> ProcessMapPlanSwitchingOffThePump { get; }
DbSet<ProcessMapPlanSwitchingToTheMode> ProcessMapPlanSwitchingToTheMode { get; }
DbSet<ProcessMapPlanDrillTest> ProcessMapPlanDrillTest { get; }
DbSet<ProcessMapPlanShockTest> ProcessMapPlanShockTest { get; }
DbSet<ProcessMapPlanDamper> ProcessMapPlanDamper { get; }
DbSet<ProcessMapPlanAutoHoldTF> ProcessMapPlanAutoHoldTF { get; }
DbSet<ProcessMapPlanOscillation> ProcessMapPlanOscillation { get; }
DbSet<ProcessMapPlanAntiCrashRotation> ProcessMapPlanAntiCrashRotation { get; }
DbSet<ProcessMapPlanStaticMeasurementOutput> ProcessMapPlanStaticMeasurementOutput { get; }
Task<int> RefreshMaterializedViewAsync(string mwName, CancellationToken token); Task<int> RefreshMaterializedViewAsync(string mwName, CancellationToken token);
Task<int> RefreshMaterializedViewAsync<TEntity>(CancellationToken token) where TEntity : class; Task<int> RefreshMaterializedViewAsync<TEntity>(CancellationToken token) where TEntity : class;

View File

@ -0,0 +1,31 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_anti_crash_rotation"), Comment("Противоаварийное вращение")]
public class ProcessMapPlanAntiCrashRotation : ProcessMapPlanBase
{
[Column("top_drive_rpm_min"), Comment("Минимальные обороты ВСП, об/мин")]
[Range(0.0, 250.0)]
[Required]
public double TopDriveRpmMin { get; set; }
[Column("top_drive_start_min_flow_rate"), Comment("Минимальный расход для запуска оборотов ВСП, л/сек")]
[Range(0.0, 100.0)]
[Required]
public double TopDriveStartMinFlowRate { get; set; }
[Column("top_drive_torque_max"), Comment("Максимально допустимый момент на ВСП при противоаварийном вращении, кН*м")]
[Range(1.0, 35.0)]
[Required]
public double TopDriveTorqueMax { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanAntiCrashRotation? Previous { get; set; }
}

View File

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_auto_hold_tf"), Comment("Автоудержание TF")]
public class ProcessMapPlanAutoHoldTF : ProcessMapPlanBase
{
[Column("zenit_angle"), Comment("Зенитный угол, градусы")]
[Range(0.0, 100.0)]
[Required]
public double ZenithAngle { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanAutoHoldTF? Previous { get; set; }
}

View File

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_functions_damper"), Comment("Демпфер")]
public class ProcessMapPlanDamper : ProcessMapPlanBase
{
[Column("stick_slip"), Comment("StickSlip")]
[Range(0.0, 1000.0)]
[Required]
public double StickSlip { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanDamper? Previous { get; set; }
}

View File

@ -0,0 +1,41 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_drilltest"), Comment("DrillTest")]
public class ProcessMapPlanDrillTest : ProcessMapPlanBase
{
[Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")]
[Range(1.0, 30.0)]
[Required]
public double WeightOnBitMin { get; set; }
[Column("weight_on_bit_steps_count"), Comment("Количество шагов по нагрузке")]
[Range(1, 5)]
[Required]
public int WeightOnBitStepsCount { get; set; }
[Column("rpm_min"), Comment("Минимальные обороты на ВСП, об/мин.")]
[Range(5, 200)]
[Required]
public double RpmMin { get; set; }
[Column("rpm_steps_count"), Comment("Количество шагов оборотов на ВСП, об/мин.")]
[Range(1, 5)]
[Required]
public int RpmStepsCount { get; set; }
[Column("length_step"), Comment("Величина проходки шага, м.")]
[Range(0.1, 2.0)]
[Required]
public double LengthStep { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanDrillTest? Previous { get; set; }
}

View File

@ -0,0 +1,46 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_oscillation"), Comment("Осцилляция")]
public class ProcessMapPlanOscillation : ProcessMapPlanBase
{
[Column("optimal_oscillation_angle"), Comment("Оптимальный угол осцилляции, градусы")]
[Range(0.0, 6000.0)]
[Required]
public double OptimalOscillationAngle { get; set; }
[Column("Rpm_right"), Comment("Скорость вправо, об/мин")]
[Range(0.0, 270.0)]
[Required]
public double RpmRight { get; set; }
[Column("Rpm_left"), Comment("Скорость влево, об/мин")]
[Range(0.0, 270.0)]
[Required]
public double RpmLeft { get; set; }
[Column("torque_max_right"), Comment("Ограничение момента вправо, кН*м")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMaxRight { get; set; }
[Column("torque_max_left"), Comment("Ограничение момента влево, кН*м")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMaxLeft { get; set; }
[Column("mode"), Comment("Режим Авто/Руч")]
[Range(0, 1)]
[Required]
public int Mode { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanOscillation? Previous { get; set; }
}

View File

@ -0,0 +1,46 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_shock_test"), Comment("ShockTest")]
public class ProcessMapPlanShockTest : ProcessMapPlanBase
{
[Column("stick_slip"), Comment("stickSlip")]
[Range(0.0, 1000.0)]
[Required]
public double StickSlip { get; set; }
[Column("whirl"), Comment("Whirl")]
[Range(0.0, 1000.0)]
[Required]
public double Whirl { get; set; }
[Column("axial_vibrations"), Comment("Осевые вибрации")]
[Range(0.0, 1000.0)]
[Required]
public double AxialVibrations { get; set; }
[Column("combined_vibrations"), Comment("Комбинированные вибрации")]
[Range(0.0, 1000.0)]
[Required]
public double CombinedVibrations { get; set; }
[Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")]
[Range(0.0, 30.0)]
[Required]
public double WeightOnBitMin { get; set; }
[Column("rpm_min"), Comment("Минимальные обороты на ВСП, об/мин.")]
[Range(5, 200)]
[Required]
public double RpmMin { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanShockTest? Previous { get; set; }
}

View File

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Functions;
[Table("t_process_map_plan_static_measurement_output"), Comment("Выход статического замера")]
public class ProcessMapPlanStaticMeasurementOutput : ProcessMapPlanBase
{
[Column("signal_waiting_time"), Comment("Время ожидания выхода сигнала с ТМС, сек.")]
[Range(0.0, 1800.0)]
[Required]
public double SignalWaitingTime { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanStaticMeasurementOutput? Previous { get; set; }
}

View File

@ -0,0 +1,31 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_load_capacity"), Comment("РТК выработка нагрузки")]
public class ProcessMapPlanLoadCapacity : ProcessMapPlanBase
{
[Column("time_load_capacity_min"), Comment("Время выработки минимальное, сек")]
[Range(0.0, 800.0)]
[Required]
public double TimeLoadCapacityMin { get; set; }
[Column("differential_pressure_min"), Comment("Перепад давления минимальный, атм")]
[Range(0.1, 400.0)]
[Required]
public double DifferentialPressureMin { get; set; }
[Column("weight_on_bit_min"), Comment("Нагрузка минимальная, т")]
[Range(0.1, 99.0)]
[Required]
public double WeightOnBitMin { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanLoadCapacity? Previous { get; set; }
}

View File

@ -0,0 +1,37 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_operation_oscillation_angels"), Comment("Определение углов осцилляции")]
public class ProcessMapPlanOscillationAngles : ProcessMapPlanBase
{
[Column("top_drive_torque"), Comment("Момент на ВСП, кН*м., Уставка")]
[Range(0.0, 35.0)]
[Required]
public double TopDriveTorque { get; set; }
[Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м., Ограничение")]
[Range(0.0, 35.0)]
[Required]
public double TopDriveTorqueMax { get; set; }
[Column("rpm"), Comment("Обороты на ВСП, об/мин., Уставка")]
[Range(0.0, 270.0)]
[Required]
public double Rpm { get; set; }
[Column("rpm_max"), Comment("Обороты на ВСП, об/мин., Ограничение")]
[Range(0.0, 270.0)]
[Required]
public double RpmMax { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
[Required]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanOscillationAngles? Previous { get; set; }
}

View File

@ -0,0 +1,77 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_positioning_off_the_bottom"), Comment("Позиционирование над забоем")]
public class ProcessMapPlanPositioningOffTheBottom : ProcessMapPlanBase
{
[Column("stop_off_the_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 30.0)]
[Required]
public double StopOffTheBottom { get; set; }
[Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
[Range(0.0, 60.0)]
[Required]
public double DifferentialPressure { get; set; }
[Column("tight"), Comment("Затяжка, т.")]
[Range(0.0, 20.0)]
[Required]
public double Tight { get; set; }
[Column("slacking_off"), Comment("Посадка, т.")]
[Range(0.0, 20.0)]
[Required]
public double SlackingOff { get; set; }
[Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMax { get; set; }
[Column("rop_up"), Comment("Скорость вверх, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double RopUp { get; set; }
[Column("rop_down"), Comment("Скорость вниз, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double RopDown { get; set; }
[Column("rpm_up"), Comment("Обороты вверх, об/мин.")]
[Range(0.0, 270.0)]
[Required]
public double RpmUp { get; set; }
[Column("rpm_down"), Comment("Обороты вниз, об/мин.")]
[Range(0.0, 270.0)]
[Required]
public double RpmDown { get; set; }
[Column("flow_rate_up"), Comment("Расход вверх, л/с.")]
[Range(0.0, 100.0)]
[Required]
public double FlowRateUp { get; set; }
[Column("flow_rate_down"), Comment("Расход вниз, л/с.")]
[Range(0.0, 100.0)]
[Required]
public double FlowRateDown { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
[Required]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanPositioningOffTheBottom? Previous { get; set; }
}

View File

@ -0,0 +1,158 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_operation_reaming_rotor"), Comment("РТК проработка ротор")]
public class ProcessMapPlanReamingRotor : ProcessMapPlanBase
{
[Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
[Range(0.0, 60.0)]
[Required]
public double DifferentialPressure { get; set; }
[Column("tight"), Comment("Затяжка, т.")]
[Range(0.0, 20.0)]
[Required]
public double Tight { get; set; }
[Column("slacking_off"), Comment("Посадка, т.")]
[Range(0.0, 20.0)]
[Required]
public double SlackingOff { get; set; }
[Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMax { get; set; }
[Column("reaming1_repetitions_count"), Comment("Проработка 1. Количество повторений, шт.")]
[Range(0, 99)]
[Required]
public int Reaming1RepetitionsCount { get; set; }
[Column("reaming1_rop_up"), Comment("Проработка 1. Скорость вверх, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double Reaming1RopUp { get; set; }
[Column("reaming1_rop_down"), Comment("Проработка 1, Скорость, м/ч., Вниз")]
[Range(0.0, 999.0)]
[Required]
public double Reaming1RopDown { get; set; }
[Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
[Required]
public double Reaming1RpmUp { get; set; }
[Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
[Required]
public double Reaming1RpmDown { get; set; }
[Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
[Required]
public double Reaming1FlowRateUp { get; set; }
[Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
[Required]
public double Reaming1FlowRateDown { get; set; }
[Column("reaming1_interval"), Comment("Проработка 1, Интервал проработки, м.")]
[Range(0.0, 30.0)]
[Required]
public double Reaming1Interval { get; set; }
[Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
[Required]
public double Reaming1StopPointOffBottom { get; set; }
[Column("reaming2_repetitions_count"), Comment("Проработка 2, Количество повторений, шт.")]
[Range(0, 99)]
public int Reaming2RepetitionsCount { get; set; }
[Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")]
[Range(0.0, 999.0)]
public double Reaming2RopUp { get; set; }
[Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")]
[Range(0.0, 999.0)]
public double Reaming2RopDown { get; set; }
[Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
public double Reaming2RpmUp { get; set; }
[Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
public double Reaming2RpmDown { get; set; }
[Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
public double Reaming2FlowRateUp { get; set; }
[Column("reaming2_flow_rate_down"), Comment("Проработка 2, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
public double Reaming2FlowRateDown { get; set; }
[Column("reaming2_interval"), Comment("Проработка 2, Интервал проработки, м.")]
[Range(0.0, 30.0)]
public double Reaming2Interval { get; set; }
[Column("reaming2_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
public double Reaming2StopPointOffBottom { get; set; }
[Column("reaming3_repetitions_count"), Comment("Проработка 3, Количество повторений, шт.")]
[Range(0, 99)]
public int Reaming3RepetitionsCount { get; set; }
[Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")]
[Range(0.0, 999.0)]
public double Reaming3RopUp { get; set; }
[Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")]
[Range(0.0, 999.0)]
public double Reaming3RopDown { get; set; }
[Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
public double Reaming3RpmUp { get; set; }
[Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
public double Reaming3RpmDown { get; set; }
[Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
public double Reaming3FlowRateUp { get; set; }
[Column("reaming3_flow_rate_down"), Comment("Проработка 3, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
public double Reaming3FlowRateDown { get; set; }
[Column("reaming3_interval"), Comment("Проработка 3, Интервал проработки, м.")]
[Range(0.0, 30.0)]
public double Reaming3Interval { get; set; }
[Column("reaming3_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
public double Reaming3StopPointOffBottom { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanReamingRotor? Previous { get; set; }
}

View File

@ -0,0 +1,158 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_reaming_slide"), Comment("РТК проработка слайд")]
public class ProcessMapPlanReamingSlide : ProcessMapPlanBase
{
[Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
[Range(0.0, 60.0)]
[Required]
public double DifferentialPressure { get; set; }
[Column("tight"), Comment("Затяжка, т.")]
[Range(0.0, 20.0)]
[Required]
public double Tight { get; set; }
[Column("slacking_off"), Comment("Посадка, т.")]
[Range(0.0, 20.0)]
[Required]
public double SlackingOff { get; set; }
[Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMax { get; set; }
[Column("reaming1_repetitions_count"), Comment("Проработка 1. Количество повторений, шт.")]
[Range(0.0, 99.0)]
[Required]
public double Reaming1RepetitionsCount { get; set; }
[Column("reaming1_rop_up"), Comment("Проработка 1. Скорость вверх, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double Reaming1RopUp { get; set; }
[Column("reaming1_rop_down"), Comment("Проработка 1. Скорость вниз, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double Reaming1RopDown { get; set; }
[Column("reaming1_rpm_up"), Comment("Проработка 1, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
[Required]
public double Reaming1RpmUp { get; set; }
[Column("reaming1_rpm_down"), Comment("Проработка 1, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
[Required]
public double Reaming1RpmDown { get; set; }
[Column("reaming1_flow_rate_up"), Comment("Проработка 1, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
[Required]
public double Reaming1FlowRateUp { get; set; }
[Column("reaming1_flow_rate_down"), Comment("Проработка 1, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
[Required]
public double Reaming1FlowRateDown { get; set; }
[Column("reaming1_interval"), Comment("Проработка 1, Интервал проработки, м.")]
[Range(0.0, 30.0)]
[Required]
public double Reaming1Interval { get; set; }
[Column("reaming1_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
[Required]
public double Reaming1StopPointOffBottom { get; set; }
[Column("reaming2_repetitions_count"), Comment("Проработка 2, Количество повторений, шт.")]
[Range(0.0, 99.0)]
public double Reaming2RepetitionsCount { get; set; }
[Column("reaming2_rop_up"), Comment("Проработка 2, Скорость, м/ч., Вверх")]
[Range(0.0, 999.0)]
public double Reaming2RopUp { get; set; }
[Column("reaming2_rop_down"), Comment("Проработка 2, Скорость, м/ч., Вниз")]
[Range(0.0, 999.0)]
public double Reaming2RopDown { get; set; }
[Column("reaming2_rpm_up"), Comment("Проработка 2, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
public double Reaming2RpmUp { get; set; }
[Column("reaming2_rpm_down"), Comment("Проработка 2, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
public double Reaming2RpmDown { get; set; }
[Column("reaming2_flow_rate_up"), Comment("Проработка 2, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
public double Reaming2FlowRateUp { get; set; }
[Column("reaming2_flow_rate_down"), Comment("Проработка 2, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
public double Reaming2FlowRateDown { get; set; }
[Column("reaming2_interval"), Comment("Проработка 2, Интервал проработки, м.")]
[Range(0.0, 30.0)]
public double Reaming2Interval { get; set; }
[Column("reaming2_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
public double Reaming2StopPointOffBottom { get; set; }
[Column("reaming3_repetitions_count"), Comment("Проработка 3, Количество повторений, шт.")]
[Range(0.0, 99.0)]
public double Reaming3RepetitionsCount { get; set; }
[Column("reaming3_rop_up"), Comment("Проработка 3, Скорость, м/ч., Вверх")]
[Range(0.0, 999.0)]
public double Reaming3RopUp { get; set; }
[Column("reaming3_rop_down"), Comment("Проработка 3, Скорость, м/ч., Вниз")]
[Range(0.0, 999.0)]
public double Reaming3RopDown { get; set; }
[Column("reaming3_rpm_up"), Comment("Проработка 3, Обороты, об/мин., Вверх")]
[Range(0.0, 270.0)]
public double Reaming3RpmUp { get; set; }
[Column("reaming3_rpm_down"), Comment("Проработка 3, Обороты, об/мин., Вниз")]
[Range(0.0, 270.0)]
public double Reaming3RpmDown { get; set; }
[Column("reaming3_flow_rate_up"), Comment("Проработка 3, Расход, л/с., Вверх")]
[Range(0.0, 100.0)]
public double Reaming3FlowRateUp { get; set; }
[Column("reaming3_flow_rate_down"), Comment("Проработка 3, Расход, л/с., Вниз")]
[Range(0.0, 100.0)]
public double Reaming3FlowRateDown { get; set; }
[Column("reaming3_interval"), Comment("Проработка 3, Интервал проработки, м.")]
[Range(0.0, 30.0)]
public double Reaming3Interval { get; set; }
[Column("reaming3_stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
public double Reaming3StopPointOffBottom { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanReamingSlide? Previous { get; set; }
}

View File

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_recording_static_measurement"), Comment("Запись статического замера")]
public class ProcessMapPlanRecordingStaticMeasurement : ProcessMapPlanBase
{
[Column("measurement_recording_time"), Comment("Время записи замера, сек")]
[Range(0.0, 1800.0)]
[Required]
public double MeasurementRecordingTime { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanRecordingStaticMeasurement? Previous { get; set; }
}

View File

@ -3,74 +3,75 @@ using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan; using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMaps; namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")] [Table("t_process_map_plan_rotor"), Comment("РТК план бурение ротор")]
public class ProcessMapPlanRotor : ProcessMapPlanBase public class ProcessMapPlanRotor : ProcessMapPlanBase
{ {
[Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")] [Column("rop_max"), Comment("Максимально допустимая скорость, м/ч")]
[Range(0, 800.0)] [Range(0, 800.0)]
[Required]
public double RopLimitMax { get; set; }
[Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")]
[Range(0.0, 400.0)]
[Required] [Required]
public double PressureLimitMax { get; set; } public double RopMax { get; set; }
[Column("pressure_max"), Comment("Максимально допустимое давление, атм")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")] [Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")]
[Range(0.0, 60.0)] [Range(0.0, 60.0)]
[Required] [Required]
public double DifferentialPressure { get; set; } public double DifferentialPressure { get; set; }
[Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")] [Column("differential_pressure_max"), Comment("Перепад давления, атм. Ограничение")]
[Range(0.0, 60.0)] [Range(0.0, 60.0)]
[Required] [Required]
public double DifferentialPressureLimitMax { get; set; } public double DifferentialPressureMax { get; set; }
[Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")] [Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")]
[Range(0.0, 99.0)] [Range(0.0, 99.0)]
[Required] [Required]
public double WeightOnBit { get; set; } public double WeightOnBit { get; set; }
[Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")] [Column("weight_on_bit_max"), Comment("Нагрузка, т. Ограничение")]
[Range(0.0, 99.0)] [Range(0.0, 99.0)]
[Required] [Required]
public double WeightOnBitLimitMax { get; set; } public double WeightOnBitMax { get; set; }
[Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")] [Column("top_drive_torque"), Comment("Момент на ВСП, кН*м. Уставка")]
[Range(0.0, 35.0)] [Range(0.0, 35.0)]
[Required] [Required]
public double TopDriveTorque { get; set; } public double TopDriveTorque { get; set; }
[Column("top_drive_torque_limit_max"), Comment("Момент на ВСП, кН*м. Ограничение")] [Column("top_drive_torque_max"), Comment("Момент на ВСП, кН*м. Ограничение")]
[Range(0.0, 35.0)] [Range(0.0, 35.0)]
[Required] [Required]
public double TopDriveTorqueLimit { get; set; } public double TopDriveTorqueMax { get; set; }
[Column("revolution_per_minute"), Comment("Обороты на ВСП, об/мин. Уставка")] [Column("rpm"), Comment("Обороты на ВСП, об/мин. Уставка")]
[Range(0.0, 270.0)] [Range(0.0, 270.0)]
[Required] [Required]
public double RevolutionsPerMinute { get; set; } public double Rpm { get; set; }
[Column("revolutions_per_minute_limit_max"), Comment("Обороты на ВСП, об/мин. Ограничение")] [Column("rpm_max"), Comment("Обороты на ВСП, об/мин. Ограничение")]
[Range(0.0, 270.0)] [Range(0.0, 270.0)]
[Required] [Required]
public double RevolutionsPerMinuteLimitMax { get; set; } public double RpmMax { get; set; }
[Column("flow_rate"), Comment("Расход л/с. Уставка")] [Column("flow_rate"), Comment("Расход л/с. Уставка")]
[Range(0.0, 100.0)] [Range(0.0, 100.0)]
[Required] [Required]
public double FlowRate { get; set; } public double FlowRate { get; set; }
[Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")] [Column("flow_rate_max"), Comment("Расход л/с. Ограничение")]
[Range(0.0, 100.0)] [Range(0.0, 100.0)]
[Required] [Required]
public double FlowRateLimitMax { get; set; } public double FlowRateMax { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)] [Column("note"), Comment("Примечание"), StringLength(1024)]
[Required]
public string Note { get; set; } = string.Empty; public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))] [ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanRotor? Previous { get; set; } public virtual ProcessMapPlanRotor? Previous { get; set; }
} }

View File

@ -0,0 +1,66 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")]
public class ProcessMapPlanSlide : ProcessMapPlanBase
{
[Column("rop_max"), Comment("Максимально допустимая скорость, м/ч.")]
[Range(0, 800)]
[Required]
public double RopMax { get; set; }
[Column("pressure_max"), Comment("Максимально допустимое давление, атм.")]
[Range(0, 400)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления уставка, атм.")]
[Range(0, 60)]
[Required]
public double DifferentialPressure { get; set; }
[Column("differential_pressure_max"), Comment("Перепад давления ограничение, атм.")]
[Range(0, 60)]
[Required]
public double DifferentialPressureMax { get; set; }
[Column("weight_on_bit"), Comment("Нагрузка уставка, т.")]
[Range(0, 99)]
[Required]
public double WeightOnBit { get; set; }
[Column("weight_on_bit_max"), Comment("Нагрузка ограничение, т.")]
[Range(0, 99)]
[Required]
public double WeightOnBitMax { get; set; }
[Column("flow_rate"), Comment("Расход уставка, л/с.")]
[Range(0, 100)]
[Required]
public double FlowRate { get; set; }
[Column("flow_rate_max"), Comment("Расход ограничение, л/с.")]
[Range(0, 100)]
[Required]
public double FlowRateMax { get; set; }
[Column("spring"), Comment("Расчётная пружина, градус")]
[Range(0, 9999)]
[Required]
public double Spring { get; set; }
[Column("buckling"), Comment("Складывание инструмента, м.")]
[Range(0, 9999)]
[Required]
public double Buckling { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanSlide? Previous { get; set; }
}

View File

@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_operation_switching_off_the_pump"), Comment("Выключение насоса")]
public class ProcessMapPlanSwitchingOffThePump : ProcessMapPlanBase
{
[Column("duration"), Comment("Продолжительность, сек.")]
[Range(0.0, 1800.0)]
[Required]
public double Duration { get; set; }
[Column("residual_pressure_limit"), Comment("Лимит остаточного давления, атм.")]
[Range(0.0, 100.0)]
public double ResidualPressureLimit { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanSwitchingOffThePump? Previous { get; set; }
}

View File

@ -0,0 +1,32 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_switching_to_the_mode"), Comment("Выход на плановый расход")]
public class ProcessMapPlanSwitchingToTheMode : ProcessMapPlanBase
{
[Column("ramp_time"), Comment("Время выхода буровых насосов на плановый расход, сек.")]
[Range(0.0, 3600.0)]
[Required]
public double RampTime { get; set; }
[Column("flow_rate"), Comment("Расход, л/с")]
[Range(0.0, 100.0)]
[Required]
public double FlowRate { get; set; }
[Column("pressure_limit"), Comment("Максимально допустимое давление, атм.")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
[Required]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanSwitchingToTheMode? Previous { get; set; }
}

View File

@ -0,0 +1,86 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMapPlan.Operations;
[Table("t_process_map_plan_tf_orientation"), Comment("Выставление")]
public class ProcessMapPlanTFOrientation : ProcessMapPlanBase
{
[Column("tf_setpoint"), Comment("Задание TF, град.")]
[Range(0.0, 360.0)]
[Required]
public double TFSetpoint { get; set; }
[Column("spring"), Comment("Пружина, град.")]
[Range(0.0, 10000.0)]
[Required]
public double Spring { get; set; }
[Column("pressure_max"), Comment("Максимальное давление, атм.")]
[Range(0.0, 400.0)]
[Required]
public double PressureMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления, атм.")]
[Range(0.0, 60.0)]
[Required]
public double DifferentialPressure { get; set; }
[Column("tight"), Comment("Затяжка, т.")]
[Range(0.0, 20.0)]
[Required]
public double Tight { get; set; }
[Column("slacking_off"), Comment("Посадка, т.")]
[Range(0.0, 20.0)]
[Required]
public double SlackingOff { get; set; }
[Column("torque_max"), Comment("Максимально допустимый момент, кН*м.")]
[Range(0.0, 35.0)]
[Required]
public double TorqueMax { get; set; }
[Column("repetitions_count"), Comment("Количество расхаживаний, шт.")]
[Range(0.0, 99.0)]
[Required]
public int RepetitionsCount { get; set; }
[Column("rop_up"), Comment("Скорость вверх, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double RopUp { get; set; }
[Column("rop_down"), Comment("Скорость вниз, м/ч.")]
[Range(0.0, 999.0)]
[Required]
public double RopDown { get; set; }
[Column("flow_rate_up"), Comment("Расход вверх, л/с.")]
[Range(0.0, 100.0)]
[Required]
public double FlowRateUp { get; set; }
[Column("flow_rate_down"), Comment("Расход вниз, л/с.")]
[Range(0.0, 100.0)]
[Required]
public double FlowRateDown { get; set; }
[Column("interval"), Comment("Интервал расхаживания, м.")]
[Range(0.0, 30.0)]
[Required]
public double Interval { get; set; }
[Column("stop_point_off_bottom"), Comment("Остановка над забоем, м.")]
[Range(0.0, 10.0)]
[Required]
public double StopPointOffBottom { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanTFOrientation? Previous { get; set; }
}

View File

@ -1,36 +0,0 @@
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMaps;
[Table("t_process_map_plan_ream"), Comment("РТК проработка скважины")]
public class ProcessMapPlanReam : ProcessMapPlanBase
{
[Column("repeats"), Comment("Количество повторений")]
public double Repeats { get; set; }
[Column("spin_upward"), Comment("Вращение при движении вверх, об/мин")]
public double SpinUpward { get; set; }
[Column("spin_downward"), Comment("Вращение при движении вниз, об/мин")]
public double SpinDownward { get; set; }
[Column("speed_upward"), Comment("Скорость подъёма, м/ч")]
public double SpeedUpward { get; set; }
[Column("speed_downward"), Comment("Скорость спуска, м/ч")]
public double SpeedDownward { get; set; }
[Column("setpoint_drag"), Comment("Уставка зятяжки, т")]
public double SetpointDrag { get; set; }
[Column("setpoint_tight"), Comment("Уставка посадки, т")]
public double SetpointTight { get; set; }
[Column("pressure"), Comment("Давление, атм")]
public double Pressure { get; set; }
[Column("torque"), Comment("Момент, кН*м")]
public double Torque { get; set; }
}

View File

@ -1,66 +0,0 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AsbCloudDb.Model.ProcessMapPlan;
using Microsoft.EntityFrameworkCore;
namespace AsbCloudDb.Model.ProcessMaps;
[Table("t_process_map_plan_slide"), Comment("РТК план бурение слайд")]
public class ProcessMapPlanSlide : ProcessMapPlanBase
{
[Column("rop_limit_max"), Comment("Максимально допустимая скорость, м/ч")]
[Range(0, 800.0)]
[Required]
public double RopLimitMax { get; set; }
[Column("pressure_limit_max"), Comment("Максимально допустимое давление, атм")]
[Range(0, 400.0)]
[Required]
public double PressureLimitMax { get; set; }
[Column("differential_pressure"), Comment("Перепад давления, атм. Уставка")]
[Range(0, 60.0)]
[Required]
public double DifferentialPressure { get; set; }
[Column("differential_pressure_limit_max"), Comment("Перепад давления, атм. Ограничение")]
[Range(0, 60.0)]
[Required]
public double DifferentialPressureLimitMax { get; set; }
[Column("weight_on_bit"), Comment("Нагрузка, т. Уставка")]
[Range(0, 50.0)]
[Required]
public double WeightOnBit { get; set; }
[Column("weight_on_bit_limit_max"), Comment("Нагрузка, т. Ограничение")]
[Range(0, 50.0)]
[Required]
public double WeightOnBitLimitMax { get; set; }
[Column("flow_rate"), Comment("Расход л/с. Уставка")]
[Range(0, 100.0)]
[Required]
public double FlowRate { get; set; }
[Column("flow_rate_limit_max"), Comment("Расход л/с. Ограничение")]
[Range(0, 100.0)]
[Required]
public double FlowRateLimitMax { get; set; }
[Column("spring"), Comment("Расчётная пружина, градус")]
[Range(0, 9999.9)]
[Required]
public double Spring { get; set; }
[Column("tool_buckling"), Comment("Складывание инструмента, м")]
[Range(0, 9999.9)]
[Required]
public double ToolBuckling { get; set; }
[Column("note"), Comment("Примечание"), StringLength(1024)]
public string Note { get; set; } = string.Empty;
[ForeignKey(nameof(IdPrevious))]
public virtual ProcessMapPlanSlide? Previous { get; set; }
}

View File

@ -14,9 +14,24 @@
<None Remove="CommonLibs\Readme.md" /> <None Remove="CommonLibs\Readme.md" />
<None Remove="Services\DailyReport\DailyReportTemplate.xlsx" /> <None Remove="Services\DailyReport\DailyReportTemplate.xlsx" />
<None Remove="Services\DrillTestReport\DrillTestReportTemplate.xlsx" /> <None Remove="Services\DrillTestReport\DrillTestReportTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanReamTemplate.xlsx" /> <None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanAntiCrashRotationTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanAutoHoldTFTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanDamperTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanDrillTestTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanLoadCapacityTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanOscillationAnglesTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanOscillationTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanPositioningOffTheBottomTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanReamingRotorTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanReamingSlideTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanRotorTemplate.xlsx" /> <None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanRotorTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanShockTestTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanSlideTemplate.xlsx" /> <None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanSlideTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanStaticMeasurementOutputTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanSwitchingOffThePumpTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanSwitchingToTheModeTemplate.xlsx" />
<None Remove="Services\ProcessMapPlan\Templates\ProcessMapPlanTFOrientationTemplate.xlsx" />
<None Remove="Services\ProcessMaps\Report\ProcessMapReportDataSaubStatTemplate.xlsx" /> <None Remove="Services\ProcessMaps\Report\ProcessMapReportDataSaubStatTemplate.xlsx" />
<None Remove="Services\Trajectory\FactTrajectoryTemplate.xlsx" /> <None Remove="Services\Trajectory\FactTrajectoryTemplate.xlsx" />
<None Remove="Services\Trajectory\NnbTrajectoryTemplate.xlsx" /> <None Remove="Services\Trajectory\NnbTrajectoryTemplate.xlsx" />
@ -40,9 +55,24 @@
<EmbeddedResource Include="Services\DetectOperations\DetectOperations.xlsx" /> <EmbeddedResource Include="Services\DetectOperations\DetectOperations.xlsx" />
<EmbeddedResource Include="Services\DailyReport\DailyReportTemplate.xlsx" /> <EmbeddedResource Include="Services\DailyReport\DailyReportTemplate.xlsx" />
<EmbeddedResource Include="Services\DrillTestReport\DrillTestReportTemplate.xlsx" /> <EmbeddedResource Include="Services\DrillTestReport\DrillTestReportTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanReamTemplate.xlsx" /> <EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanAntiCrashRotationTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanAutoHoldTFTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanDamperTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanDrillTestTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanLoadCapacityTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanOscillationAnglesTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanOscillationTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanPositioningOffTheBottomTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanReamingRotorTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanReamingSlideTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanRotorTemplate.xlsx" /> <EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanRotorTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanShockTestTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanSlideTemplate.xlsx" /> <EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanSlideTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanStaticMeasurementOutputTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanSwitchingOffThePumpTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanSwitchingToTheModeTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMapPlan\Templates\ProcessMapPlanTFOrientationTemplate.xlsx" />
<EmbeddedResource Include="Services\ProcessMaps\Report\ProcessMapReportDataSaubStatTemplate.xlsx" /> <EmbeddedResource Include="Services\ProcessMaps\Report\ProcessMapReportDataSaubStatTemplate.xlsx" />
<EmbeddedResource Include="Services\Trajectory\Templates\TrajectoryFactNnbTemplate.xlsx" /> <EmbeddedResource Include="Services\Trajectory\Templates\TrajectoryFactNnbTemplate.xlsx" />
<EmbeddedResource Include="Services\Trajectory\Templates\TrajectoryFactManualTemplate.xlsx" /> <EmbeddedResource Include="Services\Trajectory\Templates\TrajectoryFactManualTemplate.xlsx" />

View File

@ -4,6 +4,8 @@ using AsbCloudApp.Data.DetectedOperation;
using AsbCloudApp.Data.DrillTestReport; using AsbCloudApp.Data.DrillTestReport;
using AsbCloudApp.Data.Manuals; using AsbCloudApp.Data.Manuals;
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Data.SAUB; using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Data.Subsystems; using AsbCloudApp.Data.Subsystems;
using AsbCloudApp.Data.Trajectory; using AsbCloudApp.Data.Trajectory;
@ -17,7 +19,8 @@ using AsbCloudDb.Model;
using AsbCloudDb.Model.DailyReports.Blocks.TimeBalance; using AsbCloudDb.Model.DailyReports.Blocks.TimeBalance;
using AsbCloudDb.Model.Manuals; using AsbCloudDb.Model.Manuals;
using AsbCloudDb.Model.ProcessMapPlan; using AsbCloudDb.Model.ProcessMapPlan;
using AsbCloudDb.Model.ProcessMaps; using AsbCloudDb.Model.ProcessMapPlan.Functions;
using AsbCloudDb.Model.ProcessMapPlan.Operations;
using AsbCloudDb.Model.Trajectory; using AsbCloudDb.Model.Trajectory;
using AsbCloudDb.Model.WellSections; using AsbCloudDb.Model.WellSections;
using AsbCloudInfrastructure.Background; using AsbCloudInfrastructure.Background;
@ -145,6 +148,118 @@ namespace AsbCloudInfrastructure
{ {
Item = src.Adapt<ProcessMapPlanSlideDto>() Item = src.Adapt<ProcessMapPlanSlideDto>()
}); });
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanReamingRotorDto>>.NewConfig()
.Include<ProcessMapPlanReamingRotor, ChangeLogDto<ProcessMapPlanReamingRotorDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanReamingRotorDto>()
{
Item = src.Adapt<ProcessMapPlanReamingRotorDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanReamingSlideDto>>.NewConfig()
.Include<ProcessMapPlanReamingSlide, ChangeLogDto<ProcessMapPlanReamingSlideDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanReamingSlideDto>()
{
Item = src.Adapt<ProcessMapPlanReamingSlideDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanLoadCapacityDto>>.NewConfig()
.Include<ProcessMapPlanLoadCapacity, ChangeLogDto<ProcessMapPlanLoadCapacityDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanLoadCapacityDto>()
{
Item = src.Adapt<ProcessMapPlanLoadCapacityDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanRecordingStaticMeasurementDto>>.NewConfig()
.Include<ProcessMapPlanRecordingStaticMeasurement, ChangeLogDto<ProcessMapPlanRecordingStaticMeasurementDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanRecordingStaticMeasurementDto>()
{
Item = src.Adapt<ProcessMapPlanRecordingStaticMeasurementDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanPositioningOffTheBottomDto>>.NewConfig()
.Include<ProcessMapPlanPositioningOffTheBottom, ChangeLogDto<ProcessMapPlanPositioningOffTheBottomDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanPositioningOffTheBottomDto>()
{
Item = src.Adapt<ProcessMapPlanPositioningOffTheBottomDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanOscillationAnglesDto>>.NewConfig()
.Include<ProcessMapPlanOscillationAngles, ChangeLogDto<ProcessMapPlanOscillationAnglesDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanOscillationAnglesDto>()
{
Item = src.Adapt<ProcessMapPlanOscillationAnglesDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanTFOrientationDto>>.NewConfig()
.Include<ProcessMapPlanTFOrientation, ChangeLogDto<ProcessMapPlanTFOrientationDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanTFOrientationDto>()
{
Item = src.Adapt<ProcessMapPlanTFOrientationDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanSwitchingOffThePumpDto>>.NewConfig()
.Include<ProcessMapPlanSwitchingOffThePump, ChangeLogDto<ProcessMapPlanSwitchingOffThePumpDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanSwitchingOffThePumpDto>()
{
Item = src.Adapt<ProcessMapPlanSwitchingOffThePumpDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanSwitchingToTheModeDto>>.NewConfig()
.Include<ProcessMapPlanSwitchingToTheMode, ChangeLogDto<ProcessMapPlanSwitchingToTheModeDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanSwitchingToTheModeDto>()
{
Item = src.Adapt<ProcessMapPlanSwitchingToTheModeDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanDrillTestDto>>.NewConfig()
.Include<ProcessMapPlanSwitchingToTheMode, ChangeLogDto<ProcessMapPlanDrillTestDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanDrillTestDto>()
{
Item = src.Adapt<ProcessMapPlanDrillTestDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanShockTestDto>>.NewConfig()
.Include<ProcessMapPlanSwitchingToTheMode, ChangeLogDto<ProcessMapPlanShockTestDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanShockTestDto>()
{
Item = src.Adapt<ProcessMapPlanShockTestDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanDamperDto>>.NewConfig()
.Include<ProcessMapPlanDamper, ChangeLogDto<ProcessMapPlanDamperDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanDamperDto>()
{
Item = src.Adapt<ProcessMapPlanDamperDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanAutoHoldTFDto>>.NewConfig()
.Include<ProcessMapPlanAutoHoldTF, ChangeLogDto<ProcessMapPlanAutoHoldTFDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanAutoHoldTFDto>()
{
Item = src.Adapt<ProcessMapPlanAutoHoldTFDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanOscillationDto>>.NewConfig()
.Include<ProcessMapPlanOscillation, ChangeLogDto<ProcessMapPlanOscillationDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanOscillationDto>()
{
Item = src.Adapt<ProcessMapPlanOscillationDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanAntiCrashRotationDto>>.NewConfig()
.Include<ProcessMapPlanAntiCrashRotation, ChangeLogDto<ProcessMapPlanAntiCrashRotationDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanAntiCrashRotationDto>()
{
Item = src.Adapt<ProcessMapPlanAntiCrashRotationDto>()
});
TypeAdapterConfig<ChangeLogAbstract, ChangeLogDto<ProcessMapPlanStaticMeasurementOutputDto>>.NewConfig()
.Include<ProcessMapPlanStaticMeasurementOutput, ChangeLogDto<ProcessMapPlanStaticMeasurementOutputDto>>()
.Map(dest => dest, src => new ChangeLogDto<ProcessMapPlanStaticMeasurementOutputDto>()
{
Item = src.Adapt<ProcessMapPlanStaticMeasurementOutputDto>()
});
} }
public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration) public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration)
@ -211,8 +326,68 @@ namespace AsbCloudInfrastructure
ProcessMapPlanBaseRepository<ProcessMapPlanSlide, ProcessMapPlanSlideDto>>(); ProcessMapPlanBaseRepository<ProcessMapPlanSlide, ProcessMapPlanSlideDto>>();
services.AddTransient< services.AddTransient<
IChangeLogRepository<ProcessMapPlanReamDto, ProcessMapPlanBaseRequestWithWell>, IChangeLogRepository<ProcessMapPlanReamingRotorDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanReam, ProcessMapPlanReamDto>>(); ProcessMapPlanBaseRepository<ProcessMapPlanReamingRotor, ProcessMapPlanReamingRotorDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanReamingSlideDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanReamingSlide, ProcessMapPlanReamingSlideDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanLoadCapacityDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanLoadCapacity, ProcessMapPlanLoadCapacityDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanRecordingStaticMeasurementDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanRecordingStaticMeasurement, ProcessMapPlanRecordingStaticMeasurementDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanPositioningOffTheBottomDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanPositioningOffTheBottom, ProcessMapPlanPositioningOffTheBottomDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanOscillationAnglesDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanOscillationAngles, ProcessMapPlanOscillationAnglesDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanTFOrientationDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanTFOrientation, ProcessMapPlanTFOrientationDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanSwitchingOffThePumpDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanSwitchingOffThePump, ProcessMapPlanSwitchingOffThePumpDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanSwitchingToTheModeDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanSwitchingToTheMode, ProcessMapPlanSwitchingToTheModeDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanDrillTestDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanDrillTest, ProcessMapPlanDrillTestDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanShockTestDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanShockTest, ProcessMapPlanShockTestDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanDamperDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanDamper, ProcessMapPlanDamperDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanAutoHoldTFDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanAutoHoldTF, ProcessMapPlanAutoHoldTFDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanOscillationDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanOscillation, ProcessMapPlanOscillationDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanAntiCrashRotationDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanAntiCrashRotation, ProcessMapPlanAntiCrashRotationDto>>();
services.AddTransient<
IChangeLogRepository<ProcessMapPlanStaticMeasurementOutputDto, ProcessMapPlanBaseRequestWithWell>,
ProcessMapPlanBaseRepository<ProcessMapPlanStaticMeasurementOutput, ProcessMapPlanStaticMeasurementOutputDto>>();
services.AddTransient<IProcessMapReportDrillingService, ProcessMapReportDrillingService>(); services.AddTransient<IProcessMapReportDrillingService, ProcessMapReportDrillingService>();
@ -259,8 +434,26 @@ namespace AsbCloudInfrastructure
services.AddTransient<IHelpPageRepository, HelpPageRepository>(); services.AddTransient<IHelpPageRepository, HelpPageRepository>();
services.AddTransient<IFileRepository, FileRepository>(); services.AddTransient<IFileRepository, FileRepository>();
services.AddTransient<IFileStorageRepository, FileStorageRepository>(); services.AddTransient<IFileStorageRepository, FileStorageRepository>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanRotorDto>>(); services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanRotorDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSlideDto>>(); services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSlideDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanReamingRotorDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanReamingSlideDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanLoadCapacityDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanRecordingStaticMeasurementDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanPositioningOffTheBottomDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanOscillationAnglesDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanTFOrientationDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSwitchingOffThePumpDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanSwitchingToTheModeDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanDrillTestDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanShockTestDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanDamperDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanAutoHoldTFDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanOscillationDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanAntiCrashRotationDto>>();
services.AddTransient<IWellCompositeRepository, WellCompositeRepository<ProcessMapPlanStaticMeasurementOutputDto>>();
services.AddTransient<IUserRoleRepository, UserRoleRepository>(); services.AddTransient<IUserRoleRepository, UserRoleRepository>();
services.AddTransient<IUserRepository, UserRepository>(); services.AddTransient<IUserRepository, UserRepository>();
services.AddTransient<ILimitingParameterRepository, LimitingParameterRepository>(); services.AddTransient<ILimitingParameterRepository, LimitingParameterRepository>();
@ -316,7 +509,22 @@ namespace AsbCloudInfrastructure
services.AddTransient<TrajectoryFactManualParser>(); services.AddTransient<TrajectoryFactManualParser>();
services.AddTransient<ProcessMapPlanRotorParser>(); services.AddTransient<ProcessMapPlanRotorParser>();
services.AddTransient<ProcessMapPlanSlideParser>(); services.AddTransient<ProcessMapPlanSlideParser>();
services.AddTransient<ProcessMapPlanReamParser>(); services.AddTransient<ProcessMapPlanReamingRotorParser>();
services.AddTransient<ProcessMapPlanReamingSlideParser>();
services.AddTransient<ProcessMapPlanLoadCapacityParser>();
services.AddTransient<ProcessMapPlanRecordingStaticMeasurementParser>();
services.AddTransient<ProcessMapPlanPositioningOffTheBottomParser>();
services.AddTransient<ProcessMapPlanOscillationAnglesParser>();
services.AddTransient<ProcessMapPlanTFOrientationParser>();
services.AddTransient<ProcessMapPlanSwitchingOffThePumpParser>();
services.AddTransient<ProcessMapPlanSwitchingToTheModeParser>();
services.AddTransient<ProcessMapPlanDrillTestParser>();
services.AddTransient<ProcessMapPlanShockTestParser>();
services.AddTransient<ProcessMapPlanDamperParser>();
services.AddTransient<ProcessMapPlanAutoHoldTFParser>();
services.AddTransient<ProcessMapPlanOscillationParser>();
services.AddTransient<ProcessMapPlanAntiCrashRotationParser>();
services.AddTransient<ProcessMapPlanStaticMeasurementOutputParser>();
services.AddTransient<TrajectoryPlanExportService>(); services.AddTransient<TrajectoryPlanExportService>();
services.AddTransient<TrajectoryFactManualExportService>(); services.AddTransient<TrajectoryFactManualExportService>();
@ -324,7 +532,22 @@ namespace AsbCloudInfrastructure
services.AddTransient<ProcessMapPlanRotorExportService>(); services.AddTransient<ProcessMapPlanRotorExportService>();
services.AddTransient<ProcessMapPlanSlideExportService>(); services.AddTransient<ProcessMapPlanSlideExportService>();
services.AddTransient<ProcessMapPlanReamExportService>(); services.AddTransient<ProcessMapPlanReamingRotorExportService>();
services.AddTransient<ProcessMapPlanReamingSlideExportService>();
services.AddTransient<ProcessMapPlanLoadCapacityExportService>();
services.AddTransient<ProcessMapPlanRecordingStaticMeasurementExportService>();
services.AddTransient<ProcessMapPlanPositioningOffTheBottomExportService>();
services.AddTransient<ProcessMapPlanOscillationAnglesExportService>();
services.AddTransient<ProcessMapPlanTFOrientationExportService>();
services.AddTransient<ProcessMapPlanSwitchingOffThePumpExportService>();
services.AddTransient<ProcessMapPlanSwitchingToTheModeExportService>();
services.AddTransient<ProcessMapPlanDrillTestExportService>();
services.AddTransient<ProcessMapPlanShockTestExportService>();
services.AddTransient<ProcessMapPlanDamperExportService>();
services.AddTransient<ProcessMapPlanAutoHoldTFExportService>();
services.AddTransient<ProcessMapPlanOscillationExportService>();
services.AddTransient<ProcessMapPlanAntiCrashRotationExportService>();
services.AddTransient<ProcessMapPlanStaticMeasurementOutputExportService>();
services.AddTransient<WellOperationParserFactory>(); services.AddTransient<WellOperationParserFactory>();
services.AddTransient<WellOperationExportServiceFactory>(); services.AddTransient<WellOperationExportServiceFactory>();

View File

@ -0,0 +1,25 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanAntiCrashRotationTemplate : ITemplateParameters
{
public string SheetName => "Противоаварийное вращение";
public int HeaderRowsCount => 3;
public string FileName => "ProcessMapPlanAntiCrashRotationTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanAntiCrashRotationDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveRpmMin), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveStartMinFlowRate), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.TopDriveTorqueMax), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.Note), new Cell(7, typeof(string)) },
};
}

View File

@ -0,0 +1,24 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanAutoHoldTFTemplate : ITemplateParameters
{
public string SheetName => "Автоудержание TF";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanAutoHoldTFTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanAutoHoldTFDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanAutoHoldTFDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanAutoHoldTFDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanAutoHoldTFDto.ZenithAngle), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanAutoHoldTFDto.Note), new Cell(5, typeof(string)) },
};
}

View File

@ -0,0 +1,24 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanDamperTemplate : ITemplateParameters
{
public string SheetName => "Демпфер";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanDamperTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanDamperDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanDamperDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanDamperDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanDamperDto.StickSlip), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanDamperDto.Note), new Cell(5, typeof(string)) },
};
}

View File

@ -0,0 +1,28 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanDrillTestTemplate : ITemplateParameters
{
public string SheetName => "Дрилтест";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanDrillTestTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanDrillTestDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanDrillTestDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.WeightOnBitMin), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.WeightOnBitStepsCount), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.RpmMin), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.RpmStepsCount), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.LengthStep), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanDrillTestDto.Note), new Cell(9, typeof(string)) },
};
}

View File

@ -0,0 +1,25 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanLoadCapacityTemplate : ITemplateParameters
{
public string SheetName => "Выработка нагрузки";
public int HeaderRowsCount => 3;
public string FileName => "ProcessMapPlanLoadCapacityTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanLoadCapacityDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanLoadCapacityDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanLoadCapacityDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanLoadCapacityDto.TimeLoadCapacityMin), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanLoadCapacityDto.DifferentialPressureMin), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanLoadCapacityDto.WeightOnBitMin), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanLoadCapacityDto.Note), new Cell(7, typeof(string)) },
};
}

View File

@ -0,0 +1,28 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanOscillationAnglesTemplate : ITemplateParameters
{
public string SheetName => "Определение углов осцилляции";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanOscillationAnglesTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanOscillationAnglesDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.TopDriveTorque), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.TopDriveTorqueMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.Rpm), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.RpmMax), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanOscillationAnglesDto.Note), new Cell(8, typeof(string)) },
};
}

View File

@ -0,0 +1,27 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanOscillationTemplate : ITemplateParameters
{
public string SheetName => "Осцилляция";
public int HeaderRowsCount => 3;
public string FileName => "ProcessMapPlanOscillationTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanOscillationDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanOscillationDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.OptimalOscillationAngle), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.RpmRight), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.RpmLeft), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.TorqueMaxRight), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.TorqueMaxLeft), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanOscillationDto.Mode), new Cell(10, typeof(int)) },
{ nameof(ProcessMapPlanOscillationDto.Note), new Cell(11, typeof(string)) },
};
}

View File

@ -0,0 +1,36 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanPositioningOffTheBottomTemplate : ITemplateParameters
{
public string SheetName => "Позиционирование над забоем";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanPositioningOffTheBottomTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.StopOffTheBottom), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.PressureMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.DifferentialPressure), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.Tight), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.SlackingOff), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.TorqueMax), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.RopUp), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.RopDown), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.RpmUp), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.RpmDown), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.FlowRateUp), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.FlowRateDown), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanPositioningOffTheBottomDto.Note), new Cell(16, typeof(string)) },
};
}

View File

@ -1,29 +0,0 @@
using System.Collections.Generic;
using AsbCloudApp.Data.ProcessMaps;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanReamTemplate : ITemplateParameters
{
public string SheetName => "План";
public int HeaderRowsCount => 1;
public string FileName => "ProcessMapPlanReamTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanReamDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanReamDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.Repeats), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SpinUpward), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SpinDownward), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SpeedUpward), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SpeedDownward), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SetpointDrag), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.SetpointTight), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.Pressure), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanReamDto.Torque), new Cell(12, typeof(double)) },
};
}

View File

@ -0,0 +1,55 @@
using System.Collections.Generic;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanReamingRotorTemplate : ITemplateParameters
{
public string SheetName => "Проработка ротор";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanReamingRotorTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanReamingRotorDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanReamingRotorDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.PressureMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.DifferentialPressure), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Tight), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.SlackingOff), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.TorqueMax), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RepetitionsCount), new Cell(9, typeof(int)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RopUp), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RopDown), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RpmUp), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RpmDown), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1FlowRateUp), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1FlowRateDown), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1Interval), new Cell(16, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1StopPointOffBottom), new Cell(17, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2RepetitionsCount), new Cell(18, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2RopUp), new Cell(19, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2RopDown), new Cell(20, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2RpmUp), new Cell(21, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2RpmDown), new Cell(22, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2FlowRateUp), new Cell(23, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2FlowRateDown), new Cell(24, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2Interval), new Cell(25, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming2StopPointOffBottom), new Cell(26, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3RepetitionsCount), new Cell(27, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3RopUp), new Cell(28, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming1RopDown), new Cell(29, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3RpmUp), new Cell(30, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3RpmDown), new Cell(31, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3FlowRateUp), new Cell(32, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3FlowRateDown), new Cell(33, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3Interval), new Cell(34, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Reaming3StopPointOffBottom), new Cell(35, typeof(double)) },
{ nameof(ProcessMapPlanReamingRotorDto.Note), new Cell(36, typeof(string)) },
};
}

View File

@ -0,0 +1,53 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanReamingSlideTemplate : ITemplateParameters
{
public string SheetName => "Проработка слайд";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanReamingSlideTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanReamingSlideDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanReamingSlideDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.PressureMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.DifferentialPressure), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Tight), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.SlackingOff), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.TorqueMax), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RepetitionsCount), new Cell(9, typeof(int)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RopUp), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RopDown), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RpmUp), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RpmDown), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1FlowRateUp), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1FlowRateDown), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1Interval), new Cell(16, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1StopPointOffBottom), new Cell(17, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2RepetitionsCount), new Cell(18, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2RopUp), new Cell(19, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2RopDown), new Cell(20, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2RpmUp), new Cell(21, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2RpmDown), new Cell(22, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2FlowRateUp), new Cell(23, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2FlowRateDown), new Cell(24, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2Interval), new Cell(25, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming2StopPointOffBottom), new Cell(26, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3RepetitionsCount), new Cell(27, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3RopUp), new Cell(28, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming1RopDown), new Cell(29, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3RpmUp), new Cell(30, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3RpmDown), new Cell(31, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3FlowRateUp), new Cell(32, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3FlowRateDown), new Cell(33, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3Interval), new Cell(34, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Reaming3StopPointOffBottom), new Cell(35, typeof(double)) },
{ nameof(ProcessMapPlanReamingSlideDto.Note), new Cell(36, typeof(string)) },
};
}

View File

@ -0,0 +1,25 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanRecordingStaticMeasurementTemplate : ITemplateParameters
{
public string SheetName => "Запись статического замера";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanRecordingStaticMeasurementTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanRecordingStaticMeasurementDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanRecordingStaticMeasurementDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanRecordingStaticMeasurementDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanRecordingStaticMeasurementDto.MeasurementRecordingTime), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanRecordingStaticMeasurementDto.Note), new Cell(5, typeof(string)) },
};
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps.Operations;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
@ -16,18 +16,18 @@ public class ProcessMapPlanRotorTemplate : ITemplateParameters
{ nameof(ProcessMapPlanRotorDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanRotorDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanRotorDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DepthEnd), new Cell(3, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RopLimitMax), new Cell(4, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.RopMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.PressureLimitMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.PressureMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DifferentialPressure), new Cell(6, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DifferentialPressure), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.DifferentialPressureMax), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.WeightOnBit), new Cell(8, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.WeightOnBit), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.WeightOnBitMax), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.TopDriveTorque), new Cell(10, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.TopDriveTorque), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.TopDriveTorqueLimit), new Cell(11, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.TopDriveTorqueMax), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RevolutionsPerMinute), new Cell(12, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.Rpm), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.RevolutionsPerMinuteLimitMax), new Cell(13, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.RpmMax), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.FlowRate), new Cell(14, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.FlowRate), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.FlowRateLimitMax), new Cell(15, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.FlowRateMax), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanRotorDto.Note), new Cell(16, typeof(double)) }, { nameof(ProcessMapPlanRotorDto.Note), new Cell(16, typeof(double)) },
}; };
} }

View File

@ -0,0 +1,29 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanShockTestTemplate : ITemplateParameters
{
public string SheetName => "Запись shock test";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanShockTestTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanShockTestDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanShockTestDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.StickSlip), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.Whirl), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.AxialVibrations), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.CombinedVibrations), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.WeightOnBitMin), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.RpmMin), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanShockTestDto.Note), new Cell(10, typeof(string)) },
};
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps.Operations;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
@ -16,16 +16,16 @@ public class ProcessMapPlanSlideTemplate : ITemplateParameters
{ nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) }, { nameof(ProcessMapPlanSlideDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.RopLimitMax), new Cell(4, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.RopMax), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.PressureLimitMax), new Cell(5, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.PressureMax), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.DifferentialPressure), new Cell(6, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DifferentialPressure), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.DifferentialPressureLimitMax), new Cell(7, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.DifferentialPressureMax), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.WeightOnBit), new Cell(8, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.WeightOnBit), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.WeightOnBitLimitMax), new Cell(9, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.WeightOnBitMax), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.FlowRate), new Cell(10, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.FlowRate), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.FlowRateLimitMax), new Cell(11, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.FlowRateMax), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.Spring), new Cell(12, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.Spring), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.ToolBuckling), new Cell(13, typeof(double)) }, { nameof(ProcessMapPlanSlideDto.Buckling), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanSlideDto.Note), new Cell(14, typeof(double)) } { nameof(ProcessMapPlanSlideDto.Note), new Cell(14, typeof(double)) }
}; };
} }

View File

@ -0,0 +1,24 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanStaticMeasurementOutputTemplate : ITemplateParameters
{
public string SheetName => "Выход статического замера";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanStaticMeasurementOutputTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanStaticMeasurementOutputDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanStaticMeasurementOutputDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanStaticMeasurementOutputDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanStaticMeasurementOutputDto.SignalWaitingTime), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanStaticMeasurementOutputDto.Note), new Cell(5, typeof(string)) },
};
}

View File

@ -0,0 +1,26 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanSwitchingOffThePumpTemplate : ITemplateParameters
{
public string SheetName => "Выключение насоса";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanSwitchingOffThePumpTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.Duration), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.ResidualPressureLimit), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingOffThePumpDto.Note), new Cell(6, typeof(string)) },
};
}

View File

@ -0,0 +1,26 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudDb.Model.ProcessMapPlan.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanSwitchingToTheModeTemplate : ITemplateParameters
{
public string SheetName => "Выход на плановый расход";
public int HeaderRowsCount => 3;
public string FileName => "ProcessMapPlanSwitchingToTheModeTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanSwitchingToTheModeDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanSwitchingToTheModeDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingToTheModeDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingToTheModeDto.RampTime), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingToTheModeDto.FlowRate), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanSwitchingToTheModeDto.PressureMax), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanAntiCrashRotationDto.Note), new Cell(7, typeof(string)) },
};
}

View File

@ -0,0 +1,38 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Data.ProcessMaps.Operations;
using System.Collections.Generic;
namespace AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
public class ProcessMapPlanTFOrientationTemplate : ITemplateParameters
{
public string SheetName => "Выставление";
public int HeaderRowsCount => 2;
public string FileName => "ProcessMapPlanTFOrientationTemplate.xlsx";
public IDictionary<string, Cell> Cells => new Dictionary<string, Cell>
{
{ nameof(ProcessMapPlanTFOrientationDto.Section), new Cell(1, typeof(string)) },
{ nameof(ProcessMapPlanTFOrientationDto.DepthStart), new Cell(2, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.DepthEnd), new Cell(3, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.TFSetpoint), new Cell(4, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.Spring), new Cell(5, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.PressureMax), new Cell(6, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.DifferentialPressure), new Cell(7, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.Tight), new Cell(8, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.SlackingOff), new Cell(9, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.TorqueMax), new Cell(10, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.RepetitionsCount), new Cell(11, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.RopUp), new Cell(12, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.RopDown), new Cell(13, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.FlowRateUp), new Cell(14, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.FlowRateDown), new Cell(15, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.Interval), new Cell(16, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.StopPointOffBottom), new Cell(17, typeof(double)) },
{ nameof(ProcessMapPlanTFOrientationDto.Note), new Cell(18, typeof(string)) },
};
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanAntiCrashRotationExportService : ProcessMapPlanExportService<ProcessMapPlanAntiCrashRotationDto>
{
public ProcessMapPlanAntiCrashRotationExportService(
IChangeLogRepository<ProcessMapPlanAntiCrashRotationDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanAntiCrashRotationTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_противоаварийное вращение.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanAutoHoldTFExportService : ProcessMapPlanExportService<ProcessMapPlanAutoHoldTFDto>
{
public ProcessMapPlanAutoHoldTFExportService(
IChangeLogRepository<ProcessMapPlanAutoHoldTFDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanAutoHoldTFTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_автоудержание_tf.xlsx";
}
}

View File

@ -1,4 +1,4 @@
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories; using AsbCloudApp.Repositories;
using AsbCloudApp.Requests; using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions; using AsbCloudApp.Requests.ExportOptions;
@ -10,21 +10,21 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanReamExportService : ProcessMapPlanExportService<ProcessMapPlanReamDto> public class ProcessMapPlanDamperExportService : ProcessMapPlanExportService<ProcessMapPlanDamperDto>
{ {
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamTemplate(); public ProcessMapPlanDamperExportService(
IChangeLogRepository<ProcessMapPlanDamperDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
public ProcessMapPlanReamExportService(
IChangeLogRepository<ProcessMapPlanReamDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService) IWellService wellService)
: base(processMapPlanRepository, wellService) : base(processMapPlanRepository, wellService)
{ {
} }
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanDamperTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token) protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{ {
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token); var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_проработка.xlsx"; return $"{caption}_РТК_План_демпфер.xlsx";
} }
} }

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanDrillTestExportService : ProcessMapPlanExportService<ProcessMapPlanDrillTestDto>
{
public ProcessMapPlanDrillTestExportService(
IChangeLogRepository<ProcessMapPlanDrillTestDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanDrillTestTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_дрилтест.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanLoadCapacityExportService : ProcessMapPlanExportService<ProcessMapPlanLoadCapacityDto>
{
public ProcessMapPlanLoadCapacityExportService(
IChangeLogRepository<ProcessMapPlanLoadCapacityDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanLoadCapacityTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_выработкаагрузки.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanOscillationAnglesExportService : ProcessMapPlanExportService<ProcessMapPlanOscillationAnglesDto>
{
public ProcessMapPlanOscillationAnglesExportService(
IChangeLogRepository<ProcessMapPlanOscillationAnglesDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOscillationAnglesTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_определения_углов_осцилляции.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanOscillationExportService : ProcessMapPlanExportService<ProcessMapPlanOscillationDto>
{
public ProcessMapPlanOscillationExportService(
IChangeLogRepository<ProcessMapPlanOscillationDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanOscillationTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_осцилляция.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanPositioningOffTheBottomExportService : ProcessMapPlanExportService<ProcessMapPlanPositioningOffTheBottomDto>
{
public ProcessMapPlanPositioningOffTheBottomExportService(
IChangeLogRepository<ProcessMapPlanPositioningOffTheBottomDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanPositioningOffTheBottomTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_позиционированиеад_забоем.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanReamingRotorExportService : ProcessMapPlanExportService<ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanReamingRotorExportService(
IChangeLogRepository<ProcessMapPlanReamingRotorDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanReamingRotorTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_проработка_ротор.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanReamingSlideExportService : ProcessMapPlanExportService<ProcessMapPlanReamingSlideDto>
{
public ProcessMapPlanReamingSlideExportService(
IChangeLogRepository<ProcessMapPlanReamingSlideDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanReamingSlideTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_проработка_слайд.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanRecordingStaticMeasurementExportService : ProcessMapPlanExportService<ProcessMapPlanRecordingStaticMeasurementDto>
{
public ProcessMapPlanRecordingStaticMeasurementExportService(
IChangeLogRepository<ProcessMapPlanRecordingStaticMeasurementDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanRecordingStaticMeasurementTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_запись_статическогоамера.xlsx";
}
}

View File

@ -1,4 +1,4 @@
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories; using AsbCloudApp.Repositories;
using AsbCloudApp.Requests; using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions; using AsbCloudApp.Requests.ExportOptions;

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanShockTestExportService : ProcessMapPlanExportService<ProcessMapPlanShockTestDto>
{
public ProcessMapPlanShockTestExportService(
IChangeLogRepository<ProcessMapPlanShockTestDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanShockTestTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_shock_test.xlsx";
}
}

View File

@ -1,4 +1,4 @@
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories; using AsbCloudApp.Repositories;
using AsbCloudApp.Requests; using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions; using AsbCloudApp.Requests.ExportOptions;

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanStaticMeasurementOutputExportService : ProcessMapPlanExportService<ProcessMapPlanStaticMeasurementOutputDto>
{
public ProcessMapPlanStaticMeasurementOutputExportService(
IChangeLogRepository<ProcessMapPlanStaticMeasurementOutputDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanStaticMeasurementOutputTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_выход_статическогоамера.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanSwitchingOffThePumpExportService : ProcessMapPlanExportService<ProcessMapPlanSwitchingOffThePumpDto>
{
public ProcessMapPlanSwitchingOffThePumpExportService(
IChangeLogRepository<ProcessMapPlanSwitchingOffThePumpDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSwitchingOffThePumpTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_выключениеасоса.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanSwitchingToTheModeExportService : ProcessMapPlanExportService<ProcessMapPlanSwitchingToTheModeDto>
{
public ProcessMapPlanSwitchingToTheModeExportService(
IChangeLogRepository<ProcessMapPlanSwitchingToTheModeDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanSwitchingToTheModeTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_выход_на_плановый_расход.xlsx";
}
}

View File

@ -0,0 +1,30 @@
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Requests.ExportOptions;
using AsbCloudApp.Services;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
public class ProcessMapPlanTFOrientationExportService : ProcessMapPlanExportService<ProcessMapPlanTFOrientationDto>
{
public ProcessMapPlanTFOrientationExportService(
IChangeLogRepository<ProcessMapPlanTFOrientationDto, ProcessMapPlanBaseRequestWithWell> processMapPlanRepository,
IWellService wellService)
: base(processMapPlanRepository, wellService)
{
}
protected override ITemplateParameters TemplateParameters { get; } = new ProcessMapPlanTFOrientationTemplate();
protected override async Task<string> BuildFileNameAsync(WellRelatedExportRequest options, CancellationToken token)
{
var caption = await wellService.GetWellCaptionByIdAsync(options.IdWell, token);
return $"{caption}_РТК_План_выставление.xlsx";
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanAntiCrashRotationParser : ProcessMapPlanParser<ProcessMapPlanAntiCrashRotationDto>
{
public ProcessMapPlanAntiCrashRotationParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanAntiCrashRotationTemplate();
protected override ProcessMapPlanAntiCrashRotationDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanAutoHoldTFParser : ProcessMapPlanParser<ProcessMapPlanAutoHoldTFDto>
{
public ProcessMapPlanAutoHoldTFParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanAutoHoldTFTemplate();
protected override ProcessMapPlanAutoHoldTFDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -3,22 +3,23 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories; using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser; namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanReamParser : ProcessMapPlanParser<ProcessMapPlanReamDto> public class ProcessMapPlanDamperParser : ProcessMapPlanParser<ProcessMapPlanDamperDto>
{ {
public ProcessMapPlanReamParser(IWellOperationRepository wellOperationRepository) public ProcessMapPlanDamperParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository) : base(wellOperationRepository)
{ {
} }
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamTemplate(); protected override ITemplateParameters TemplateParameters => new ProcessMapPlanDamperTemplate();
protected override ProcessMapPlanReamDto BuildDto(IDictionary<string, object?> row, int rowNumber) protected override ProcessMapPlanDamperDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{ {
var dto = base.BuildDto(row, rowNumber); var dto = base.BuildDto(row, rowNumber);
@ -28,8 +29,9 @@ public class ProcessMapPlanReamParser : ProcessMapPlanParser<ProcessMapPlanReamD
if (section is null) if (section is null)
{ {
var message = string.Format(XLExtentions.ProblemDetailsTemplate, var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName, rowNumber, TemplateParameters.SheetName,
TemplateParameters.Cells[nameof(ProcessMapPlanReamDto.Section)], rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция"); "Указана некорректная секция");
throw new FileFormatException(message); throw new FileFormatException(message);
} }

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanDrillTestParser : ProcessMapPlanParser<ProcessMapPlanDrillTestDto>
{
public ProcessMapPlanDrillTestParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanDrillTestTemplate();
protected override ProcessMapPlanDrillTestDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanLoadCapacityParser : ProcessMapPlanParser<ProcessMapPlanLoadCapacityDto>
{
public ProcessMapPlanLoadCapacityParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanLoadCapacityTemplate();
protected override ProcessMapPlanLoadCapacityDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanOscillationAnglesParser : ProcessMapPlanParser<ProcessMapPlanOscillationAnglesDto>
{
public ProcessMapPlanOscillationAnglesParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOscillationAnglesTemplate();
protected override ProcessMapPlanOscillationAnglesDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Functions;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanOscillationParser : ProcessMapPlanParser<ProcessMapPlanOscillationDto>
{
public ProcessMapPlanOscillationParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanOscillationTemplate();
protected override ProcessMapPlanOscillationDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanPositioningOffTheBottomParser : ProcessMapPlanParser<ProcessMapPlanPositioningOffTheBottomDto>
{
public ProcessMapPlanPositioningOffTheBottomParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanPositioningOffTheBottomTemplate();
protected override ProcessMapPlanPositioningOffTheBottomDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanReamingRotorParser : ProcessMapPlanParser<ProcessMapPlanReamingRotorDto>
{
public ProcessMapPlanReamingRotorParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamingRotorTemplate();
protected override ProcessMapPlanReamingRotorDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanReamingSlideParser : ProcessMapPlanParser<ProcessMapPlanReamingSlideDto>
{
public ProcessMapPlanReamingSlideParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanReamingSlideTemplate();
protected override ProcessMapPlanReamingSlideDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
public class ProcessMapPlanRecordingStaticMeasurementParser : ProcessMapPlanParser<ProcessMapPlanRecordingStaticMeasurementDto>
{
public ProcessMapPlanRecordingStaticMeasurementParser(IWellOperationRepository wellOperationRepository)
: base(wellOperationRepository)
{
}
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanRecordingStaticMeasurementTemplate();
protected override ProcessMapPlanRecordingStaticMeasurementDto BuildDto(IDictionary<string, object?> row, int rowNumber)
{
var dto = base.BuildDto(row, rowNumber);
var section = sections.FirstOrDefault(s =>
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
if (section is null)
{
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
TemplateParameters.SheetName,
rowNumber,
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
"Указана некорректная секция");
throw new FileFormatException(message);
}
dto.IdWellSectionType = section.Id;
return dto;
}
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using AsbCloudApp.Data.ProcessMaps; using AsbCloudApp.Data.ProcessMaps;
using AsbCloudApp.Data.ProcessMaps.Operations;
using AsbCloudApp.Repositories; using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services.ExcelServices.Templates; using AsbCloudInfrastructure.Services.ExcelServices.Templates;
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates; using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;

Some files were not shown because too many files have changed in this diff Show More