feat(esppScheduleSync): добавлено принудительное обновление шаблона если при синхронизации расписания имена шаблонов в базе и в пришедшем сообщении из ЕСПП отличаются
This commit is contained in:
@@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using PARR.BLL.Helpers;
|
using PARR.BLL.Helpers;
|
||||||
using PARR.BLL.Services.Interfaces;
|
using PARR.BLL.Services.Interfaces;
|
||||||
|
using PARR.Constants;
|
||||||
using PARR.DAL.Contracts;
|
using PARR.DAL.Contracts;
|
||||||
using PARR.DAL.Models;
|
using PARR.DAL.Models;
|
||||||
using PARR.DAL.Services.Interfaces;
|
using PARR.DAL.Services.Interfaces;
|
||||||
@@ -135,6 +136,7 @@ namespace PARR.EsppScheduleSync
|
|||||||
var templateService = scope.ServiceProvider.GetRequiredService<ITemplateService>();
|
var templateService = scope.ServiceProvider.GetRequiredService<ITemplateService>();
|
||||||
|
|
||||||
var candidates = await templateService.Get()
|
var candidates = await templateService.Get()
|
||||||
|
.Include(t => t.RobotConfigurations)
|
||||||
.Where(t => t.Name == templateName || t.ScheduleEsppId == esppScheduleId)
|
.Where(t => t.Name == templateName || t.ScheduleEsppId == esppScheduleId)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
@@ -161,6 +163,29 @@ namespace PARR.EsppScheduleSync
|
|||||||
templateByScheduleId.Name,
|
templateByScheduleId.Name,
|
||||||
templateByScheduleId.Id
|
templateByScheduleId.Id
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Принудительно выставляем статус обновления шаблона, так как имя в ЕСПП изменилось
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var robotConfigurationService = scope.ServiceProvider.GetRequiredService<IRobotConfigurationService>();
|
||||||
|
|
||||||
|
var config = robotConfigurationService.GetFromTemplateByRobotCode(RobotsEnum.TemplateOrder, templateByScheduleId);
|
||||||
|
robotConfigurationService.ChangeTaskStatus(TaskStatusEnum.Updating, config);
|
||||||
|
|
||||||
|
// Сохраняем изменения в базу данных
|
||||||
|
if (!await robotConfigurationService.CommitAsync())
|
||||||
|
{
|
||||||
|
logger.LogError("Не удалось сохранить изменения статуса задачи для шаблона Id='{TemplateId}'", templateByScheduleId.Id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logger.LogDebug($"Для шаблона {nameof(templateByScheduleId.Id)}:{templateByScheduleId.Id} установлен статус {RobotStatusEnum.Wait.ToString()} при обнаружении расхождения имени с ЕСПП");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception updateEx)
|
||||||
|
{
|
||||||
|
logger.LogError(updateEx, "Ошибка при установке статуса обновления для шаблона Id='{TemplateId}'", templateByScheduleId.Id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (templateByName != null)
|
else if (templateByName != null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user