feat(dal, esppSync, nextRun): При синхронизации расписаний и шаблонов, при расчете nextRun в NextRunWorker - установить задание на обновление объекта, можно только если объект в статусе Ок. NextRunWorker - рефакторинг.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.Common.Domain;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.DomainServices.Shortcodes;
|
||||
@@ -153,13 +154,21 @@ namespace PARR.EsppSync
|
||||
// пусть даже Create завершился с ошибками, но раз он уже есть в ЕСПП, то изменим на Update, сбросим все счетчики и пусть попробует обновить и исправить все
|
||||
if (config.TaskStatusCode != (int)TaskStatusEnum.Updating)
|
||||
{
|
||||
SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot);
|
||||
//SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot);
|
||||
|
||||
//todo: инициатор!!!
|
||||
if (!await templateService.CommitAsync())
|
||||
logger.LogError("Не удалось изменить запись Template {TemplateName}, Robot: {Robot}", template.Name, esppObject.Robot);
|
||||
var isChangedStatus = robotConfigurationService.SetUpdateTaskStatusIfAllow(config);
|
||||
|
||||
if (isChangedStatus)
|
||||
{
|
||||
if (!await templateService.CommitAsync(GetInitiator()))
|
||||
logger.LogError("Не удалось изменить запись Template {TemplateName}, Robot: {Robot}", template.Name, esppObject.Robot);
|
||||
else
|
||||
logger.LogInformation("Установлен принудительный статус {TaskStatus}, Template {templateName}, Robot: {Robot}", TaskStatusEnum.Updating, template.Name, esppObject.Robot);
|
||||
}
|
||||
else
|
||||
logger.LogInformation("Установлен принудительный статус {TaskStatus}, Template {TemplateName}, Robot: {Robot}", TaskStatusEnum.Updating, template.Name, esppObject.Robot);
|
||||
{
|
||||
logger.LogInformation("Нельзя установить статус Updating для шаблона {templateName}, так как текущий статус это запрещает.", template.Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -178,7 +187,7 @@ namespace PARR.EsppSync
|
||||
if (robotConfig.TaskStatusCode != (int)TaskStatusEnum.Ok)
|
||||
{
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Ok, robotConfig);
|
||||
if (!await templateService.CommitAsync())
|
||||
if (!await templateService.CommitAsync(GetInitiator()))
|
||||
logger.LogError("Не удалось изменить запись Template {TemplateName}, Robot: {Robot}", template.Name, esppObject.Robot);
|
||||
else
|
||||
logger.LogInformation("Установлен принудительный статус {TaskStatus}, Template {TemplateName}, Robot: {Robot}", TaskStatusEnum.Ok, template.Name, esppObject.Robot);
|
||||
@@ -193,6 +202,20 @@ namespace PARR.EsppSync
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Получить инициатора изменений для сохранения в БД
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private IHistoryInitiator GetInitiator()
|
||||
{
|
||||
return new HistoryInitiator
|
||||
{
|
||||
InitiatorComment = "Обновление статуса синхронизации, SyncService.",
|
||||
InitiatorParrComponentId = typeof(EsppObject).Name.Contains("Template") ? ParrComponentsEnum.EsppTemplateSync : ParrComponentsEnum.EsppScheduleSync
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Применяем шорткоды
|
||||
/// </summary>
|
||||
@@ -221,17 +244,17 @@ namespace PARR.EsppSync
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Установить статус - Обновить
|
||||
/// </summary>
|
||||
/// <param name="template"></param>
|
||||
/// <param name="robotConfigurationService"></param>
|
||||
/// <param name="robot"></param>
|
||||
private void SetUpdateStatus(ref Template template, IRobotConfigurationService robotConfigurationService, RobotsEnum robot)
|
||||
{
|
||||
var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, template);
|
||||
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, robotConfig);
|
||||
}
|
||||
///// <summary>
|
||||
///// Установить статус - Обновить
|
||||
///// </summary>
|
||||
///// <param name="template"></param>
|
||||
///// <param name="robotConfigurationService"></param>
|
||||
///// <param name="robot"></param>
|
||||
//private void SetUpdateStatus(ref Template template, IRobotConfigurationService robotConfigurationService, RobotsEnum robot)
|
||||
//{
|
||||
// var robotConfig = robotConfigurationService.GetFromTemplateByRobotCode(robot, template);
|
||||
// robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, robotConfig);
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user