Веб приложение для взаимодействия с платформами wialon и csp по api
Find a file
2026-05-14 13:22:27 +00:00
assets Загрузить файлы в «assets» 2026-05-14 13:16:19 +00:00
compose.yaml добавил пример compose файла 2026-05-12 09:38:40 +00:00
README.md добавил скрины с импортом сообщений на объект 2026-05-14 13:22:27 +00:00

Warning

ВАЖНО

Код данного проекта не может быть опубликован в соответствии с NDA.

В репозитории представлено описание функциональности и скриншоты интерфейса.

Веб приложение для взаимодействия с платформами Wialon и CSP по api

Python 3.12 Flask Celery Redis Docker

Содержание

Цели

Оптимизация работы отдела технической поддержки:

  • Автоматизация массовых операций с объектами в Wialon и CSP
  • Массовое обновление полей объектов из .xlsx
  • Импорт истории для одного и группы объектов без внешних инструментов
  • Поиск дубликатов на других серверах
  • Автоматическое создание ЛК клиента и выдача прав
  • Админ-панель для управления пользователями и доступом

Ключевые возможности

  • Веб приложение работает во внутренней сети компании, доступ извне закрыт.
  • Доступ пользователям предоставляется путём создания пользователя в админ панели.
  • Для взаимодействия с сервисами Wialon и CSP используется Wialon API и CSP API
  • Для обновления данных на серверах необходимо приложению отдать подготовленный .xlsx файл
  • Для импорта истории сообщений передаются файлы с расширением .wlp/.zip, файлы должны находиться в директории на ПК
  • Результат выполнения любого из инструментов отображается в отчёте на сайте, в том же окне, где был запущен сервис. Также отчёт дублируется на почту.
  • При запуске любого из инструментов можно закрыть вкладку или браузер, скрипт выполняется на сервере.

Стек технологий

  • Приложение использует версию Python 3.12 и выше
  • aiohttp - для асинхронных запросов
  • celery, redis - для фонового выполнения задач
  • requests - для синхронных запросов
  • numpy, openpyxl, pandas - обработка Excel-файлов: чтение, запись, преобразование в JSON/словари
  • sqlalchemy - для взаимодействия с БД
  • flask (flask-bootstrap, flask-ckeditor, flask-login, flask-sqlalchemy, flask-wtf, werkzeug) - сервер и маршрутизация, шаблонизатор html и т.д.
  • flask-login - аутентификация и сессии
  • python-dotenv - для загрузки в переменные окружения данные из файла .env
  • loguru - для логирования приложения
  • black, pylint, pytest, ruff - тестирование, линтеры, форматирование стиля кода

Развёртывание

Приложение разворачивается в Docker с помощью Docker Compose, используется Celery + Redis для фоновых задач, Flask как веб-сервер. Файл compose.yml доступен в репозитории

Демонстрация работы

Страница авторизации

auth

Не верный пароль

password_error

Не верный логин

login error

Основная страница, сайдбар

side_bar

Администрирование, список страниц

admin_list

Управление пользователями (самописная админка)

users

Изменить данные пользователя

change_user

Изменить группу пользователю

change_group

Изменить пароль

change_password

Скачать логи

download_log_report

Пример логов

log_report

Админка с объектами (flask-admin)

car_list

Рисковые объекты

risl_car_list

Wialon, массовый импорт

  • Файлы с историей находятся в выделеной директории сетевого хранилица внутренней сети
  • Для запуска необходимо
    • Добавить файлы с историей в директорию
    • В веб версии выбрать номер сервера из выпадающего списка bulk_import

Wialon, поиск объекта на серверах

search_object

Wialon, объекты не найдены

search_object_error

Wialon, объект найден

search_object_result

Wialon, загрузка данных

upload_data_page

Wialon, шаблон файла

excel_template

Wialon, выбор сервера

wialon_server_select

Wialon, примечание

wialon_ulpoad_data_notation

Wialon, отчёт о загрузке

wialon_upload_report

Wialon, результат на виалон (карточка объекта, датчики, произвольные поля, группы)

wialon_object_main_page

wialon_object_sensors

wialon_custom_fields

wialon_added_groups

Wialon, обновить произвольные поля

wialon_custom_fields_carcade

wialon_custom_fileds_gpbl

Wialon, загружаемые файлы

wialon_file_carcade

wialon_file_gpbl

Wialon, отчёт по загрузке

wialon_report_carcade

wialon_report_gpbl

Wialon, результат

wialon_result_carcade

wialon_result_gpbl

Wialon, переименование объектов

Отравляемый файл

wialon_rename_data

До обновления

wialon_rename_before

После обновления

wialon_rename_after

Отчёт

wialon_rename_report

Wialon, отчёт по дублям на серверах

Отправляемый файл

wialon_upload_similar_data

wialon_similar_page

Результат выполнеия

wialon_similar_report

Отчёт

wialon_similar_data_report

Wialon, импорт сообщений

Объект без сообщений

wialon_before_import_messages

Выбираем сервер, указываем имей объекта, загружаем архив

wialon_upload_zip_messages

Ожидаем загрузки сообщений на объект

wialon_spinner

Отчёт

wialon_import_messages_report

Объект с загруженными сообщениями

wialon_after_import_messages