24d2cd7a6a
GET api/reports/vacancies?from=&to= отдаёт лист «Список вакансий (все)» по образцу ручного отчёта HR: те же шестнадцать колонок, разделители по объектам, двойная нумерация, итоги формулами. Данные — из двух форм портала: «Заявка на подбор» даёт вакансию, «Приём на работу» — её закрытие (связь по SelectionRequestId + SelectionRequestListId). Рекрутёр и дата закрытия берутся из фазы «Исполнение» парного списка «— согласование»: в самой заявке их нет. Период отбирает заявки по «Дате подачи заявки» с откатом на Created — поле заполняется руками и часто пустое. Заявки на приём периодом не ограничены: приём по вакансии из начала интервала мог оформляться уже после его конца. Колонка «Комментарии» остаётся пустой — в ручном отчёте это пометки рекрутёра, которым в заявках пока негде храниться. Генерация — ClosedXML (MIT): нужны стили, формулы и autofilter, а EPPlus с v5 под Polyform Noncommercial. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using System.Reflection;
|
|
using FluentValidation;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Tnsu.ApprovalRoute.Application.Reminders;
|
|
using Tnsu.ApprovalRoute.Application.ListPartitioning;
|
|
using Tnsu.ApprovalRoute.Application.Reports;
|
|
using Tnsu.ApprovalRoute.Application.RequestTypes;
|
|
using Tnsu.ApprovalRoute.Application.TemplateRoutes;
|
|
using Tnsu.ApprovalRoute.Application.TemplateRouteSteps;
|
|
|
|
namespace Tnsu.ApprovalRoute.Application;
|
|
|
|
public static class ApplicationServiceCollectionExtensions
|
|
{
|
|
public static IServiceCollection AddApprovalRouteApplication(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<ReminderService>();
|
|
services.AddScoped<RequestTypeService>();
|
|
services.AddScoped<ListPartitionRegistry>();
|
|
services.AddScoped<ListPartitionService>();
|
|
// Джоба резолвится Hangfire'ом из scope на каждое выполнение.
|
|
services.AddScoped<CreateNextListPartitionJob>();
|
|
services.AddScoped<VacancyReportService>();
|
|
services.AddScoped<TemplateRouteService>();
|
|
services.AddScoped<TemplateRouteStepService>();
|
|
|
|
services.AddValidatorsFromAssembly(Assembly.GetExecutingAssembly());
|
|
|
|
return services;
|
|
}
|
|
}
|