Две задачи: управление датчиками и решение проблем с датами
Техническое задание
- Решение проблемы с неверными датами — несоответствие периода заданного в веб-интерфейсе, данным в отчете в файле при выгрузке отчета в XLS формат с ответами о нарушениях.
В разделах «Отчеты датчиков» и «Отчеты мониторингов» (левое меню) можно задать диапазон дат (верхнее меню), выбрать устройство и за счет нажатия на кнопку «Отчёт» получить данные за выбранный период. Нажав на кнопку «Скачать» можно сохранить файл с отчетом о нарушениях. Выявлены следующие проблемы:
- В выгружаемом отчете данные выдаются в произвольный период и не соответствуют заданному в интерфейсе (верхнее меню)
- Если нарушения не обнаружены, в файле это будет неочевидно пользователю, необходимо при выгрузке прописывать в файле «нарушения не обнаружены». Хотелось бы услышать от Вас предложение как это сделать корректно и дополнительно утвердить перед реализацией.
- Необходимо проверить корректность вывода данных в интерфейсе и в файле исходя из реальной ситуации и данных с датчиков.
На скриншотах показана последовательность действий на примере «Отчета мониторингов» (цифры показывают в каком порядке нужно заполнять данные в верхнем меню в ручную, чтобы получить отчет, а затем скачать его в файл)
- Дистанционное управление устройствами — датчики и базовые станции в новой версии обладают возможностью дистанционно:
- Включать/выключать выбранных датчик
- Устанавливать диапазон замеров на выбранные датчики
- Включать/выключать выбранных датчик
Необходимо интегрировать с нуля возможность управления в веб-интерфейс системы. Предложить модель как управление органично и быстро добавить как со стороны дизайна (UI/UX), так и со стороны серверной части (программная реализация). Управление должно быть доступно для всех устройств у суперадмина и независимо для каждой компании (админ организации) к которой подключены отдельные устройства.
С точки зрения пользовательских сценариев система должна работать следующим образом:
- Пользователь выбирает датчик и может:
- Включить или выключить его
- Настроить индивидуальный диапазон замера
- Включить или выключить его
- Пользователь выбирает группу датчиков или все датчики и может:
- Включить или выключить выбранные
- Настроить диапазон замера для всех выбранных
- Включить или выключить выбранные
- Админ и суперадмин может:
- Предоставить доступ выбранному пользователю к управлению датчиками или запретить доступ (без отключения датчиков от системы)
- Предоставить доступ выбранному пользователю к управлению датчиками или запретить доступ (без отключения датчиков от системы)
Со стороны аппаратной реализации используется следующие методы управления устройствами:
сервер должен посылать на шлюз команду вида
"SID": "FAB124DCE", # id of device of device"RID": 0, #request ID"MP": 5, # Period of measurement (minute)"TP": 2, # Period of transmit = MP*TP (minute)
"ILLTHR": 3, # Illumination sensitivity"POFF" : 0, #if == 1 power off
Детали для ознакомления
Стек технологий
Frontend.
HTML5 (язык разметки);
CSS3 (каскадные таблицы стилей);
JavaScript (язык программирования);
Vue.js (JS фреймворк).
Element Ui (Ui-kit)
JQuery (JavaScript библиотека);
Bootstrap 4 (CSS-фреймворк).
AdminLte (Html шаблон для административной части)
Backend.
Yii2 (php фреймворк), версия не ниже 2.0.14
PostgreSQL (СУБД), версия не ниже 8.0.19
InfluxDB (СУБД), версия не ниже 1.15.0
Языки: PHP, версия не ниже 7.2
Ролевая модель - реализуется на основе встроенного компонента Yii2 - rbac.
Идеология системы — SAAS, программно-аппаратный комплекс.