Показатели
Показатели эксплуатации: аварийность, ремонты, износ, наряды, отключения и сеть — графики за период по всей сети или по видимой области карты.
Возможности
- Период: «12 месяцев», «Этот год», «Прошлый год» или «Свой» — даты «С» и «По».
- «Только видимая область карты» — показатели по той части города, что на экране; при каждом сдвиге карты они пересчитываются сами.
- Плитки: «Дефектов за период», «Открытых дефектов», «Повреждений на 100 км в год», «Средний срок ремонта», «Средний износ», «Открытых нарядов», «Просрочено нарядов», «Отключений за период».
- Графики: дефекты по месяцам, по категориям и по состоянию; износ участков по категориям; наряды по статусам; сеть по годам прокладки и по диаметрам.
- Щелчок по столбцу любого из трёх графиков дефектов — эти дефекты точками на карте; «Оставить на карте» закрывает окно и оставляет точки.
- «Таблицы» — те же данные числами для отчёта; «Графики» — обратно к диаграммам.
Как это работает
Окно запрашивает у сервера одну сводку. Ничего не сохраняет: каждый раз считает заново по базе города.
Период. «12 месяцев» — с первого числа того же месяца год назад по сегодня (5 ноября 2026 года это 01.11.2025–05.11.2026, 370 дней). «Этот год» — с 1 января по сегодня, «Прошлый год» — весь прошлый год. Свой период — не длиннее 10 лет, начало не позже конца. На графике по месяцам есть все месяцы периода, в том числе пустые.
Дефекты берутся из журнала нарушений десктопа (таблица defect):
| Плитка | Что считается |
|---|---|
| Дефектов за период | записи, у которых дата обнаружения попала в период; записи без даты обнаружения не считаются |
| Открытых дефектов | записи в состоянии «Нарушение» или «Ремонт» — на сегодня, без учёта периода |
| Повреждений на 100 км в год | дефекты за период / длина сети, км × 100 × 365,25 / дней в периоде |
| Средний срок ремонта | у записей с датой завершения ремонта в периоде — среднее число дней от обнаружения до завершения |
В «Повреждения на 100 км» идут все записи журнала за период, любой категории («Износ», «Реконструкция т/тр», без категории), а не только порывы. Чтобы увидеть долю порывов, смотрите график «Дефекты по категориям».
Наряды (таблица tgid_work_order). «Открытых нарядов» — сейчас в статусах «Заявка», «Назначен», «В работе».
«Просрочено нарядов» — открытые, у которых плановое окончание уже прошло. График «Наряды по статусам» — все наряды
на сегодня, период на него не влияет.
Отключения (таблица tgid_outage). «Отключений за период» — неотменённые отключения, время которых
пересекается с периодом. Берётся фактическое начало и конец, если они записаны, иначе плановые.
Сеть — участки основной схемы с паспортом: без участков внутренних схем узлов, удалённых и копий-сценариев. Длина — из паспорта участка. Год — дата перекладки, если её нет — дата прокладки; год раньше 1900 или позже текущего считается ошибкой ввода и попадает в «нет даты». Диаметры — по условному проходу: до 100, 101–200, 201–300, 301–500, 501–700, свыше 700 мм. Сводка сети тяжёлая (сотни тысяч участков), сервер держит её 10 минут: правка паспорта появится в окне не сразу.
Износ — последний сохранённый расчёт износа (с наибольшим номером). Фильтры окна к нему не применяются: ни период, ни видимая область. Если расчётов не было, плитка «Средний износ» показывает «—», графика износа нет. Подпись графика — «Последний расчёт износа», а подсказка под графиками напоминает: «Износ — по последнему расчёту износа (дата), без отбора по видимой области.». Как считается износ — в разделе Индекс износа.
Видимая область карты. Дефекты отбираются по точке записи (записи без точки не попадают), наряды и отключения — по своей точке, сеть — по участкам, задевающим экран. Пересчёт идёт через 0,6 с после остановки карты.
Точки на карте. Щелчок по столбцу запрашивает дефекты того же периода и области с отбором по месяцу, категории или состоянию. Столбец «не указано» показывает записи без категории или состояния. На карту выводится не больше 5000 точек — тогда в сообщении «(показаны не все)». Цвет точки — состояние: «Нарушение» — красный, «Ремонт» — оранжевый, «После ремонта» — серый.
Что нужно для работы
- Права: любой вошедший пользователь, включая роль «Просмотр». Окно только читает.
- Данные: журнал нарушений в базе города (даты обнаружения и завершения ремонта, точки на карте), паспорта участков (длина, диаметр, даты), для плитки износа — хотя бы один расчёт износа. Наряды и отключения — если ими пользуются в вебе.
Шаги
Откройте «Инструменты» и наберите в поиске «Показатели» — пункт выделен рамкой.

Нажмите пункт — откроется окно.

«Только видимая область карты» — показатели считаются только по участкам и событиям в той части города, что сейчас на экране. Пока окно открыто, показатели пересчитываются при каждом сдвиге карты.

«Таблицы» показывает те же данные числами — их удобно скопировать в отчёт; «Графики» возвращает диаграммы.

Примеры
Копия Астаны, «12 месяцев» (01.11.2025–05.11.2026). Дефектов за период — 35: 32 «Порыв», 3 «Износ»; по состоянию 20 «Нарушение» и 15 «Ремонт». Больше всего — декабрь 2025 (10). Открытых дефектов — 110: это все записи журнала в состояниях «Нарушение» (78) и «Ремонт» (32), независимо от периода. Сеть — 7151,8 км, 98 187 участков. Повреждений на 100 км в год: 35 / 7151,8 × 100 × 365,25 / 370 = 0,48. Средний срок ремонта — 4,0 дн. по 15 записям, ремонт которых завершён в периоде. Средний износ — 30,1 % (расчёт № 17 от 31.10.2026). Нарядов и отключений в копии нет — плитки показывают 0.
Копия Астаны, свой период 01.01.2019–31.12.2019. Дефектов — 151, больше всего в октябре (33). Повреждений на 100 км в год — 2,11 (151 / 7151,8 × 100 × 365,25 / 365). Но по категориям: 69 без категории, 48 «Износ», 29 «Реконструкция т/тр», 3 «Нарушение работы сетей» и только 2 «Порыв»; по источнику 145 записей — «Ремонт». Плитка считает все записи журнала, поэтому 2,11 — не частота порывов. Щелчок по столбцу «не указано» покажет на карте те 69 записей.
Копия Алматы на стенде инструкции, «12 месяцев». Журнал нарушений пуст: плитки дефектов — 0, на месте графиков дефектов — «Дефектов за период нет». Сеть — 4542,6 км, 90 853 участка: 3845,5 км в «2010-е» и 697,1 км «нет даты» — даты прокладки в копии почти все одного десятилетия. Средний износ — 27,7 % (расчёт № 3). Наряды: 5, все «Отменён», поэтому «Открытых нарядов» — 0.
Если не получается
- «Показатели не загружены» с причиной «Начало периода позже конца» — в своём периоде дата «С» позже даты «По».
- «Показатели не загружены» с причиной «Период — не больше 10 лет» — сократите свой период.
- «Дефекты на карте не показаны» — сервер не ответил на запрос точек; повторите щелчок по столбцу.
- Щелчок по столбцу дал меньше точек, чем высота столбца, — у части записей нет точки на карте.
- «Средний износ» показывает «—», графика износа нет — расчёт износа не выполнялся; в подсказке под графиками — «по последнему расчёту износа (не выполнялся)».
- Числа сети не изменились после правки паспорта — сводка сети обновляется раз в 10 минут.
- Износ не изменился при сдвиге карты с «Только видимой областью карты» — так и должно быть: износ берётся из последнего расчёта целиком, без отбора по видимой области.
- «Открытых дефектов» больше, чем «Дефектов за период», — так и должно быть: открытые считаются за всё время.
Для администратора
- Окно ничего не пишет в базу и не требует флагов сервера.
- Используются таблицы
defect,remontcat,statedefect,defecttypes,linesobj,heatpipesections,tgid_scenario,tgid_work_order,tgid_outage,calculation_iznos,wear_out. Если таблиц нарядов или отключений в базе нет, их показатели — нули. - «Открытые» состояния дефекта — коды 1 и 2 справочника
statedefect(«Нарушение», «Ремонт»). Если в базе города коды другие, плитка «Открытых дефектов» будет неверной.
Для разработчика
- API:
GET /api/v1/kpi/dashboard(date_from,date_to,fileid,bbox— «минДолгота,минШирота, максДолгота,максШирота» в WGS84),GET /api/v1/kpi/defects/geojson(те же фильтры иmonth«ГГГГ-ММ»,category_id,state_id; 0 — без категории или состояния). Код —routers/kpi.py,database/kpi.py(NETWORK_CACHE_S,MAX_PERIOD_DAYS,MAX_POINTS,DIAMETER_BUCKETS,DEFECT_OPEN_STATES). - Веб:
components/KpiDashboardDialog.vue(ключkpiDashboard),components/KpiTile.vue, правила периодов и графиков —utils/kpi.ts, запросы —services/api/kpi.ts. - Тесты: API —
tests/test_kpi.py; vitest —tests/utils/kpi.spec.ts,tests/components/KpiTile.spec.ts; e2e —e2e/functions.spec.ts(окно открывается, плитки видны).
