Дипломная работа: Автоматизация приема и обработки заявок отделом техподдержки Богородском филиале АО "НПО "Прибор"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
67
2.3.2. Характеристика базы данных
В разработанной информационной системе каждая заявка представляет собой
отдельный текстовый файл, в зависимости от статуса его исполнения
перемещаемый между директориями active, complite и archive (активная заявка в
работе, завершенная заявка, архивная заявка, выполненная, поданная минимум в
прошлом месяце).
В дипломном проекте я не использовал СУБД и тут дело обстоит не только в
требованиях, представленных в техническом задании.
Информация обрабатывается 2-мя одинаковыми серверами в разных сетях,
физически разделенных между собой, обмен информацией между сетями по
регламенту происходит через запись CD диска с последующим его уничтожением,
либо через сотрудника отдела ИТ, который имеет доступ к сетевой папке между
серверами NAS в разных сетях, подключенных кроссовер между собой,
соответственно доступ к папке возможен только по smb/cifs, чтобы обеспечить
актуальность данных в обеих сетях я мог использовать только эту "лазейку",
соответственно использование SQL базы привело бы к разности информации,
подаваемые заявки в сети с доступом в Интернет были бы видны только там, в
закрытой сети, были бы видны заявки поданные в этой сети. Использовав
текстовую базу, в сетевой папке которая видна в обеих сетях я обеспечил
единообразие представляемой информации, так это не только требование ТЗ, но
и действенное решение в условиях существующей сетевой инфраструктуры.
Каждая заявка являет собой отдельный файл, в который построчно записаны поля.
Данные поля полностью соответствуют структуре используемой на предприятии
таблицы журнала заявок от пользователя. Файлы заявок хранятся в директориях
active, complete и archive и перемещаются системой по мере обработки заявки.
Уникальность имени файла заявки обеспечивается формированием из текущей
даты при создании заявки в формате ГГГГММДДЧЧММССМСМС_ID.task (год
четыре знака, месяц два знака, день два знака, час два знака, минуты два знака,
секунды два знака, миллисекунды два знака, идентификатор пользователя,
подавшего заявку, расширение).
Пример имени файла заявки:
2019011401560716_1.task
Пример содержимого файла заявки:
<tr><td>АНБ 56161</td><td>14.01.2019</td><td>01:56</td><td>Консультация
1С</td><td>Создана пользователем <b>ivanovii</b>.<br>text</td><td>От:
<b>ivanovii</b><br>text...</td></tr>
68
Разделителем полей служат символы html разметки тела таблицы.
Файлы заявок являются текстовыми и используют кодировку Windows-1251, что
являлось одним из пунктов ТЗ. Обусловленным работой DLP системы
проверяющей эти файлы.
Так же в ИС используется файл с логинами, id и хешами паролей, создание именно
текстовой базы, а не SQL обусловлено требованиями технического задания.
Пример содержимого файла логинов и хешей паролей:
if($_POST["user"]=='admin'){
$id=0;
$pass='81dc9bdb52d04dc20036dbd8313ed055';}
if($_POST["user"]=='ivanovii'){
$id=1;
$pass='b0baee9d279d34fa1dfd71aadb908c3f';}
if($_POST["user"]=='SynergyADM'){
$id=2;
$pass='827ccb0eea8a706c4c34a16891f84e7b';}
if($_POST["user"]=='SynergyUSR'){
$id=3;
$pass='827ccb0eea8a706c4c34a16891f84e7b';}
if($_POST["user"]=='User4'){
$id=4;
$pass='5296cfc6ec955214093259aa055553ad';}
if($_POST["user"]=='User5'){
$id=5;
$pass='a82aafc4e0446e82a0c12e9f08e1dd8c';}
if($_POST["user"]=='User6'){
$id=6;
$pass='8a3cfec488a8be6bc2c76698dfe7b49b';}
if($_POST["user"]=='User7'){
$id=7;
$pass='e73ce75a0526905981ad0c7d9361caba';}
if($_POST["user"]=='User8'){
$id=8;
$pass='371b3fe8a8122963227f12992a213efb';}
if($_POST["user"]=='User9'){
$id=9;
$pass='4ee92e00face53ec101d91137f5d1bb0';}
Файл подключается из модуля «Страница входа» и являет собой множество
условных операторов, проверяющих совпадения значений из формы и хеша
введенного пароля и передающего управление модулю «Главная страница».
В конструкции я использовал множество условных операторов if, так как по
замерам, большой case обрабатывается PHP медленней.
69
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
При входе в систему загружается модуль «Страница входа» (index.php) которая
передаёт управление подключаемому файлу «Авторизация» (login.php), в
соответствии с действиями пользователя, данный файл, либо передаёт управление
модулю «Главная страница» (main.php), либо, после семи секунд задержки (защита
от брутфорса) переходит к странице ошибки 401 в случае, если пользователь не
прошел идентификацию. Так же со страницы входа можно перейти к модулю
«Руководство пользователя», который являет собой интерактивную справочную
систему по работе с ИС.
Модуль «Главная страница» (main.php), в зависимомти от выбора пользователя
перенаправляет к модулям «Новая заявка», «Просмотр заявок», или «Просмотр
архива»
Модуль «Новая заявка» (new_task.php), содержит формы «Прицина обращения» и
«Текст заявки». «Прицина обращения» являет собой выпадающий список с
наиболее распространенными типами обращения в отдел ИТ (например: Ремонт
ПК), является необязательным к заполнению. Форма «Текст заявки» представляет
из себя текстовое поле, в которое пользователь заносит текст обращения и кнопку
«Отправить», нажав на которую происходит формирование заявки.
Модуль «Просмотр заявок» (table.php) содержит следующие элементы:
1) Имя пользователя и кнопка для выхода из сеанса
2) Выпадающий список "Автообновление страницы"
3) Выпадающий список сортировки заявок
4) Счетчик количества заявок
Счетчик отображает количество найденных заявок в данной категории.
Справа расположена кнопка "Печать", подготавливающая версию страницы для
печати и выводящая диалоговое окно печати.
Если количество заявок в данной категории равно нулю, Вы увидите следующий
элемент на странице: "Внимание Заявок не найдено."
Таблица заявок представляет собой собственно таблицу, каждая строка которой
отображает последнее выполненное действие по поданной Вами заявке.
Для получения подробностей по заявке щелкните мышкой по интересующей
строке.
Таблица состоит из следующих элементов:
70
1) Шапка сортировки по таблице
2) Содержимое таблицы
3) Подвал с элементами управления "Количество записей в таблице"
Шапка таблицы заявок содержит 6 столбцов: # (номер), Дата, Ч:М (часы и минуты),
Тип (причина обращения), Статус и Описание, нажав на которые Вы сможете
произвести сортировку по соответствующему столбцу.
Содержимое таблицы заявок представляет собой строки разделенные на 6
столбцов: # (номер), Дата, Ч:М (часы и минуты), Тип (причина обращения), Статус
и Описание.
Каждая из строк отображает последнее выполненное действие по поданной Вами
заявке.
Подвал с элементами управления "Количество записей в таблице". Данный элемент
прикрепляющийся к нижнему краю таблицы предназначается регулировки
количества отображаемых строк заявок на страницу. Он состоит из (слева направо):
1) Выпадающего списка с числами отображающими количество строк на страницу
2) Кнопки "На первую страницу"
3) Кнопки "На страницу назад"
4) Кнопки "На страницу вперед"
5) Кнопки "На последнюю страницу"
6) Текста отображающего текущую и общее количество страниц вида: Стр. X из Y
В зависимости относится заявка к активным (находящимся в работе), или
завершенным Вы увидите разные интерфейсы, позволяющие работать с заявкой.
У активных это:
1) "Причина обращения"
2) "Комментарий / дополнение заявки"
У завершенных кнопка вернуть заявку на доработку.
Форма комментария / дополнения к заявке схожа с формой новой заявки и состоит
из текстового поля и кнопки "Отправить" при нажатии на которую появляется
диалоговое окно с запросом подтверждения отправки данных.
71
Форма вернуть на доработку состоит из всего одной кнопки "Вернуть" при
нажатии на которую появляется диалоговое окно с запросом подтверждения
отправки заявки обратно в активные заявки.
Через секунду после нажатия кнопки "Вернуть" и подтверждения, страница будет
обновлена, и Вы увидите совершенные изменения в последней строке таблицы с
подробностями о заявке. Заявка снова будет открыта для работы с ней и переведена
в категорию активные заявки.
Модуль «Архив заявок» (new_task.php), по своей сути повторяет функционал
модуля «Просмотр заявок» (table.php), различием является отображение только
завершенных более месяца назад зявок.
Ниже следует рисунок 15 с представление вызова программ.
Рисунок 15. Дерево вызова программ.
index.php
login.php
main.php
new_task.php
table.php
archive.php
user_manuall.php
Модуль «Страница входа»
Подключаемый файл «Авторизация»
Модуль «Руководство пользователя»
Модуль «Главная страница»
Модуль «Новая заявка»
Модуль «Просмотр заявок»
Модуль «Просмотр архива»
Источник: https://baza.diplomsite.ru/previewfile/1972