feat(api): Новый контроллер JobUnitPreview, для получения предпросмотра затрагиваемых ЭК работой

This commit is contained in:
Mikhail Kuznetsov
2025-09-24 10:08:50 +10:00
parent 6034b137d2
commit 09f0f1e063
9 changed files with 130 additions and 62 deletions

View File

@@ -30,7 +30,7 @@ namespace PARR.DAL.DomainServices.Implementations
}
public async Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Guid jobId)
public async Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Guid jobId, int? takeCount = null)
{
var job = await jobService
@@ -45,11 +45,11 @@ namespace PARR.DAL.DomainServices.Implementations
if (job == null)
return null;
return await GetUnitsIdByJobFilterAsync(job);
return await GetUnitsIdByJobFilterAsync(job, takeCount);
}
public async Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Job job)
public async Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Job job, int? takeCount = null)
{
var result = new List<Guid>();
@@ -112,6 +112,10 @@ namespace PARR.DAL.DomainServices.Implementations
else
query = query.Where(t => t.ChildUnits.Count() >= job.MinValueRelationships && t.ChildUnits.Count() <= job.MaxValueRelationships);
}
if (takeCount.HasValue)
query = query.Take(takeCount.Value);
var newUnits = await query.Select(t => t.Id).ToListAsync();
result.AddRange(newUnits);
}
@@ -121,9 +125,9 @@ namespace PARR.DAL.DomainServices.Implementations
public async Task<IEnumerable<Guid>?> GetUnitsIdForExistTemplatesByJobFilterAsync(Guid jobId)
public async Task<IEnumerable<Guid>?> GetUnitsIdForExistTemplatesByJobFilterAsync(Guid jobId, int? takeCount = null)
{
var unitIdsMustBeCreated = await GetUnitsIdByJobFilterAsync(jobId);
var unitIdsMustBeCreated = await GetUnitsIdByJobFilterAsync(jobId, takeCount);
if (unitIdsMustBeCreated == null || !unitIdsMustBeCreated.Any())
return null;
@@ -133,9 +137,9 @@ namespace PARR.DAL.DomainServices.Implementations
return unitWithTemplates;
}
public async Task<IEnumerable<Guid>?> GetUnitsIdForNotExistTemplatesByJobFilterAsync(Guid jobId)
public async Task<IEnumerable<Guid>?> GetUnitsIdForNotExistTemplatesByJobFilterAsync(Guid jobId, int? takeCount = null)
{
var unitIdsMustBeCreated = await GetUnitsIdByJobFilterAsync(jobId);
var unitIdsMustBeCreated = await GetUnitsIdByJobFilterAsync(jobId, takeCount);
if (unitIdsMustBeCreated == null || !unitIdsMustBeCreated.Any())
return null;

View File

@@ -9,23 +9,24 @@ namespace PARR.DAL.DomainServices.Interfaces
/// </summary>
/// <param name="jobId">Id работы</param>
/// <returns></returns>
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Guid jobId);
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Guid jobId, int? takeCount = null);
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Job job);
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Job job, int? takeCount = null);
/// <summary>
/// Получить все Unit.Id, для которых не были созданы Template
/// </summary>
/// <param name="jobId">Id работы</param>
/// <returns></returns>
Task<IEnumerable<Guid>?> GetUnitsIdForNotExistTemplatesByJobFilterAsync(Guid jobId);
Task<IEnumerable<Guid>?> GetUnitsIdForNotExistTemplatesByJobFilterAsync(Guid jobId, int? takeCount = null);
/// <summary>
/// Получить все Unit.Id, для которых были созданы Template
/// </summary>
/// <param name="jobId">Id работы</param>
/// <returns></returns>
Task<IEnumerable<Guid>?> GetUnitsIdForExistTemplatesByJobFilterAsync(Guid jobId);
Task<IEnumerable<Guid>?> GetUnitsIdForExistTemplatesByJobFilterAsync(Guid jobId, int? takeCount = null);
}
}