Диплом: Автоматизация документооборота организации ООО "АРСтрой"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
62
Таблица 10
Таблица user_roles
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код пользователя
userid
int
4
Код роли
roleid
int
4
Таблица 11
Таблица role
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код роли
id
int
4
AI
Наименование
роли
caption
varchar
120
Таблица 12
Таблица department
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код отдела
id
int
4
AI
Наименование
отдела
caption
varchar
120
Таблица 13
Таблица staff
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код должности
id
int
4
AI
Наименование
должности
caption
varchar
120
Таблица 14
Таблица status
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код статуса
id
int
4
AI
Наименование
статуса
caption
varchar
120
\
63
Таблица 15
Таблица typedoc
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа
документа
id
int
4
AI
Наименование типа
документа
caption
varchar
120
Таблица 16
Таблица department_types
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа
typeid
int
4
Код отдела
departmentid
int
4
Таблица 17
Таблица staff_types
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа
typeid
int
4
Код должности
staffid
int
4
Таблица 18
Таблица document
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код документа
id
int
4
AI
Наименование
документа
caption
varchar
255
Описание
документа
description
longtext
255
NULL
Код пользователя-
автора документа
authorid
int
4
Код пользователя,
принявшего
документа
recipientid
int
4
Код статуса
statusid
int
4
Дата создания
createdat
datetime
10
Срок
deadline
datetime
10
Код типа
typeid
int
4
64
Таблица 19
Таблица uploadfile
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код файла
id
int
4
AI
Дата загрузки
createdat
datetime
10
Путь к файлу
pathfile
varchar
255
Код документа
docid
int
4
Код пользователя-
автора
authorid
int
4
Таблица 20
Таблица comment
Наименование поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код комментария
id
int
4
AI
Текст комментария
commenttext
longtext
65655
Дата отправки
комментария
createdat
datetime
10
Код пользователя-
автора
authorid
int
4
Код документа
documentid
int
4
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
Для написания информационной системы автоматизации
документооборота использовался фреймворк языка php Symfony 2. Данный
фреймворк работает с подходом к программированию, называемый Model-view-
controller (MVC, «модель-представление-контроллер», «модель-вид-
контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлений и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и
методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
Объекты данной группы не содержат информации, как эти знания можно
визуализировать.
Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
65
(окно) с графическими элементами. Главная задача – представить информацию,
хранимой в модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и
использует модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько
различных представлений для одной модели.
Общая схема архитектуры информационной системы согласно данной
парадигмы изображена на рисунке 24.
MODEL (Модель)
VIEW
(Представление)
CONTROLLER
(Контролер)
USER
Отображение
Воздействие
Управление
Обновления
Рисунок 24 – Архитектура ИС (Model-view-controller)
Список разработанных программных модулей и их назначений представлен
в таблице 21.
Таблица 21
Программные модули
Номер
Название
Описание
1
routing.yml
Файл с настройками маршрутов для
маршрутизатора Symfony 2
2
DefaultContoller.php
Класс контроллера, обрабатывающий
маршрут главной страницы
информационной системы
3
DepartmentController.php
Класс контроллера, содержащий методы
для отображения данных и форм об
отделах компании, обработки
отправленных форм
66
4
DocController.php
Класс контроллера, содержащий методы
для отображения данных и форм работы с
документами, комментариями и файлами к
ним, обработки отправленных форм
5
StaffController
Класс контроллера, содержащий методы
для отображения данных и форм о
должностях компании, обработки
отправленных форм
6
TypeDocController.php
Класс контроллера, содержащий методы
для отображения данных и форм о типах
документов, обработки отправленных форм
7
SecurityController.php
Класс контроллера, содержащий методы и
функции, необходимые для реализации
функций авторизации, выхода из сайта,
управления профилем пользователя
8
UsersController.php
Класс контроллера, содержащий методы
для отображения данных и форм о
пользователях, обработки отправленных
форм
9
User.php
Класс модели, содержащий атрибуты и
методы для работы с объектом
пользователя
10
Department.php
Класс модели, содержащий атрибуты и
методы для работы с объектом отдела
11
Doc.php
Класс модели, содержащий атрибуты и
методы для работы с документом
12
Comment.php
Класс модели, содержащий атрибуты и
методы для работы с объектом
комментария к документу
13
Status.php
Класс модели, содержащий атрибуты и
методы для работы с объектом статуса
документа
14
Role.php
Класс модели, содержащий атрибуты и
методы для работы с объектом роли
пользователя
15
TypeDoc.php
Класс модели, содержащий атрибуты и
методы для работы с типом документа
16
Staff.php
Класс модели, содержащий атрибуты и
методы для работы с должностью
17
DepartmentFormType.php
Класс формы управления данными отдела
18
LoginFormType.php
Класс формы авторизации
19
DocFormType.php
Класс формы управления данными
документа
20
CommentFormType
Класс формы отправки комментария
21
DocFilterFormType.php
Класс формы для реализации фильтра в
списке документов
67
22
StatusFormType.php
Класс формы управления данными
статусов документов
23
StaffFormType.php
Класс формы управления данными
должности
24
TypeDocFormType.php
Класс формы для управления данными
типа документа
25
ProfileFormType.php
Класс формы для реализации работы с
профилем пользователя
26
UserFormType.php
Класс формы для реализации работы с
данными пользователя
27
UserFilterType.php
Класс формы для реализации фильтра в
списке пользователей
На рисунке 25 приведено дерево вызова программных модулей.
DefaultCntroller.php
AbstractCntroller.php
SeurityController.php
DepartmentController.php
DocController.php
AbstractEntity.php
Comment.php
Comment.php
Doc.php
DocFormType.php
CommentFormType.php
AbstractFormType.php
LoginFormType.php
CommentFormType.php
DepartmentFormType.php
Status.php
StaffController.php
Staff.php
StaffFormType.php
UsersController.php
User.php
UserFormType.php
TypeDocController.php
TypeDoc.php
TypeDocFormType.php
ProfileFormType.php
DocFilterFormType.php
Рисунок 25 – Дерево вызова программных модулей
2.3.4. Описание программных модулей
Каждый контролер обрабатывает запросы, отправляемые по
соответствующему маршруту. Описание того, какой контроллер должен
68
обрабатывать тот или иной маршрут оформляется в виде отдельного файла:
routing.yml.
Пример записи (главная страница ИС):
index:
path: /
defaults: { _controller: "AppBundle:DefaultController:Index" }
Такая запись означает следующее:
первая строка – название маршрута (index);
вторая строка – путь, или URL-адрес маршрута (/);
третья строка – имя класса контроллера, который должен
обрабатывать маршрут, а также метод этого контроллера, ответственный именно
за этот маршрут;
Обработка маршрута выполняется в контроллере DefaultController.php. При
переходе по маршруту (отправке запроса на url /) начинает свою работу метод
IndexAction. Данный метод проверяет наличие у пользователя открытой сессии
авторизации, и если такой нет, то перенаправляет пользователя на форму
авторизации (маршрут /login, Контроллер SecurityController.php).
Для обработки шаблонов и формирования на их основе html-страниц,
отображаемых пользователю, используется распространенный шаблонизатор
twig. Twig компилирующий обработчик шаблонов с открытым исходным кодом,
написанный на языке программирования PHP. Синтаксис, поддерживаемый
шаблонизатором позволяет использовать в шаблонах ветвления, циклы, а удобная
структура кода позволяет значительно сократить итоговый объем программного
кода. Также стоит отметить, что шаблонизатор генерирует на основе своих
шаблонов чистый php-код, который обрабатывается значительно быстрее.
При переадресации на маршрут открытия формы (/login), срабатывает
метод loginAction контроллера SecurityController.php. Он создает экземпляр
формы LoginFormType.php и обрабатывает её отправку. На рисунке 26 приведен
алгоритм работы данного метода.
69
Начало
Создание экземпляра класса
LoginFormType
Проверка наличия у посетителя
активной сессии авторизации
Переадресация на
главную страницу
раздела
Документы
(маршрут
documents)
Сессия имеется
Сессии не имеется
Переадресация на главную страницу
раздела Документы (маршрут
documents)
Конец
Форма была отправлена?
Да
Отправка запроса к модели
данных на выборку
информации о пользователе,
чей логин совпадает с
введенным
Создание сессии авторизации
Создание представления на
основе шаблона
login.html.twig
Отображение страницы
авторизации пользователю
НЕТ
Пароль верный?
ДА
НЕТ
Отображение сообщения
об ошибке
Рисунок 26 – Алгоритм работы метода loginAction
После успешного прохождения авторизации, пользователю отображается
страница со списком документов. Данную страницу формирует метод indexAction
контроллера DocController.php на основании шаблона Documents:index.html.twig.
Методы остальных контроллеров работают аналогичным образом.
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
При открытии страницы сайта открывается форма авторизации (Рисунок
27).
70
Рисунок 27 – Форма авторизации
После прохождения авторизации открывается раздел работы с
документами. В данном разделе отображаются все документы, к которым имеет
отношение пользователь. Над списком документом отображается форма для
поиска и фильтрации документов (Рисунок 28).
Рисунок 28 – Раздел работы с документами
При нажатии на кнопку создания нового документа отображается
соответствующая форма (Рисунок 29).
71
Рисунок 29 – Форма создания документа
Поле заполнения формы и отправки данных созданный документ
отображается в списке всех документов. При клике на название или номер
данного документа в списке открывается страница работы с документом: в
верхней части страницы отображаются данные по документу, либо список файлов
(на отдельных вкладках), а ниже – комментарии к данному документу в виде чата.
Под чатом находятся кнопки для управления документом. (Рисунок 30).

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

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