Skip to content

Назначение

Учёт оборудования, планы осмотров, журнал дефектов, заявки и наряды на ремонт, ППР, техкарты, счётчики показаний, reliability-аналитика и внешний requester-поток.

API

Базовый префикс: /api/v2/plant-maintenance/ (см. narmak/api_url_v2.py).

Основные ресурсы: equipment/, repairrequests/, workorders/, inspectionplans/, inspectionrecords/, defectjournals/, pprschedules/, ppritems/, techcards/, meters/, metersvalues/ и др.

Кастомные действия:

  • POST .../repairrequests/{id}/transition/ — смена статуса заявки (workflow).
  • POST .../workorders/{id}/transition/ — смена статуса наряда.
  • GET .../workorders/my-queue/ — очередь активных нарядов текущего исполнителя.
  • POST .../inspectionplans/{id}/complete/ — завершение осмотра по плану.
  • GET .../analytics/dashboard/ — агрегированная управленческая сводка CMMS.

Внешний контур для заявителей:

  • /c-api/v1/repair-requests/ — список, просмотр и создание сервисных заявок контрагента.
  • /c-api/v1/repair-requests/equipment-options/ — оборудование, доступное внешнему заявителю.

Swagger: /swagger/ — актуальная схема.

Права доступа

ViewSets используют миксин с IsAuthenticated и правами из app/plantmaintenance/permissions.py.

  • Внутренний контур: чтение всем аутентифицированным, изменение через группу plant_maintenance или staff.
  • Approvals: отдельные permission-классы для утверждения заявок и закрытия нарядов.
  • Внешний requester-поток: IsCounterpartyPortalUser и scope по Equipment.responsible_counterparty.

Сервисный слой

  • RepairWorkflowService — переходы статусов заявок/нарядов с валидацией допустимых переходов.
  • PPRService — генерация и просроченные пункты ППР.
  • InspectionService — overdue-логика, completion и связка с осмотрами.
  • ReliabilityService — MTBF/MTTR/availability и расчёт простоев.
  • DashboardService — агрегированный dashboard уровня CMMS.
  • PlantMaintenanceNotificationService — уведомления и reminders.

CMMS зрелого уровня

В актуальном контуре модуль уже покрывает:

  • asset control по оборудованию, истории, дефектам, ППР, простоям и затратам;
  • repair lifecycle от заявки до акта;
  • preventive maintenance через ППР, осмотры и счётчики;
  • reliability и cost analytics;
  • requester portal и technician queue.

Фоновые задачи (Celery)

Ключевые задачи:

  • plantmaintenance.generate_active_ppr_items
  • plantmaintenance.check_overdue_inspections
  • plantmaintenance.check_meter_thresholds
  • plantmaintenance.auto_create_repair_requests
  • plantmaintenance.send_reminders

См. подробности: Celery-задачи.

Тесты

Пакет: app/plantmaintenance/tests/ (pytest, pytest.mark.django_db).

bash
cd backend/narmak_v2
poetry install
poetry run pytest app/plantmaintenance/tests/ -q
poetry run python manage.py check_plantmaintenance_readiness

Развёртывание

Общие рекомендации: Развёртывание backend. Модуль не требует отдельных сервисов сверх стека Narmak (PostgreSQL, Redis, Celery worker/beat).

Для production rollout используйте отдельный чек-лист: ТОиР CMMS — release readiness и rollout.

См. также