feat(api,dal): в таблицу Jobs добавлено поле ResponseAreaMask. В JobController добавлено поле ResponseAreaMask. В TemplateController отображается фактическая РК, ЗО шаблона. RobotTask ЗО отдается согласно ResponseAreaMask. ShortcodeService теперь умеет принимать Template.

This commit is contained in:
Mikhail Trubnikov
2026-01-13 14:36:07 +10:00
parent 43d40d950e
commit bd4ad918e3
21 changed files with 8438 additions and 87 deletions

View File

@@ -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));
}