Диплом: Автоматизация приема заявок на ремонт и модернизацию ВК в ООО Гео-Свет

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
65
Таблица 10
Таблица status
Наименование поля
Идентификатор
поля
Тип
поля
Длина
поля
Прочее
Код статуса
id
int
11
PK, AI
Наименование статуса
caption
varchar
120
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Таблица 11
Таблица typeticket
Наименование поля
Идентификатор
поля
Тип
поля
Длина
поля
Прочее
Код типа неисправности
id
int
11
PK, AI
Наименование типа
неисправности
caption
varchar
255
Отображать на форме
добавления заявки?
active
tinyint
1
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
Таблица 12
Таблица comment
Наименование поля
Идентификатор
поля
ип
поля
Длина
поля
Прочее
Код комментария
id
int
11
PK, AI
Текст комментария
texts
varchar
255
Код пользователя (автора
комментария)
userid
int
11
FK
Код заявки
ticketid
int
11
FK
Ссылка на файл
image
varchar
255
Дата создания
createat
datetime
Дата изменения
modifiedat
datetime
SQL-скрипт для создания базы данных приведен в приложении 1.
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
Популярность языка php обусловила появление большого числа
фреймворков, основанных на нем. Фреймворк – программная платформа,
определяющая структуру программной системы; программное обеспечение,
облегчающее разработку и объединение разных компонентов большого
программного проекта.
66
Для написания информационной системы использовался фреймворк языка
php Symfony 2.
Symfony 2 – один из самых популярных PHP-фреймворков в настоящее
время. Он включает в себя весь набор инструментов, используемый для быстрой
разработки веб-приложений, и при этом абсолютно ничего не навязывает
создаваемому приложению. Разработчик может быстро начать работу, используя
дистрибутив Symfony2.
Сильные стороны Symfony 2:
Высокая скорость работы за счет использования шаблонизатора под
именем Twig, который использует оптимизированный PHP-код;
Гибкость в настройке – Symfony позволяет конфигурировать
приложения в трех различных форматах: аннотации, XML, YML. Есть
возможность использовать все конфигурации одновременно;
Расширяемость – поскольку Symfony основан на концепции DI
(слабая связанность), программист может в любое время расширять приложение
за счет подключения новых бандлов, которые минимально влияют на работу
других бандлов, но зато возможна конфигурация их совместной работы;
Стабильность – длительное время поддержки версий;
Ориентированность на разработчика - Symfony имеет очень удобную
консоль и для того, чтобы программист не выполнял рутинную работу, консоль
Symfony делает генерацию определенного кода вместо программиста с помощью
определенных команд.
Данный фреймворк работает с подходом к программированию,
называемый Model-view-controller (MVC, «модель-представление-контроллер»,
«модель-вид-контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлениях и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и
методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
67
Объекты данной группы не содержат информации, как эти знания можно
визуализировать.
Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
(окно) с графическими элементами. Главная задача – представить информацию,
хранимой в модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и
использует модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько
различных представлений для одной модели.
В таблице 13 приведен список разработанных программных модулей-
контроллеров, в таблице 14 – модели, в таблице 15 – представления.
Таблица 13
Программные модули Controller
Название
Описание
DefaultContoller.php
Класс контроллера, обрабатывающий маршрут главной
страницы информационной системы
AbstractController.php
Родительский класс контроллера, содержащий методы
для отображения данных и форм, обработки
отправленных форм
SecurityController.php
Класс контроллера, содержащий методы и функции,
необходимые для реализации функций авторизации,
выхода из сайта, управления профилем пользователя
TicketsController.php
Класс контроллера, содержащий методы для
реализации работы с заявками всеми пользователями
ИС
SpravController.php
Класс контроллера, содержащий методы для
реализации работы со справочниками
68
Таблица 14
Программные модули Model
Название
Описание
AbstractEntity.php
Родительский класс модели, содержащий базовые
методы и свойства для реализации классов модели
User.php
Класс модели, содержащий атрибуты и методы для
работы с объектом пользователя
Department.php
Класс модели, содержащий атрибуты и методы для
работы с объектом отделения
Ticket.php
Класс модели, содержащий атрибуты и методы для
работы с объектом заявки
Comment.php
Класс модели, содержащий атрибуты и методы для
работы с объектом комментария к заявке
Status.php
Класс модели, содержащий атрибуты и методы для
работы с объектом статуса заявки
Role.php
Класс модели, содержащий атрибуты и методы для
работы с объектом роли пользователя
TypeTicket.php
Класс модели, содержащий атрибуты и методы для
работы с видом неисправности
Таблица 15
Программные модули View
Название
Описание
AbstractFormType.php
Класс формы управления данными
LoginFormType.php
Класс формы авторизации
FilterFormType.php
Класс формы для реализации фильтров
UserFormType.php
Класс формы для реализации работы с данными
пользователя
TicketFormType.php
Класс формы для реализации работы с данными заявки
SpravFormType.php
Класс формы для реализации работы с записью
справочника
2.3.4. Описание программных модулей
Разработка ИС велась с использованием двух инструментов:
программы phpMyAdmin, которая является веб-приложение для
работы с СУБД MySQL;
редактора программного кода PhpStorm.
C помощью PhpMyAdmin была создана база данных и все таблицы в ней, а
с помощью PhpStorm выполнялось создание программных модулей. PhpStorm
является продвинутым редактором кода для языка программирования PHP.
69
Данный редактор имеет функционал анализа написанного кода, проверки
ошибок синтаксиса и базовых операций над переменными (проверка
соответствия типов переменных, предварительного объявления переменных и
т.п.), что значительно ускоряет процесс разработку снижает вероятность ошибок
в программном коде.
Главная особенность объектно-ориентированного программирования
(ООП) заключается в том, что при использовании этого метода происходит
оперирование объектами.
Под объектом в программировании понимается совокупность свойств,
методов их обработки и событий, на которые данный объект может реагировать.
Под свойствами объекта обычно понимают структуры данных, характерных для
данного объекта, или другими словами – набор свойств, которые характеризуют
какой-либо объект. Метод – это способ влияния на свойства объекта, обычно
используют два метода – установка какому-то свойству определенного значения,
и считывание значения этого свойства. Объединение данных и свойственных им
процедур обработки в одном объекте, называется инкапсуляцией и является
одним из важнейших принципов ООП.
Еще одним фундаментальным понятием ООП является класс. Классом
называют шаблон, на основе которого создается конкретный программные
объект. То есть в классе описаны все свойства и методы, определяющие
поведение каждого объекта, созданного на основе этого класса. Также принято
каждый объект, созданный на основе класса называть экземпляром этого класса.
Следующими важнейшими принципами ООП являются наследование и
полиморфизм.
Наследование – такая организация классов, которая подразумевает
создание новых классов на базе существующих и позволяет классу потомку
иметь (наследовать) все свойства класса – родителя.
Полиморфизм – означает, что рожденные объекты обладают информацией
о том, какие методы они должны использовать в зависимости от того, в каком
70
месте цепочки (дерева классов) они находятся, иными словами это концепция,
реализующая «множество методов в одном интерфейсе».
В структуре программных модулей разработанной ИС Можно четко
проследить механизм наследования. Всего присутствует три родительских
класса: AbstractController.php, AbstractEntity.php, AbstractFormType.php.
Первый является родителем для всех контроллеров ИС, он содержит
объявления таких методов и свойств, которые в дальнейшем используются в
каждом контроллере:
проверка авторизации;
массив форм;
менеджер для доступа к модели;
массив объектов модели;
получение http-запроса;
доступ к сессии пользователя;
доступ к объекту текущего пользователя;
доступ к текущему представлению;
массив для отображения текущего раздела в панели навигации.
Второй родительский класс является родителем для всех сущностей. В нем
выделено три основных свойства (атрибута сущности):
дата создания;
идентификатор;
дата изменения.
А также два метода:
конструктор создания нового объекта класса;
триггер обновления объекта, который меняет свойство «Дата
последнего обновления записи».
Последний родительский класс – это класс для форм ИС. В нем также
задаются основные константы и конструктор.
71
Следует заметить, что все описанные выше родительские классы
наследуются от фундаментальных классов фреймворка Symfony, которые
содержат базовые свойства и методы, разделяющие эти классы на три группы
MVC.
Каждый контролер обрабатывает запросы, отправляемые по
соответствующему маршруту. Описание того, какой контроллер должен
обрабатывать тот или иной маршрут оформляется в виде отдельного файла:
routing.yml.
Пример записи (главная страница ИС):
index:
path: /
defaults: { _controller: "AppBundle:DefaultController:Index" }
Такая запись означает следующее:
первая строка – название маршрута (index);
вторая строка – путь, или URL-адрес маршрута (/);
третья строка – имя класса контроллера, который должен
обрабатывать маршрут, а также метод этого контроллера, ответственный именно
за этот маршрут;
Обработка маршрута выполняется в контроллере DefaultController.php.
При переходе по маршруту (отправке запроса на url /) начинает свою работу
метод IndexAction. Данный метод проверяет наличие у пользователя открытой
сессии авторизации, и если такой нет, то перенаправляет пользователя на форму
авторизации (маршрут /login, Контроллер SecurityController.php).
Для обработки шаблонов и формирования на их основе html-страниц,
отображаемых пользователю, используется распространенный шаблонизатор
twig. Twig – компилирующий обработчик шаблонов с открытым исходным
кодом, написанный на языке программирования PHP. Синтаксис,
поддерживаемый шаблонизатором позволяет использовать в шаблонах
ветвления, циклы, а удобная структура кода позволяет значительно сократить
72
итоговый объем программного кода. Также стоит отметить, что шаблонизатор
генерирует на основе своих шаблонов чистый php-код, который обрабатывается
значительно быстрее.
При переадресации на маршрут открытия формы авторизации (/login),
срабатывает метод loginAction контроллера SecurityController.php. Он создает
экземпляр формы LoginFormType.php и обрабатывает её отправку.
После успешного прохождения авторизации, пользователю отображается
страница со списком заявок пользователя. Данную страницу формирует метод
indexAction контроллера DefaultController.php на основании шаблона
General:index.html.twig.
Для реализации интерактивных элементов пользовательского интерфейса
используются ajax-запросы.
AJAX – это аббревиатура, которая означает Asynchronous Javascript and
XML. При использовании AJAX нет необходимости обновлять каждый раз всю
страницу, так как обновляется только ее конкретная часть.
Обобщим достоинства AJAX:
возможность создания удобного Web-интерфейса;
активное взаимодействие с пользователем;
частичная перезагрузка страницы, вместо полной;
удобство использования.
Для более удобного написания программного кода ajax-запросов была
подключена библиотека jQuery.
jQuery – это JavaScript-библиотека, фокусирующаяся на взаимодействии
JavaScript, HTML и CSS.
С помощью jQuery можно выполнять следующие операции:
обращаться к любому элементу DOM (объектной модели html-
документа) и не только обращаться, но и манипулировать ими;
работать с событиями;
73
легко осуществлять различные визуальные эффекты;
работать с AJAX.
Перечисленные выше функции можно реализовать и с помощью обычного
Javascript-кода, однако использование библиотеки значительно упрощает
написание программного кода, а также упрощает его структуру и делает более
понятным для понимания.
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
При открытии страницы сайта открывается форма авторизации (Рисунок
23).
Рисунок 23 – Форма авторизации
После прохождения авторизации отображается раздел работы с заявками.
Если пользователю назначена роль «Сотрудник», то в данном разделе
отображаются заявки, поданные сотрудником. Если заявок еще не было создано,
то отображается пустая таблица с кнопкой создания новой заявки (Рисунок 24).
74
Рисунок 24 – Раздел работы с заявками
При нажатии на кнопку создания новой заявки отображается
соответствующая форма (Рисунок 25).
Рисунок 25 – Форма создания заявки
Поле заполнения формы и отправки данных созданная заявка
отображается в списке всех поданных заявок. При клике на номер данной заявки
в списке открывается страница работы с заявкой, в верхней части страницы
отображаются данные по заявке, а ниже – комментарии к данной заявке в виде
чата. Под окном чата отображаются кнопки управления заявкой (Рисунок 26).

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

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