Ремонты
Журнал ремонтов: план и факт по контурам.
Возможности
- Плитки «Найдено» и по состояниям «План», «В процессе», «Выполнено»; нажатие на плитку состояния — отбор, повторное — снять.
- Поиск по номеру записи, наименованию, характеристике участков, описанию и характеристике работ, результатам, номеру приказа и ответственному; фильтры «Состояние», «Вид ремонта», «Категория», «Утверждение», «Ответственный», «С даты», «По дату».
- «Создать»: «План (капитальный / инвестиционный)» или «Текущий ремонт». Карточка: «Общие сведения», «План» (сроки, длина и диаметр труб, изоляция, канал, асфальтирование, бюджет, персонал), «Фактическое выполнение», «Последствия и ввод в эксплуатацию».
- Контур ремонта — участки сети: «Выбрать на карте» или номера через запятую, «с парной трубой (подача/обратка)».
- В карточке — «Линии контура», «Участки работ», «Состав работ», «Связанные нарушения» (переход в карточку нарушения), документы.
- «Утверждение плана» в карточке: «Утвердить…», «Снять утверждение». «Утвердить план» над списком — пакетное утверждение планов за период.
- «Печать (Форма 10)» — журнал ремонтов по форме 10 для печати; «Word» — документ по одной записи.
Как это работает
Где хранятся данные. Журнал общий с десктопом ТГИД. Ремонт — строка таблицы remont2, участки контура — remont2deployed, документы — remontdocuments. Справочники: состояние (stateremont2), вид ремонта (remonttypes), категория (remontcat), ответственные (nachalniki_uchastkov), подразделения (subdivisions). Нарушения связаны с ремонтом через колонку remontid журнала нарушений.
Режимы создания (как пункты меню десктопа):
| Режим | Вид ремонта | Состояние | Утверждение |
|---|---|---|---|
| «План (капитальный / инвестиционный)» | «Инвестиционный» (можно сменить на «Капитальный») | «План» | не утверждено, попадает в план на утверждение |
| «Текущий ремонт» | «Текущий» | «В процессе» | не утверждается планом |
При создании сервер ставит дату осмотра — текущее время. Обязательно только «Наименование/адрес», и оно должно быть уникальным без учёта регистра.
Проверки при сохранении. Окончание по плану не раньше начала по плану, завершение ремонта не раньше начала ремонта. Номер приказа и дата приказа заполняются только вместе. Значения справочников должны существовать в базе.
Утверждение плана. План утверждается, если заполнены 13 полей: наименование, вид ремонта, категория, тип тепловой сети, начало и окончание по плану, длина труб, диаметр труб, изоляция, канал, асфальтирование, средства и ремонтный персонал по плану, — и в контуре есть хотя бы один участок. При утверждении ставится дата утверждения и состояние «В процессе». «Снять утверждение» очищает дату и возвращает состояние «В процессе» в «План». Текущий ремонт не утверждается: сервер отвечает «текущий ремонт не утверждается планом».
Пакетное утверждение показывает до 500 неутверждённых плановых ремонтов с началом по плану в выбранном периоде. Утверждаются те, что прошли проверку; для остальных выводится причина.
Поле и фильтр «Утверждение». Текущий ремонт хранится с отметкой «не утверждается планом». В поле «Утверждение» карточки у него — «Текущий ремонт — без утверждения», как и в блоке «Утверждение плана». Фильтр «Утверждено» показывает только утверждённые планы, «Не утверждено» — только неутверждённые; записи с отметкой текущего ремонта не входят ни в один из них.
Даты в фильтре. «С даты» и «По дату» сравниваются с началом ремонта, а если его нет — с началом по плану или датой осмотра.
Печать (Форма 10) берёт строку поиска (без остальных фильтров) и выводит до 1000 записей.
Удаление убирает запись, её контур, факторы риска ремонта и документы; у нарушений обнуляется ссылка на ремонт, сами нарушения остаются.
Что нужно для работы
- Смотреть, печатать форму 10 и выгружать Word — любой вошедший.
- Создавать, править, удалять, утверждать, менять контур и документы — право «Журналы» и включённая запись (
MUTATIONS_ENABLED=true). Пользователю-роли PostgreSQL нужно ещё предметное право «Ремонты». Без этого нет кнопок «Создать», «Утвердить план», «Редактировать». - Для утверждения — заполненные поля плана и участки в контуре.
Шаги
Откройте «Инструменты» и наберите в поиске «Ремонты» — пункт выделен рамкой.

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

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

Примеры
Копия Астаны: что в журнале. 811 ремонтов: «В процессе» — 42, «Выполнено» — 769, «План» — 0. По видам: «Текущий» — 726, «Инвестиционный» — 66, «Капитальный» — 19. Утверждено планом 74 записи (55 инвестиционных и 19 капитальных), даты утверждения — с 28.07.2008 по 03.11.2022. Контур есть у 807 ремонтов, в среднем 2,5 участка, самый большой — 44 участка. С ремонтами связано 1526 записей журнала нарушений (у 750 ремонтов).
Фильтр «Утверждение» на той же копии. «Утверждено» показывает 74 записи — утверждённые планы, «Не утверждено» — ни одной. Остальные 737 записей несут отметку текущего ремонта (726 текущих и 11 инвестиционных): в карточке у них «Текущий ремонт — без утверждения», и ни один из двух отборов их не показывает.
Почему старый план не прошёл бы утверждение в вебе. Ни у одного из 74 планов, утверждённых в десктопе, не заполнены все 13 полей плана: у всех 74 нет средств по плану, у 64 — длины труб, у 42 — категории. Если такой план снять с утверждения, утвердить его снова в вебе получится только после заполнения этих полей.
Если не получается
- ««Наименование/адрес» уже есть в записи N — …» — выберите другое наименование.
- «Запись не прошла проверку — Окончание по плану: не раньше «Начало по плану»» — даты перепутаны.
- «… Дата приказа: заполняется вместе с «Номер приказа»» — заполните оба поля или ни одного.
- «Для утверждения заполните: …» в блоке утверждения — перечислены пустые поля плана.
- «Контур пуст — выберите участки, затем утверждайте план.» — добавьте участки в контур и сохраните его.
- «Ни один план не утверждён — см. причины» после пакетного утверждения — у каждого плана есть причина: «не заполнены поля плана», «контур пуст — выберите участки», «уже утверждено».
- «Нет планов для утверждения» — за выбранный период все плановые ремонты утверждены или их нет; измените даты.
- «Нет права «ремонты»» — пользователю-роли PostgreSQL не выдано предметное право «Ремонты».
- Пустой журнал показывает «В журнале пока нет ремонтов — создайте первый или перенесите журнал из десктопной ТГИД» — в базе города нет ремонтов.
Для администратора
- Запись:
MUTATIONS_ENABLED=true, право «Журналы» (journals); приAUTH_BACKEND=pg— ещё предметное право «Ремонты» (бит 1024 десктопа), окончательно права проверяет база (sql/pg_auth/03_grants.sql). - Таблицы десктопные (
remont2,remont2deployed,remontdocuments,stateremont2,remonttypes,remontcat); веб их не создаёт. - Создание, правка, удаление, контур, утверждение и снятие утверждения пишутся в
audit_log(INSERT,UPDATE,DELETE,CONTOUR,APPROVE,UNAPPROVE).
Для разработчика
- Чтение:
GET /api/repairs(page,page_sizeдо 200,state_id,repair_type_id,category_id,responsible_id,approved,date_from,date_to,line_id,node_id,search;state_counts),GET /api/repairs/{id},GET /api/repairs/lookups—routers/operations.py,database/repairs.py. Утверждение (utverdit): 0 — «Не утверждено», 2 — текущий ремонт,approval_name«Без утверждения», остальное — «Утверждено»;approved=trueотбираетCOALESCE(utverdit, 0) NOT IN (0, 2),approved=false—= 0. - Запись:
POST|PATCH|DELETE /api/v1/journals/repairs[/{id}](mode:plan/current), контурGET|PUT …/{id}/contour, утверждениеGET …/{id}/approval,POST …/{id}/approve,POST …/{id}/unapprove, пакетGET /api/v1/journals/repairs/approval/candidates,POST /api/v1/journals/repairs/approve, документы…/{id}/documents—routers/journals.py,database/journal_write.py,database/journal_specs.py(REPAIRS). - Печать:
GET /api/reports/html/f10_remont?search=(reports_generator.py); Word —GET /reports/word/remont/{id}(routers/exports_p4.py). - Веб:
components/RepairJournalDialog.vue(ключrepair),JournalBatchApprovalDialog.vue,JournalRecordPanels.vue,JournalDetailFields.vue. - Тесты: API —
tests/test_journals_write.py,tests/test_journal_mutations_qa.py; веб —tests/components/JournalRecordPanels.spec.ts,tests/utils/journalWrite.spec.ts.
