feat(api): Контроллер по управлению ScheduleEsppId. Получение задания для расписания.
This commit is contained in:
@@ -41,12 +41,16 @@ namespace PARR.API.Controllers.V1
|
||||
//Ищем все задания с превышенным кол-вом попыток и с просроченным временем и ставим им статус ошибки
|
||||
await robotConfigurationService.FindUnfulfilledTaskAndSetRobotErrorStatusAsync(settingsFromDb.RobotAttemptsNumber, settingsFromDb.RobotWaitTime);
|
||||
|
||||
|
||||
var query = robotConfigurationService.Get()
|
||||
.Where(t => t.RobotCode == (int)robotCode && t.TaskStatusCode == (int)taskStatusCode);
|
||||
|
||||
//var query = robotConfigurationService.Get();
|
||||
|
||||
switch (robotCode)
|
||||
{
|
||||
case RobotsEnum.TemplateOrder:
|
||||
// шаблоны
|
||||
query = query.Include(t => t.Template)
|
||||
.ThenInclude(t => t!.Host).ThenInclude(t => t!.ResponseArea)
|
||||
.Include(t => t.Template)
|
||||
@@ -58,6 +62,7 @@ namespace PARR.API.Controllers.V1
|
||||
.AsSplitQuery();
|
||||
break;
|
||||
case RobotsEnum.ScheduleOrder:
|
||||
//расписание
|
||||
// тут не делаем AsSplitQuery, не может подтянуть все таблицы
|
||||
query = query.Include(t => t.Template)
|
||||
.ThenInclude(t => t!.Host).ThenInclude(t => t!.ResponseArea)
|
||||
@@ -65,9 +70,15 @@ namespace PARR.API.Controllers.V1
|
||||
.ThenInclude(t => t!.ApplicationsInWork)
|
||||
.ThenInclude(t => t!.EsppSchValues)
|
||||
.ThenInclude(t => t!.EsppSchTypeConfig)
|
||||
.ThenInclude(t => t!.EsppSchTypeSchedule)
|
||||
;
|
||||
//todo: include
|
||||
.ThenInclude(t => t!.EsppSchTypeSchedule);
|
||||
|
||||
//выбираем только записи с созданными шаблонами (у которых статус 30), а только потом у них ищем расписания
|
||||
// сначала находим шаблоны со статусом 30
|
||||
var createdTemplates = robotConfigurationService.Get()
|
||||
.Where(t => t.RobotCode == (int)RobotsEnum.TemplateOrder && t.TaskStatusCode == (int)TaskStatusEnum.Ok)
|
||||
.Select(t => t.TemplateId);
|
||||
//находим задания с расписанием по списку шаблонов createdTemplates
|
||||
query = query.Where(t => t.RobotCode == (int)RobotsEnum.ScheduleOrder && createdTemplates.Contains(t.TemplateId));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -75,7 +86,7 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
RobotConfiguration? task = null;
|
||||
|
||||
//ищем задание в ожидании, если нашли, выбираем ее
|
||||
//ищем задание в ожидании, если нашли, выбираем его
|
||||
task = await query.FirstOrDefaultAsync(t => t.RobotStatusCode == (int)RobotStatusEnum.Wait);
|
||||
|
||||
if (task == null)
|
||||
@@ -104,7 +115,6 @@ namespace PARR.API.Controllers.V1
|
||||
return Ok(new Response<RobotTaskTemplateResponse>(mapper.Map<RobotTaskTemplateResponse>(task), true));
|
||||
case RobotsEnum.ScheduleOrder:
|
||||
//RobotTaskScheduleResponse
|
||||
//TODO: сделать маппинг!!!
|
||||
return Ok(new Response<RobotTaskScheduleResponse>(mapper.Map<RobotTaskScheduleResponse>(task), true));
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user