From 8cfccd7671fc612dee5f7eff8df2b71d7399a11f Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Fri, 6 Mar 2026 15:10:30 +1000 Subject: [PATCH] =?UTF-8?q?feat(dal):=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=20LoadBatch?= =?UTF-8?q?Size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Models/UnitFilterServiceOptions.cs | 2 +- .../RobotConfigurationService.cs | 21 ++++++++++++++++++- .../Interfaces/IRobotConfigurationService.cs | 7 +++++++ PARR.EsppSync/SyncService.cs | 1 + PARR.NextRun/NextRunIntervalService.cs | 6 ------ 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs b/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs index 561f0264..72a2b9a6 100644 --- a/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs +++ b/PARR.DAL/DomainServices/UnitFilterService/Models/UnitFilterServiceOptions.cs @@ -2,6 +2,6 @@ { internal class UnitFilterServiceOptions { - public int LoadBatchSize { get; set; } = 1000; + public int LoadBatchSize { get; set; } = 200; } } diff --git a/PARR.DAL/Services/Implementations/RobotConfigurationService.cs b/PARR.DAL/Services/Implementations/RobotConfigurationService.cs index c5630245..17b81ad0 100644 --- a/PARR.DAL/Services/Implementations/RobotConfigurationService.cs +++ b/PARR.DAL/Services/Implementations/RobotConfigurationService.cs @@ -43,9 +43,28 @@ namespace PARR.DAL.Services.Implementations default: break; } - } + + public bool SetUpdateTaskStatusIfAllow(RobotConfiguration configuration) + { + var updatingStatus = TaskStatusEnum.Updating; + + // ставить статус Updating можно только если текущий статус == Ok + if (configuration.TaskStatusCode != (int)TaskStatusEnum.Ok) + { + logger.LogDebug("Нельзя установить статус {newStatus} для конфигурации {configurationId}, так как текущий статус {currentStatus}", updatingStatus, configuration.Id, configuration.TaskStatusCode); + return false; + } + + // Статус ОК, можно ставить Updating + ChangeTaskStatus(updatingStatus, configuration); + logger.LogDebug("Установлен статус {newStatus} для конфигурации {configurationId}", updatingStatus, configuration.Id); + + return true; + } + + public void ChangeRobotStatus(RobotStatusEnum robotStatus, RobotConfiguration configuration) { configuration.RobotStatusCode = (int)robotStatus; diff --git a/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs b/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs index f4b9045e..37eaab54 100644 --- a/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs +++ b/PARR.DAL/Services/Interfaces/IRobotConfigurationService.cs @@ -36,5 +36,12 @@ namespace PARR.DAL.Services.Interfaces /// /// RobotConfiguration GetFromTemplateByRobotCode(RobotsEnum robotsEnum, Template template); + + /// + /// Установить статус задания "Обновить", если разрешено + /// + /// + /// true - если изменил статус, false - нельзя изменить статус + bool SetUpdateTaskStatusIfAllow(RobotConfiguration configuration); } } diff --git a/PARR.EsppSync/SyncService.cs b/PARR.EsppSync/SyncService.cs index 7757e8f3..63ac7379 100644 --- a/PARR.EsppSync/SyncService.cs +++ b/PARR.EsppSync/SyncService.cs @@ -155,6 +155,7 @@ namespace PARR.EsppSync { SetUpdateStatus(ref template, robotConfigurationService, esppObject.Robot); + //todo: инициатор!!! if (!await templateService.CommitAsync()) logger.LogError("Не удалось изменить запись Template {TemplateName}, Robot: {Robot}", template.Name, esppObject.Robot); else diff --git a/PARR.NextRun/NextRunIntervalService.cs b/PARR.NextRun/NextRunIntervalService.cs index beaa4b9e..1eeba62b 100644 --- a/PARR.NextRun/NextRunIntervalService.cs +++ b/PARR.NextRun/NextRunIntervalService.cs @@ -65,12 +65,6 @@ namespace PARR.NextRun { logger.LogInformation("Начинаю обновлять NextRun по расписанию"); - //// обновляем для групп у которых не включено автораспределение - //await UpdateNextRunWithEsppScheduleAsync(templateService, nextRunService, jobGroupService); - - //// для групп у которых включено автораспределение - //await UpdateNextRunWithAutodistributeScheduleAsync(templateService, nextRunService, jobGroupService); - await UpdateNextRunAsync(templateService, nextRunService, jobGroupService); logger.LogInformation($"Завершено обновление полей NextRun.");