Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -91,13 +91,13 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
);
|
);
|
||||||
changes = await UpdateScheduleStateAsync(query, false);
|
changes = await UpdateScheduleStateAsync(query, false);
|
||||||
break;
|
break;
|
||||||
case TemplateActivatorActionsEnum.ActivateAllForAutoControl:
|
|
||||||
logger.LogInformation($"Получен запрос на активацию шаблонов и расписаний, для ЭК удовлетворяющим условиям автоконтроля");
|
|
||||||
changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, true);
|
|
||||||
break;
|
|
||||||
case TemplateActivatorActionsEnum.DeactivateAllForAutoControl:
|
case TemplateActivatorActionsEnum.DeactivateAllForAutoControl:
|
||||||
logger.LogInformation($"Получен запрос на деактивацию шаблонов и расписаний, для ЭК неудовлетворяющим условиям автоконтроля");
|
logger.LogInformation($"Получен запрос на деактивацию шаблонов и расписаний, для ЭК неудовлетворяющим условиям автоконтроля");
|
||||||
changes = await CoordinateJobsWithAutoControl(applicationInWorkId, query, false);
|
changes = await CoordinateJobsWithAutoControlAsync(applicationInWorkId, query, false);
|
||||||
|
break;
|
||||||
|
case TemplateActivatorActionsEnum.ActivateAllForAutoControl:
|
||||||
|
logger.LogInformation($"Получен запрос на активацию шаблонов и расписаний, для ЭК удовлетворяющим условиям автоконтроля");
|
||||||
|
changes = await CoordinateJobsWithAutoControlAsync(applicationInWorkId, query, true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -109,12 +109,15 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
logger.LogDebug($"{GetType().Name} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}");
|
logger.LogDebug($"{GetType().Name} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<int> CoordinateJobsWithAutoControl(Guid applicationInWorkId, IQueryable<Template> query, bool isActivate)
|
private async Task<int> CoordinateJobsWithAutoControlAsync(Guid applicationInWorkId, IQueryable<Template> query, bool isActivate)
|
||||||
{
|
{
|
||||||
var changes = 0;
|
var changes = 0;
|
||||||
|
|
||||||
|
//Добавляем информацию о рабочих группах для возможности их фильтрации
|
||||||
|
query = query.Include(t => t.Host).ThenInclude(h => h!.WorkGroup);
|
||||||
|
|
||||||
//Получаем настройки авто-контроля
|
//Получаем настройки авто-контроля
|
||||||
var jobAutoControlSettings = await GetJobAutoControlSettings(applicationInWorkId);
|
var jobAutoControlSettings = await GetJobAutoControlSettingsAsync(applicationInWorkId);
|
||||||
if (jobAutoControlSettings == null)
|
if (jobAutoControlSettings == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -130,9 +133,6 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
//Фильтруем обратное состояние - активированные для деактивации
|
//Фильтруем обратное состояние - активированные для деактивации
|
||||||
query = FilterTemplatesQueryByWrongState(query, jobAutoControlSettings, isActivate);
|
query = FilterTemplatesQueryByWrongState(query, jobAutoControlSettings, isActivate);
|
||||||
|
|
||||||
//Добавляем информацию о рабочих группах для возможности их фильтрации
|
|
||||||
query = query.Include(t => t.Host).ThenInclude(h => h!.WorkGroup);
|
|
||||||
|
|
||||||
//Фильтруем по маскам ЭК
|
//Фильтруем по маскам ЭК
|
||||||
var templates = FilterTemplatesByNameNotMatchToMasks(query, trueMasks);
|
var templates = FilterTemplatesByNameNotMatchToMasks(query, trueMasks);
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
{
|
{
|
||||||
var appInWorkInWorkGroups = applicationsInWorkService.Get()
|
var appInWorkInWorkGroups = applicationsInWorkService.Get()
|
||||||
.Include(aiw => aiw.WorkGroups)
|
.Include(aiw => aiw.WorkGroups)
|
||||||
.Where(x => x.Id == applicationInWorkId).Select(aiw => aiw.WorkGroups).FirstOrDefault();
|
.FirstOrDefault(t => t.Id == applicationInWorkId)?.WorkGroups;
|
||||||
|
|
||||||
if (appInWorkInWorkGroups != null)
|
if (appInWorkInWorkGroups != null)
|
||||||
return appInWorkInWorkGroups.ToList();
|
return appInWorkInWorkGroups.ToList();
|
||||||
@@ -190,12 +190,12 @@ internal class TemplateActivator : ITemplateActivator
|
|||||||
private IQueryable<Template> FilterTemplatesQueryByWrongState(IQueryable<Template> query, JobAutoControl jobAutoControlSettings, bool isActivate)
|
private IQueryable<Template> FilterTemplatesQueryByWrongState(IQueryable<Template> query, JobAutoControl jobAutoControlSettings, bool isActivate)
|
||||||
{
|
{
|
||||||
if (isActivate)
|
if (isActivate)
|
||||||
return query.Include(t => t.Host).Where(t => t.IsActiveTemplate != jobAutoControlSettings.OnTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OnScheduleIsActive);
|
return query.Where(t => t.IsActiveTemplate != jobAutoControlSettings.OnTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OnScheduleIsActive);
|
||||||
|
|
||||||
return query.Include(t => t.Host).Where(t => t.IsActiveTemplate != jobAutoControlSettings.OffTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OffScheduleIsActive);
|
return query.Where(t => t.IsActiveTemplate != jobAutoControlSettings.OffTemplateIsActive || t.IsActiveSchedule != jobAutoControlSettings.OffScheduleIsActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<JobAutoControl> GetJobAutoControlSettings(Guid applicationInWorkId)
|
private async Task<JobAutoControl> GetJobAutoControlSettingsAsync(Guid applicationInWorkId)
|
||||||
{
|
{
|
||||||
return await jobAutoControlService.Get()
|
return await jobAutoControlService.Get()
|
||||||
.Include(jac => jac.JobAutoControlInEkStatuses)
|
.Include(jac => jac.JobAutoControlInEkStatuses)
|
||||||
|
|||||||
Reference in New Issue
Block a user