feat(api,templateActivator): обновлена логика templateActivator

This commit is contained in:
Mikhail Trubnikov
2025-11-26 14:34:03 +10:00
parent 2823823784
commit 276f534636
19 changed files with 520 additions and 313 deletions

View File

@@ -56,7 +56,7 @@ namespace PARR.API.Controllers.V1
//если успех, изменяем статус задания на успех
if (request.RobotStatusCode == RobotStatusEnum.Complete)
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, ref config);
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, config);
if (!await robotConfigurationService.CommitAsync())
return BadRequest("Ошибка при изменении статуса работы робота.");

View File

@@ -50,25 +50,20 @@ namespace PARR.API.Controllers.V1
/// <summary>
/// Отправить запрос на активацию/деактивацию шаблонов/расписаний
/// </summary>
/// <param name="jobId"></param>
/// <returns></returns>
[HttpPost(ApiRoutes.TemplateActivator.SendRequest)]
public async Task<IActionResult> SendRequest([FromRoute] Guid jobId, [FromBody] TemplateActivatorRequest request)
public async Task<IActionResult> SendRequest([FromBody] TemplateActivatorRequest request)
{
var resultValidate = await validator.ValidateAsync(request);
if (!resultValidate.IsValid)
return BadRequest(new Response(resultValidate.Errors));
var job = await jobService.GetAsync(jobId);
if (job == null)
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { FieldName = nameof(jobId), Message = "Некорректное значение" } }));
var mqRequest = new TemplateActivatorMq
{
JobId = jobId,
Action = request.Action,
Id = request.Id,
EntityType = request.EntityType,
EsppObject = request.EsppObject,
NewState = request.NewState,
HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }
};

View File

@@ -118,6 +118,9 @@ namespace PARR.API.Controllers.V1
[HttpPut(ApiRoutes.Template.ChangeState)]
public async Task<IActionResult> ChangeState([FromRoute] Guid id, [FromBody] TemplateChangeStateRequest request)
{
//TODO:!!! Возможно тут не надо сразу менять, а отправить запрос в TemplateActivator и пусть он сам занимается своей работой!!!
var template = await templateService.GetWithIncludes()
.Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Field)
.Include(t => t.Unit).ThenInclude(t => t!.UnitValues).ThenInclude(t => t.Value)
@@ -135,16 +138,16 @@ namespace PARR.API.Controllers.V1
{
template.IsActiveTemplate = request.IsActiveTemplate;
//необходимо обновить шаблон
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, ref template);
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, template);
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
}
if (template.IsActiveSchedule != request.IsActiveSchedule)
{
template.IsActiveSchedule = request.IsActiveSchedule;
//необходимо обновить расписание
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, ref template);
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, ref config);
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, template);
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
}
if (!await templateService.CommitAsync(new HistoryInitiator { InitiatorComment = "Изменён статус шаблона/расписания", InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }))