feat(api, dal, activator, distributor): RobotConfigurationService - добавлена логика, статус Updating шаблону можно поставить если у него есть ScheduleEsppId.
This commit is contained in:
@@ -225,7 +225,8 @@ namespace PARR.API.Controllers.V1
|
||||
template.IsActiveTemplate = request.IsActiveTemplate;
|
||||
//необходимо обновить шаблон
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, template);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
//robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||
}
|
||||
|
||||
if (template.IsActiveSchedule != request.IsActiveSchedule)
|
||||
@@ -233,7 +234,8 @@ namespace PARR.API.Controllers.V1
|
||||
template.IsActiveSchedule = request.IsActiveSchedule;
|
||||
//необходимо обновить расписание
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, template);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
//robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||
}
|
||||
|
||||
if (!await templateService.CommitAsync(new HistoryInitiator { InitiatorComment = "Изменён статус шаблона/расписания", InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }))
|
||||
|
||||
@@ -58,6 +58,25 @@ namespace PARR.DAL.Services.Implementations
|
||||
return false;
|
||||
}
|
||||
|
||||
// Если хотим поставить Updating у шаблона, можно ставить только в том случае, если у шаблона уже есть ScheduleEsppId
|
||||
if (configuration.RobotCode == (int)RobotsEnum.TemplateOrder)
|
||||
{
|
||||
// есть ли связь у config с templetes, может инклуда нет, мало ли
|
||||
if (configuration.Template == null)
|
||||
{
|
||||
logger.LogWarning("При изменении статуса задания на обновление шаблона, не смог проверить наличае ScheduleEsppId, так как нет Include с Templates. Пропустил эту проверку. configurationId: {configurationId}", configuration.Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (configuration.Template.ScheduleEsppId == null)
|
||||
{
|
||||
logger.LogInformation("Нельзя установить статус {newStatus} для конфигурации {configurationId}, templateId: {templateId}, так как у шаблона отсутсвтует ScheduleEsppId=null",
|
||||
updatingStatus, configuration.Id, configuration.TemplateId);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Статус ОК, можно ставить Updating
|
||||
ChangeTaskStatus(updatingStatus, configuration);
|
||||
logger.LogInformation("Установлен статус {newStatus} для конфигурации {configurationId}, templateId: {templateId}", updatingStatus, configuration.Id, configuration.TemplateId);
|
||||
|
||||
@@ -44,18 +44,24 @@ internal class TemplateActivator : ITemplateActivator
|
||||
{
|
||||
case TemplateActivatorEsppObjectTypesEnum.Template:
|
||||
foreach (var template in templates)
|
||||
{
|
||||
if (template.IsActiveTemplate != query.NewState)
|
||||
{
|
||||
template.IsActiveTemplate = query.NewState;
|
||||
UpdateRobotConfiguration(RobotsEnum.TemplateOrder, template);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case TemplateActivatorEsppObjectTypesEnum.Schedule:
|
||||
foreach (var template in templates)
|
||||
{
|
||||
if (template.IsActiveSchedule != query.NewState)
|
||||
{
|
||||
template.IsActiveSchedule = query.NewState;
|
||||
UpdateRobotConfiguration(RobotsEnum.ScheduleOrder, template);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -118,7 +124,8 @@ internal class TemplateActivator : ITemplateActivator
|
||||
private void UpdateRobotConfiguration(RobotsEnum robotsEnum, Template t)
|
||||
{
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(robotsEnum, t);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
// robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,8 @@ namespace PARR.TemplateDistributor
|
||||
|
||||
// ставим задание роботу - обновить расписания
|
||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, templateDb);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
//robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||
robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||
|
||||
updatedCount++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user