From 93f22c5b5b39d5d6054c309946219457709a8c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Fri, 1 Mar 2024 07:59:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=83=D1=81=D0=BB=D0=BE=D0=B2=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetectedOperation/DetectedOperationDto.cs | 8 +------ .../Detectors/DetectorAbstract.cs | 1 - .../Detectors/DetectorSlipsTime.cs | 15 ++++-------- .../Specifications/Удержание в клиньях.md | 6 ++--- .../Detectors/DetectorSlipsTimeTests.cs | 24 ------------------- 5 files changed, 8 insertions(+), 46 deletions(-) diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs index ce433aff..e81a45fb 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs @@ -77,13 +77,7 @@ public class DetectedOperationDto: IId /// [Required] public WellOperationCategoryDto OperationCategory { get; set; } = null!; - - /// - /// Положение долота на момент окончания операции - /// - [Required] - public float BitDepth { get; set; } - + /// /// Ключевой параметр операции /// diff --git a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorAbstract.cs b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorAbstract.cs index ec05be39..559e1dc4 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorAbstract.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorAbstract.cs @@ -114,7 +114,6 @@ namespace AsbCloudInfrastructure.Services.DetectOperations.Detectors DepthStart = (double)pBegin.WellDepth, DepthEnd = (double)pEnd.WellDepth, ExtraData = ExtraData, - BitDepth = pEnd.BitDepth, Value = CalcValue(telemetry, begin, end), EnabledSubsystems = DetectEnabledSubsystems(telemetry, begin, end, ExtraData) }; diff --git a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorSlipsTime.cs b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorSlipsTime.cs index 4d06365a..315583f6 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorSlipsTime.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorSlipsTime.cs @@ -15,6 +15,9 @@ public class DetectorSlipsTime : DetectorAbstract var currentPoint = telemetry[position]; var delta = Math.Abs(currentPoint.WellDepth - currentPoint.BitDepth); + if (currentPoint.BitDepth < 150) + return false; + if (delta < 0.1d) return false; @@ -62,14 +65,6 @@ public class DetectorSlipsTime : DetectorAbstract return (WellOperationCategory.IdSlipsTime, new Dictionary()); } - protected override bool IsValidOperationDetectorResult(OperationDetectorResult operationDetectorResult) - { - if (Math.Abs((operationDetectorResult.Operation.DateStart - operationDetectorResult.Operation.DateEnd).TotalMinutes) > 30) - return false; - - if (operationDetectorResult.Operation.BitDepth <= 150d) - return false; - - return true; - } + protected override bool IsValidOperationDetectorResult(OperationDetectorResult operationDetectorResult) => + Math.Abs((operationDetectorResult.Operation.DateStart - operationDetectorResult.Operation.DateEnd).TotalMinutes) < 30; } \ No newline at end of file diff --git a/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Удержание в клиньях.md b/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Удержание в клиньях.md index eda6b993..c3bcab51 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Удержание в клиньях.md +++ b/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Удержание в клиньях.md @@ -16,14 +16,12 @@ ( движение блока без изменения глубины долота) И ( глубина долота > 150 м); - Признак окончания операции = + Признак окончания операции = ( давление > 20атм) ИЛИ - ( время продолжительности > 30 мин) ИЛИ - ( глубина долота < 150 м) ИЛИ + ( время продолжительности > 30 мин) ИЛИ ( изменение глубины долота) И ( осевая нагрузка < веса на крюке); - ## Ключевой параметр Продолжительность операции. diff --git a/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs b/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs index 947161ac..86c1b3ae 100644 --- a/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs +++ b/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs @@ -60,30 +60,6 @@ public class DetectorSlipsTimeTests Assert.Equal(IdSlipsTime, result.Operation.IdCategory); } - [Fact] - public void ValidateOperation_with_bit_depth_before_150_meters_is_invalid() - { - //arrange - var point0 = telemetryBuilder - .WithBitDepth(149) - .Build(); - - var point1 = telemetryBuilder - .WithBitDepth(149) - .WithBlockPosition(21) - .Build(); - - var telemetries = new[] { point0, point1 }; - - //act - var isDetectOperation = sut.TryDetect(0, telemetries, 0, telemetries.Length - 1, null, out var result); - - //assert - Assert.False(isDetectOperation); - Assert.NotNull(result); - Assert.Equal(IdSlipsTime, result.Operation.IdCategory); - } - [Fact] public void ValidateOperation_with_duration_more_30_minutes_is_invalid() {