diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
index 9ca920b9..0b9a2f91 100644
--- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
+++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
@@ -12,6 +12,11 @@ namespace AsbCloudApp.Data.DetectedOperation
///
public int IdWell { get; set; }
+
+ ///
+ /// Id телеметрии
+ ///
+ public int IdTelemetry { get; set; }
///
/// Id названия/описания операции
@@ -34,9 +39,9 @@ namespace AsbCloudApp.Data.DetectedOperation
public DateTime DateEnd { get; set; }
///
- /// Продолжительность операции в минутах
+ /// Продолжительность операции в часах
///
- public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
+ public double DurationHours => (DateEnd - DateStart).TotalHours;
///
/// глубина на начало операции, м
@@ -72,5 +77,10 @@ namespace AsbCloudApp.Data.DetectedOperation
/// Ключевой параметр операции
///
public double Value { get; set; }
+
+ ///
+ /// Флаг включенной подсистемы
+ ///
+ public int EnabledSubsystems { get; set; }
}
}
diff --git a/AsbCloudApp/Data/DetectedOperation/OperationsSummaryDto.cs b/AsbCloudApp/Data/DetectedOperation/OperationsSummaryDto.cs
deleted file mode 100644
index 74fe1e7b..00000000
--- a/AsbCloudApp/Data/DetectedOperation/OperationsSummaryDto.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-namespace AsbCloudApp.Data.DetectedOperation;
-
-///
-/// Статистика по операциям
-///
-public class OperationsSummaryDto
-{
- ///
- /// Id телеметрии
- ///
- public int IdTelemetry { get; set; }
-
- ///
- /// Id названия/описания операции
- ///
- public int IdCategory { get; set; }
-
- ///
- /// Количество операций
- ///
- public int Count { get; set; }
-
- ///
- /// Cумма проходок операций
- ///
- public double SumDepthIntervals { get; set; }
-
- ///
- /// Cумма продолжительностей операций
- ///
- public double SumDurationHours { get; set; }
-
- ///
- /// Флаг включенной подсистемы
- ///
- public int EnabledSubsystems { get; set; }
-}
diff --git a/AsbCloudApp/Requests/DetectedOperationRequest.cs b/AsbCloudApp/Requests/DetectedOperationRequest.cs
index 9bfa22f7..1e38ff7b 100644
--- a/AsbCloudApp/Requests/DetectedOperationRequest.cs
+++ b/AsbCloudApp/Requests/DetectedOperationRequest.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using System.Linq;
namespace AsbCloudApp.Requests
{
@@ -14,31 +15,37 @@ namespace AsbCloudApp.Requests
///
[Required]
public int IdWell { get; set; }
+
+ ///
+ /// Список id телеметрий
+ /// пустой список - нет фильтрации
+ ///
+ public IEnumerable IdsTelemetries { get; set; } = Enumerable.Empty();
///
/// категории операций
///
- public IEnumerable? IdsCategories { get; set; }
+ public IEnumerable IdsCategories { get; set; } = Enumerable.Empty();
///
/// Больше или равно дате
///
- public DateTime? GtDate { get; set; }
+ public DateTimeOffset? GeDateStart { get; set; }
///
/// Меньше или равно дате
///
- public DateTime? LtDate { get; set; }
+ public DateTimeOffset? LeDateEnd { get; set; }
///
/// Больше или равно глубины забоя
///
- public double? GtDepth { get; set; }
+ public double? GeDepth { get; set; }
///
/// Меньше или равно глубины забоя
///
- public double? LtDepth { get; set; }
+ public double? LeDepth { get; set; }
///
/// Фильтр по пользователю панели
diff --git a/AsbCloudApp/Requests/DetectedOperationSummaryRequest.cs b/AsbCloudApp/Requests/DetectedOperationSummaryRequest.cs
deleted file mode 100644
index 2b362f28..00000000
--- a/AsbCloudApp/Requests/DetectedOperationSummaryRequest.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace AsbCloudApp.Requests;
-
-///
-/// Запрос на получение обобщенных данных по операцим
-///
-public class DetectedOperationSummaryRequest
-{
- ///
- /// Список id телеметрий
- /// пустой список - нет фильтрации
- ///
- public IEnumerable IdsTelemetries { get;set;} = Enumerable.Empty();
-
- ///
- /// Список id категорий операций
- /// пустой список - нет фильтрации
- ///
- public IEnumerable IdsOperationCategories { get; set; } = Enumerable.Empty();
-
- ///
- /// Больше или равно даты начала операции
- ///
- public DateTimeOffset? GeDateStart {get;set;}
-
- ///
- /// Меньше или равно даты начала операции
- ///
- public DateTimeOffset? LeDateStart { get; set; }
-
- ///
- /// Меньше или равно даты окончания операции
- ///
- public DateTimeOffset? LeDateEnd { get; set; }
-
- ///
- /// Больше или равно глубины начала операции
- ///
- public double? GeDepthStart { get; set; }
-
- ///
- /// Меньше или равно глубины начала операции
- ///
- public double? LeDepthStart { get; set; }
-
- ///
- /// Меньше или равно глубины окончания операции
- ///
- public double? LeDepthEnd { get; set; }
-}
diff --git a/AsbCloudApp/Services/IDetectedOperationService.cs b/AsbCloudApp/Services/IDetectedOperationService.cs
index 1117d8e3..0ba595ff 100644
--- a/AsbCloudApp/Services/IDetectedOperationService.cs
+++ b/AsbCloudApp/Services/IDetectedOperationService.cs
@@ -37,14 +37,6 @@ namespace AsbCloudApp.Services
///
Task?> GetOperationsAsync(DetectedOperationRequest request, CancellationToken token);
- ///
- /// Получить интервалы глубин по всем скважинам
- ///
- ///
- ///
- /// кортеж - ид телеметрии, интервалы глубины забоя (ротор,слайд)
- Task> GetOperationSummaryAsync(DetectedOperationSummaryRequest request, CancellationToken token);
-
///
/// Удалить операции
///
diff --git a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs
index 99a213d9..78e7f67e 100644
--- a/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs
+++ b/AsbCloudInfrastructure/Services/DailyReport/DailyReportService.cs
@@ -263,8 +263,8 @@ public class DailyReportService : IDailyReportService
{
IdsCategories = new[] { idWellOperationSlipsTime },
IdWell = dailyReport.IdWell,
- GtDate = dailyReport.Date,
- LtDate = dailyReport.Date.AddHours(24)
+ GeDateStart = dailyReport.Date,
+ LeDateEnd = dailyReport.Date.AddHours(24)
}, cancellationToken))?.Stats.Sum(s => s.Count);
dailyReport.TimeBalanceBlock.WellDepth.Fact = factWellOperations
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
index 65b4722c..4b58e235 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
@@ -65,62 +65,6 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
return dtos;
}
- public async Task> GetOperationSummaryAsync(DetectedOperationSummaryRequest request, CancellationToken token)
- {
- var query = db.Set()
- .AsNoTracking();
-
- if (request.IdsTelemetries.Any())
- query = query.Where(operation => request.IdsTelemetries.Contains(operation.IdTelemetry));
-
- if (request.IdsOperationCategories.Any())
- query = query.Where(operation => request.IdsOperationCategories.Contains(operation.IdCategory));
-
- if (request.GeDateStart.HasValue)
- {
- var geDateStart = request.GeDateStart.Value.ToUniversalTime();
- query = query.Where(operation => operation.DateStart >= geDateStart);
- }
-
- if (request.LeDateStart.HasValue)
- {
- var leDateStart = request.LeDateStart.Value.ToUniversalTime();
- query = query.Where(operation => operation.DateStart <= leDateStart);
- }
-
- if (request.LeDateEnd.HasValue)
- {
- var leDateEnd = request.LeDateEnd.Value.ToUniversalTime();
- query = query.Where(operation => operation.DateEnd <= leDateEnd);
- }
-
- if (request.GeDepthStart.HasValue)
- query = query.Where(operation => operation.DepthStart >= request.GeDepthStart.Value);
-
- if (request.LeDepthStart.HasValue)
- query = query.Where(operation => operation.DepthStart <= request.LeDepthStart.Value);
-
- if (request.LeDepthEnd.HasValue)
- query = query.Where(operation => operation.DepthEnd <= request.LeDepthEnd.Value);
-
- var queryGroup = query
- .GroupBy(operation => new { operation.IdTelemetry, operation.IdCategory, operation.EnabledSubsystems })
- .Select(group => new OperationsSummaryDto
- {
- IdTelemetry = group.Key.IdTelemetry,
- IdCategory = group.Key.IdCategory,
- EnabledSubsystems = group.Key.EnabledSubsystems,
- Count = group.Count(),
- SumDepthIntervals = group.Sum(operation => operation.DepthEnd - operation.DepthStart),
- SumDurationHours = group.Sum(operation => (operation.DateEnd - operation.DateStart).TotalHours),
- })
- .OrderBy(summ => summ.IdTelemetry)
- .ThenBy(summ => summ.IdCategory);
-
- var result = await queryGroup.ToArrayAsync(token);
- return result;
- }
-
private static IEnumerable GetOperationsDrillersStat(IEnumerable operations)
{
var groups = operations.GroupBy(o => o.Driller);
@@ -241,20 +185,23 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
if (request is not null)
{
- if (request.IdsCategories?.Any() == true)
+ if (request.IdsTelemetries.Any())
+ query = query.Where(o => request.IdsTelemetries.Contains(o.IdTelemetry));
+
+ if (request.IdsCategories.Any())
query = query.Where(o => request.IdsCategories.Contains(o.IdCategory));
- if (request.GtDate is not null)
- query = query.Where(o => o.DateStart >= request.GtDate.Value.ToUtcDateTimeOffset(well.Timezone.Hours));
+ if (request.GeDateStart is not null)
+ query = query.Where(o => o.DateStart >= request.GeDateStart.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
- if (request.LtDate is not null)
- query = query.Where(o => o.DateEnd <= request.LtDate.Value.ToUtcDateTimeOffset(well.Timezone.Hours));
+ if (request.LeDateEnd is not null)
+ query = query.Where(o => o.DateEnd <= request.LeDateEnd.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
- if (request.GtDepth is not null)
- query = query.Where(o => o.DepthStart >= request.GtDepth);
+ if (request.GeDepth is not null)
+ query = query.Where(o => o.DepthStart >= request.GeDepth);
- if (request.LtDepth is not null)
- query = query.Where(o => o.DepthEnd <= request.LtDepth);
+ if (request.LeDepth is not null)
+ query = query.Where(o => o.DepthEnd <= request.LeDepth);
if (request.EqIdTelemetryUser is not null)
query = query.Where(o => o.IdUsersAtStart == request.EqIdTelemetryUser);