feat(api): Обновил логику получения задания роботом для Расписания (nextRun, lastRun))
This commit is contained in:
@@ -8,6 +8,7 @@ using PARR.API.Controllers.V1.Base;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.TransformServices;
|
||||
|
||||
namespace PARR.API.Controllers.V1
|
||||
{
|
||||
@@ -16,16 +17,19 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IMapper mapper;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IRobotConfigurationService robotConfigurationService;
|
||||
private readonly IEsppScheduleTransformService esppScheduleTransformService;
|
||||
|
||||
public RobotTaskController(
|
||||
IMapper mapper,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IRobotConfigurationService robotConfigurationService
|
||||
IRobotConfigurationService robotConfigurationService,
|
||||
IEsppScheduleTransformService esppScheduleTransformService
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.robotConfigurationService = robotConfigurationService;
|
||||
this.esppScheduleTransformService = esppScheduleTransformService;
|
||||
}
|
||||
|
||||
|
||||
@@ -114,6 +118,9 @@ namespace PARR.API.Controllers.V1
|
||||
//RobotTaskTemplateResponse
|
||||
return Ok(new Response<RobotTaskTemplateResponse>(mapper.Map<RobotTaskTemplateResponse>(task), true));
|
||||
case RobotsEnum.ScheduleOrder:
|
||||
// если был запрос на расписание, проверяем у него nextRun, lastRun, обновляем их
|
||||
await UpdateLastNextRunDate(task);
|
||||
|
||||
//RobotTaskScheduleResponse
|
||||
return Ok(new Response<RobotTaskScheduleResponse>(mapper.Map<RobotTaskScheduleResponse>(task), true));
|
||||
default:
|
||||
@@ -122,5 +129,19 @@ namespace PARR.API.Controllers.V1
|
||||
|
||||
return BadRequest();
|
||||
}
|
||||
|
||||
|
||||
private async Task UpdateLastNextRunDate(RobotConfiguration task)
|
||||
{
|
||||
var appInWorks = task.Template!.ApplicationsInWork!;
|
||||
|
||||
// передаем LastRun, если его нет, то NextRun
|
||||
var nextRun = await esppScheduleTransformService.GetNextDateAsync(task.Template!.ApplicationInWorkId, task.Template.ApplicationsInWork!.LastRun ?? task.Template.ApplicationsInWork.NextRun);
|
||||
|
||||
appInWorks.LastRun = appInWorks.NextRun;
|
||||
appInWorks.NextRun = nextRun;
|
||||
|
||||
await robotConfigurationService.CommitAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace PARR.API.Controllers.V1
|
||||
/// <summary>
|
||||
/// Изменить статус у шаблона по ИД (активировать/деактивировать)
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="id">ИД шаблона</param>
|
||||
/// <returns></returns>
|
||||
[HttpPut(ApiRoutes.Template.ChangeState)]
|
||||
public async Task<IActionResult> ChangeState([FromRoute] Guid id, [FromBody] TemplateChangeStateRequest request)
|
||||
|
||||
Reference in New Issue
Block a user