Плагин предназначен для отображения информации об ONU (Optical Network Unit) абонента во вкладке процесса BGERP. Интегрируется с внешним API GetOLT для получения данных об оборудовании на основе привязки договора (cid/contractNumber).
Возможности:
Отображение данных ONU (MAC, сигнал RX/TX, температура, дистанция, напряжение)
Отображение соседей по порту с подсветкой качества сигнала
Обновление данных порта OLT (кнопка "Обновить порт")
Перезагрузка ONU с защитой от повторных перезагрузок (cooldown 5 минут)
Активация/замена ONU — обновление MAC-адреса в биллинге
Автоматическое создание записок в процессе при выполнении действий
Компоненты системы:
BGERP — вкладка процесса с отображением ONU и кнопками действий
GetOLT External API — внешний сервис мониторинга OLT/ONU
BGBilling InetMac API — API биллинга для управления MAC-адресами услуг
Поток данных:
@startuml
actor User
participant "Process Tab" as Tab
participant "GetOltAction" as Action
participant "GetOLT API" as GetOLT
participant "InetMac API" as InetMac
participant "Database" as DB
User -> Tab: Открывает вкладку GetOLT
Tab -> Action: GET /user/plugin/getolt/getolt.do
Action -> DB: Получить привязанные договоры
Action -> GetOLT: GET /onus/erp-search
GetOLT -> Action: Данные ONU + соседи
Action -> Tab: JSON с OnuSearchResult
Tab -> User: Отображает карточку ONU
User -> Tab: Нажимает "Обновить порт"
Tab -> Action: POST refreshPort
Action -> GetOLT: POST /actions/refresh/olt/{ip}/port/{n}
GetOLT -> Action: Результат обновления
Action -> DB: Создать записку
Action -> Tab: Успех/Ошибка
User -> Tab: Нажимает "Активировать"
Tab -> Action: POST activateOnu
Action -> InetMac: updateMacAddress
InetMac -> Action: Результат
Action -> InetMac: dropSession
Action -> DB: Создать записку
Action -> Tab: Успех/Ошибка
@enduml
Вкладка отображается на странице процесса при выполнении условий:
Плагин включён (getolt:enable=1)
Тип процесса имеет настройку getolt:processShowTab=1
У пользователя есть право /user/plugin/getolt/getolt:null
К процессу привязан договор (contract link)
Карточка отображает:
Заголовок: MAC-адрес, статус (ONLINE/OFFLINE), время последнего обновления
Кнопки: Обновить порт, Перезагрузить ONU (при наличии прав)
Данные:
OLT IP
Порт / ONU ID
Сигнал RX/TX (с цветовой индикацией качества)
Дистанция (м)
Температура (°C)
Напряжение (V)
MAC за ONU (список)
Соседи по порту (таблица)
Таблица соседей отображает все ONU на том же порту OLT. Текущая ONU абонента выделена жёлтым цветом. Качество сигнала (RX) подсвечивается цветом.
| Качество | RX диапазон | CSS-класс | Цвет |
|---|---|---|---|
|
Засвет (overexposed) |
0 до -15 dBm |
|
Оранжевый (#fd7e14) |
|
Хороший (good) |
-15 до -25 dBm |
|
Зелёный (#28a745) |
|
Средний (medium) |
-25 до -27 dBm |
|
Жёлтый (#e6a000) |
|
Плохой (poor) |
< -27 dBm |
|
Красный (#dc3545) |
В таблице соседей строки с плохим/средним/засвеченным сигналом дополнительно подсвечиваются фоном (signal-row-poor, signal-row-medium, signal-row-overexposed).