fix(templateMatcher): добавлена логика обработки StatusType, обновляем только когнда действительно поменялось состояние. Была ошибка когда Unsed повторно становился Unsed и в конце шаблона опять дописывался UnixTimeSeconds.

This commit is contained in:
Mikhail Kuznetsov
2025-12-16 17:05:26 +10:00
parent 0477637abf
commit 6bd22fa2e0
2 changed files with 13 additions and 9 deletions

View File

@@ -213,14 +213,18 @@ namespace PARR.TemplateMatcher
logger.LogInformation("Шаблон {TemplateId} (UnitId {UnitId}) → деактивация.", template.Id, template.UnitId);
}
bool needsUpdate =
template.StatusTypeId != TemplateStatusTypeEnum.Updating &&
(
template.StatusTypeId != targetStatus ||
template.Name != expectedName ||
template.IsActiveTemplate != targetIsActiveTemplate ||
template.IsActiveSchedule != targetIsActiveSchedule
);
bool needsUpdate = template.StatusTypeId != TemplateStatusTypeEnum.Updating &&
(
// 1. Статус изменился (например, Used → Unused или Unused → Used)
template.StatusTypeId != targetStatus ||
// 2. Для Used — имя должно соответствовать шаблону
(targetStatus == TemplateStatusTypeEnum.Used && template.Name != expectedName) ||
// 3. Флаги изменились (редко, но возможно через AutoControl изменение)
template.IsActiveTemplate != targetIsActiveTemplate ||
template.IsActiveSchedule != targetIsActiveSchedule
);
if (!needsUpdate) continue;