Разработка системы электронного документооборота

20
05.2021

Angular

PostgreSQL

Spring

Задача: разработать систему документооборота

Требования к системе

-выдерживает нагрузку около 100000 новых документов в день

-предполагает наличие большого количества разных типов документов (на первом этапе — 70 типов)

-имеет единый унифицированный интерфейс для работы со всеми документами

-имеет средство автоматизации работы с документами (бизнес-процесс согласования документов)

-позволяет работать множеству юридических лиц, так как ее потребитель — крупный холдинг. Обмен документами может производиться между разными юридическими лицами, входящими в состав холдинга и внешними контрагентами.

-интегрирована с государственными информационными сервисами, предоставляющими информацию по ЕГРЮЛ и ЕГРИП. При этом система должна обеспечивать полнотекстовый поиск по данными сведениям.

Этапы реализации проекта:

1.Разработано техническое задание и подготовлена аннотация документов, которые будут храниться в системе документооборота. Это позволило сократить время разработки и избежать ошибок при переносе данных из технического задания в код. Аннотация описывала поля с их названием, типом, валидацией и ограничениями. Написали утилиту, которая на основании этих данных генерировала бы структуру базы данных и метаданные для описания поиска интерфейса.


2.Так как поиск интерфейса для всех документов был унифицирован, вся система документооборота была построена на микросервисной архитектуре. Мы сделали специальный микросервис, который отвечает за предоставление метаинформации о документах для построения поиска интерфейса (то как документ будет отображаться на экране компьютера).


3.Разработана библиотека на базе angular, которая позволяет быстро генерировать поиск интерфейса для каждого типа документов. Фронтент запрашивает у микросервиса сведения о документе и на основании этих сведений строит формы создания документа, просмотра и списка документов данного типа. Учитывались все ограничения по валидизации вводимых данных, так для формы списка документов — это показ нужных полей, которые должны быть в списке и выбор необходимых сортировок документов. Возможны сортировки и параметры поиска для каждого типа документов.


4.Унифицированы бизнес-процессы для работы с документами на базе движка CAMUNDA. Было реализовано три бизнес-процесса:
-Создание и согласование документа
-Редактирование
-Обмен корреспонденцией


5.Пользователь может просмотреть каждую версию документа, которая была создана. При этом в списке документов всегда отображается последняя версия. Для этой цели задействован движок Elasticsearch. Он позволяет хранить в виде индексов поля, отображающиеся в списке последней версии документа, а в базе данных хранить все необходимые версии.


6.Разработаны два интеграционных микросервиса:
— Интеграция с сервисом dadata (получение адресов, необходимых в государственном стандарте
— Интеграция в системе ЕГРЮЛ и ЕГРИП. Это позволило иметь полноценный список, по которому можно осуществлять поиск. Был разработан микросервис, который мог собирать данные, имплицировать внутрь хранимых данных, индексировать необходимую информацию и предоставлять сведения для всей системы документооборота.

Используемые технологии:

Язык разработки: Java
Базовая библиотека: Spring
Базовая библиотрека для разработки пользовательского интерфейса: angular
СУБД: PostgreSQL
Движок для полнотекстового поиска и полнотекстового индексирования: Elasticsearch
Для прототипирования использовался JHipster

Оставить
заявку

    01Услуга

    02Контакты