4dac12302c
Второй лист xlsx по образцу ручного отчёта HR: горизонтальная таблица по рекрутёрам (всего/в работе %/закрыто %) и две вертикальные таблицы с долей каждого рекрутёра в общем объёме и в объёме "в работе" — плюс по круговой диаграмме на каждую (VacancyReportSummary, VacancyReportWorkbook.BuildSummarySheet). Библиотека для xlsx сменена с ClosedXML на NPOI: у ClosedXML нет поддержки Excel-диаграмм вовсе, только у NPOI из бесплатных вариантов она есть (XSSFChart/DataSources из NPOI.OOXML). Переписан весь генератор, тесты читают файл обратно тем же NPOI. Заодно запинена System.Security.Cryptography.Xml до 10.0.11 — версия, которую тянет NPOI транзитивно (8.0.2), с известной уязвимостью. Вакансии без рекрутёра сведены в «Без рекрутёра» и всегда идут в таблицах последними — не участник рейтинга, а технический хвост. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
16 lines
784 B
XML
16 lines
784 B
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\Tnsu.ApprovalRoute.Domain\Tnsu.ApprovalRoute.Domain.csproj" />
|
|
<ProjectReference Include="..\Tnsu.ApprovalRoute.Infrastructure\Tnsu.ApprovalRoute.Infrastructure.csproj" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<!-- Генерация xlsx для отчётов (Reports/) — стили, формулы, autofilter, диаграммы. -->
|
|
<PackageReference Include="NPOI" />
|
|
<PackageReference Include="FluentResults" />
|
|
<PackageReference Include="FluentValidation" />
|
|
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" />
|
|
<PackageReference Include="Hangfire.Core" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore" />
|
|
</ItemGroup>
|
|
</Project>
|