Изменение алгоритма выбора подсистемы АКБ

This commit is contained in:
eugeniy_ivanov 2022-09-18 23:25:34 +05:00
parent 174be9b35f
commit c6a49056bd

View File

@ -151,13 +151,12 @@ namespace AsbCloudInfrastructure.Services.Subsystems
var subsystemOperationTime = new List<SubsystemOperationTime>(32);
var prevSubsystem1 = false;
DateTimeOffset? prevDate = null;
if (result.Read())
{
var mode = result.GetFieldValue<short>(1);
var mseState = result.GetFieldValue<short>(3);
//var mseState = result.GetFieldValue<short>(3);
var idSubsystem = GetSubsytemId(mode);
var foundSubsystem = idSubsystem.HasValue;
var dateStart = result.GetFieldValue<DateTimeOffset>(0);
var depthStart = result.GetFieldValue<float>(2);
@ -165,53 +164,32 @@ namespace AsbCloudInfrastructure.Services.Subsystems
{
var dateEnd = result.GetFieldValue<DateTimeOffset>(0);
var depthEnd = result.GetFieldValue<float>(2);
if (idSubsystem.HasValue)
var currentMode = result.GetFieldValue<short>(1);
var currentSubsystemAkb = GetSubsytemId(currentMode);
var endSubsystemAkb = !currentSubsystemAkb.HasValue;
if (foundSubsystem && endSubsystemAkb)
{
if (idSubsystem == 1)
{
prevSubsystem1 = true;
prevDate = dateStart;
}
else
{
prevSubsystem1 = false;
prevDate = null;
}
var operationTimeItem = new SubsystemOperationTime()
{
IdTelemetry = idTelemetry,
IdSubsystem = idSubsystem.Value,
DateStart = (DateTimeOffset)(prevSubsystem1 ? prevDate : dateStart),
DateStart = dateStart,
DateEnd = dateEnd,
DepthStart = depthStart,
DepthEnd = depthEnd
};
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);
foundSubsystem = false;
}
}
mode = result.GetFieldValue<short>(1);
mseState = result.GetFieldValue<short>(3);
idSubsystem = GetSubsytemId(mode);
if (currentSubsystemAkb.HasValue && !foundSubsystem)
{
idSubsystem = currentSubsystemAkb;
dateStart = dateEnd;
foundSubsystem = true;
depthStart = depthEnd;
}
}
}
return subsystemOperationTime;
}