Fix WorkLimitingParameterCalc sql query

This commit is contained in:
ngfrolov 2023-10-10 11:24:04 +05:00
parent c28315b795
commit 1f79a8f5f7
Signed by: ng.frolov
GPG Key ID: E99907A0357B29A7

View File

@ -7,10 +7,9 @@ using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Collections.Generic; using System.Collections.Generic;
using AsbCloudInfrastructure.Background;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace AsbCloudInfrastructure.Services; namespace AsbCloudInfrastructure.Background;
public class WorkLimitingParameterCalc : Work public class WorkLimitingParameterCalc : Work
{ {
@ -51,7 +50,7 @@ public class WorkLimitingParameterCalc : Work
var i = 0d; var i = 0d;
foreach (var item in telemetryLastDetectedDates) foreach (var item in telemetryLastDetectedDates)
{ {
onProgressCallback($"Start hanling telemetry: {item.IdTelemetry} from {item.LastDate}", i++/count); onProgressCallback($"Start hanling telemetry: {item.IdTelemetry} from {item.LastDate}", i++ / count);
var newLimitingParameters = await GetLimitingParameterAsync(item.IdTelemetry, item.LastDate ?? DateTimeOffset.MinValue, db, token); var newLimitingParameters = await GetLimitingParameterAsync(item.IdTelemetry, item.LastDate ?? DateTimeOffset.MinValue, db, token);
if (newLimitingParameters?.Any() == true) if (newLimitingParameters?.Any() == true)
{ {
@ -73,8 +72,8 @@ public class WorkLimitingParameterCalc : Work
$"lead(id_feed_regulator, 1) over (order by date) as id_feed_regulator_lead " + $"lead(id_feed_regulator, 1) over (order by date) as id_feed_regulator_lead " +
$"from t_telemetry_data_saub " + $"from t_telemetry_data_saub " +
$"where id_feed_regulator is not null " + $"where id_feed_regulator is not null " +
$"and id_telemetry = {idTelemetry}" + $"and id_telemetry = {idTelemetry} " +
$"and date >= '{begin:u}'" + $"and date >= '{begin:u}' " +
$"order by date) as limiting_parameters " + $"order by date) as limiting_parameters " +
$"where id_feed_regulator_lag is null " + $"where id_feed_regulator_lag is null " +
$"or (id_feed_regulator != id_feed_regulator_lag and id_feed_regulator_lead != id_feed_regulator_lag) " + $"or (id_feed_regulator != id_feed_regulator_lag and id_feed_regulator_lead != id_feed_regulator_lag) " +
@ -102,7 +101,8 @@ public class WorkLimitingParameterCalc : Work
if (limitingLast.IdFeedRegulator != idLimiting || limitingLast.DepthStart < wellDepth) if (limitingLast.IdFeedRegulator != idLimiting || limitingLast.DepthStart < wellDepth)
{ {
limitingParameters.Add(new LimitingParameter { limitingParameters.Add(new LimitingParameter
{
IdTelemetry = idTelemetry, IdTelemetry = idTelemetry,
IdFeedRegulator = limitingLast.IdFeedRegulator, IdFeedRegulator = limitingLast.IdFeedRegulator,
DateStart = limitingLast.DateStart, DateStart = limitingLast.DateStart,