Назначение
Учёт оборудования, планы осмотров, журнал дефектов, заявки и наряды на ремонт, ППР, техкарты, счётчики показаний, 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_itemsplantmaintenance.check_overdue_inspectionsplantmaintenance.check_meter_thresholdsplantmaintenance.auto_create_repair_requestsplantmaintenance.send_reminders
См. подробности: Celery-задачи.
Тесты
Пакет: app/plantmaintenance/tests/ (pytest, pytest.mark.django_db).
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.