Наряды и заявки

Наряды и заявки: путь от заявки или дефекта до закрытия — наряд, бригада, выполнение, просрочка и история.

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

Возможности

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

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

Где хранятся данные. Наряды — таблицы веба tgid_work_order (наряд) и tgid_work_order_event (история). Десктоп ТГИД эти таблицы не читает. Связи с данными десктопа — по номерам, без внешних ключей: дефект (defect), участок (linesobj), узел (nodes), бригада (brigades), ответственный (nachalniki_uchastkov), контур осмотра (osmotr). Фото с места работ лежат в базе (tgid_work_order_photo), отметки узлов обхода — в tgid_work_order_check.

Номер. Сервер присваивает номер сам: Н-<год создания>-<номер записи из 5 цифр>, например Н-2026-00024.

Статусы и переходы.

Статус Куда можно перейти Кнопки в карточке
Заявка Назначен, Отменён «Назначить», «Отменить»
Назначен В работе, Заявка, Отменён «Начать работу», «Вернуть в заявки», «Отменить»
В работе Выполнен, Назначен, Отменён «Выполнено», «Вернуть в назначенные», «Отменить»
Выполнен Закрыт, В работе «Принять и закрыть», «Вернуть в работу»
Закрыт — —
Отменён Заявка «Открыть снова»

Наряд, у которого при создании указана бригада или ответственный, сразу получает статус «Назначен», без них — «Заявка». «Назначить» требует сохранённую бригаду или ответственного. «Выполнено» требует текст в поле «Что сделано». Закрытый и отменённый наряд не правится. Удалить наряд нельзя — ненужный отменяют.

Версия наряда. Каждая правка и смена статуса увеличивает номер версии (revision). Карточка отправляет на сервер версию, которую видит. Если наряд за это время изменил кто-то другой (например, бригада с телефона), сервер отказывает: «Наряд уже изменили — обновите карточку». Комментарий версию не меняет.

Связь с журналом нарушений. Наряд по дефекту при «Начать работу» ставит дефекту дату начала ремонта (если она пустая) и состояние «Ремонт». При «Выполнено» — дату завершения ремонта (если пустая) и состояние «После ремонта». Остальные поля дефекта наряд не трогает. В историю наряда пишется «дефект — «Ремонт»» или «дефект — «После ремонта»».

Обход по контуру осмотра. Наряд из журнала осмотров («Наряд на обход») получает вид «Осмотр», место — центр участков контура, описание «Обход участков контура осмотра «…»». Бригада на телефоне отмечает каждый узел участков контура. При «Выполнено» текст «Что сделано» попадает в «Результаты осмотра» контура, если там было пусто.

Просрочено. Срок прошёл, а наряд ещё открыт (заявка, назначен или в работе). Срок в карточке такого наряда подсвечен и подписан «Срок прошёл».

Что видно в списке. Плитки считают все наряды базы, без учёта поиска. В списке — до 500 нарядов: сначала открытые, по срочности («Аварийный», «Срочный», «Плановый»), затем по сроку.

Бригада на месте. Если телефон бригады передаёт местоположение и точка оказалась не дальше 100 м от места её открытого наряда, в карточке появляется «бригада на месте с …», а в истории — событие о прибытии (один раз).

Сохранение. «Сохранить» в карточке отправляет сразу бригаду, ответственного, срок и форму обхода, но сервер записывает только те поля, что действительно изменились, и только их перечисляет в истории: поменяли бригаду — в истории «Изменено: бригада». Если ничего не изменилось, сервер ничего не пишет: версия наряда та же, строки в истории нет.

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

  • Смотреть список, карточки, историю и наряды на карте может любой вошедший.
  • Создавать, менять, переводить по статусам, комментировать — право «Журналы» (есть у ролей «Редактор» и «Администратор») и включённая запись (MUTATIONS_ENABLED=true). Без этого нет кнопки «+ Наряд», переходов, поля комментария и кнопки «Отключение для работ».
  • «Бригады» и «Трек бригады за сутки» — право «Журналы»; это только чтение, включённая запись не нужна.
  • Справочники: бригады (brigades) и ответственные (nachalniki_uchastkov). Бригады правятся в «Исходные данные → Справочники».
  • Форма обхода появляется в наряде, только если есть хотя бы одна действующая форма в «Формах обходов».

Шаги

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

    Пункт «Наряды и заявки» в панели «Инструменты»

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

    Окно «Наряды и заявки»

  3. Кнопка «+ Наряд» открывает форму справа. Обязательно только «Что сделать»; дальше — вид работ, срочность, номер дефекта (если наряд на его устранение — участок и описание подтянутся из дефекта), участок, бригада, ответственный, начало и срок, описание и форма обхода, которую бригада заполнит на телефоне.

    Наряды и заявки: шаг 3

  4. «Создать» — наряд получает номер и статус «Заявка» и появляется в списке. В карточке — бригада, ответственный и срок (их можно поменять и «Сохранить»), кнопки перехода к следующему статусу, комментарии и история. Если у наряда есть точка, кнопка с прицелом показывает её на карте.

    Наряды и заявки: шаг 4

  5. Комментарий пишется внизу карточки и сразу виден всем, кто открывает наряд. «Отключение для работ» открывает окно отключений с участком наряда — плановое отключение готовится из наряда в один шаг. Наряд не удаляется: ненужный отменяют, история остаётся.

    Наряды и заявки: шаг 5

Примеры

История учебного наряда, копия Алматы. На копии Алматы 5 нарядов, все в статусе «Отменён»; плитка «Просрочено» — 0. Наряд Н-2026-00024 «Заменить задвижку в камере (учебный наряд)» создан по участку 133 без бригады, поэтому начал со статуса «Заявка». Место взято из участка: фрагмент 1, точка 76,9181 в. д., 43,2428 с. ш. История из трёх строк: «Заявка — Создан», комментарий «Бригада выезжает после 14:00», «Отменён». Версия наряда — 2: создание дало 1, отмена — 2, комментарий версию не поменял.

Справочники копий. На копии Алматы в справочнике ответственных 36 записей, бригад нет: наряд можно назначить только на ответственного, переключатель «Бригады» ничего не покажет. На копии Астаны бригад тоже нет. В журнале нарушений там 78 записей в состоянии «Нарушение» — по любой из них наряд, переведённый в «В работе», сменит состояние дефекта на «Ремонт».

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

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

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

  • Запись: MUTATIONS_ENABLED=true, право «Журналы» (journals) в матрице прав. При входе через роли PostgreSQL (AUTH_BACKEND=pg) таблицы нарядов, фото и трека выдаются вместе с журналами (sql/pg_auth/03_grants.sql).
  • Таблицы tgid_work_order, tgid_work_order_event, tgid_work_order_photo, tgid_work_order_check, tgid_field_track API создаёт в базе города сам (city_schema).
  • Фото: JPEG, PNG или WebP до 2 МБ, не больше 30 на наряд; тип проверяется по содержимому файла. Точки трека старше 90 дней удаляются при записи новых.
  • Действия с нарядами попадают в журнал действий пользователей.

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

  • API (routers/work_orders.py, database/work_orders.py): GET /api/v1/work-orders/lookups, GET /api/v1/work-orders (status, brigade_id, fileid, q, open_only, limit до 1000; counts, overdue), GET /api/v1/work-orders/geojson, GET /api/v1/work-orders/{id}, POST /api/v1/work-orders, PATCH /api/v1/work-orders/{id} (revision; 0 снимает бригаду, ответственного, форму), POST /api/v1/work-orders/{id}/transition (to, revision, result, note, client_id), POST /api/v1/work-orders/{id}/comments, POST /api/v1/work-orders/{id}/photos, GET /api/v1/work-orders/photos/{photo_id}, POST /api/v1/work-orders/field-defect, GET /api/v1/work-orders/{id}/route, POST /api/v1/work-orders/{id}/checks. Заполненные формы — GET /api/v1/work-orders/{id}/forms (routers/forms.py). Трек — POST|GET /api/v1/field/track, GET /api/v1/field/positions (routers/field_track.py).
  • Константы: KINDS, PRIORITIES, STATUSES, TRANSITIONS, MAX_PHOTO_BYTES, MAX_PHOTOS, FIELD_DEFECT_SNAP_M в database/work_orders.py. Описание — itwin-api/docs/work-orders.md.
  • Веб: components/WorkOrdersDialog.vue (ключ workOrders), utils/workOrders.ts (подписи переходов, точки карты), полевое приложение — pages/field.vue.
  • Тесты: API — tests/test_work_orders.py, tests/test_work_order_route.py, tests/test_field_track.py; веб — tests/utils/workOrders.spec.ts, tests/utils/fieldQueue.spec.ts, tests/utils/fieldRoute.spec.ts, tests/utils/fieldTrack.spec.ts.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо