feat(api): задания роботам выдаются сначала для активных шаблонов, потом сортируется по NextRun и берется ближайшее

This commit is contained in:
Mikhail Trubnikov
2025-12-30 14:12:49 +10:00
parent 469fa56f9e
commit 867ecda201

View File

@@ -129,7 +129,7 @@ namespace PARR.API.Controllers.V1
.ThenInclude(t => t.ScheduleExcludeTypeCalendar)
.Include(t => t.Template)
.ThenInclude(t => t!.Job)
.ThenInclude(t=>t!.Tnk)
.ThenInclude(t => t!.Tnk)
.Include(t => t.Template)
.ThenInclude(t => t!.UnitsInTemplate);
@@ -138,16 +138,21 @@ namespace PARR.API.Controllers.V1
.Where(t => t.RobotCode == (int)RobotsEnum.TemplateOrder && (t.TaskStatusCode == (int)TaskStatusEnum.Ok))
.Select(t => t.TemplateId);
query = query.Where(t => t.RobotCode == (int)RobotsEnum.ScheduleOrder && createdTemplates.Contains(t.TemplateId));
// query = query.Where(t => t.RobotCode == (int)RobotsEnum.ScheduleOrder && t.TemplateId==Guid.Parse("7cb7c3be-506d-40e0-a63f-4554edb52459"));
// query = query.Where(t => t.RobotCode == (int)RobotsEnum.ScheduleOrder && t.TemplateId==Guid.Parse("7cb7c3be-506d-40e0-a63f-4554edb52459"));
break;
default:
break;
}
#region old
// сортируем по NextRun, чтобы те у которых дата след срабатывания ближе к текущей, выполнились скорее
//query = query.Where(t => t.Template.Job.GroupId == Guid.Parse("8a75030e-d2dc-4006-a773-002db36ebe27"));
query = query.OrderBy(t => t.Template!.NextRun);
//query = query.OrderBy(t => t.Template!.NextRun);
#endregion
// Сортируем сначала по StatusTypeId, т е те что used, будут первыми, потом сортируем по NextRun, чтобы ближайшие даты выполнились скорее
query = query.OrderBy(t => t.Template!.StatusTypeId).ThenBy(t => t.Template!.NextRun);
RobotConfiguration? task = null;