Диплом: Автоматизация документооборота ООО "КОМПАНИЯ ТЕНЗОР"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
76
После этого вызывается callback на прикрепление файлов к объекту, на котором
настроен View.
Отдельный случай – загрузка файла из буфера обмена. Схема остается
такой же, добавляется использование микро сервиса «Buffer» для получения
тела файла из буфера обмена.
12. Удаление файлов с откреплением их от документа
Схема удаления файлов:
Рис. 22 Схема удаления файлов через мобильное приложение
Файлы помечаются как удаляемые путем взведение флага «Deleted» у
поля «SyncState» таблиц «Attachment» и «Redaction» у всех вложений и
редакций. После того, как пришло событие об успешности операции удаления
файла из облака, файл удаляется и из локальной БД.
13. Редактирование файлов
В мобильном приложении можно редактировать только метаданные файлы, а
не их содержимое. При редактировании метаданных, вызывается метод
«Update» у микро сервиса «Attachments». Данные сохраняются локально, и у
77
редакций и вложений взводится флаг «Updated» у поля «SyncState». Сами
изменения уходят в облако вместе с прикладным пакетом данных при
синхронизации. Метод «AttachmentsSync::Get()» вернет Record с полем
«Updated», в котором будут все измененные вложения.
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
Описание API
Основным API для работы с контроллером файлов является «IAttachments». UI
компонент содержит указатель на объект этого интерфейса. Методы
интерфейса представлены ниже.
# Фабричный интерфейс для работы с файлами
# @author Столбов М.О.
# @version 1.0
i_attachment = interface +c {
# Получение экземпляра класса i_attachment
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static instance(): i_attachment;
# Получение контроллера для работы с вложениями
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static get_attachment(): attachment;
# Получение контроллера для работы с телом вложений
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
78
static get_doc_view(): doc_view;
# Получение контроллера для работы с редакциями вложений
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static get_redaction(): redaction;
# Получение контроллера для работы с ЭЦП
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static get_sign_info(): sign_info;
}
Основным API по работе с вложениями является «attachment» с моделью
данных «file_info». Список методов и модели данных представлены ниже.
# Формат информации о файле
# @author Столбов М.О.
# @version 1.0
file_info = record {
# Целочисленный идентификатор вложения в локальной БД
id: i32;
# Целочисленный идентификатор редакции в локальной БД
red_id: i32;
# Идентификатор вложения
attach_id: optional<uuid>;
79
# Идентификатор редакции
redaction_id: optional<string>;
# Идентификатор каталога
catalog_id: optional<uuid>;
# Имя файла
file_name: string;
# Название
title: string;
# Версия
hash: optional<date>;
# Размер файла
size: optional<i64>;
# Является ли папкой
is_folder: bool;
# Идентификатор корня
folder: optional<uuid>;
# Дата последнего изменения
modify_date: optional<date>;
# Права на файл
80
rights: map<rights_type, bool>;
# Тип документа
doc_type: optional<string>;
# Под тип документа
doc_sub_type: optional<string>;
# Версия формата
format_version: optional<string>;
# Под версия формата
format_sub_version: optional<string>;
# Количество редакций
redactions_count: optional<i32>;
# Тип шифрования
encrypted: encrypted_type;
# Настоящая ширина, нужна, если у Вас плитка как у Яндекса
image_width: optional<i32>;
# Настоящая высота, нужна, если у Вас плитка как у Яндекса
image_height: optional<i32>;
# Количество подписей
signs_count: i32;
81
# Состояние подписания
sign_state: sign_state_enum;
# Ссылка на файл в локальном хранилище
local_url: optional<string>;
# Ссылка на pdf файл в локальном хранилище
pdf_url: optional<string>;
# Ссылка на preview файл в локальном хранилище
preview_url: optional<string>;
# Статус синхронизации
sync_state: i16;
# Версия
version: i32;
# Флаги
flags: map<flags_type, bool>;
}
# Фильтр для работы с файлами
# @author Столбов М.О.
# @version 1.0
attachment_filter = record {
# Фильтр по первичным ключам вложений
ids: list<i32>;
# Фильтр по идентификаторам вложений
82
uuids: list<uuid>;
# Фильтр по идентификатору каталога
catalog_ids: list<uuid>;
# Фильтр по идентификатору корня
folder: optional<uuid>;
# Навигация
nav: navigation;
}
# Интерфейс по работе с вложениями
# @author Столбов М.О.
# @version 1.0
attachment = interface +c : crud.crud<file_info, attachment_filter> {
# Получение экземпляра класса attachment
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static instance(): attachment;
# Добавление записей в таблицу Attachment из file_info
# @author Столбов М.О.
# @version 1.0
# @param files: file_info структура добавляемого файла
# @return результат - вновь созданная запись
create(file: file_info): file_info;
# Массовое добавление записей в таблицу Attachment из file_info
83
# @author Столбов М.О.
# @version 1.0
# @param files: list<file_info> вектор добавляемых файлов
# @return результат успешности добавления
create(files: list<file_info>): bool;
# Получение модели модели данных file_info
# @author Столбов М.О.
# @version 1.0
# @param id uuid идентификатор вложения
# @param redaction_id optional<string> идентификатор редакции
# @return вернет модель данных file_info
read(id: uuid, redaction_id: optional<string>): optional<file_info>;
# Получение модели модели данных file_info
# @author Столбов М.О.
# @version 1.0
# @param attach_id: i32 целочисленный идентификатор вложения
# @return вернет модель данных file_info
read(attach_id: i32): optional<file_info>;
# Массовое удаление записей из таблицы Attachment
# @author Столбов М.О.
# @version 1.0
# @param ids: list<i32> массив удаляемых идентификаторов
# @return результат успешности удаления
delete(ids: list<i32>): bool;
}
84
Основным API по работе с редакциями является «redaction» с моделью данных
«file_info». Список методов интерфейса представлен ниже.
# Фильтр для работы с редакциями файлов
# @author Столбов М.О.
# @version 1.0
redaction_filter = record {
# Фильтр по первичным ключам редакций
ids: list<i32>;
# Фильтр по идентификаторам вложений
uuids: list<uuid>;
# Фильтр по идентификаторам редакций
ext_ids: list<string>;
# Навигация
nav: navigation;
}
# Интерфейс для получения содержимого версий вложений
# @author Столбов М.О.
# @version 1.0
redaction = interface +c : crud.crud<file_info, redaction_filter> {
# Получение экземпляра класса redaction
# @author Столбов М.О.
# @version 1.0
# @return вернет экземпляр класса
static instance(): redaction;
# Добавление записей в таблицу Redaction из file_info
85
# @author Столбов М.О.
# @version 1.0
# @param files: file_info структура добавляемого файла
# @return результат - вновь созданная запись
create(file: file_info): file_info;
# Добавление записей в таблицу Redaction из file_info
# @author Столбов М.О.
# @version 1.0
# @param files: list<file_info> вектор добавляемых файлов
# @return результат успешности добавления
create(files: list<file_info>): bool;
# Получение метаданных файла по идентификатору сбис диска редакции
# @author Столбов М.О.
# @version 1.0
# @param redaction_id string идентификатор редакции
# @return возвращается структура file_info
read(redaction_id: string): optional<file_info>;
}
Для получения модели данных с содержимым файла, его PDF
представления или preview реализуется API «doc_view» с моделью данных
«file_data».
# Формат данных файла
# @author Столбов М.О.
# @version 1.0
file_data = record {
# Идентификатор вложения
attach_id: optional<uuid>;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)