12 KiB
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. СС начинает обработку файла:
-
- Создается пакет в проекте FINANCE_STATEMENT.
- Выполняется предобработка пакета.
- Выполняется классификация пакета - определяется первые страницы каждого документа.
- Происходит сборка пакета по документам.
- Выполняется подбор шаблона документов для распознавания, выбранные шаблоны накладываются на документы.
- Выполняется распознавание документов согласно шаблонам, извлекаются нужные атрибуты, по каждому полю рассчитывается уверенность как среднее арифметическое побитовой маски с округлением до сотых (пример: поле Заявление, его уверенность - 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) | Статус записи | |