forked from ddrilling/AsbCloudServer
Введение справочника для определения предиката по типу операции
This commit is contained in:
parent
4bc07bc727
commit
e5c1880225
@ -1,4 +1,6 @@
|
||||
namespace AsbCloudApp.Data
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Описание целевых/нормативных показателей операций
|
||||
@ -10,9 +12,9 @@
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Идентификатор скважины
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Идентификатор скважины
|
||||
/// </summary>
|
||||
public int IdWell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@ -40,5 +42,21 @@
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Определение применяемого предикат по типц операции
|
||||
/// </summary>
|
||||
/// <returns>Предикат для использования</returns>
|
||||
public Predicate<double> PredicateTarget
|
||||
{
|
||||
get {
|
||||
return IdOperationCategory switch
|
||||
{
|
||||
1 => (x) => false,
|
||||
11 => (x) => x > TargetValue,
|
||||
_ => (x) => true
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user