From e5c188022595c24ed4c76e07e9bc96555b6cfdac Mon Sep 17 00:00:00 2001 From: Lyudmila Romanova Date: Fri, 10 Jun 2022 14:04:03 +0500 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=D0=BA=D0=B0=D1=82=D0=B0=20=D0=BF=D0=BE=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=D1=83=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/OperationValueDto.cs | 26 ++++++++++++++++--- .../DetectedOperationService.cs | 13 +++++++++- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/AsbCloudApp/Data/OperationValueDto.cs b/AsbCloudApp/Data/OperationValueDto.cs index e235272b..8e82339b 100644 --- a/AsbCloudApp/Data/OperationValueDto.cs +++ b/AsbCloudApp/Data/OperationValueDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System; + +namespace AsbCloudApp.Data { /// /// Описание целевых/нормативных показателей операций @@ -10,9 +12,9 @@ /// public int Id { get; set; } - /// - /// Идентификатор скважины - /// + /// + /// Идентификатор скважины + /// public int IdWell { get; set; } /// @@ -40,5 +42,21 @@ /// public double DepthEnd { get; set; } + /// + /// Определение применяемого предикат по типц операции + /// + /// Предикат для использования + public Predicate PredicateTarget + { + get { + return IdOperationCategory switch + { + 1 => (x) => false, + 11 => (x) => x > TargetValue, + _ => (x) => true + }; + } + } + } } diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index e293ae99..2cb4a316 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -55,7 +55,18 @@ namespace AsbCloudInfrastructure.Services.DetectOperations res.Count = dtos.GroupBy(o => o.Driller==null?0:o.Driller.Id, p=>p, (key,gr)=>(key,gr.Count())).ToDictionary(e=>e.key,e=>e.Item2); - //res.test = g; + + res.Average = dtos.GroupBy(o => o.Driller == null ? 0 : o.Driller.Id, + p => p, + (key, gr) => (key, + gr.Sum(o => o.OperationValue?.TargetValue??0)/ gr.Count() + )).ToDictionary(e => e.key, e => e.Item2); + + //res.Efficiency = dtos.GroupBy(o => o.Driller == null ? 0 : o.Driller.Id, + // p => p, + // (key, gr) => (key, + // 100*gr.Where(i=>i.OperationValue.PredicateTarget(5)).Sum(o => o.OperationValue?.TargetValue ?? 0) / gr.Count() + // )).ToDictionary(e => e.key, e => e.Item2); return res; }