Изменение логики фонового сервиса - идентификация MSE

This commit is contained in:
eugeniy_ivanov 2022-09-16 13:47:19 +05:00
parent eb987c6ff2
commit 42be246c4b

View File

@ -108,15 +108,21 @@ namespace AsbCloudInfrastructure.Services.Subsystems
} }
private static async Task<IEnumerable<SubsystemOperationTime>> OperationTimeSaubAsync(int idTelemetry, DateTimeOffset begin, IAsbCloudDbContext db, CancellationToken token) private static async Task<IEnumerable<SubsystemOperationTime>> OperationTimeSaubAsync(int idTelemetry, DateTimeOffset begin, IAsbCloudDbContext db, CancellationToken token)
{ {
static int? GetSubsytemId(short mode, short state) static int? GetSubsytemId(short mode)
{ {
if (mode == 1 | mode == 3) if (mode == 1 | mode == 3)
return 1; return 1;
if ((state & 1) > 0)
return 2;
return null; return null;
} }
static bool IsSubsystemMse(short state)
{
if ((state & 1) > 0)
return true;
return false;
}
var query = var query =
$"select tt.date, tt.mode, tt.well_depth, tt.mse_state " + $"select tt.date, tt.mode, tt.well_depth, tt.mse_state " +
$"from ( " + $"from ( " +
@ -151,7 +157,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems
{ {
var mode = result.GetFieldValue<short>(1); var mode = result.GetFieldValue<short>(1);
var mseState = result.GetFieldValue<short>(3); var mseState = result.GetFieldValue<short>(3);
var idSubsystem = GetSubsytemId(mode, mseState); var idSubsystem = GetSubsytemId(mode);
var dateStart = result.GetFieldValue<DateTimeOffset>(0); var dateStart = result.GetFieldValue<DateTimeOffset>(0);
var depthStart = result.GetFieldValue<float>(2); var depthStart = result.GetFieldValue<float>(2);
@ -183,13 +189,25 @@ namespace AsbCloudInfrastructure.Services.Subsystems
DepthEnd = depthEnd DepthEnd = depthEnd
}; };
subsystemOperationTime.Add(operationTimeItem); subsystemOperationTime.Add(operationTimeItem);
if (IsSubsystemMse(mseState))
{
var operationTimeItemMse = new SubsystemOperationTime()
{
IdTelemetry = idTelemetry,
IdSubsystem = 2,
DateStart = (DateTimeOffset)(prevSubsystem1 ? prevDate : dateStart),
DateEnd = dateEnd,
DepthStart = depthStart,
DepthEnd = depthEnd
};
subsystemOperationTime.Add(operationTimeItemMse);
}
} }
mode = result.GetFieldValue<short>(1); mode = result.GetFieldValue<short>(1);
mseState = result.GetFieldValue<short>(3); mseState = result.GetFieldValue<short>(3);
idSubsystem = GetSubsytemId(mode, mseState); idSubsystem = GetSubsytemId(mode);
dateStart = dateEnd; dateStart = dateEnd;
depthStart = depthEnd; depthStart = depthEnd;
} }