correction CalcStatAsync

This commit is contained in:
eugeniy_ivanov 2022-09-21 15:06:47 +05:00
parent 6d4cfabc9a
commit 5672e0b149

View File

@ -1,4 +1,5 @@
using AsbCloudApp.Data; using AsbCloudApp.Data;
using AsbCloudApp.Data.DetectedOperation;
using AsbCloudApp.Data.Subsystems; using AsbCloudApp.Data.Subsystems;
using AsbCloudApp.Requests; using AsbCloudApp.Requests;
using AsbCloudApp.Services; using AsbCloudApp.Services;
@ -113,17 +114,23 @@ namespace AsbCloudInfrastructure.Services.Subsystems
{ {
var groupedDataSubsystems = dtos var groupedDataSubsystems = dtos
.GroupBy(o => o.IdSubsystem); .GroupBy(o => o.IdSubsystem);
//var _detectOperations = await detectedOperationService.GetAsync(, token);
var detectedOperationsRequest = new DetectedOperationRequest()
{
IdWell = request.IdWell,
IdsCategories = new List<int>() {
1,3
},
LtDate = request.LtDate,
GtDate = request.GtDate,
};
var detectedOperations = await detectedOperationService.GetAsync(detectedOperationsRequest, token);
var periodGroupTotal = dtos.Sum(o => (o.DateEnd - o.DateStart).TotalHours); var periodGroupTotal = dtos.Sum(o => (o.DateEnd - o.DateStart).TotalHours);
var gtDate = request.GtDate ?? dtos.Min(o => o.DateStart); var gtDate = request.GtDate ?? dtos.Min(o => o.DateStart);
var ltDate = request.LtDate ?? dtos.Max(o => o.DateEnd); var ltDate = request.LtDate ?? dtos.Max(o => o.DateEnd);
var detectedOperations = db.DetectedOperations
.Where(a => a.DateStart >= gtDate & a.DateEnd <= ltDate)
.ToList();
var periodRequest = (ltDate - gtDate).TotalHours; var periodRequest = (ltDate - gtDate).TotalHours;
@ -131,7 +138,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems
{ {
var periodGroup = g.Sum(o => (o.DateEnd - o.DateStart).TotalHours); var periodGroup = g.Sum(o => (o.DateEnd - o.DateStart).TotalHours);
var periodGroupDepth = g.Sum(o => o.DepthEnd - o.DepthStart); var periodGroupDepth = g.Sum(o => o.DepthEnd - o.DepthStart);
var depthInterval = GetDepthInterval(g.Key, detectedOperations); var depthInterval = GetDepthInterval(g.Key, detectedOperations.Operations);
var subsystemStat = new SubsystemStatDto() var subsystemStat = new SubsystemStatDto()
{ {
IdSubsystem = g.Key, IdSubsystem = g.Key,
@ -146,9 +153,11 @@ namespace AsbCloudInfrastructure.Services.Subsystems
return result; return result;
} }
private double GetDepthInterval (int idSubsystem, List<DetectedOperation> detectedOperations) private double GetDepthInterval (int idSubsystem, IEnumerable<DetectedOperationDto>? detectedOperations)
{ {
var depthIntervalRotor = detectedOperations.Where(o => o.IdCategory == 3) if (detectedOperations is null)
return 0;
var depthIntervalRotor = detectedOperations.Where(o => o.IdCategory == 1)
.Sum(o => o.DepthEnd - o.DepthStart); .Sum(o => o.DepthEnd - o.DepthStart);
var depthIntervalSlide = detectedOperations.Where(o => o.IdCategory == 3) var depthIntervalSlide = detectedOperations.Where(o => o.IdCategory == 3)
.Sum(o => o.DepthEnd - o.DepthStart); .Sum(o => o.DepthEnd - o.DepthStart);
@ -157,12 +166,12 @@ namespace AsbCloudInfrastructure.Services.Subsystems
{ {
return depthIntervalRotor + depthIntervalSlide; return depthIntervalRotor + depthIntervalSlide;
} }
//Slide //Spin
if (idSubsystem == 65536) if (idSubsystem == 65536)
{ {
return depthIntervalSlide; return depthIntervalSlide;
} }
//Rotor //Torque
if (idSubsystem == 65537) if (idSubsystem == 65537)
{ {
return depthIntervalRotor; return depthIntervalRotor;