From 89cae8726df98dd457985744f2ed97ac2be6c2d9 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Sun, 30 Jun 2024 21:04:31 +0500 Subject: [PATCH] =?UTF-8?q?=20=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D0=BB=D0=B5=D1=80=D1=8B,=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=B8=20DTO,=20=D0=BA=D0=B0=D1=81=D0=B0=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=A0=D0=A2=D0=9A,=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83=D1=8E?= =?UTF-8?q?=D1=89=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8:=20Operatio?= =?UTF-8?q?ns=20=D0=B8=20Functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rocessMapPlanPositioningOffTheBottomDto.cs | 88 ++++++++ .../Operations/ProcessMapPlanReamDto.cs | 82 +++++++ .../ProcessMapPlanReamingRotorDto.cs | 209 ++++++++++++++++++ .../ProcessMapPlanReamingSlideDto.cs | 209 ++++++++++++++++++ ...essMapPlanRecordingStaticMeasurementDto.cs | 21 ++ .../Operations/ProcessMapPlanRotorDto.cs | 88 ++++++++ .../ProcessMapPlanRotorLoweringBitDto.cs | 60 +++++ .../Operations/ProcessMapPlanSlideDto.cs | 75 +++++++ .../ProcessMapPlanSlideLoweringBitDto.cs | 42 ++++ .../ProcessMapPlanSwitchingOffThePumpDto.cs | 21 ++ .../ProcessMapPlanSwitchingToTheModeDto.cs | 34 +++ .../ProcessMapPlanTFOrientationDto.cs | 93 ++++++++ .../Operations/RotorRpmAccelerationDto.cs | 27 +++ 13 files changed, 1049 insertions(+) create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs create mode 100644 AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs new file mode 100644 index 00000000..e1e58d66 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanPositioningOffTheBottomDto.cs @@ -0,0 +1,88 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план позиционирования над забоем +/// +public class ProcessMapPlanPositioningOffTheBottomDto : ProcessMapPlanBaseDto +{ + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 30")] + public double StopOffTheBottom { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вверх, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вверх, об/мин., должно быть в пределах от 0 до 270")] + public double RpmUp { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs new file mode 100644 index 00000000..376888dd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamDto.cs @@ -0,0 +1,82 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка скважины +/// +public class ProcessMapPlanReamDto : ProcessMapPlanBaseDto, IValidatableObject +{ + /// + /// Количество повторений + /// + [Required] + [Range(0, 100, ErrorMessage = "Количество повторений должно быть в пределах от 0 до 100")] + public double Repeats { get; set; } + + /// + /// Вращение при движении вверх, об/мин + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Количество вращений вверх должно быть в пределах от 0 до 99999.9")] + public double SpinUpward { get; set; } + + /// + /// Вращение при движении вниз, об/мин + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Количество вращений вниз должно быть в пределах от 0 до 99999.9")] + public double SpinDownward { get; set; } + + /// + /// Скорость подъёма, м/ч + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Скорость подъёма должна быть в пределах от 0 до 99999.9")] + public double SpeedUpward { get; set; } + + /// + /// Скорость спуска, м/ч + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Скорость спуска должна быть в пределах от 0 до 99999.9")] + public double SpeedDownward { get; set; } + + /// + /// Уставка зятяжки, т + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")] + public double SetpointDrag { get; set; } + + /// + /// Уставка посадки, т + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")] + public double SetpointTight { get; set; } + + /// + /// Давление, атм + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Давление должно быть в пределах от 0 до 99999.9")] + public double Pressure { get; set; } + + /// + /// Момент, кН*м + /// + [Required] + [Range(0, 99999.9, ErrorMessage = "Крутящий момент должен быть в пределах от 0 до 99999.9")] + public double Torque { get; set; } + + /// + public override IEnumerable 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) }); + } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs new file mode 100644 index 00000000..98b6fcfc --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingRotorDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка для ротора +/// +public class ProcessMapPlanReamingRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., посадка, должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1. Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 1. Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public int Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0, 99, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs new file mode 100644 index 00000000..f2ef28fd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanReamingSlideDto.cs @@ -0,0 +1,209 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план проработка для слайда +/// +public class ProcessMapPlanReamingSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Проработка 1, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 1, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming1RepetitionsCount { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming1RopUp { get; set; } + + /// + /// Проработка 1, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 1, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming1RopDown { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming1RpmUp { get; set; } + + /// + /// Проработка 1, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 1, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming1RpmDown { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateUp { get; set; } + + /// + /// Проработка 1, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 1, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming1FlowRateDown { get; set; } + + /// + /// Проработка 1, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 1, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming1Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming1StopPointOffBottom { get; set; } + + /// + /// Проработка 2, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 2, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming2RepetitionsCount { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming2RopUp { get; set; } + + /// + /// Проработка 2, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 2, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming2RopDown { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming2RpmUp { get; set; } + + /// + /// Проработка 2, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 2, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming2RpmDown { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateUp { get; set; } + + /// + /// Проработка 2, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 2, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming2FlowRateDown { get; set; } + + /// + /// Проработка 2, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 2, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming2Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming2StopPointOffBottom { get; set; } + + /// + /// Проработка 3, Количество повторений, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Проработка 3, Количество повторений, шт., должно быть в пределах от 0 до 99")] + public double Reaming3RepetitionsCount { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вверх + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вверх, должно быть в пределах от 0 до 999")] + public double Reaming3RopUp { get; set; } + + /// + /// Проработка 3, Скорость, м/ч., Вниз + /// + [Range(0.0, 999.0, ErrorMessage = "Проработка 3, Скорость, м/ч., Вниз, должно быть в пределах от 0 до 999")] + public double Reaming3RopDown { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вверх + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вверх, должно быть в пределах от 0 до 270")] + public double Reaming3RpmUp { get; set; } + + /// + /// Проработка 3, Обороты, об/мин., Вниз + /// + [Range(0.0, 270.0, ErrorMessage = "Проработка 3, Обороты, об/мин., Вниз, должно быть в пределах от 0 до 270")] + public double Reaming3RpmDown { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вверх + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вверх, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateUp { get; set; } + + /// + /// Проработка 3, Расход, л/с., Вниз + /// + [Range(0.0, 100.0, ErrorMessage = "Проработка 3, Расход, л/с., Вниз, должно быть в пределах от 0 до 100")] + public double Reaming3FlowRateDown { get; set; } + + /// + /// Проработка 3, Интервал проработки, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Проработка 3, Интервал проработки, м., должно быть в пределах от 0 до 30")] + public double Reaming3Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double Reaming3StopPointOffBottom { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs new file mode 100644 index 00000000..28ba53bd --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRecordingStaticMeasurementDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план записи статического замера +/// +public class ProcessMapPlanRecordingStaticMeasurementDto : ProcessMapPlanBaseDto +{ + /// + /// Время записи замера, сек + /// + [Range(0.0, 1800.0, ErrorMessage = "Время записи замера, сек., должно быть в пределах от 0 до 1800")] + public double MeasurementRecordingTime { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs new file mode 100644 index 00000000..938732c2 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorDto.cs @@ -0,0 +1,88 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план бурение скважины в роторе +/// +public class ProcessMapPlanRotorDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимая скорость, м/ч + /// + [Range(0, 800.0, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800.0")] + public double RopMax { get; set; } + + /// + /// Максимально допустимое давление, атм + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400.0")] + public double PressureMax { get; set; } + + /// + /// Перепад давления, атм. Уставка + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., уставка, должно быть в пределах от 0 до 60.0")] + public double DifferentialPressure { get; set; } + + /// + /// Перепад давления, атм. Ограничение + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., ограничение, должно быть в пределах от 0 до 60.0")] + public double DifferentialPressureMax { get; set; } + + /// + /// Нагрузка, т. Уставка + /// + [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., уставка, должно быть в пределах от 0 до 99.0")] + public double WeightOnBit { get; set; } + + /// + /// Нагрузка, т. Ограничение + /// + [Range(0.0, 99.0, ErrorMessage = "Нагрузка, т., ограничение, должно быть в пределах от 0 до 99.0")] + public double WeightOnBitMax { get; set; } + + /// + /// Момент на ВСП, кН*м. Уставка + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., уставка, должно быть в пределах от 0 до 35.0")] + public double TopDriveTorque { get; set; } + + /// + /// Момент на ВСП, кН*м. Ограничение + /// + [Range(0.0, 35.0, ErrorMessage = "Момент на ВСП, кН*м., ограничение, должно быть в пределах от 0 до 35.0")] + public double TopDriveTorqueMax { get; set; } + + /// + /// Обороты на ВСП, об/мин. Уставка + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., уставка, должно быть в пределах от 0 до 270.0")] + public double Rpm { get; set; } + + /// + /// Обороты на ВСП, об/мин. Ограничение + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты на ВСП, об/мин., ограничение, должно быть в пределах от 0 до 270.0")] + public double RpmMax { get; set; } + + /// + /// Расход л/с. Уставка + /// + [Range(0.0, 100.0, ErrorMessage = "Расход л/с., уставка, должно быть в пределах от 0 до 100.0")] + public double FlowRate { get; set; } + + /// + /// Расход л/с. Ограничение + /// + [Range(0.0, 100.0, ErrorMessage = "Расход л/с., ограничение, должно быть в пределах от 0 до 100.0")] + public double FlowRateMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs new file mode 100644 index 00000000..62b9459e --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanRotorLoweringBitDto.cs @@ -0,0 +1,60 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в роторе +/// +public class ProcessMapPlanRotorLoweringBitDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Обороты вниз, об/мин. + /// + [Range(0.0, 270.0, ErrorMessage = "Обороты вниз, об/мин., должно быть в пределах от 0 до 270")] + public double RpmDown { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs new file mode 100644 index 00000000..2ad24fdf --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideDto.cs @@ -0,0 +1,75 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план бурение скважины в слайде +/// +public class ProcessMapPlanSlideDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимая скорость, м/ч + /// + [Range(0, 800, ErrorMessage = "Максимально допустимая скорость, м/ч., должно быть в пределах от 0 до 800")] + public double RopMax { get; set; } + + /// + /// Максимально допустимое давление, атм + /// + [Range(0, 400, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм + /// + [Range(0, 60, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Перепад давления ограничение, атм + /// + [Range(0, 60, ErrorMessage = "Перепад давления ограничение, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressureMax { get; set; } + + /// + /// Нагрузка уставка, т + /// + [Range(0, 99, ErrorMessage = "Нагрузка уставка, т., должно быть в пределах от 0 до 99")] + public double WeightOnBit { get; set; } + + /// + /// Нагрузка ограничение, т + /// + [Range(0, 99, ErrorMessage = "Нагрузка ограничение, т., должно быть в пределах от 0 до 99")] + public double WeightOnBitMax { get; set; } + + /// + /// Расход уставка л/с + /// + [Range(0, 100, ErrorMessage = "Расход уставка л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Расход ограничение л/с + /// + [Range(0, 100, ErrorMessage = "Расход ограничение л/с., должно быть в пределах от 0 до 100")] + public double FlowRateMax { get; set; } + + /// + /// Расчётная пружина, градус + /// + [Range(0, 9999, ErrorMessage = "Расчётная пружина, градус, должно быть в пределах от 0 до 9999")] + public double Spring { get; set; } + + /// + /// Складывание инструмента, м + /// + [Range(0, 9999, ErrorMessage = "Складывание инструмента, м., должно быть в пределах от 0 до 9999")] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, не должно превышать 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs new file mode 100644 index 00000000..560def75 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSlideLoweringBitDto.cs @@ -0,0 +1,42 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план подход к забою в слайде +/// +public class ProcessMapPlanSlideLoweringBitDto : ProcessMapPlanBaseDto +{ + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления уставка, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления уставка, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; + + +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs new file mode 100644 index 00000000..7e0d54fe --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingOffThePumpDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выключение насоса +/// +public class ProcessMapPlanSwitchingOffThePumpDto : ProcessMapPlanBaseDto +{ + /// + /// Продолжительность, сек. + /// + [Range(0.0, 1800.0, ErrorMessage = "Продолжительность, сек., должно быть в пределах от 0 до 1800")] + public double Duration { get; set; } + + /// + /// Лимит остаточного давления, атм. + /// + [Range(0.0, 100.0, ErrorMessage = "Лимит остаточного давления, атм., должно быть в пределах от 0 до 100")] + public double ResidualPressureLimit { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs new file mode 100644 index 00000000..1142cb59 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanSwitchingToTheModeDto.cs @@ -0,0 +1,34 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выход на плановый расход +/// +public class ProcessMapPlanSwitchingToTheModeDto : ProcessMapPlanBaseDto +{ + /// + /// Время выхода буровых насосов на плановый расход, сек. + /// + [Range(0.0, 3600.0, ErrorMessage = "Время выхода буровых насосов на плановый расход, сек., должно быть в пределах от 0 до 3600")] + public double RampTime { get; set; } + + /// + /// Расход, л/с + /// + [Range(0.0, 100.0, ErrorMessage = "Расход, л/с., должно быть в пределах от 0 до 100")] + public double FlowRate { get; set; } + + /// + /// Максимально допустимое давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимально допустимое давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs new file mode 100644 index 00000000..992594c1 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/ProcessMapPlanTFOrientationDto.cs @@ -0,0 +1,93 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выставление +/// +public class ProcessMapPlanTFOrientationDto : ProcessMapPlanBaseDto +{ + /// + /// Задание TF, град. + /// + [Range(0.0, 360.0, ErrorMessage = "Задание TF, град., должно быть в пределах от 0 до 360")] + public double TFSetpoint { get; set; } + + /// + /// Пружина, град. + /// + [Range(0.0, 10000.0, ErrorMessage = "Пружина, град., должно быть в пределах от 0 до 10000")] + public double Spring { get; set; } + + /// + /// Максимальное давление, атм. + /// + [Range(0.0, 400.0, ErrorMessage = "Максимальное давление, атм., должно быть в пределах от 0 до 400")] + public double PressureMax { get; set; } + + /// + /// Перепад давления, атм. + /// + [Range(0.0, 60.0, ErrorMessage = "Перепад давления, атм., должно быть в пределах от 0 до 60")] + public double DifferentialPressure { get; set; } + + /// + /// Затяжка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Затяжка, т., должно быть в пределах от 0 до 20")] + public double Tight { get; set; } + + /// + /// Посадка, т. + /// + [Range(0.0, 20.0, ErrorMessage = "Посадка, т., должно быть в пределах от 0 до 20")] + public double SlackingOff { get; set; } + + /// + /// Максимально допустимый момент, кН*м. + /// + [Range(0.0, 35.0, ErrorMessage = "Максимально допустимый момент, кН*м., должно быть в пределах от 0 до 35")] + public double TorqueMax { get; set; } + + /// + /// Количество расхаживаний, шт. + /// + [Range(0.0, 99.0, ErrorMessage = "Количество расхаживаний, шт., должно быть в пределах от 0 до 99")] + public int RepetitionsCount { get; set; } + + /// + /// Скорость вверх, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вверх, м/ч., должно быть в пределах от 0 до 999")] + public double RopUp { get; set; } + + /// + /// Скорость вниз, м/ч. + /// + [Range(0.0, 999.0, ErrorMessage = "Скорость вниз, м/ч., должно быть в пределах от 0 до 999")] + public double RopDown { get; set; } + + /// + /// Расход вверх, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вверх, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateUp { get; set; } + + /// + /// Расход вниз, л/с. + /// + [Range(0.0, 100.0, ErrorMessage = "Расход вниз, л/с., должно быть в пределах от 0 до 100")] + public double FlowRateDown { get; set; } + + /// + /// Интервал расхаживания, м. + /// + [Range(0.0, 30.0, ErrorMessage = "Интервал расхаживания, м., должно быть в пределах от 0 до 30")] + public double Interval { get; set; } + + /// + /// Остановка над забоем, м. + /// + [Range(0.0, 10.0, ErrorMessage = "Остановка над забоем, м., должно быть в пределах от 0 до 10")] + public double StopPointOffBottom { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs b/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs new file mode 100644 index 00000000..9f59ab06 --- /dev/null +++ b/AsbCloudApp/Data/ProcessMaps/Operations/RotorRpmAccelerationDto.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.ProcessMaps.Operations; + +/// +/// РТК план выход на обороты перед ротором +/// +public class RotorRpmAccelerationDto : ProcessMapPlanBaseDto +{ + /// + /// Зенитный угол, градусы + /// + [Range(0.0, 100.0, ErrorMessage = "Зенитный угол, градусы, должно быть в пределах от 0 до 100")] + public double ZenithAngle { get; set; } + + /// + /// Складывание, м + /// + [Range(0.0, 20.0, ErrorMessage = "Складывание, м., должно быть в пределах от 0 до 20")] + public double Buckling { get; set; } + + /// + /// Примечание + /// + [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")] + public string Note { get; set; } = string.Empty; +} \ No newline at end of file