Изначально была необходимость как-нибудь автоматизировать процесс создания неисправностей по КМО. Уход от бумажной волокиты, которую потом агрегировали в журнал, и заносили в электронный вид (файл Excel насколько я понял)
Как такового Технического задания(далее ТЗ) не было, все уместилось в двух-трех предложениях, и одной картинкой "формы заполнения неисправности"
(рис ниже)
Окно формирования базы данных. Либо в мобильном приложении либо с ПК через нее будет заполняться база данных. В выпадающих списках в разделе "Неисправность" будет содержаться информация с классификатора. Нужно потом продумать какие списки будут связанными - я это продумаю. Пока делаем только для Астраханского филиала. Далее с базы данных должна формироваться автоматически форма Акта КМО (Приложил). я думаю в PDF.
Потом уже прислали эксель файл со списком неисправностей по Службе Пути (далее СП) (называете классификатором), и графический шаблон формы неисправности (поля, привязка и т.д.) (декабрь месяц)
(рис ниже)
Никаких рекомендаций не было, в плане языка программирования, оболочки приложения, софты, скилы и т.д.
идеальным решением было бы сделать все в рамках мобильного приложения, но языка андроид/ios разработки я не знаю. Исходя из своих знаний(python) и возможностей, я сразу определил, что можно данный функционал реализовать в виде веб-приложения(как та же сфера). В свою очередь, мощным инструментом в данной нише является фреймворк Django, его я и принялся изучать
После 10 дней самостоятельного обучения данного фреймворка, я принялся за разработку.
Изучив мини-ТЗ, я понял, что оно имеет изъяны, которые породят проблемы при разработке и масштабировании всего приложения.
а) хотели просто список неисправностей, с общими данными привязки к филиалу и станции и кнопкой "создать новую неисправность"
б) нужна была кнопка, которая собирала БЫ все неисправности по текущему месяцу... А как учесть по какому филиалу хотят?
- генерация QR-кодов по стрелочным переводам и путям;
Администратор:
- возможности авторизованного юзера;
- все CRUD-операции по всем имеющимся таблицам;
- назначение прав, ролей, групп доступа;
- загрузка большинство справочников в автоматическом режиме из Excel файлов (филиалы, станции, стрелки, пути, должности, неисправности и т.д.), формат приложен в иерархии приложения, папка BS
- назначение ответственных по филиалу и службе;
- назначение председателей (признак в таблице работник "является председателем");
- назначение членов комиссии (по логике председателей);
Приложение:
-Реализован полноценный адаптив под любые экраны(от 320px);
-table_responsive;
-своя админка;
-пагинация;
Логика
Данное веб-приложение предусматривает регистрацию, авторизацию и идентификацию пользователей(в отдельных случаях удаления данных), иначе доступ к основному функционалу закрыт.
Каждый "пользователь" привязывается к таблице "работник" администратором
- Создать КМО может любой авторизованный пользователь(можно настроить, что не любой, или только по спец.роли);
- Возможность создания дубля кмо исключена(в одном Периоде и филиале может быть создан только 1 экземпляр КМО);
- Удалить КМО невозможно(только по спец роли);
- В карточке кмо разбиты неисправности по службам(закладки Служба СП, Служба СЦБ, Служба СПиМР) для удобства. А так же есть отдельная закладка "Члены комиссии";
- после добавления неисправности, поле ответственный заполняется автоматически, исходя из данных создателя(определяется должность, служба, а по ней ответственный(определяется в справочнике ответственных));
- при выборе филиала, поле станции автоматически фильтруется по привязке, аналогично и с остальными зависимыми полями (выбрали станцию, покажет стрелки только по этой станции);
- У карточки кмо есть понятие "состояние", оно подсвечивается определённым цветом и текстом.
После создания кмо, состояние является "оформляется" цвет синий
;
- Как только ввод неисправностей закончен, необходимо нажать кнопку "Утверждение", она доступна только для председателя данного КМО, и служит для блокировки добавления, редактирования и удаления неисправностей данного КМО;
- После утверждения будет доступна кнопка "устранение" по каждой неисправности;
- Пока кмо не утверждён, устранять неисправности не получится;
- если неисправность не устранили в установленный срок, строчка подсвечивается красным цветом (иначе зелёным);
- сгенерировать qr-код можно только один раз на один "объект". Полученный qr-код содержит в себе зашифрованную информацию в виде ссылки на все неисправности, которые регистрировались в КМО по данному объекту, а так же ссылку на последний КМО. Если неисправностей не было, то получите соответствующее сообщение(об отсутствии неисправностей)
В разработке (в планах)
- Настройка фильтров на табличные данные(день-два);
- вывести часть справочников(с операциями CRUD) в интерфейс приложения(3-4 дня);
- дополнить личный кабинет пользователя(аватрка, данные по профессии)(1 день) ;
- создать раздел "обращения" (2 дня);
- отстилизовать сайт(при наличии пожеланий)(~2 дня);
- создать и внедрить функционал назначения нарядов по неисправностям(зависит от ТЗ, ~ 7 дней);
Подробнее о проекте со скриншотами в файле = >
Скачать
UML-диаграмму архитектуры БД смотрите во вложении = >
UML-диаграмма