Участки ПТС

Участки ПТС (МС и РС): характеристика, привязка труб выбором на карте или цепочкой узлов, паспорт участка.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Реестры и отчёты → «Участки ПТС». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
доступно всем, кто вошёл.
Читаю как

Возможности

  • Переключатель «МС» / «РС» — участки магистральных и распределительных сетей. Список сгруппирован по начальникам участков; у участка — число привязанных труб. Над списком — «Участков: … · с трубами: … · труб привязано: …».
  • «Поиск участка» — по номеру, названию, магистрали и начальнику участка.
  • «+» («Новый участок») — карточка нового участка МС или РС.
  • Выбранный участок: «Труб: … · длина … м · фрагменты: …», кнопки «На карте» (контур труб участка), «Паспорт» (Excel), «Удалить».
  • «Привязка труб»: «Выбрать трубы на карте», «Цепочка узлов», «Снять с выбранных», «Снять со всех». Перед записью — предпросмотр: сколько труб и строк изменится. После записи — «Отменить» (у кого есть право на правку сети).
  • «Характеристика» — поля карточки участка из десктопа ТГИД: номер участка, магистраль, кадастровый и инвентарный номера, начальная и конечная камеры, параметры, годы, номер и дата приказа и другие; «Сохранить».

Как это работает

Что такое участок. Участок ПТС — строка таблицы uchastok_ms (магистральные сети) или uchastok_rs (распределительные сети), как в доке «Участки МС/РС» десктопа. Участок входит в участок эксплуатации (uchastki_ekspluatatsii), у того есть начальник (nachalniki_uchastkov) — по нему список и сгруппирован. Участки без начальника — в группе «Без начальника участка». Поля карточки берутся из шаблона карточки десктопа: у участка МС их 26, у участка РС — свои. Значения справочных полей подгружаются при раскрытии списка; если справочник не загрузился, окно предупреждает об этом.

Как труба привязывается. У трубы в карточке heatpipesections два поля: «Участок МС» (magistralsite) и «Участок РС» (distsite). Привязка к участку МС записывает «Участок МС» и очищает «Участок РС», и наоборот — как «Участок МС/РС» в свойствах трубы десктопа. Труба принадлежит не больше чем одному участку. «Снять с выбранных» и «Снять со всех» очищают оба поля, но только у труб этого участка.

Выбор труб.

  • «Выбрать трубы на карте» — окно сворачивается, вы отмечаете линии на карте. Привязываются только трубы. Прочие выбранные объекты попадают в «Не найдены (удалены или не трубы): …».
  • «Цепочка узлов» — отметьте на карте по порядку от 2 до 50 узлов. Между каждой парой соседних узлов сервер ищет кратчайший по длине путь по всем действующим линиям базы, у которых есть оба узла, — во всех фрагментах, не только включённых. Привязываются трубы пути. Арматура и другие линейные объекты на пути не привязываются, их число показано в строке «прочих линейных объектов… — не привязываются». Найденный путь сразу рисуется на карте.

Запись. Сначала сервер считает изменения без записи: «Привязать к участку …: труб N, изменится строк M». «Применить» пишет в одной транзакции и передаёт ожидаемое число изменений. Если данные за это время поменялись, запись отклоняется. Изменение пишется в audit_log одной группой — её откатывает «Отменить». Кнопка видна только пользователю с правом на правку сети: то же право проверяет сервер при отмене. За одну операцию — не больше 50 000 объектов.

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

Паспорт — тот же Excel, что в окне «Отчёты и паспорта участков», по включённым на карте фрагментам. Без привязанных труб кнопка неактивна.

Удаление участка с трубами спрашивает «К участку «…» привязано труб: N. Снять привязку и удалить участок?»: сначала снимается привязка, затем удаляется участок.

Что нужно для работы

  • Смотреть участки, карточку, трубы на карте и скачивать паспорт — любой вошедший.
  • Создавать, править, удалять, привязывать трубы — право «Журналы: ремонты, ПТС, акты, ТУ, привязки» и включённая запись (MUTATIONS_ENABLED=true). Пользователю-роли PostgreSQL окно открывает правку только при предметном праве «Производственная служба (ПТС)». Без права над окном — пояснение «Просмотр участков и паспорта доступны всем; правка и привязка труб — редактору, если на сервере включена запись.», кнопки «+» и «Удалить» скрыты, кнопки привязки неактивны, поля только для чтения.
  • «Отменить» после привязки — право на правку сети (хотя бы одно действие в матрице прав). Без него кнопки нет.
  • В базе — таблицы участков и участков эксплуатации из десктопа.

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Участки ПТС» — пункт выделен рамкой.

    Пункт «Участки ПТС» в панели «Инструменты»

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

    Окно «Участки ПТС»

Примеры

Копия Алматы: что привязано. «МС»: «Участков: 60 · с трубами: 1 · труб привязано: 3». «РС»: 34 участка, ни одной привязанной трубы. Единственный участок с трубами — МС 31 «М-1Юк» (магистраль М-1): «Труб: 3 · длина 483 м · фрагменты: 74, 115, 117». Это одна и та же труба 1ДЖ-12 → 1ДЖ-13 длиной 161 м, по записи в трёх фрагментах-вариантах. «На карте» показывает 3 линии в одном месте.

Та же копия: карточка участка. У МС 31 заполнены только «Номер участка», «Магистраль» и «Описание участка МС». Остальные 23 поля пусты. «Наименование начальной камеры» и «Наименование конечной камеры» не заполнены ни у одного из 60 участков МС — паспорт от них не зависит, он строится по привязанным трубам.

Если не получается

  • «Выберите минимум два узла цепочки» — в цепочке отмечен один узел.
  • «Между узлами A и B нет пути по сети — проверьте фрагменты или добавьте промежуточный узел» — узлы не связаны действующими линиями; добавьте промежуточный узел.
  • «Не больше 50 узлов в цепочке» — разбейте цепочку на части.
  • «Узлы не найдены: […]» — узлы удалены.
  • «Среди выбранных нет труб» — выбраны только арматура или другие не-трубы.
  • «Выбранные трубы не привязаны к этому участку» — снимать нечего.
  • «Данные изменились после предпросмотра: изменится … строк вместо … Повторите предпросмотр.» — кто-то правил трубы; сделайте предпросмотр заново.
  • «Участок изменён другим пользователем — карточка перечитана.» — карточку сохранили раньше вас; внесите правку снова.
  • Нет кнопки «Отменить» после записи — у пользователя нет ни одного права на правку сети в матрице прав; отменить группу может пользователь с таким правом.
  • «Справочники не загрузились — фильтры и выбор значений могут быть неполными» — в карточке участка не загрузился справочник поля; списки значений могут быть пустыми, повторите позже.
  • «Не удалось сформировать паспорт» — см. сообщения окна «Отчёты и паспорта участков».
  • «Не удалось загрузить участки», «Не удалось открыть участок», «Не удалось показать участок», «Предпросмотр не удался», «Не удалось применить», «Не удалось удалить участок» — с текстом ответа сервера или без него при отсутствии связи.

Для администратора

  • Запись: MUTATIONS_ENABLED=true, общее право «Журналы» (journals); при AUTH_BACKEND=pg окончательно права проверяет база.
  • Таблицы десктопные: uchastok_ms, uchastok_rs, uchastki_ekspluatatsii, nachalniki_uchastkov, magistrali, heatpipesections (magistralsite, distsite).
  • Создание, правка, удаление участков и привязки пишутся в audit_log; после привязки сбрасывается кеш моделирования отключений.
  • ФИО начальников участков видны в списке и в паспортах без маскирования.

Для разработчика

  • Чтение: GET /api/v1/pts/sites?kind=ms|rs, GET /api/v1/pts/sites/{kind}/fields, GET /api/v1/pts/sites/{kind}/{site_id}, GET /api/v1/pts/sites/{kind}/{site_id}/pipes (GeoJSON EPSG:4326 и bbox), GET /api/v1/pts/highlight?kind=nach|ms|rs&id= — routers/pts.py, database/pts_sites.py.
  • Запись: POST /api/v1/pts/sites/{kind}, PUT /api/v1/pts/sites/{kind}/{site_id} (version → 409), DELETE /api/v1/pts/sites/{kind}/{site_id}?unassign_pipes=true, POST /api/v1/pts/chain (node_ids, до 50), POST /api/v1/pts/sites/{kind}/{site_id}/pipes (action, line_ids | node_ids | all_pipes, dry_run, expected_changes). Групповые установщики pts_site_ms, pts_site_rs, pts_site_clear — database/group_setters.py; отмена — POST /api/v1/group-setters/undo (require_permission(network=True); в вебе кнопка — при authStore.canEditNetwork).
  • Справочники полей: GET /api/v1/lookup.
  • Веб: components/PtsSitesDialog.vue, services/ptsService.ts, utils/ptsSites.ts; подсветка на карте — components/PtsHighlightPanel.vue, components/PtsHighlightBar.vue.
  • Тесты: API — tests/test_pts_sites.py; веб — tests/components/PtsSitesDialog.spec.ts, tests/components/PtsHighlightPanel.spec.ts, tests/utils/ptsSites.spec.ts, tests/utils/ptsHighlight.spec.ts.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо