feat(dal,api,nextRunWorker): подключена логика NextRunServiceV2 в nextRunWorker, в api RobotTaskController

This commit is contained in:
Mikhail Trubnikov
2026-02-16 16:54:06 +10:00
parent 62dcf80aa3
commit 35f64c051c
10 changed files with 117 additions and 112 deletions

View File

@@ -43,10 +43,10 @@ namespace PARR.NextRun
//var esppSchService = scope.ServiceProvider.GetService<IEsppScheduleTransformService>();
var templateService = scope.ServiceProvider.GetService<ITemplateService>();
var jobGroupService = scope.ServiceProvider.GetService<IJobGroupService>();
var nextRunService = scope.ServiceProvider.GetService<INextRunService>();
var nextRunService = scope.ServiceProvider.GetService<INextRunServiceV2>();
if (templateService == null || nextRunService == null || jobGroupService == null)
throw new Exception($"Не смог получить серивс {nameof(ITemplateService)} или {nameof(INextRunService)} или {nameof(IJobGroupService)}");
throw new Exception($"Не смог получить серивс {nameof(ITemplateService)} или {nameof(INextRunServiceV2)} или {nameof(IJobGroupService)}");
await HandlerAsync(templateService, nextRunService, jobGroupService);
}
@@ -58,7 +58,7 @@ namespace PARR.NextRun
/// Рассчет следующей даты срабатываения
/// </summary>
/// <returns></returns>
private async Task HandlerAsync(ITemplateService templateService, INextRunService nextRunService, IJobGroupService jobGroupService)
private async Task HandlerAsync(ITemplateService templateService, INextRunServiceV2 nextRunService, IJobGroupService jobGroupService)
{
logger.LogInformation("Начинаю обновлять NextRun по расписанию");
@@ -74,7 +74,7 @@ namespace PARR.NextRun
}
private async Task UpdateNextRunAsync(ITemplateService templateService, INextRunService nextRunService, IJobGroupService jobGroupService)
private async Task UpdateNextRunAsync(ITemplateService templateService, INextRunServiceV2 nextRunService, IJobGroupService jobGroupService)
{
// выбираем все шаблоны с просроченным nextRun в статусе Used
@@ -94,8 +94,15 @@ namespace PARR.NextRun
{
var newNextRun = await nextRunService.GetNextRunForTemplateAsync(template.Id, false);
template.LastRun = template.NextRun;
template.NextRun = newNextRun;
if (newNextRun.HasValue)
{
template.LastRun = template.NextRun;
template.NextRun = newNextRun.Value;
}
else
{
logger.LogError("При расчете nextRun для шаблона {templateId}, '{templateName}', nextRun=null. Это значит что при расчете возникла ошибка.", template.Id, template.Name);
}
}
if (await templateService.CommitAsync(new HistoryInitiator { InitiatorComment = "Обновлён NextRun", InitiatorParrComponentId = ParrComponentsEnum.NextRun }))
@@ -153,7 +160,7 @@ namespace PARR.NextRun
}
//// выбираем шаблоны которые не учавствуют в автораспределении
//// и у которых Used
//// затем группируем по GroupId, так как nextRun и расписание настраивается для группы, то для всех дочерних шаблонов, nextRun будет одинаковым
@@ -200,7 +207,7 @@ namespace PARR.NextRun
// logger.LogError($"Ошибка при обновлении значений полей NextRun: {nextRun}, для шаблонов {templatesToUpdate.Count} шт., группы {group.Id} с выключенным автораспределением, refDate: {group.ReferenceDate} ");
// }
//}
}