Союзтехноком: от устаревшего ПО к современному веб-приложению для мониторинга транспорта
Заказчик«Союзтехноком» специализируется на автоматизации производственных процессов: организации систем контроля, диагностики и управления подвижным составом и технологическим автомобильным транспортомЗадачаРазработать современный веб-АРМ для управления транспортом с доступом из любой точки и с любого устройства. Актуализировать стек технологий
Проблема клиента
Одно из решений компании позволяет контролировать работу промышленного транспорта, например, бульдозеров и экскаваторов. Система собирает информацию о маршрутах, местах погрузки и разгрузки, показывает маршрут на карте, рассчитывает ежедневную нагрузку как по каждой единице транспорта, так и по всему парку. Однако система была разработана много лет назад и имела серьезные ограничения:
- Локальность. Система работала только на стационарных компьютерах на предприятии. Это мешало оперативно реагировать на изменения, анализировать данные удаленно и выстраивать взаимодействие между подразделениями.
- Техническая устарелость. Стек технологий не позволял развивать функционал.
- Неудобство. Интерфейс был сложным и неинтуитивным, что замедляло обучение новых сотрудников.
Чтобы получить новые возможности для управления транспортом, «Союзтехноком» обратился в Nord Clan с запросом на разработку веб-АРМ.
Задачи
- Разработать современный веб-АРМ для управления транспортом с доступом из любой точки и с любого устройства.
- Актуализировать стек технологий для повышения производительности, стабильности и масштабируемости системы.
- Улучшить юзабилити, создав интуитивно понятный интерфейс.
- Добавить новые функциональные возможности, такие как дополнительные фильтры, разделы и визуальное отображение данных.
- Обеспечить гибкость системы, чтобы ее можно было дорабатывать и развивать в соответствии с потребностями предприятия.
Решение
Для решения задачи Nord Clan разработал веб-АРМ, которое позволяет мониторить промышленный транспорт в реальном времени из любой точки мира, отслеживать состояние техники, ее статусы и формировать отчеты с актуальными данными в виде диаграмм и графиков. Веб-формат приложения устраняет проблему локальности, давая доступ из любой точки и с любого устройства, что облегчает управление и взаимодействие между сотрудниками.
Для улучшения юзабилити мы подключили к команде UX-дизайнера, который учел все сценарии использования и создал простой и интуитивно понятный интерфейс.
Как работает приложение
Мы использовали существующую базу данных, которая ранее наполнялась другими службами. На основе этих данных мы воссоздали функционал старой десктопной версии, адаптировав его под веб-приложение.
- На промышленный транспорт устанавливается ПО, которое отслеживает маршрут, скорость в режиме реального времени и ретроспективно, личные данные водителя.
- Авторизованный пользователь видит панель управления актуальной картой местности, наблюдает за передвижением транспорта. При этом он может отследить не только маршрут, скорость движения транспорта, но и отследить простои и неисправности техники.
- Система собирает статистику и отображает ее в виде диаграмм и графиков.
Схема бизнес-процесса после разработки веб-приложения
Информация о ТС собирается в разделах «Карты», «Сменная информация» и «Статистика».
Карты: мониторинг в реальном времени и ретроспективный просмотр
Одна из ключевых особенностей системы — мониторинг в реальном времени. Для этого используется библиотека SignalR, которая позволяет оперативно получать и отображать данные о местоположении техники. Это позволяет операторам и менеджерам отслеживать движение транспортных единиц без задержек, что критично для оперативного принятия решений.
Модуль «Карты» реализован с помощью библиотеки Leaflet (React-Leaflet). В этом модуле можно выбрать разные типы карт: Google, Яндекс и векторные карты. Векторные карты отображаются по данным, полученным из базы данных, с использованием leaflet-vector-tile-layer. На карте отображаются маркеры для каждого транспортного средства (ТС), их треки, события, происходящие во время работы, зоны работ и другая информация в реальном времени или для любой выбранной смены, если используется фильтрация.
Интерфейс до:
Интерфейс после:
На карте отображаются все транспортные средства, подключенные к системе. Каждый маркер имеет цветовое обозначение, указывающее статус транспортного средства: едет с грузом, едет пустой, разгружается, загружается или стоит.
Отображаются маршруты, места погрузки/разгрузки, простоя. При клике на иконки на карте можно увидеть точное время разгрузки, тип и массу груза.
С помощью фильтров можно отобразить только выбранные ТС, найти их на карте, управлять отображением треков и зон, а также настроить отображаемую карту.
Для более детального контроля можно выбрать отображение конкретных участков: например, только карьеры или автодороги.
Можно настроить фильтр, чтобы отображался трек и скорость ТС на разных участках маршрута.
При выборе конкретного ТС можно посмотреть все события за смену. Например, здесь ТС несколько раз разгружалось.
Пользователь может выбрать ТС и посмотреть информацию о нём: дату и время последнего выхода водителя на связь, дату и время последней передачи координат.
Все данные о машинах, включая их местоположение, статусы и маршруты, сохраняются в базе данных на протяжении 30 дней. Это позволяет не только мониторить технику в реальном времени, но и просматривать прошедшие смены.
Сменная информация: отслеживание показателей простоя и движения техники
Модуль «Сменная информация» представляет собой самописную диаграмму, которая отображает периоды работы ТС по сменам. Диаграмма показывает данные как в реальном времени, так и за любую выбранную смену. Пользователь может управлять диаграммой с помощью фильтров, изменять масштаб и просматривать информацию о периодах работы, кликнув на интересующий сегмент. Также есть возможность отображения выбранного сегмента на карте для более наглядного анализа.
Интерфейс до:
Интерфейс после:
Статистика и отчеты
Модуль «Статистика» позволяет пользователям легко анализировать работу техники с помощью удобных диаграмм и графиков. Для их отображения используется библиотека Recharts.
Интерфейс до:
Интерфейс после:
Модуль отображает данные в наглядной форме, включая:
- Планируемое количество груза на наряд.
- Фактическое выполнение наряда.
- Разделение по ТС и общее выполнение наряда по объекту.
Такая детализация помогает быстро оценить эффективность работы и выявить отклонения от планов.
Результат
В результате работы над проектом команда Nord Clan модернизировала старую десктопную систему и создала современное веб-приложение, которое стало доступным из любой точки и с любого устройства. Это устранило ключевую проблему локальности и открыло новые возможности для управления промышленным транспортом.
- Теперь пользователи могут получать доступ к системе с любых устройств, подключенных к интернету. Это позволило оперативно принимать решения, независимо от места нахождения сотрудников.
- Новый интерфейс, разработанный при участии UX-дизайнера, стал интуитивно понятным и удобным. Сотрудники быстрее осваивают приложение и эффективнее работают с системой.
- Использование современных технологий (React, ASP.NET Core, SignalR) сделало систему более производительной, стабильной и масштабируемой. Это заложило основу для дальнейшего развития функционала.
Стек
Back-end: ASP.NET Core, SignalR, Entity Framework Core, MsSql Server.
Front-end: React, TS, Zustand, Leaflet, Recharts, Styled-components, Mui, SignalR.
Полный текст статьи читайте на CMS Magazine