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;
|
template.IsActiveTemplate = request.IsActiveTemplate;
|
||||||
//необходимо обновить шаблон
|
//необходимо обновить шаблон
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, template);
|
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)
|
if (template.IsActiveSchedule != request.IsActiveSchedule)
|
||||||
@@ -233,7 +234,8 @@ namespace PARR.API.Controllers.V1
|
|||||||
template.IsActiveSchedule = request.IsActiveSchedule;
|
template.IsActiveSchedule = request.IsActiveSchedule;
|
||||||
//необходимо обновить расписание
|
//необходимо обновить расписание
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, template);
|
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 }))
|
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;
|
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
|
// Статус ОК, можно ставить Updating
|
||||||
ChangeTaskStatus(updatingStatus, configuration);
|
ChangeTaskStatus(updatingStatus, configuration);
|
||||||
logger.LogInformation("Установлен статус {newStatus} для конфигурации {configurationId}, templateId: {templateId}", updatingStatus, configuration.Id, configuration.TemplateId);
|
logger.LogInformation("Установлен статус {newStatus} для конфигурации {configurationId}, templateId: {templateId}", updatingStatus, configuration.Id, configuration.TemplateId);
|
||||||
|
|||||||
@@ -45,16 +45,22 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
case TemplateActivatorEsppObjectTypesEnum.Template:
|
case TemplateActivatorEsppObjectTypesEnum.Template:
|
||||||
foreach (var template in templates)
|
foreach (var template in templates)
|
||||||
{
|
{
|
||||||
template.IsActiveTemplate = query.NewState;
|
if (template.IsActiveTemplate != query.NewState)
|
||||||
UpdateRobotConfiguration(RobotsEnum.TemplateOrder, template);
|
{
|
||||||
|
template.IsActiveTemplate = query.NewState;
|
||||||
|
UpdateRobotConfiguration(RobotsEnum.TemplateOrder, template);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TemplateActivatorEsppObjectTypesEnum.Schedule:
|
case TemplateActivatorEsppObjectTypesEnum.Schedule:
|
||||||
foreach (var template in templates)
|
foreach (var template in templates)
|
||||||
{
|
{
|
||||||
template.IsActiveSchedule = query.NewState;
|
if (template.IsActiveSchedule != query.NewState)
|
||||||
UpdateRobotConfiguration(RobotsEnum.ScheduleOrder, template);
|
{
|
||||||
|
template.IsActiveSchedule = query.NewState;
|
||||||
|
UpdateRobotConfiguration(RobotsEnum.ScheduleOrder, template);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -118,7 +124,8 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
private void UpdateRobotConfiguration(RobotsEnum robotsEnum, Template t)
|
private void UpdateRobotConfiguration(RobotsEnum robotsEnum, Template t)
|
||||||
{
|
{
|
||||||
var config = robotConfigurationService.GetFromTemplateByRobotCode(robotsEnum, 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);
|
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.ScheduleOrder, templateDb);
|
||||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
//robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||||
|
robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||||
|
|
||||||
updatedCount++;
|
updatedCount++;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user