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>
|
/// <summary>
|
||||||
/// Описание целевых/нормативных показателей операций
|
/// Описание целевых/нормативных показателей операций
|
||||||
@ -40,5 +42,21 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public double DepthEnd { get; set; }
|
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,
|
res.Count = dtos.GroupBy(o => o.Driller==null?0:o.Driller.Id,
|
||||||
p=>p,
|
p=>p,
|
||||||
(key,gr)=>(key,gr.Count())).ToDictionary(e=>e.key,e=>e.Item2);
|
(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;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user