Добавить вкладку «Выгрузка маршрутов» и перенести «Доступ к заявкам» вниз меню
Выбранные типы заявок выгружаются в xlsx (лист на тип: №, роль, исполнитель, условие) через POST /api/reports/routes. Пункт меню стоит после «Проверки маршрута», «Доступ к заявкам» — последним. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user