From 91ddd2ae96276be8dc82d8a33dadfb04b711fa39 Mon Sep 17 00:00:00 2001 From: Mikhail Kuznetsov Date: Fri, 27 Jun 2025 13:42:13 +1000 Subject: [PATCH] =?UTF-8?q?fix(API,DAL):=20=D0=92=D0=BE=D1=81=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=BB=D0=B5=D1=80=D0=BE=D0=B2=20RobotTask,=20TemplateAct?= =?UTF-8?q?ivator,=20Template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.API/Contracts/V1/ApiRoutes.cs | 4 +-- .../V1/Requests/Queries/TemplateQuery.cs | 6 ++-- .../V1/Responses/TemplateResponse.cs | 15 +++++++--- .../Controllers/V1/RobotTaskController.cs | 29 +++++++++++++------ .../V1/TemplateActivatorController.cs | 20 ++++++------- PARR.API/Controllers/V1/TemplateController.cs | 21 +++++++++----- .../DomainToResponseProfile.cs | 4 +-- .../Resolvers/RobotTaskScheduleSchResolver.cs | 6 ++-- PARR.BLL/Domain/Mq/TemplateActivatorMq.cs | 2 +- .../EsppSchTypeConfigService.cs | 9 ------ .../Implementations/TemplateService.cs | 5 +++- .../EsppScheduleTransformService.cs | 15 ++-------- 12 files changed, 71 insertions(+), 65 deletions(-) diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs index 03ebe157..656c52f5 100644 --- a/PARR.API/Contracts/V1/ApiRoutes.cs +++ b/PARR.API/Contracts/V1/ApiRoutes.cs @@ -394,9 +394,9 @@ /// public static class TemplateActivator { - public const string SendRequest = Base + "/jobs/" + appInWorkId + "/template-activator"; + public const string SendRequest = Base + "/jobs/" + jobId + "/template-activator"; - public const string appInWorkId = "{applicationInWorkId}"; + public const string jobId = "{jobId}"; } #endregion diff --git a/PARR.API/Contracts/V1/Requests/Queries/TemplateQuery.cs b/PARR.API/Contracts/V1/Requests/Queries/TemplateQuery.cs index 44a9af00..4d62c365 100644 --- a/PARR.API/Contracts/V1/Requests/Queries/TemplateQuery.cs +++ b/PARR.API/Contracts/V1/Requests/Queries/TemplateQuery.cs @@ -8,14 +8,14 @@ //public int? StatusCode { get; set; } /// - /// Поиск по маске. Например: "*-ДВС" + /// Поиск по маске. Например: "ДВС-*" /// public string? Mask { get; set; } /// - /// Поиск по ИД Задания (ApplicationInWorkId) + /// Поиск по ИД Задания (JobGroupId) /// - public Guid? AppInWorkId { get; set; } + public Guid? JobGroupId { get; set; } } } diff --git a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs index cf9f8bc6..d8910576 100644 --- a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs +++ b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs @@ -3,36 +3,43 @@ public class TemplateResponse { public Guid Id { get; set; } + public required string Name { get; set; } + public bool IsActiveTemplate { get; set; } + public bool IsActiveSchedule { get; set; } - public Guid ApplicationInWorkId { get; set; } - public required string Category { get; set; } + public required string Initiator { get; set; } + public required string ClosingCode { get; set; } public required string ShortDescription { get; set; } + public required string FullDescription { get; set; } + public required string Solution { get; set; } + public required string TemplateDuration { get; set; } public TemplateAgentResponse? Agent { get; set; } public DateTimeOffset? LastRun { get; set; } + public DateTimeOffset NextRun { get; set; } public bool IsAutoDistributionEnabled { get; set; } - //public HostTemplateResponse? Host { get; set; } public UnitBaseResponse? Unit { get; set; } public JobBaseResponse? Job { get; set; } - //public WorkResponse? Work { get; set; } public ProcessResponse? Process { get; set; } + public SubprocessResponse? Subprocess { get; set; } + public TnkResponse? Tnk { get; set; } public List? SyncStatus { get; set; } diff --git a/PARR.API/Controllers/V1/RobotTaskController.cs b/PARR.API/Controllers/V1/RobotTaskController.cs index 7cfee3dc..b7081525 100644 --- a/PARR.API/Controllers/V1/RobotTaskController.cs +++ b/PARR.API/Controllers/V1/RobotTaskController.cs @@ -72,10 +72,17 @@ namespace PARR.API.Controllers.V1 // шаблоны query = query.Include(t => t.Template) .ThenInclude(t => t!.Unit) - //.ThenInclude(t => t!.Hosts).ThenInclude(t => t.WorkGroup).ThenInclude(t => t!.ResponseArea) - .Include(t => t.Template) + .ThenInclude(t => t!.UnitValues) + .ThenInclude(t => t.Field) + .Include(t => t.Template) + .ThenInclude(t => t!.Unit) + .ThenInclude(t => t!.UnitValues) + .ThenInclude(t => t.Value) + .Include(t => t.Template) .ThenInclude(a => a!.Job) - //.ThenInclude(w => w!.Work) + .ThenInclude(t => t!.Group) + .Include(t => t.Template) + .ThenInclude(w => w!.Job) .ThenInclude(t => t!.Tnk) .ThenInclude(s => s!.Subprocess) .ThenInclude(p => p!.Process); @@ -84,12 +91,16 @@ namespace PARR.API.Controllers.V1 //расписание // тут не делаем AsSplitQuery, не может подтянуть все таблицы query = query.Include(t => t.Template) - .ThenInclude(t => t!.Unit)//.ThenInclude(t => t!.ResponseArea) - //.ThenInclude(t => t!.Hosts).ThenInclude(t => t.WorkGroup) - .Include(t => t.Template) - .ThenInclude(t => t!.Job) - .ThenInclude(t => t!.Group) - //.ThenInclude(t => t!.ApplicationsInWork) + .ThenInclude(t => t!.Unit) + .ThenInclude(t => t!.UnitValues) + .ThenInclude(t => t.Field) + .Include(t => t.Template) + .ThenInclude(t => t!.Unit) + .ThenInclude(t => t!.UnitValues) + .ThenInclude(t => t.Value) + .Include(t => t.Template) + .ThenInclude(a => a!.Job) + .ThenInclude(t => t!.Group) .ThenInclude(t => t!.EsppSchValues) .ThenInclude(t => t!.EsppSchTypeConfig) .ThenInclude(t => t!.EsppSchTypeSchedule); diff --git a/PARR.API/Controllers/V1/TemplateActivatorController.cs b/PARR.API/Controllers/V1/TemplateActivatorController.cs index 4e385f60..6e3f6407 100644 --- a/PARR.API/Controllers/V1/TemplateActivatorController.cs +++ b/PARR.API/Controllers/V1/TemplateActivatorController.cs @@ -11,7 +11,7 @@ using PARR.BLL.Domain.Mq; using PARR.BLL.Services.Interfaces; using PARR.Common.Domain; using PARR.Constants; -using PARR.DAL.Services.Interfaces; +using PARR.DAL.Services.Interfaces.Job; using System.Text.Json; namespace PARR.API.Controllers.V1 @@ -26,7 +26,7 @@ namespace PARR.API.Controllers.V1 private readonly IMqService mqService; private readonly IUriService uriService; private readonly MqSettings mqSettings; - private readonly IApplicationsInWorkService applicationsInWorkService; + private readonly IJobService jobService; private readonly IClientService clientService; public TemplateActivatorController( @@ -34,7 +34,7 @@ namespace PARR.API.Controllers.V1 IMqService mqService, IUriService uriService, MqSettings mqSettings, - IApplicationsInWorkService applicationsInWorkService, + IJobService jobService, IClientService clientService ) { @@ -42,7 +42,7 @@ namespace PARR.API.Controllers.V1 this.mqService = mqService; this.uriService = uriService; this.mqSettings = mqSettings; - this.applicationsInWorkService = applicationsInWorkService; + this.jobService = jobService; this.clientService = clientService; } @@ -50,24 +50,24 @@ namespace PARR.API.Controllers.V1 /// /// Отправить запрос на активацию/деактивацию шаблонов/расписаний /// - /// + /// /// [HttpPost(ApiRoutes.TemplateActivator.SendRequest)] - public async Task SendRequest([FromRoute] Guid applicationInWorkId, [FromBody] TemplateActivatorRequest request) + public async Task SendRequest([FromRoute] Guid jobId, [FromBody] TemplateActivatorRequest request) { var resultValidate = await validator.ValidateAsync(request); if (!resultValidate.IsValid) return BadRequest(new Response(resultValidate.Errors)); - var appInWork = await applicationsInWorkService.GetAsync(applicationInWorkId); + var job = await jobService.GetAsync(jobId); - if (appInWork == null) - return BadRequest(new Response(false, new List { new ErrorModel { FieldName = nameof(applicationInWorkId), Message = "Некорректное значение" } })); + if (job == null) + return BadRequest(new Response(false, new List { new ErrorModel { FieldName = nameof(jobId), Message = "Некорректное значение" } })); var mqRequest = new TemplateActivatorMq { - ApplicationInWorkId = applicationInWorkId, + JobId = jobId, Action = request.Action, HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api } }; diff --git a/PARR.API/Controllers/V1/TemplateController.cs b/PARR.API/Controllers/V1/TemplateController.cs index 018a9245..85a8e443 100644 --- a/PARR.API/Controllers/V1/TemplateController.cs +++ b/PARR.API/Controllers/V1/TemplateController.cs @@ -28,21 +28,18 @@ namespace PARR.API.Controllers.V1 { private readonly IMapper mapper; private readonly ITemplateService templateService; - private readonly SettingsFromDb settingsFromDb; private readonly IRobotConfigurationService robotConfigurationService; private readonly IClientService clientService; public TemplateController( IMapper mapper, ITemplateService templateService, - SettingsFromDb settingsFromDb, IRobotConfigurationService robotConfigurationService, IClientService clientService ) { this.mapper = mapper; this.templateService = templateService; - this.settingsFromDb = settingsFromDb; this.robotConfigurationService = robotConfigurationService; this.clientService = clientService; } @@ -58,7 +55,9 @@ namespace PARR.API.Controllers.V1 { var paginationFilter = mapper.Map(paginationQuery); - IQueryable