feat(api,dal): в таблицу Jobs добавлено поле ResponseAreaMask. В JobController добавлено поле ResponseAreaMask. В TemplateController отображается фактическая РК, ЗО шаблона. RobotTask ЗО отдается согласно ResponseAreaMask. ShortcodeService теперь умеет принимать Template.
This commit is contained in:
@@ -286,6 +286,7 @@ namespace PARR.API.Controllers.V1
|
||||
orig.WorkGroupMask = request.WorkGroupMask.Trim();
|
||||
orig.TnkId = request.TnkId;
|
||||
orig.GroupId = request.GroupId;
|
||||
orig.ResponseAreaMask = request.ResponseAreaMask;
|
||||
|
||||
if (orig.AutoControl != null)
|
||||
{
|
||||
|
||||
@@ -197,47 +197,48 @@ namespace PARR.API.Controllers.V1
|
||||
//TODO Вынести в отдельный метод ShortcodesService
|
||||
|
||||
// Построим TemplateForShortcodes из уже загруженного task.Template
|
||||
var templateForShortcodes = new TemplateForShortcodes
|
||||
{
|
||||
Id = task.Template!.Id,
|
||||
Index = task.Template.Index,
|
||||
JobId = task.Template.JobId,
|
||||
UnitId = task.Template.UnitId,
|
||||
Job = task.Template.Job == null ? null : new JobForShortcodes
|
||||
{
|
||||
Group = task.Template.Job.Group == null ? null : new JobGroupForShortcodes
|
||||
{
|
||||
Id = task.Template.Job.Group.Id,
|
||||
GroupingUnitFieldId = task.Template.Job.Group.GroupingUnitFieldId,
|
||||
GroupType = task.Template.Job.Group.GroupType == null ? null : new JobGroupTypeForShortcodes
|
||||
{
|
||||
Code = task.Template.Job.Group.GroupType.Code
|
||||
},
|
||||
GroupName = task.Template.Job.Group.GroupName
|
||||
},
|
||||
Tnk = task.Template.Job.Tnk == null ? null : new TnkForShortcodes
|
||||
{
|
||||
Name = task.Template.Job.Tnk.Name,
|
||||
ShortName = task.Template.Job.Tnk.ShortName ?? ""
|
||||
},
|
||||
WorkName = task.Template.Job.WorkName,
|
||||
Name = task.Template.Job.Name
|
||||
},
|
||||
UnitsInTemplate = task.Template.UnitsInTemplate?.Select(uit => new UnitInTemplateForShortcodes { UnitId = uit.UnitId }).ToList() ?? new List<UnitInTemplateForShortcodes>()
|
||||
};
|
||||
//var templateForShortcodes = new TemplateForShortcodes
|
||||
//{
|
||||
// Id = task.Template!.Id,
|
||||
// Index = task.Template.Index,
|
||||
// JobId = task.Template.JobId,
|
||||
// UnitId = task.Template.UnitId,
|
||||
// Job = task.Template.Job == null ? null : new JobForShortcodes
|
||||
// {
|
||||
// Group = task.Template.Job.Group == null ? null : new JobGroupForShortcodes
|
||||
// {
|
||||
// Id = task.Template.Job.Group.Id,
|
||||
// GroupingUnitFieldId = task.Template.Job.Group.GroupingUnitFieldId,
|
||||
// GroupType = task.Template.Job.Group.GroupType == null ? null : new JobGroupTypeForShortcodes
|
||||
// {
|
||||
// Code = task.Template.Job.Group.GroupType.Code
|
||||
// },
|
||||
// GroupName = task.Template.Job.Group.GroupName
|
||||
// },
|
||||
// Tnk = task.Template.Job.Tnk == null ? null : new TnkForShortcodes
|
||||
// {
|
||||
// Name = task.Template.Job.Tnk.Name,
|
||||
// ShortName = task.Template.Job.Tnk.ShortName ?? ""
|
||||
// },
|
||||
// WorkName = task.Template.Job.WorkName,
|
||||
// Name = task.Template.Job.Name
|
||||
// },
|
||||
// UnitsInTemplate = task.Template.UnitsInTemplate?.Select(uit => new UnitInTemplateForShortcodes { UnitId = uit.UnitId }).ToList() ?? new List<UnitInTemplateForShortcodes>()
|
||||
//};
|
||||
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.FullDescription))
|
||||
robotTaskTemplateResponse.FullDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.FullDescription, templateForShortcodes);
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.ShortDescription))
|
||||
robotTaskTemplateResponse.ShortDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ShortDescription, templateForShortcodes);
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.Solution))
|
||||
robotTaskTemplateResponse.Solution = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.Solution, templateForShortcodes);
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.TnkName))
|
||||
robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, templateForShortcodes);
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkName))
|
||||
robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, templateForShortcodes);
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkGroup))
|
||||
robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, templateForShortcodes);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.FullDescription))
|
||||
robotTaskTemplateResponse.FullDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.FullDescription, task.Template!);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.ShortDescription))
|
||||
robotTaskTemplateResponse.ShortDescription = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ShortDescription, task.Template!);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.Solution))
|
||||
robotTaskTemplateResponse.Solution = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.Solution, task.Template!);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.TnkName))
|
||||
robotTaskTemplateResponse.TnkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.TnkName, task.Template!);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkName))
|
||||
robotTaskTemplateResponse.WorkName = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkName, task.Template!);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskTemplateResponse.WorkGroup))
|
||||
robotTaskTemplateResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.WorkGroup, task.Template!);
|
||||
robotTaskTemplateResponse.ResponseArea = await shortcodesService.ApplyShortcodesAsync(robotTaskTemplateResponse.ResponseArea, task.Template!);
|
||||
|
||||
return Ok(new Response<RobotTaskTemplateResponse>(robotTaskTemplateResponse, true));
|
||||
}
|
||||
@@ -248,37 +249,38 @@ namespace PARR.API.Controllers.V1
|
||||
//RobotTaskScheduleResponse
|
||||
var robotTaskScheduleResponse = mapper.Map<RobotTaskScheduleResponse>(task);
|
||||
|
||||
// Построим TemplateForShortcodes из уже загруженного task.Template
|
||||
var templateForShortcodes = new TemplateForShortcodes
|
||||
{
|
||||
Id = task.Template!.Id,
|
||||
Index = task.Template.Index,
|
||||
JobId = task.Template.JobId,
|
||||
UnitId = task.Template.UnitId,
|
||||
Job = task.Template.Job == null ? null : new JobForShortcodes
|
||||
{
|
||||
Group = task.Template.Job.Group == null ? null : new JobGroupForShortcodes
|
||||
{
|
||||
GroupingUnitFieldId = task.Template.Job.Group.GroupingUnitFieldId,
|
||||
GroupType = task.Template.Job.Group.GroupType == null ? null : new JobGroupTypeForShortcodes
|
||||
{
|
||||
Code = task.Template.Job.Group.GroupType.Code
|
||||
},
|
||||
GroupName = task.Template.Job.Group.GroupName
|
||||
},
|
||||
Tnk = task.Template.Job.Tnk == null ? null : new TnkForShortcodes
|
||||
{
|
||||
Name = task.Template.Job.Tnk.Name,
|
||||
ShortName = task.Template.Job.Tnk.ShortName
|
||||
},
|
||||
WorkName = task.Template.Job.WorkName,
|
||||
Name = task.Template.Job.Name
|
||||
},
|
||||
UnitsInTemplate = task.Template.UnitsInTemplate?.Select(uit => new UnitInTemplateForShortcodes { UnitId = uit.UnitId }).ToList() ?? new List<UnitInTemplateForShortcodes>()
|
||||
};
|
||||
//// Построим TemplateForShortcodes из уже загруженного task.Template
|
||||
//var templateForShortcodes = new TemplateForShortcodes
|
||||
//{
|
||||
// Id = task.Template!.Id,
|
||||
// Index = task.Template.Index,
|
||||
// JobId = task.Template.JobId,
|
||||
// UnitId = task.Template.UnitId,
|
||||
// Job = task.Template.Job == null ? null : new JobForShortcodes
|
||||
// {
|
||||
// Group = task.Template.Job.Group == null ? null : new JobGroupForShortcodes
|
||||
// {
|
||||
// GroupingUnitFieldId = task.Template.Job.Group.GroupingUnitFieldId,
|
||||
// GroupType = task.Template.Job.Group.GroupType == null ? null : new JobGroupTypeForShortcodes
|
||||
// {
|
||||
// Code = task.Template.Job.Group.GroupType.Code
|
||||
// },
|
||||
// GroupName = task.Template.Job.Group.GroupName
|
||||
// },
|
||||
// Tnk = task.Template.Job.Tnk == null ? null : new TnkForShortcodes
|
||||
// {
|
||||
// Name = task.Template.Job.Tnk.Name,
|
||||
// ShortName = task.Template.Job.Tnk.ShortName
|
||||
// },
|
||||
// WorkName = task.Template.Job.WorkName,
|
||||
// Name = task.Template.Job.Name
|
||||
// },
|
||||
// UnitsInTemplate = task.Template.UnitsInTemplate?.Select(uit => new UnitInTemplateForShortcodes { UnitId = uit.UnitId }).ToList() ?? new List<UnitInTemplateForShortcodes>()
|
||||
//};
|
||||
|
||||
if (shortcodesService.IsAnyShortcodes(robotTaskScheduleResponse.WorkGroup))
|
||||
robotTaskScheduleResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.WorkGroup, templateForShortcodes);
|
||||
//if (shortcodesService.IsAnyShortcodes(robotTaskScheduleResponse.WorkGroup))
|
||||
robotTaskScheduleResponse.WorkGroup = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.WorkGroup, task.Template!);
|
||||
robotTaskScheduleResponse.ResponseArea = await shortcodesService.ApplyShortcodesAsync(robotTaskScheduleResponse.ResponseArea, task.Template!);
|
||||
|
||||
return Ok(new Response<RobotTaskScheduleResponse>(robotTaskScheduleResponse, true));
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ using PARR.Common.Domain;
|
||||
using PARR.Constants;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.DomainModels;
|
||||
using PARR.DAL.DomainServices.Shortcodes;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
|
||||
@@ -31,13 +32,15 @@ namespace PARR.API.Controllers.V1
|
||||
private readonly IRobotConfigurationService robotConfigurationService;
|
||||
private readonly IClientService clientService;
|
||||
private readonly ILogger<TemplateController> logger;
|
||||
private readonly IShortcodesService shortcodesService;
|
||||
|
||||
public TemplateController(
|
||||
IMapper mapper,
|
||||
ITemplateService templateService,
|
||||
IRobotConfigurationService robotConfigurationService,
|
||||
IClientService clientService,
|
||||
ILogger<TemplateController> logger
|
||||
ILogger<TemplateController> logger,
|
||||
IShortcodesService shortcodesService
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
@@ -45,6 +48,7 @@ namespace PARR.API.Controllers.V1
|
||||
this.robotConfigurationService = robotConfigurationService;
|
||||
this.clientService = clientService;
|
||||
this.logger = logger;
|
||||
this.shortcodesService = shortcodesService;
|
||||
}
|
||||
|
||||
|
||||
@@ -106,6 +110,11 @@ namespace PARR.API.Controllers.V1
|
||||
return NoContent();
|
||||
|
||||
var templateResponse = mapper.Map<List<TemplateResponse>>(templates);
|
||||
foreach (var responseItem in templateResponse)
|
||||
{
|
||||
await ApplyTemplateShortcodesAsync(responseItem, templates.First(t => t.Id == responseItem.Id));
|
||||
}
|
||||
|
||||
var paginationResponse = new PagedResponse<TemplateResponse>(templateResponse, true).GetPaginatedProps(paginationFilter, query);
|
||||
|
||||
return Ok(paginationResponse);
|
||||
@@ -136,6 +145,7 @@ namespace PARR.API.Controllers.V1
|
||||
return NotFound();
|
||||
|
||||
var response = mapper.Map<TemplateResponse>(template);
|
||||
await ApplyTemplateShortcodesAsync(response, template);
|
||||
|
||||
return Ok(new Response<TemplateResponse>(response, true));
|
||||
}
|
||||
@@ -198,12 +208,20 @@ namespace PARR.API.Controllers.V1
|
||||
.Include(t => t.Job).ThenInclude(t => t.Group).ThenInclude(t => t.ScheduleExcludeType)
|
||||
.Include(t => t.Job).ThenInclude(t => t.Group).ThenInclude(t => t.ScheduleExcludeTypeCalendar)
|
||||
.AsSplitQuery()
|
||||
.FirstOrDefaultAsync(t => t.Id == id);
|
||||
.FirstAsync(t => t.Id == id);
|
||||
|
||||
var response = mapper.Map<TemplateResponse>(templateToResponse);
|
||||
await ApplyTemplateShortcodesAsync(response, templateToResponse);
|
||||
|
||||
return Ok(new Response<TemplateResponse>(response, true));
|
||||
}
|
||||
|
||||
|
||||
private async Task ApplyTemplateShortcodesAsync(TemplateResponse response, Template template)
|
||||
{
|
||||
response.WorkGroup = await shortcodesService.ApplyShortcodesAsync(template.Job.WorkGroupMask, template);
|
||||
response.ResponseArea = await shortcodesService.ApplyShortcodesAsync(template.Job.ResponseAreaMask, template);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user