feat(dal,templateMatcher): уточнена логика UnitFilterService, в TemplateMatcher добавлены методы синхронизации и обновлению существующих шаблонов по группе

This commit is contained in:
Mikhail Kuznetsov
2025-12-30 14:27:59 +10:00
parent 0cb8387349
commit ec53638c58
8 changed files with 427 additions and 148 deletions

View File

@@ -1,16 +1,13 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.BLL.Domain.Mq;
using PARR.BLL.Services.Interfaces;
using PARR.Common.Domain;
using PARR.Constants;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Models.Job;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.Services.Interfaces.Job;
using PARR.TemplateMatcher.Services.Interfaces;
using PARR.TemplateMatcher.Settings;
using System.Text.Json;
namespace PARR.TemplateMatcher.Services.Implementations;
@@ -24,20 +21,23 @@ internal class TemplateDeactivator : ITemplateDeactivator
private readonly IJobService jobService;
private readonly ITemplateNameNormalizer namenormalizer;
private readonly ITemplateUpdaterMqSender sender;
private readonly Guid unusedJobId = Guid.Parse("8f85a91c-a223-4686-bb69-1f0ee73624f2");
private readonly SettingsFromDb settingsFromDb;
public TemplateDeactivator(
ILogger<TemplateDeactivator> logger,
ITemplateService templateService,
IJobService jobService,
ITemplateNameNormalizer namenormalizer,
ITemplateUpdaterMqSender sender)
ITemplateUpdaterMqSender sender,
SettingsFromDb settingsFromDb
)
{
this.logger = logger;
this.templateService = templateService;
this.jobService = jobService;
this.namenormalizer = namenormalizer;
this.sender = sender;
this.settingsFromDb = settingsFromDb;
}
public async Task<bool> DeactivateTemplateAsync(Template template, HistoryInitiator initiator)
@@ -68,7 +68,7 @@ internal class TemplateDeactivator : ITemplateDeactivator
.Include(j => j.Tnk)
.Include(j => j.Group)
.ThenInclude(g => g!.GroupType)
.FirstOrDefaultAsync(j => j.Id == unusedJobId);
.FirstOrDefaultAsync(j => j.Id == settingsFromDb.JobIdForUnusedTemplates);
if (unusedJob == null)
{
@@ -84,7 +84,7 @@ internal class TemplateDeactivator : ITemplateDeactivator
TemplateId = template.Id,
JobId = unusedJob.Id,
UnitId = template.UnitId,
Name = expectedName,
Name = expectedName + "_" + DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
IsActiveTemplate = DefaultUnusedTemplateState,
IsActiveSchedule = DefaultUnusedScheduleState,
LastRun = template.LastRun,