Отчет по вакансиям (#20)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/20
This commit was merged in pull request #20.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System.Text.Json;
|
||||
|
||||
namespace Tnsu.ApprovalRoute.Application.Reports;
|
||||
|
||||
/// <summary>
|
||||
/// Строка ФАЗЫ ИСПОЛНЕНИЯ из списка «Заявка на подбор — согласование». Отчёту она
|
||||
/// даёт две колонки, которых нет в самой заявке: рекрутёр (исполнитель шага) и
|
||||
/// дата закрытия вакансии.
|
||||
///
|
||||
/// Дата закрытия — это колонка Date выполненной строки: request-portal
|
||||
/// перезаписывает её в момент решения по шагу (см. setDecision в
|
||||
/// shared/approval/approvalList.service.ts), так что у строки со статусом
|
||||
/// «Выполнено» там именно дата закрытия, а не дата получения шага в работу.
|
||||
/// </summary>
|
||||
internal sealed record ExecutionRow(
|
||||
int TicketId,
|
||||
int StepOrder,
|
||||
string Status,
|
||||
string? ExecutorName,
|
||||
DateOnly? Date)
|
||||
{
|
||||
public const string Select =
|
||||
$"$select=Id,TicketId,ApprovalStatus,StepOrder,Date,TansuSiteApprover/Title" +
|
||||
$"&$expand=TansuSiteApprover&$filter=Phase eq '{Phase}'&$top=5000";
|
||||
|
||||
private const string Phase = "Исполнение";
|
||||
|
||||
/// <summary>Статус выполненной строки исполнения — по нему считаем вакансию закрытой.</summary>
|
||||
public const string Done = "Выполнено";
|
||||
|
||||
public static ExecutionRow? TryParse(JsonElement item)
|
||||
{
|
||||
// TicketId — Lookup на заявку; без него строку не с чем связать.
|
||||
var ticketId = SharePointJson.Int(item, "TicketId");
|
||||
if (ticketId is null) return null;
|
||||
|
||||
return new ExecutionRow(
|
||||
ticketId.Value,
|
||||
SharePointJson.Int(item, "StepOrder") ?? 0,
|
||||
SharePointJson.String(item, "ApprovalStatus") ?? string.Empty,
|
||||
SharePointJson.PersonTitle(item, "TansuSiteApprover"),
|
||||
SharePointJson.Date(item, "Date"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user