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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
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
Модуль «Страница входа»
Подключаемый файл «Авторизация»
Модуль «Руководство пользователя»
Модуль «Главная страница»
Модуль «Новая заявка»
Модуль «Просмотр заявок»
Модуль «Просмотр архива»
72
2.3.4. Описание программных модулей
В качестве примера будет рассмотрен программный модуль «Просмотр
пользователей».
«Просмотр, переименование, смена пароля, назначение прав, удаление и печать
списка пользователей ИС».
При вызове модуля производится формирование и вывод на экран в виде таблицы
списка всех пользователей ИС, их ID, логинов, прав доступа и действий
применимых к ним.
Развернутая блок-схема работы модуля «Просмотр пользователей» представлена на
рисунке 16.
Ниже в таблице 9 представлена структура данных отображаемых в таблице модуля.
Таблица 9. Структура данных в таблице модуля «Просмотр пользователей».
п/п
Наименование показателя
Переменная
Тип
1
ID
$id
Integer
2
Логин
$user_array[$id]
String
3
Права
$rank
String
4
Действия
$actions
String
73
Рисунок 16. Развернутая блок-схема работы модуля «Просмотр пользователей».
Начало
Цикл по
пользователям
foreach ($user_array
as $key)
Открытие файла
users.list и запись его
содержимого в массив
$user_array =
file(users.list);
Id=0;
Логин пользователя
$user_array[$id];
Подключение модуля
«Права пользователя»
содержащего
пременную
$perm
require " id$id.php";
!$perm;
$perm;
A
A
$rank="user"; $rank="admin";
ДА
НЕТ
Внесение $actions в
столбец «Действия»
Внесение $id в столбец
«ID»
Внесение
$user_array[$id] в
столбец «Логин»
Внесение $rank в
столбец «Права»
Конец цикла
по
пользователям
Закрытие файла
users.list
Конец
74
2.4. Контрольный пример реализации проекта и его описание
В качестве примера реализации ниже будут описаны программные модули, доступ
к которым имеет пользователь ИС с правами user (пользователь).
Страница входа:
Рисунок 17. Страница входа.
На данной странице присутствует форма ввода логина и пароля, контакты отдела
ИТ, ссылка на руководство пользователя.
75
Главное меню:
Рисунок 18. Главное меню.
Главная страница содержит всего 4 элемента:
1) Имя пользователя и кнопка для выхода из сеанса
2) Кнопка "Новая заявка" направляющая на Страницу создания заявки
3) Кнопка "Просмотр заявок" направляющая на Страницу просмотра заявок
4) Кнопка "Просмотр архива" направляющая на Страницу просмотра архива заявок
(Завершенные заявки, поданные месяц и более назад)
76
Новая заявка:
Рисунок 19. Новая заявка
Страница создания новой заявки содержит всего 4 элемента:
1) Имя пользователя и кнопка для выхода из сеанса
2) Выпадающий список "Причина обращения"
3) Форма новой заявки, состоящая из текстового поля и кнопки для отправки
данных
4) Кнопка "Назад" направляющая на Главную страницу.
Выпадающий список "Причина обращения" является необязательным к
заполнению пользователем элементом, однако если Вы точно можете выбрать тип
заявки из предложенного списка (напр.: Заправка/замена картриджа) это позволит
обработать заявку быстрее.

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

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