diff --git a/AsbCloudApp/Services/IDetectedOperationService.cs b/AsbCloudApp/Services/IDetectedOperationService.cs
index 14bfbb8a..7076b472 100644
--- a/AsbCloudApp/Services/IDetectedOperationService.cs
+++ b/AsbCloudApp/Services/IDetectedOperationService.cs
@@ -43,11 +43,12 @@ namespace AsbCloudApp.Services
///
/// Получить интервалы глубин по всем скважинам
///
+ /// список ИД телеметрий активных скважин
///
///
///
- /// кортеж - ид телеметрии, интервалы глубины забоя
- Task?> GetDepthIntervalAllOperationsAsync(DateTimeOffset gtDate, DateTimeOffset ltDate, CancellationToken token);
+ /// кортеж - ид телеметрии, интервалы глубины забоя (ротор,слайд)
+ Task?> GetDepthIntervalAllOperationsAsync(IEnumerable telemetryIds,DateTimeOffset gtDate, DateTimeOffset ltDate, CancellationToken token);
///
/// Удалить операции
diff --git a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
index 88fd3cf4..b4032552 100644
--- a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
+++ b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
@@ -55,7 +55,7 @@ namespace AsbCloudApp.Services.Subsystems
///
///
///
- Task?> GetStatByActiveWell(int idCompany, DateTime? gtDate, DateTime? ltDate, CancellationToken token);
+ Task?> GetStatByActiveWells(int idCompany, DateTime? gtDate, DateTime? ltDate, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
index bd11afe6..f163d4c1 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
@@ -82,25 +82,30 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
var schedules = await scheduleService.GetByIdWellAsync(request.IdWell, token);
var dtos = data.Select(o => Convert(o, well, operationValues, schedules));
return dtos;
- }
+ }
-
-
- public async Task?> GetDepthIntervalAllOperationsAsync(DateTimeOffset gtDate, DateTimeOffset ltDate, CancellationToken token)
+ public async Task?> GetDepthIntervalAllOperationsAsync(IEnumerable telemetryIds, DateTimeOffset gtDate, DateTimeOffset ltDate, CancellationToken token)
{
var query = db.Set()
.Include(o => o.OperationCategory)
.Where(o => o.DateStart >= gtDate)
- .Where(o => o.DateEnd <= ltDate);
+ .Where(o => o.DateEnd <= ltDate)
+ .Where(o => telemetryIds.Contains(o.IdTelemetry))
+ .GroupBy(g => g.IdTelemetry)
+ .Select(g => new
+ {
+ IdTelemetry = g.Key,
+ RotorDepthInterval = g.Where(o => o.IdCategory == 1).Sum(o => o.DepthEnd - o.DepthStart),
+ SlideDepthInterval = g.Where(o => o.IdCategory == 3).Sum(o => o.DepthEnd - o.DepthStart)
+ });
var data = await query.ToListAsync(token);
if (data.Any())
{
- var result = data.GroupBy(g => g.IdTelemetry)
- .Select(g =>
+ var result = data.Select(g =>
(
- g.Key,
- g.Where(o => o.IdCategory == 1).Sum(o => o.DepthEnd - o.DepthStart),
- g.Where(o => o.IdCategory == 3).Sum(o => o.DepthEnd - o.DepthStart)
+ g.IdTelemetry,
+ g.RotorDepthInterval,
+ g.SlideDepthInterval
));
return result;
}
diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
index 103adbc8..2ee9ea00 100644
--- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
+++ b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
@@ -198,7 +198,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems
public async Task?> GetStatByActiveWells(int idCompany, DateTime? gtDate, DateTime? ltDate, CancellationToken token)
{
- var activeWell = await GetActiveWellByCompany(idCompany, token);
+ var activeWell = await GetActiveWellsByCompany(idCompany, token);
var telemetryIds = activeWell.Select(w => w.IdTelemetry).Distinct();
var firstWell = activeWell.FirstOrDefault();
if (firstWell == null)
diff --git a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs
index 7790472f..0d832667 100644
--- a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs
+++ b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs
@@ -60,7 +60,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems
var idCompany = User.GetCompanyId();
if (!idCompany.HasValue)
return Forbid();
- var subsystemResult = await subsystemOperationTimeService.GetStatByActiveWell(idCompany.Value, GtDate, LtDate, token);
+ var subsystemResult = await subsystemOperationTimeService.GetStatByActiveWells(idCompany.Value, GtDate, LtDate, token);
return Ok(subsystemResult);
}