О плагине

Плагин предназначен для отображения информации об ONU (Optical Network Unit) абонента во вкладке процесса BGERP. Интегрируется с внешним API GetOLT для получения данных об оборудовании на основе привязки договора (cid/contractNumber).

Возможности:

  • Отображение данных ONU (MAC, сигнал RX/TX, температура, дистанция, напряжение)

  • Отображение соседей по порту с подсветкой качества сигнала

  • Обновление данных порта OLT (кнопка "Обновить порт")

  • Перезагрузка ONU с защитой от повторных перезагрузок (cooldown 5 минут)

  • Активация/замена ONU — обновление MAC-адреса в биллинге

  • Автоматическое создание записок в процессе при выполнении действий

Настройка

Архитектура

Компоненты системы:

  1. BGERP — вкладка процесса с отображением ONU и кнопками действий

  2. GetOLT External API — внешний сервис мониторинга OLT/ONU

  3. 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

process tab overview

Вкладка отображается на странице процесса при выполнении условий:

  1. Плагин включён (getolt:enable=1)

  2. Тип процесса имеет настройку getolt:processShowTab=1

  3. У пользователя есть право /user/plugin/getolt/getolt:null

  4. К процессу привязан договор (contract link)

Карточка ONU

onu card full

Карточка отображает:

  • Заголовок: MAC-адрес, статус (ONLINE/OFFLINE), время последнего обновления

  • Кнопки: Обновить порт, Перезагрузить ONU (при наличии прав)

  • Данные:

    • OLT IP

    • Порт / ONU ID

    • Сигнал RX/TX (с цветовой индикацией качества)

    • Дистанция (м)

    • Температура (°C)

    • Напряжение (V)

    • MAC за ONU (список)

    • Соседи по порту (таблица)

Соседи по порту

port neighbors table

Таблица соседей отображает все ONU на том же порту OLT. Текущая ONU абонента выделена жёлтым цветом. Качество сигнала (RX) подсвечивается цветом.

Индикация качества сигнала

Качество RX диапазон CSS-класс Цвет

Засвет (overexposed)

0 до -15 dBm

signal-overexposed

Оранжевый (#fd7e14)

Хороший (good)

-15 до -25 dBm

signal-good

Зелёный (#28a745)

Средний (medium)

-25 до -27 dBm

signal-medium

Жёлтый (#e6a000)

Плохой (poor)

< -27 dBm

signal-poor

Красный (#dc3545)

В таблице соседей строки с плохим/средним/засвеченным сигналом дополнительно подсвечиваются фоном (signal-row-poor, signal-row-medium, signal-row-overexposed).

Форма активации ONU

При наличии права activateOnu отображается форма:

  • Поле ввода MAC: автоформатирование, валидация, защита от кириллицы

  • Кнопка "Активировать": отправляет запрос на обновление MAC в биллинге

Если у договора несколько интернет-услуг, появляется модальное окно выбора услуги.

Cooldown перезагрузки

После успешной перезагрузки ONU кнопка блокируется на 5 минут. Состояние сохраняется в localStorage браузера.

Записки в процессе

При выполнении действий плагин автоматически создаёт записки (MessageTypeNote):

Обновление порта

Обновлены данные порта OLT
OLT: 192.168.1.1
Порт: 3

Перезагрузка ONU

Выполнена перезагрузка ONU
Порт/ONU ID: 3/12
MAC: AA:BB:CC:DD:EE:FF

Активация/замена ONU

Активация/замена ONU
Договор: 123456
Старый MAC: AA:BB:CC:DD:EE:FF
Новый MAC: 11:22:33:44:55:66
Сессия: сброшена