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() {