feat(dal,api): расширена таблица Job, добавлеа маска рабочей группы. Теперь можно генерировать шаблоны с единой экстерриториальной группой

This commit is contained in:
Mikhail Kuznetsov
2025-08-22 11:25:51 +10:00
parent d30093dfef
commit a6385ea39a
12 changed files with 3957 additions and 145 deletions

View File

@@ -12,7 +12,11 @@
public int? MaxValueRelationships { get; set; }
public string? TemplateNameMask { get; set; }
public bool? isParentRelationships { get; set; }
public required string TemplateNameMask { get; set; }
public required string WorkGroupMask { get; set; }
public required string WorkName { get; set; }
}

View File

@@ -1,4 +1,6 @@
namespace PARR.API.Contracts.V1.Responses
using PARR.DAL.Models.Job;
namespace PARR.API.Contracts.V1.Responses
{
public class JobBaseResponse
{
@@ -7,7 +9,9 @@
public required string Name { get; set; }
public required string TemplateNameMask { get; set; }
public TnkResponse? Tnk { get; set; }
public JobGroupBaseResponse? Group { get; set; }
}
public class JobResponse : JobBaseResponse

View File

@@ -59,7 +59,7 @@ namespace PARR.API.Controllers.V1
{
var paginationFilter = mapper.Map<PaginationFilter>(paginationQuery);
IQueryable<Job> query = jobService.Get().Include(t => t.Tnk);
IQueryable<Job> query = jobService.Get().Include(t => t.Tnk).Include(t=>t.Group);
query = query.OrderBy(t => t.Name);
@@ -125,7 +125,9 @@ namespace PARR.API.Controllers.V1
WorkName = request.WorkName.Trim(),
MinValueRelationships = request.MinValueRelationships,
MaxValueRelationships = request.MaxValueRelationships,
TemplateNameMask = request.TemplateNameMask?.Trim(),
isParentRelationships = request.isParentRelationships,
TemplateNameMask = request.TemplateNameMask.Trim(),
WorkGroupMask = request.WorkGroupMask.Trim(),
TnkId = request.TnkId,
GroupId = request.GroupId
};
@@ -173,7 +175,9 @@ namespace PARR.API.Controllers.V1
orig.WorkName = request.WorkName.Trim();
orig.MinValueRelationships = request.MinValueRelationships;
orig.MaxValueRelationships = request.MaxValueRelationships;
orig.TemplateNameMask = request.TemplateNameMask?.Trim();
orig.isParentRelationships = request.isParentRelationships;
orig.TemplateNameMask = request.TemplateNameMask.Trim();
orig.WorkGroupMask = request.WorkGroupMask.Trim();
orig.TnkId = request.TnkId;
orig.GroupId = request.GroupId;
@@ -275,8 +279,8 @@ namespace PARR.API.Controllers.V1
public class JobStatModel
{
public TemplateStats TemplateStatistics { get; set; }
public required TemplateStats TemplateStatistics { get; set; }
public ScheduleStats ScheduleStatistics { get; set; }
public required ScheduleStats ScheduleStatistics { get; set; }
}
}

View File

@@ -175,6 +175,8 @@ namespace PARR.API.Controllers.V1
robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, task!.Template!.UnitId, task!.Template!.JobId);
if (shortcodesService.isAnyShortcodes(robotTaskTemplateResponse.WorkName))
robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, task!.Template!.UnitId, task!.Template!.JobId);
if (shortcodesService.isAnyShortcodes(robotTaskTemplateResponse.WorkGroup))
robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, task!.Template!.UnitId, task!.Template!.JobId);
return Ok(new Response<RobotTaskTemplateResponse>(robotTaskTemplateResponse, true));
case RobotsEnum.ScheduleOrder:
@@ -183,6 +185,8 @@ namespace PARR.API.Controllers.V1
//RobotTaskScheduleResponse
var robotTaskScheduleResponse = mapper.Map<RobotTaskScheduleResponse>(task);
if (shortcodesService.isAnyShortcodes(robotTaskScheduleResponse.WorkGroup))
robotTaskScheduleResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.WorkGroup, task!.Template!.UnitId, task!.Template!.JobId);
return Ok(new Response<RobotTaskScheduleResponse>(robotTaskScheduleResponse, true));
default:

View File

@@ -164,7 +164,7 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.TemplateDuration, o => o.MapFrom(s => s.Template!.Job!.Group!.TemplateDuration))
.ForMember(d => d.Initiator, o => o.MapFrom<RobotTaskTemplateInitiatorResolver>())
.ForMember(d => d.Category, o => o.MapFrom<RobotTaskTemplateCategoryResolver>())
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Unit!.BaseFields!.WorkGroup))
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Job!.WorkGroupMask))
.ForMember(d => d.Ek, o => o.MapFrom(s => s.Template!.Unit!.Name))
.ForMember(d => d.Name, o => o.MapFrom(s => s.Template!.Name))
.ForMember(d => d.ProcessName, o => o.MapFrom(s => s.Template!.Job!.Tnk!.Subprocess!.Process!.Name))
@@ -184,7 +184,7 @@ namespace PARR.API.MappingProfiles
.ForMember(d => d.ResponseArea, o => o.MapFrom(s => s.Template!.Unit!.BaseFields!.ResponseArea))
.ForMember(d => d.TemplateName, o => o.MapFrom(s => s.Template!.Name))
.ForMember(d => d.TemplateId, o => o.MapFrom(s => s.Template!.Id))
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Unit!.BaseFields!.WorkGroup))
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Job!.WorkGroupMask))
.ForMember(d => d.Exclude, o => o.MapFrom<RobotTaskScheduleExcludeResolver>())
.ForMember(d => d.Timezone, o => o.MapFrom<RobotTaskScheduleTimezoneResolver>())
.ForMember(d => d.RepeatRange, o => o.MapFrom<RobotTaskScheduleRepeatRangeResolver>())