diff --git a/AsbCloudInfrastructure/Services/Subsystems/Interpolation.cs b/AsbCloudInfrastructure/Services/Subsystems/Interpolation.cs index 56601561..cf87da98 100644 --- a/AsbCloudInfrastructure/Services/Subsystems/Interpolation.cs +++ b/AsbCloudInfrastructure/Services/Subsystems/Interpolation.cs @@ -8,7 +8,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems.Utils internal class Interpolation { private IEnumerator<(DateTimeOffset dateMin, float? depthMin, DateTimeOffset dateMax, float? depthMax)> enumerator; - (DateTimeOffset dateMin, float? depthMin, DateTimeOffset dateMax, float? depthMax) lastValue = default; + (DateTimeOffset x, float? y) lastValue = default; public Interpolation(IOrderedEnumerable<(DateTimeOffset dateMin, float? depthMin, DateTimeOffset dateMax, float? depthMax)> collection) { @@ -17,18 +17,19 @@ namespace AsbCloudInfrastructure.Services.Subsystems.Utils } public float GetDepth(DateTimeOffset date) - { - if (lastValue.depthMin is not null && - lastValue.depthMax is not null) + { { - while (date > enumerator.Current.dateMax) + while (date >= enumerator.Current.dateMax) { if (isLess(date)) - CalcValue(enumerator.Current, date.Second); + { + lastValue.x = date; + lastValue.y = CalcValue(enumerator.Current, date.Second); + } enumerator.MoveNext(); } } - return (float)lastValue.depthMin; + return (float)lastValue.y; } private bool isLess(DateTimeOffset date) diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs index fc63e795..b2cf39fc 100644 --- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs +++ b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs @@ -265,7 +265,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems " max(well_depth) as max_well_depth " + "from " + " t_telemetry_data_saub " + - "where id_telemetry = @idTelemetry and \"date\" > @begin " + + "where id_telemetry = @idTelemetry and \"date\" >= @begin " + "group by ceil(well_depth * 10) " + "order by min_date; ";