Добавить вкладку «Выгрузка маршрутов» и перенести «Доступ к заявкам» вниз меню

Выбранные типы заявок выгружаются в xlsx (лист на тип: №, роль, исполнитель,
условие) через POST /api/reports/routes. Пункт меню стоит после «Проверки
маршрута», «Доступ к заявкам» — последним.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
gorbenko.pavel
2026-10-12 16:18:51 +05:00
parent 05f73d356a
commit 6a01101054
12 changed files with 428 additions and 3 deletions
@@ -51,4 +51,27 @@ public sealed class ReportsController(VacancyReportService vacancies) : Controll
return File(file, XlsxContentType);
}
/// <summary>
/// Выгрузка маршрутов согласования выбранных типов заявок в xlsx (лист на тип).
/// POST, потому что строки собирает админка — у неё уже есть справочники
/// сотрудников и подписи шагов (см. RouteExportWorkbook).
/// </summary>
[HttpPost("routes")]
[Produces(XlsxContentType)]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public IActionResult Routes([FromBody] RouteExportRequest request)
{
if (request.Sheets is not { Count: > 0 })
return BadRequest(new { errors = new[] { "Не выбрано ни одного типа заявки." } });
var file = RouteExportWorkbook.Build(request);
var disposition = new ContentDispositionHeaderValue("attachment");
disposition.SetHttpFileName(RouteExportWorkbook.FileName);
Response.Headers.ContentDisposition = disposition.ToString();
return File(file, XlsxContentType);
}
}