Ремонты

Журнал ремонтов: план и факт по контурам.

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

Возможности

  • Плитки «Найдено» и по состояниям «План», «В процессе», «Выполнено»; нажатие на плитку состояния — отбор, повторное — снять.
  • Поиск по номеру записи, наименованию, характеристике участков, описанию и характеристике работ, результатам, номеру приказа и ответственному; фильтры «Состояние», «Вид ремонта», «Категория», «Утверждение», «Ответственный», «С даты», «По дату».
  • «Создать»: «План (капитальный / инвестиционный)» или «Текущий ремонт». Карточка: «Общие сведения», «План» (сроки, длина и диаметр труб, изоляция, канал, асфальтирование, бюджет, персонал), «Фактическое выполнение», «Последствия и ввод в эксплуатацию».
  • Контур ремонта — участки сети: «Выбрать на карте» или номера через запятую, «с парной трубой (подача/обратка)».
  • В карточке — «Линии контура», «Участки работ», «Состав работ», «Связанные нарушения» (переход в карточку нарушения), документы.
  • «Утверждение плана» в карточке: «Утвердить…», «Снять утверждение». «Утвердить план» над списком — пакетное утверждение планов за период.
  • «Печать (Форма 10)» — журнал ремонтов по форме 10 для печати; «Word» — документ по одной записи.

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

Где хранятся данные. Журнал общий с десктопом ТГИД. Ремонт — строка таблицы remont2, участки контура — remont2deployed, документы — remontdocuments. Справочники: состояние (stateremont2), вид ремонта (remonttypes), категория (remontcat), ответственные (nachalniki_uchastkov), подразделения (subdivisions). Нарушения связаны с ремонтом через колонку remontid журнала нарушений.

Режимы создания (как пункты меню десктопа):

Режим Вид ремонта Состояние Утверждение
«План (капитальный / инвестиционный)» «Инвестиционный» (можно сменить на «Капитальный») «План» не утверждено, попадает в план на утверждение
«Текущий ремонт» «Текущий» «В процессе» не утверждается планом

При создании сервер ставит дату осмотра — текущее время. Обязательно только «Наименование/адрес», и оно должно быть уникальным без учёта регистра.

Проверки при сохранении. Окончание по плану не раньше начала по плану, завершение ремонта не раньше начала ремонта. Номер приказа и дата приказа заполняются только вместе. Значения справочников должны существовать в базе.

Утверждение плана. План утверждается, если заполнены 13 полей: наименование, вид ремонта, категория, тип тепловой сети, начало и окончание по плану, длина труб, диаметр труб, изоляция, канал, асфальтирование, средства и ремонтный персонал по плану, — и в контуре есть хотя бы один участок. При утверждении ставится дата утверждения и состояние «В процессе». «Снять утверждение» очищает дату и возвращает состояние «В процессе» в «План». Текущий ремонт не утверждается: сервер отвечает «текущий ремонт не утверждается планом».

Пакетное утверждение показывает до 500 неутверждённых плановых ремонтов с началом по плану в выбранном периоде. Утверждаются те, что прошли проверку; для остальных выводится причина.

Поле и фильтр «Утверждение». Текущий ремонт хранится с отметкой «не утверждается планом». В поле «Утверждение» карточки у него — «Текущий ремонт — без утверждения», как и в блоке «Утверждение плана». Фильтр «Утверждено» показывает только утверждённые планы, «Не утверждено» — только неутверждённые; записи с отметкой текущего ремонта не входят ни в один из них.

Даты в фильтре. «С даты» и «По дату» сравниваются с началом ремонта, а если его нет — с началом по плану или датой осмотра.

Печать (Форма 10) берёт строку поиска (без остальных фильтров) и выводит до 1000 записей.

Удаление убирает запись, её контур, факторы риска ремонта и документы; у нарушений обнуляется ссылка на ремонт, сами нарушения остаются.

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

  • Смотреть, печатать форму 10 и выгружать Word — любой вошедший.
  • Создавать, править, удалять, утверждать, менять контур и документы — право «Журналы» и включённая запись (MUTATIONS_ENABLED=true). Пользователю-роли PostgreSQL нужно ещё предметное право «Ремонты». Без этого нет кнопок «Создать», «Утвердить план», «Редактировать».
  • Для утверждения — заполненные поля плана и участки в контуре.

Шаги

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

    Пункт «Ремонты» в панели «Инструменты»

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

    Окно «Ремонты»

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

    Ремонты: шаг 3

Примеры

Копия Астаны: что в журнале. 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.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо