Опрессовки
Журнал опрессовок: гидравлические испытания и акты.
Возможности
- Список опрессовок по 50 на страницу: период, контур, источник и вид испытания, состояние, давления I и II этапа, ответственный, число участков контура, число нарушений, решение комиссии.
- Плитки «Найдено» и по состояниям «План», «В процессе», «Выполнено» — нажатие отбирает список.
- Поиск по номеру, названию и описанию контура, границе раздела, решению комиссии, отчёту, примечанию, источнику и ответственному. Фильтры: состояние, вид испытания, источник тепла, ответственный, утверждение, даты «с» и «по».
- Карточка опрессовки по блокам: «Контур испытаний», «План опрессовки», «Проведение и результат», «Ответственные и руководители». Ниже — линии контура, границы раздела, мероприятия, нарушения испытаний, программы и акты.
- Создать, изменить, удалить запись; черновик карточки хранится в браузере до следующего открытия.
- Контур: участки вручную, по номерам или выбором на карте, с парной трубой (подача/обратка).
- Утверждение плана — у одной записи или «Утвердить план» сразу для нескольких за период; снятие утверждения.
- Документы записи; выгрузка карточки в Word.
- Переход на карту: к центру контура, к участку, к узлу границы; от нарушения испытаний — в журнал нарушений.
Как это работает
Где хранятся данные. Журнал общий с десктопным ТГИД: каждая опрессовка — строка таблицы opres базы города, и запись из веба сразу видна в десктопе, и наоборот. Участки контура — opresdeployed, границы раздела — list_opres_node1 и list_opres_node2, документы — opresdocuments и opresacts. Нарушения, выявленные при испытании, — записи журнала нарушений со ссылкой на опрессовку (defect.opresid). Справочники: sostoyanie_opres (состояние), opres_types (вид испытания), источники тепла, объекты опрессовочного насоса, подразделения, ответственные.
Период и порядок. В столбце «Период» — дата проведения, а если её нет — плановые начало и окончание. По той же дате работают фильтры «с» и «по» и сортировка: новые сверху.
Создание. «Создать» открывает форму с названием «Контур опрессовки» и состоянием «План» — как «Добавить план» в десктопе. Обязательное поле — «Наименование». Оно должно быть уникальным, без учёта регистра и пробелов по краям. Плановое окончание не может быть раньше начала. При сохранении сервер проверяет права, типы полей и ссылки на справочники. Затем пишет запись и строку журнала изменений (audit_log) одной транзакцией.
Утверждение плана. План утверждается, если заполнены название, источник тепла, начало и окончание по плану, а в контуре есть хотя бы один участок. Иначе карточка подсказывает, что заполнить. При утверждении записываются дата и подписант. «Утвердить план» в заголовке журнала собирает неутверждённые планы по дате начала и утверждает выбранные. Записи, не прошедшие проверку, остаются с причиной.
Удаление. Вместе с записью удаляются участки контура, границы раздела, документы и акты. Нарушения журнала остаются, но теряют ссылку на опрессовку.
Давления в карточке и списке — в кгс/см², температура расхолаживания — в °C.
Что нужно для работы
- Смотреть журнал, карточки и выгружать Word — любой вошедший пользователь.
- Создавать, править, удалять, утверждать, менять контур и документы — право «Журналы: ремонты, ПТС, акты, ТУ, привязки» (роли «Редактор» и «Администратор») и включённая запись на сервере. Без них кнопок «Создать», «Утвердить план», «Редактировать» и удаления нет.
- Для перехода на карту у контура должны быть участки с геометрией.
Шаги
Откройте «Инструменты» и наберите в поиске «Опрессовки» — пункт выделен рамкой.

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

Журнал открывается списком: плитки-счётчики сверху (нажатие — фильтр), поиск и фильтры, кнопка «Сбросить». Значок прицела в строке показывает запись на карте, стрелка — открывает карточку. Нажмите «Создать» — откроется форма новой опрессовки, состояние по умолчанию — «План». Заполните поля (обязательные отмечены звёздочкой) и нажмите «Сохранить»; «Отмена» закрывает форму без записи. Как это выглядит целиком — на примере журнала нарушений.

Примеры
Копия Астаны. В журнале 96 опрессовок, все в состоянии «Выполнено» и с утверждённым планом. Вид «гидравлические испытания» указан у 21, у остальных 75 вид не заполнен. В контурах всего 14 765 участков, к испытаниям привязано 23 нарушения. Давление I этапа — от 4,9 до 12 кгс/см², в среднем 11,51; II этапа — в среднем 15,30.
Запись «Контур опрессовки ТМ-33,ТМ-41,ТМ-50,ТМ-51»:
- план с 07.08.2023 по 11.08.2023, проведена 09.08.2023, продолжительность 480 мин;
- давление I этапа 12, II этапа 16 кгс/см², температура расхолаживания 45 °C;
- в контуре 199 участков, при испытании выявлено 3 нарушения.
Копия Алматы. Журнал пуст, справочники заполнены: 3 состояния, 4 вида испытаний, 99 источников тепла. Окно показывает «Опрессовки не найдены» и под ним — «В журнале пока нет опрессовок — создайте первую или перенесите журнал из десктопной ТГИД».
Если не получается
- «В журнале пока нет опрессовок — создайте первую или перенесите журнал из десктопной ТГИД» — в базе города нет опрессовок; создайте первую кнопкой «Создать».
- «Опрессовки не найдены» с кнопкой «Сбросить фильтры» — фильтры слишком узкие.
- «Наименование» уже есть в записи N» — название не уникально; новая запись получает «Контур опрессовки», переименуйте её.
- «Для утверждения заполните: …» и «Контур пуст — выберите участки, затем утверждайте план.» — не хватает данных плана или участков.
- «Ни один план не утверждён — см. причины» — у каждой записи пакета указана причина: «не заполнены поля плана», «контур пуст — выберите участки», «уже утверждено».
- «Справочники не загрузились — фильтры и выбор значений могут быть неполными» — список работает, но выпадающие списки пустые; повторите позже. Если это сообщение появилось после «Создать», карточка новой опрессовки не открывается, пока справочники не загрузятся.
- «Не удалось загрузить журнал опрессовок», «Опрессовка не найдена», «Не удалось сформировать Word».
Для администратора
- Запись журнала:
MUTATIONS_ENABLED=trueу API и правоjournalsв матрице прав. При входе через роли PostgreSQL (AUTH_BACKEND=pg) окончательно права проверяет база (sql/pg_auth/03_grants.sql). - Каждое создание, правка, удаление, изменение контура, утверждение и его снятие попадают в
audit_logс автором (операцииINSERT,UPDATE,DELETE,CONTOUR,APPROVE,UNAPPROVE). - Таблицы журнала — из базы десктопа; API их не создаёт.
Для разработчика
- Чтение:
GET /api/pressure-tests(фильтры, страницы до 200 строк,state_counts),GET /api/pressure-tests/lookups,GET /api/pressure-tests/{id}(сrelations: участки, границы, мероприятия, нарушения, документы) —routers/operations.py,database/pressure_tests.py. - Запись:
POST|PATCH|DELETE /api/v1/journals/pressure-tests[/{id}](mode: plan), контур —GET|PUT …/{id}/contour, утверждение —GET …/approval/candidates,GET …/{id}/approval,POST …/{id}/approve,POST …/approve,POST …/{id}/unapprove, документы —…/{id}/documents, описание полей —GET …/schema. Код —routers/journals.py,database/journal_specs.py(PRESSURE_TESTS),database/journal_write.py. - Word:
GET /reports/word/opres/{id}(routers/exports_p4.py). - Веб:
components/PressureTestJournalDialog.vue(ключpressureTest) на общемJournalShell.vue,JournalDetailFields.vue,JournalRecordPanels.vue,JournalBatchApprovalDialog.vue; правка —composables/useJournalEdit.ts,useJournalRecordForm.ts. - Тесты:
tests/components/JournalRecordPanels.spec.ts,tests/components/JournalDetailFields.spec.ts,tests/utils/journalWrite.spec.ts,tests/utils/journalDraft.spec.ts; API —tests/test_operations_router.py,tests/test_journals_write.py,tests/test_journal_mutations_qa.py.
