2026-10-08 11:00:25 +04:00

3.9 KiB
Raw Blame History

primary-files-ui Specification

Purpose

Аналитик загружает первичные файлы ЮЛ в контексте версии и видит в панели «Первичные документы» [39]/[40] файлы и их документы со статусами распознавания; список обновляется сам, пока идёт распознавание.

Requirements

Requirement: Загрузка файлов ЮЛ в контексте версии

Панель «Файлы ЮЛ» [39]/[40], открытая из строки ЮЛ карточки версии, SHALL загружать выбранные файлы одним запросом POST /legal-entities/{id}/files?consolidation_version_id={version_id} (multipart, поле files повторяется), без других полей формы. Тип и период документа не спрашиваются. После ответа панель SHALL показать итог: принятые файлы (accepted[].name) и отклонённые с причиной (rejected[].name + message). Ответ 422 с телом UploadResult SHALL трактоваться как «ни один файл не принят» с тем же показом rejected[]; ответ 422 с detail (ENTITY_NOT_IN_PERIMETER) и прочие ошибки — показом message.

Scenario: Часть файлов отклонена

  • WHEN аналитик загружает ОСВ-файл и файл, уже загруженный ранее у этого ЮЛ
  • THEN первый показан принятым, второй — отклонённым с текстом причины DUPLICATE_FILE от сервера

Scenario: Все файлы отклонены

  • WHEN сервер отвечает 422 с телом UploadResult
  • THEN панель показывает каждый отклонённый файл с причиной, а не общую ошибку

Requirement: Список файлов и документов ЮЛ

Панель SHALL показывать файлы ЮЛ из GET /legal-entities/{id}/files (новые первыми): имя, статус файла по-русски («Обработка» для UPLOADED/PROCESSING, «Ошибка» с причиной из job для ERROR) и вложенные documents[] — тип («ОСВ <счёт>», «Бух. баланс», «ОФР», «Расшифровка», «Прочее»), период («2024 К1», «2024 · 9 мес.», «период не определён»), статус документа («Требуется проверка», «Загружен» для CONFIRMED, «Ошибка»). Документы OSV, BALANCE, INCOME SHALL быть ссылками на /documents/:document_id.

Scenario: PDF с двумя формами

  • WHEN файл aep_6.pdf распознан
  • THEN под файлом видны два документа — «Бух. баланс» и «ОФР» со статусом «Требуется проверка», каждый открывает экран проверки

Requirement: Опрос до окончания распознавания

Пока панель открыта и среди файлов есть UPLOADED или PROCESSING, панель SHALL перечитывать список раз в 5 секунд и SHALL прекратить опрос, когда таких файлов нет или панель закрыта. При закрытии панели карточка версии SHALL перечитываться (обновить ячейки чек-листа).

Scenario: Опрос останавливается

  • WHEN все файлы ЮЛ перешли в PROCESSED или ERROR
  • THEN запросы списка файлов прекращаются