arm-ka-docs/source/tz/АРМ КА.Техническое задание - 06_7. Функциональные требования - 02_FNR02 Модуль передачи PDF файлов в ИС Сканирование.md

12 KiB
Raw Blame History

code, title
code title
DOC-221275 FNR02 Модуль передачи PDF файлов в ИС Сканирование

FNR02 Модуль передачи PDF файлов в ИС Сканирование

Ссылка на описание требований смежной системы: Постановка. Новый проект OCR фин. отчетность

Глоссарий

Термин Определение

| ИС Сканирования, СС | Система сканирования, распознавания, хранения и классификации документов на базе Content AI | | Форма-1 (Баланс) | Тип документа "Бухгалтерский баланс". Форма отчетности, содержащая активы и пассивы организации на определенную дату | | Форма-2 (ОФР) | Тип документа  "Отчет о финансовых результатах". Форма отчетности, содержащая данные о доходах, расходах и финансовом результате за период | | Горячая папка | Механизм интеграции, при котором обмен данными между системами осуществляется через отслеживаемые сетевые папки "Входящие" (для отправки) и "Исходящие" (для получения результатов) | | UID (Уникальный идентификатор) | Имя исходного файла, используемое для связывания результата распознавания (JSON) с исходным документом | | Уверенность | Способ представления степени достоверности распознанного текста по каждому символу. Может быть реализован как побитовая маска или в виде процентного соотношения для всего поля |

1. Текущий модуль берет подгруженные и сохраненные pdf файлы, присваивает им имена по маске: UUID+текущее имя файла

2 . Перекладывает файлы в горячую папку "Входящие"

3 . СС каждые 10 секунд проверяет папку Входящие, видит в ней новый файл UUID.pdf.

4. СС начинает обработку файла:

    1. Создается пакет в проекте FINANCE_STATEMENT.
    2. Выполняется предобработка пакета.
    3. Выполняется классификация пакета - определяется первые страницы каждого документа.
    4. Происходит сборка пакета по документам.
    5. Выполняется подбор шаблона документов для распознавания, выбранные шаблоны накладываются на документы.
    6. Выполняется распознавание документов согласно шаблонам, извлекаются нужные атрибуты, по каждому полю рассчитывается уверенность как среднее арифметическое побитовой маски с округлением до сотых (пример: поле Заявление, его уверенность - 01111101, среднее арифметическое = 0.67)

5. СС выполняет скрипт преобразований данных для формирования json

6. В экспортной папке "Исходящие" создается подпапка с  UUID полученным от модуля.

7 Сформированный json с именем вида UUID.json вместе с файлами документов экспортируется в созданную подпапку UUID в родительской папке Исходящие. Для каждого документа - 1 json файл, а о бработанный файл удаляется из папки Входящие.

структура json:

7.1. Корневой объект

Параметр Тип Формат Обязательность Описание Правило формирования Пример
file_uid string ^[a-zA-Z0-9_-]+$ да Уникальный идентификатор исходного файла Формируется из имени исходного файла без расширения. Допустимы латиница, цифры, символы  _  и  - . Максимальная длина 255 символов "b94d2b95-ab16-4836-86bc-db87c6aaa242"
error object - да Объект с деталями ошибки Содержит код, сообщение и детали ошибки. При отсутствии ошибок имеет значение  null см. таблицу  error
code string да Код ошибки. примеры кодов
message string да Краткое описание ошибки Описание ошибки, не более 255 символов "Ошибка OCR при распознавании текста "
data_ocr
label object да Тип распознаваемого документа Описание типа распознаваемого документа (Баланс/Отчет) и уверенности распознавания этого поля {         "form_name": "Бухгалтерский баланс",         "confidence": 0.98       }
organization object да Имя организации Описание имени организации и уверенности распознавания этого поля {         "full_name": "Акционерное общество "Объединенная зерновая компания"",         "confidence": 0.91       }
inn object да ИНН организации Описание ИНН организации и уверенности распознавания этого поля {         "inn": "7708632345"",         "confidence": 0.91       }
units object да Единицы измерения сумм Описание единиц измерения и уверенности распознавания этого поля {         "measurement": "в тыс рублей",         "confidence": 0.97       }
table_structure object да Описание структуры таблицы Описание структуры таблицы. Внутри массив rows "rows": [{...}] см таблицу rows

7.1.1 Массив rows

Поле Тип Обязательность Описание Формирование Пример
row_index int да Порядковый номер строки Отсчет начинается с 0 0
cells array да Ячейки строки Описание массива с ячейками "cells": [{...}] см таблицу cells

7.1.1.1 Массив cells

Поле Тип Обязательность Описание Формирование Пример
column_index int да Порядковый номер ячейки в строке Отсчет начинается с 0 0
value string да Имя ячейки Значение ячейки "Наименование показателя"
confidence float да Уверенность распознавания ячейки. Показатель, насколько OCR уверена в правильности распознанного значения. Среднее арифметическое побитовой маски поля "0.67"

8. Модуль забирает файлы из экспортной папки, анализирует значение UUID и находит по этому ключу запись в таблице Consolidation_package (json.file_uid=Consolidation_package .uuid) и обрабатывает их согласно  процессу маппинга:

Шапка таблицы:

таблица Fin_report_header

Поле Тип Описание Пример из файла Источник заполнения
report_id BIGINT [pk] Уникальный идентификатор отчета 1001
package_id BIGINT ID пакета документов 500
company_id BIGINT ID компании 46063520
report_type varchar(20) Тип формы: BALANCE / OFR "BALANCE" (Ф1), "OFR" (Ф2) data_ocr.form_name
reporting_date date Отчетная дата 2025-09-30
currency varchar(3) Код валюты по ISO "RUB"
unit varchar(20) Единица измерения "тыс. руб." data_ocr.units
okud_code varchar(10) Код формы по ОКУД "0710001" (Баланс), "0710002" (ОФР)
okpo_code varchar(10) Код ОКПО организации "46063520"
audit_required boolean Требуется ли аудит false
created_at timestamp Дата загрузки 2025-10-29 14:30:00`

таблица Company

Поле Тип Описание Источник заполнения
company_id BIGINT Уникальный идентификатор компании
inn VARCHAR(12) ИНН организации data_ocr.inn
kpp VARCHAR(9) КПП организации
okpo VARCHAR(10) Код ОКПО
okopf VARCHAR(5) Код ОКОПФ
okfs VARCHAR(2) Код ОКФС
fin_report_id BIGINT Ссылка на финансовую отчётность
name VARCHAR(300) Наименование компании data_ocr.full_name
status VARCHAR(20) Статус записи