feat(esppScheduleSync): добавлено принудительное обновление шаблона если при синхронизации расписания имена шаблонов в базе и в пришедшем сообщении из ЕСПП отличаются

This commit is contained in:
Mikhail Kuznetsov
2026-02-03 12:08:26 +10:00
parent bd4c9508c9
commit e7881aab91

View File

@@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using PARR.BLL.Helpers;
using PARR.BLL.Services.Interfaces;
using PARR.Constants;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
@@ -135,6 +136,7 @@ namespace PARR.EsppScheduleSync
var templateService = scope.ServiceProvider.GetRequiredService<ITemplateService>();
var candidates = await templateService.Get()
.Include(t => t.RobotConfigurations)
.Where(t => t.Name == templateName || t.ScheduleEsppId == esppScheduleId)
.ToListAsync();
@@ -161,6 +163,29 @@ namespace PARR.EsppScheduleSync
templateByScheduleId.Name,
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)
{