diff --git a/AsbCloudApp/Requests/TelemetryRequest.cs b/AsbCloudApp/Requests/TelemetryRequest.cs
index 732d8075..e8f88a90 100644
--- a/AsbCloudApp/Requests/TelemetryRequest.cs
+++ b/AsbCloudApp/Requests/TelemetryRequest.cs
@@ -56,4 +56,13 @@ public class TelemetryDataRequest
[Range(1, MaxTake)]
public int Take { get; set; } = 1024;
+ ///
+ /// Больше или равно высоте талевого блока
+ ///
+ public double? GeBlockPosition { get; set; }
+
+ ///
+ /// Меньше или равно высоте талевого блока
+ ///
+ public double? LeBlockPosition { get; set; }
}
diff --git a/AsbCloudApp/Services/ITelemetryDataSaubService.cs b/AsbCloudApp/Services/ITelemetryDataSaubService.cs
index f684b3d6..da32ef50 100644
--- a/AsbCloudApp/Services/ITelemetryDataSaubService.cs
+++ b/AsbCloudApp/Services/ITelemetryDataSaubService.cs
@@ -45,12 +45,5 @@ namespace AsbCloudApp.Services
///
///
Task GetZippedCsv(int idWell, DateTime beginDate, DateTime endDate, CancellationToken token);
-
- ///
- /// Получение диапозона дат телеметрий
- ///
- ///
- ///
- Task> GetDateRangesAsync(CancellationToken token);
}
}
\ No newline at end of file
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
index cb569515..d00be734 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data;
+using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
@@ -15,7 +16,7 @@ namespace AsbCloudInfrastructure.Services.DetectOperations;
public class WorkOperationDetection : Work
{
- private static readonly IDictionary CacheOfStartDatesByTelemetryId = new Dictionary();
+ private static readonly IDictionary CacheOfStartDatesByTelemetryId = new Dictionary();
public WorkOperationDetection()
: base("Operation detection")
@@ -37,28 +38,28 @@ public class WorkOperationDetection : Work
var telemetryRepository = services.GetRequiredService>();
var detectedOperationRepository = services.GetRequiredService();
var detectedOperationService = services.GetRequiredService();
- var telemetryDataSaubService = services.GetRequiredService();
+ var telemetryDataCache = services.GetRequiredService>();
var idsTelemetry = (await telemetryRepository.GetAllAsync(token))
.Select(t => t.Id)
.ToArray();
- var telemetriesDateRanges = await telemetryDataSaubService.GetDateRangesAsync(token);
-
var lastDetectedOperations = await detectedOperationRepository.GetLastDetectedOperationsAsync(token);
for (int i = 0; i < idsTelemetry.Length; i++)
{
var idTelemetry = idsTelemetry[i];
- if (!telemetriesDateRanges.TryGetValue(idTelemetry, out var telemetryDateRange))
+ var telemetryDateRange = telemetryDataCache.GetOrDefaultWellDataDateRange(idTelemetry);
+
+ if(telemetryDateRange == null)
continue;
- var dateBegin = telemetryDateRange.From.DateTime;
- var dateEnd = telemetryDateRange.To.DateTime;
-
+ var dateBegin = telemetryDateRange.From;
+ var dateEnd = telemetryDateRange.To;
+
if (lastDetectedOperations.TryGetValue(idTelemetry, out var lastDetectedOperation))
- dateBegin = lastDetectedOperation.DateEnd.UtcDateTime;
+ dateBegin = lastDetectedOperation.DateEnd;
if (CacheOfStartDatesByTelemetryId.TryGetValue(idTelemetry, out var dateBeginFromCahce))
dateBegin = dateBeginFromCahce;
@@ -80,7 +81,7 @@ public class WorkOperationDetection : Work
var detectedOperations =
await detectedOperationService.DetectOperationsAsync(idTelemetry, request, lastDetectedOperation, token);
- dateBegin = detectedOperations.LastDate.UtcDateTime;
+ dateBegin = detectedOperations.LastDate;
CacheOfStartDatesByTelemetryId[idTelemetry] = dateBegin;
diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs
index f80ccaa7..da0a9486 100644
--- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs
+++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataCache.cs
@@ -152,9 +152,9 @@ public class TelemetryDataCache : ITelemetryDataCache where TDto : A
if (cacheItem.LastData.Count == 0)
return null;
-
- var to = FromDate(cacheItem.FirstByDate.DateTime, cacheItem.TimezoneOffset);
- var from = FromDate(cacheItem.LastData[^1].DateTime, cacheItem.TimezoneOffset);
+
+ var to = FromDate(cacheItem.LastData[^1].DateTime, cacheItem.TimezoneOffset);
+ var from = FromDate(cacheItem.FirstByDate.DateTime, cacheItem.TimezoneOffset);
return new DatesRangeDto { From = from, To = to };
}
diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs
index c66cd984..8541caee 100644
--- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs
+++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs
@@ -177,22 +177,6 @@ public class TelemetryDataSaubService : TelemetryDataBaseService> GetDateRangesAsync(CancellationToken token)
- {
- return await db.Set().GroupBy(x => x.IdTelemetry)
- .Select(g => new
- {
- IdTelemetry = g.Key,
- From = g.Min(x => x.DateTime),
- To = g.Max(x => x.DateTime)
- })
- .ToDictionaryAsync(x => x.IdTelemetry, x => new DatesRangeDto
- {
- From = x.From,
- To = x.To
- }, token);
- }
-
protected override IQueryable BuildQuery(int idTelemetry, TelemetryDataRequest request)
{
var query = base.BuildQuery(idTelemetry, request);