feat(api,dal): В группу работ добавлено поле IsGroupByResponsible

This commit is contained in:
Mikhail Trubnikov
2026-03-20 15:50:00 +10:00
parent 42ac353198
commit 630b645267
7 changed files with 4295 additions and 33 deletions

View File

@@ -178,7 +178,8 @@ namespace PARR.API.Controllers.V1
ScheduleExcludeTypeId = request.ScheduleExcludeTypeId,
ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId,
IsAutoDistributionEnabled = request.IsAutoDistributionEnabled,
IsResponseAreaTimezone = request.IsWorkGroupTimezone
IsResponseAreaTimezone = request.IsWorkGroupTimezone,
IsGroupByResponsible = request.IsGroupByResponsible
//IsAgent = request.IsAgent,
//AgentName = request.AgentName,
//AgentTimeOutSec = request.AgentTimeOutSec,
@@ -274,6 +275,8 @@ namespace PARR.API.Controllers.V1
orig.ScheduleExcludeTypeCalendarId = request.ScheduleExcludeTypeCalendarId;
orig.IsAutoDistributionEnabled = request.IsAutoDistributionEnabled;
orig.IsResponseAreaTimezone = request.IsWorkGroupTimezone;
// IsGroupByResponsible - может быть значение, только если тип ГРУППОВОЙ
orig.IsGroupByResponsible = await GetIsGroupByResponsibleValue(request);
//orig.IsAgent = request.IsAgent;
//orig.AgentName = request.AgentName;
//orig.AgentTimeOutSec = request.AgentTimeOutSec;
@@ -492,6 +495,33 @@ namespace PARR.API.Controllers.V1
jobGroupResponse.MatchingStatus = await GetMatchingStatusAsync(jobGroupResponse.Id);
}
/// <summary>
/// Получить значение IsGroupByResponsible из реквеста
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
private async Task<bool?> GetIsGroupByResponsibleValue(JobGroupRequest request)
{
// IsGroupByResponsible - может быть значение, только если тип ГРУППОВОЙ
if (!request.IsGroupByResponsible.HasValue)
return null;
// Если есть значение, смотрим, групповой ли тип работ, и если нет, то вернем null
var groupingType = await jobGroupTypeService.Get().FirstAsync(t => t.Code == JobGroupTypesEnum.Group);
if (request.GroupTypeId == groupingType.Id)
{
// это групповой тип работ, все ок
return request.IsGroupByResponsible;
}
else
{
// Это не сгруппированный тип, обнуляем IsGroupByResponsible
logger.LogInformation("При сохраненни JobGroup, был передан IsGroupByResponsible: {IsGroupByResponsible}, но при этом, тип группы не сгруппированный, а GroupTypeId: {GroupTypeId}, обнулил IsGroupByResponsible",
request.IsGroupByResponsible, request.GroupTypeId);
return null;
}
}
/// <summary>
/// Смотрим на тип Группы, и возвращаем GroupingUnitFieldId или обнуляем его
@@ -515,7 +545,8 @@ namespace PARR.API.Controllers.V1
else
{
// Это не сгруппированный тип, обнуляем GroupingUnitFieldId
logger.LogWarning($"При сохраненни JobGroup, был передан {nameof(request.GroupingUnitFieldId)}: {request.GroupingUnitFieldId}, но при этом тип группы был не ГРУППА, а {request.GroupTypeId}. Обнулил request.GroupingUnitFieldId");
logger.LogInformation("При сохраненни JobGroup, был передан GroupingUnitFieldId: {GroupingUnitFieldId}, но при этом, тип группы не сгруппированный, а GroupTypeId: {GroupTypeId}, обнулил GroupingUnitFieldId",
request.GroupingUnitFieldId, request.GroupTypeId);
return null;
}
}