fix(core): Исправлена логика выдачи заданий роботам при множественном переименовании

This commit is contained in:
Mikhail Trubnikov
2026-07-30 10:07:56 +10:00
parent 0ab5b49371
commit f10a50edae

View File

@@ -348,10 +348,18 @@ namespace PARR.Core.Services.RobotTask.Implementations
.ToList();
// 2. Создаем словарь для быстрого поиска и логирования: OldName -> StatusTypeId
// Так как OldName не уникален, используем GroupBy, чтобы избежать ArgumentException, при наличии нескольких невалидных задач с одинаковым OldName.
//var invalidOldNamesWithStatus = invalidRenameTasks
// .Where(t => templateIdToOldName.ContainsKey(t.TemplateId))
// .Select(t => new { OldName = templateIdToOldName[t.TemplateId], StatusTypeId = t.Template!.StatusTypeId })
// .ToDictionary(x => x.OldName, x => x.StatusTypeId);
var invalidOldNamesWithStatus = invalidRenameTasks
.Where(t => templateIdToOldName.ContainsKey(t.TemplateId))
.Select(t => new { OldName = templateIdToOldName[t.TemplateId], StatusTypeId = t.Template!.StatusTypeId })
.ToDictionary(x => x.OldName, x => x.StatusTypeId);
.GroupBy(t => templateIdToOldName[t.TemplateId]) // Группируем по OldName
.ToDictionary(
g => g.Key, // Ключ = OldName
g => g.First().Template!.StatusTypeId // Значение = StatusTypeId первой задачи в группе (для лога)
);
// 3. Оставляем для подмены только те задачи, у которых StatusTypeId == Used
var validAllowedTasks = allowedTasks