Документация · Раздел 5 · Submission Engine
v1.0 · июль 2026

Раздел 5 · Модуль 3

Submission Engine

Сбор отчётности: Task Manager на стороне регулятора и Form Filler в кабинете организации. Связаны только по HTTP.

Корень: submission_engine/. Две независимые связки FastAPI+Vue, обе зависят от DG (8000) и Form Builder (8100).

5.1 · Task Manager (регулятор) — 8200 / 5175

Назначение: создать задание на сбор, назначить организациям, мониторить, согласовать/отклонить отчёты, консолидировать, вести DQ-правила.

Данные (БД task_manager)

ТаблицаНазначение
report_taskЗадание: template_id/template_version (согласованный шаблон FB), период, deadline, target_system (дефолт «FNS»), status.
task_assignmentСвязь задание↔организация, свой status.
task_target_configТаргетинг: all / org_type / organization.
report_submissionПрисланный отчёт: payload (JSON), status (дефолт review), поля ревью.
report_submission_snapshotНеизменяемая копия на каждую подачу.
term_quality_ruleDQ-правило, привязанное к термину DG (см. DQ Checks).

API: /tasks, /tasks/assignments, /tasks/submissions, /tasks/submissions/{id}/decision, /tasks/submissions/{id}/export (XLSX), /monitoring/summary, /dq/term-rules (CRUD), /dq/term-rules/usage, /dq/submissions/{id}/checks.

Страницы: Дашборд, Назначения, Организации, Мониторинг, Согласование, Консолидированный отчёт, Проверки качества, История слепков.

Доступ: декодирует JWT-подобный токен (base64, без проверки подписи) — роли + submission_access (view_all / region_ids / org_type_ids / organization_ids — региональная фильтрация).

5.2 · Form Filler (кабинет организации) — 8300 / 5176

Назначение: организация тянет свои задания, заполняет форму, подписывает электронной подписью, отправляет обратно в Task Manager.

Данные (БД form_filler)

ТаблицаНазначение
local_taskЗеркало задания из Task Manager.
local_instanceЗаполняемый отчёт: form_data (JSON), completion_percentage, status (жизненный цикл) + local_status (синхронизация), подпись.
sync_queueОчередь офлайн-повторов при неудачной отправке.
local_submission_snapshotЛокальная копия отправленного.

API: /auth/login (выбор организации из справочника DG, без пароля), /reports/my, /reports/{id}, /reports/{id}/dg-context, /filling/{id}/save, /signing/{id}/sign, /submission/{id}/send, /sync/tasks/pull, /sync/queue/process.

Страницы: Вход, Мои отчёты, Заполнение отчёта, История. Импорт/экспорт таблиц через npm xlsx.

5.3 · Как связаны Task Manager ↔ Form Filler

Всё по HTTP. Form Filler хранит base-URL Task Manager.

  • Pull (TM→FF): sync_tasks тянет /tasks/assignments + /tasks, фильтрует по организации, создаёт local_task + local_instance, синхронизирует статус.
  • Push (FF→TM): _push_submission_to_task_manager шлёт POST /tasks/submissions с payload. Успех → снимок; ошибка → sync_queue на повтор.
  • Решение (TM→FF): решение меняет записи только в TM; организация видит новый статус при следующем sync/tasks/pull.
  • Консолидация — клиентская (ConsolidatedReportView.vue, XLSX в браузере). Отдельного backend-эндпоинта консолидации нет; на backend — только per-submission XLSX через openpyxl.