Перейти к основному содержимому

index

@mineflow/client-react


@mineflow/client-react / EAM

EAM

EAM (активы) — рукописные хуки. Тривиальные read'ы (useAssets/useAsset) генерятся в ./eam.generated и ре-экспортируются ниже; здесь — write-хуки жизненного цикла актива (register/transfer/decommission + FSM-переходы), каждый инвалидирует список активов на успехе через useDomainMutation.

Формы тел выводятся из @mineflow/api-client (codegen из OpenAPI) → не дрейфуют. IDEMPOTENT — плейсхолдер под required header-param; реальный ключ проставит fetch-слой (makeAuthenticatedFetch).

Type Aliases​

Type AliasDescription
AddMaintenancePlanRepairBodyТело добавления планового простоя (ППР): assetId, date, hours, опц. kind, description.
AssetComponentRowСтрока узла/агрегата (id, name, kind, state, installedAt?, warrantyUntil?, note?).
AssetPenetrationEntryПроходка одного станка в пачечном ответе.
AssetPenetrationQueryОпц. период проходки (from/to, ISO-даты).
AssetsPenetrationQueryОпц. период проходки пачки (from/to, ISO-даты) без обязательного ids.
CreateAssetComponentBodyТело добавления узла (name, kind, опц. state/installedAt/warrantyUntil/note).
CreateMaintenancePlanBodyТело создания черновика графика (year, month, опц. `scopeObjectId
DecommissionAssetBodyТело списания актива (coApprovedBy, reason — double-approval).
RecordMeterReadingBodyТело ручного ввода показания счётчика (value, measuredAt).
RegisterAssetBodyТело регистрации актива (инвентарный номер, имя, класс, текущий объект, …).
RejectMaintenancePlanBodyТело отклонения графика (reason, ≥ 2 символов).
ScheduleMaintenanceBodyТело планирования ТО (assetId, scheduledAt ISO-datetime, reason).
TransferAssetBodyТело передачи актива (toObjectId, опц. reason).
UpdateAssetBodyТело правки карточки актива (паспортное наименование).
UpdateAssetComponentBodyТело обновления узла (все поля опциональны, в т.ч. смена state).
UpdateAssetPassportBodyТело редактирования паспорта (паспортная табличка, характеристики, гарантия — все опциональны).
UpdateMaintenancePlanRepairBodyТело обновления планового простоя (date/hours/kind/description — все опциональны).

Запись​

FunctionDescription
useAddAssetComponentДобавление узла актива (POST). Авто-Idempotency-Key; на успехе инвалидирует список узлов.
useAddMaintenancePlanRepairДобавление планового простоя (ремонт/консервация) в черновик графика: POST /eam/maintenance-plans/:id/repairs. Только в статусе draft. Роли: Mechanic, Engineer.
useAgreeMaintenancePlanСогласование графика главным механиком: FSM pending_agreement → agreed (POST /eam/maintenance-plans/:id/agree, без тела). Роли: Mechanic. Авто-Idempotency-Key; на успехе инвалидирует раздел.
useAmendMaintenancePlanПересмотр утверждённого графика: FSM approved → draft (POST /eam/maintenance-plans/:id/amend, без тела). Новая версия будет создана на следующем submit; подписи очищаются. Роли: Engineer. Авто-Idempotency-Key; на успехе инвалидирует раздел.
useApproveMaintenancePlanУтверждение графика техническим директором: FSM agreed → approved (POST /eam/maintenance-plans/:id/approve, без тела). Снимок версии зафиксирован. Роли: CEO. Авто-Idempotency-Key; на успехе инвалидирует раздел.
useCancelMaintenanceОтмена ТО из scheduled/inProgress (POST /eam/maintenance/:id/cancel). reason обязателен. Авто-Idempotency-Key. На успехе инвалидирует список ТО.
useCompleteMaintenanceЗавершение ТО: FSM maintenance → operational (событие COMPLETE_MAINTENANCE). ADR-0045: dedicated PATCH /eam/assets/:id/complete-maintenance; реактивно завершает открытую запись MaintenanceRecord. Тело не требуется.
useCompleteMaintenanceRecordЗавершение ТО: FSM inProgress → completed (PATCH /eam/maintenance/:id/complete). notes опционально. Авто-Idempotency-Key. На успехе инвалидирует список ТО.
useConserveAssetКонсервация актива: FSM operational → conserved (событие CONSERVE, ADR-0022). ADR-0045 (asset-centric): dedicated PATCH /eam/assets/:id/conserve. reason обязателен (OPS_REQUIRING_REASON). Запись журнала движений создаётся РЕАКТИВНО по событию eam.asset.status-changed. На успехе инвалидируется список активов.
useCreateMaintenancePlanСоздание черновика графика ТО/ППР на период (POST /eam/maintenance-plans, статус draft). Роли: Engineer. Авто-Idempotency-Key; на успехе инвалидирует раздел графиков.
useDecommissionAssetСписание актива (double-approval). Синхронная операция — отдаёт 200, это НЕ сага. На успехе инвалидирует список активов.
useReactivateAssetРасконсервация актива: FSM conserved → operational (событие REACTIVATE). ADR-0045: dedicated PATCH /eam/assets/:id/reactivate (тело не требуется).
useRecordMeterReadingРучной ввод показания счётчика (EAM 1.3): POST /eam/assets/:id/meter-readings. Авто-Idempotency-Key. На успехе инвалидирует статус ТО актива.
useRegisterAssetРегистрация (создание) нового актива. Авто-Idempotency-Key; на успехе инвалидирует список активов.
useRejectMaintenancePlanОтклонение графика с возвратом в черновик: FSM pending_agreement
useRemoveAssetComponentУдаление узла (DELETE, 204 No Content). На успехе инвалидирует список узлов.
useRemoveMaintenancePlanRepairУдаление планового простоя (soft-delete): DELETE /eam/maintenance-plans/:id/repairs/:repairId. Только в статусе draft.
useScheduleMaintenanceПланирование ТО актива: создаёт MaintenanceRecord в статусе scheduled (POST /eam/maintenance). Авто-Idempotency-Key. На успехе инвалидирует список ТО.
useSendToMaintenanceОтправка актива в ТО: FSM operational → maintenance (событие SEND_TO_MAINTENANCE). ADR-0045: dedicated PATCH /eam/assets/:id/send-to-maintenance. reason обязателен. Открытая запись MaintenanceRecord заводится реактивно по событию eam.asset.status-changed. На успехе инвалидируется список активов.
useStartMaintenanceНачало ТО: FSM scheduled → inProgress (PATCH /eam/maintenance/:id/start, пустое тело). Авто-Idempotency-Key. На успехе инвалидирует список ТО.
useSubmitMaintenancePlanОтправка графика на согласование: FSM draft → pending_agreement (POST /eam/maintenance-plans/:id/submit, без тела). Замораживает снимок проекции в версию. Роли: Engineer. Авто-Idempotency-Key; на успехе инвалидирует раздел.
useTransferAssetПеремещение/передача актива на другой объект (PATCH). На успехе инвалидирует список активов.
useUpdateAssetПравка карточки актива: паспортное наименование из реестра заказчика. PATCH /eam/assets/:id. Инвентарный (гаражный) номер этим хуком не меняется — он natural key реестра и в тело запроса не входит. Авто-Idempotency-Key; на успехе инвалидирует карточку и список активов.
useUpdateAssetComponentОбновление узла (PATCH), в т.ч. смена состояния. Авто-Idempotency-Key; на успехе инвалидирует список узлов.
useUpdateAssetPassportРедактирование паспорта актива (EAM 1.2 доработка, Задача 3a/3c): паспортная табличка, типизированные характеристики (по классу) и гарантия. PATCH /eam/assets/:id/passport, частичное обновление. Авто-Idempotency-Key; на успехе инвалидирует карточку и список активов.
useUpdateMaintenancePlanRepairИзменение планового простоя (часы/дата/описание): PATCH /eam/maintenance-plans/:id/repairs/:repairId. Только в статусе draft.

Чтение​

FunctionDescription
useAssetОдин актив EAM по id.
useAssetComponentsУзлы/агрегаты актива (Задача 3b): GET /eam/assets/:id/components.
useAssetHierarchyДерево реестра активов EAM «объект → класс → единица» (ADR-0059; серверная агрегация, фильтры objectId/status).
useAssetMeterReadingsИстория показаний счётчика актива (источник: manual/shift_report/telematics + автор).
useAssetMeterStatusСтатус ТО актива по наработке (EAM 1.6): остаток до ТО, средняя суточная, прогноз и статус Норма/Критично/Просрочено/Нет данных. GET /eam/assets/:id/meter-status.
useAssetPenetrationПомесячная проходка станка — Σ пробуренных п/м по месяцам (Задача 3d). GET /eam/assets/:id/penetration. Только для буровых (у прочих классов пусто). Не запускается при пустом id.
useAssetsСписок активов EAM (cursor-пагинация, фильтры status/objectId/responsibleMechanicId).
useAssetsAllПолный список активов: стягивает ВСЕ страницы курсора (в отличие от useAssets, который отдаёт одну страницу ≤200 и молча обрезал бы пикер на участке с >200 единицами). Курсор/лимит хук гонит сам — caller передаёт только фильтры (objectId/status/responsibleMechanicId). Ключ отдельный (…list({…, all: true})), чтобы не пересекаться с кэшем одностраничного useAssets.
useAssetsPenetrationПомесячная проходка ПАЧКИ станков одним запросом. Брать её здесь, а не звать useAssetPenetration из компонента строки: N строк × пер-станочный роут — это N+1 на клиенте, который упирается в rate limit (график ТО/ППР на 23 буровых давал 429). Пер-станочный хук остаётся для экрана ОДНОГО актива.
useMaintenancePlanОдин график ТО/ППР EAM по id (frozen-снимок для approved, живой пересчёт для draft; ADR-0070).
useMaintenancePlansСписок графиков ТО/ППР EAM (cursor-пагинация, фильтры year/month/status; ADR-0070).
useMaintenanceRecordОдна запись ТО EAM по id.
useMaintenanceRecordsСписок записей ТО EAM (cursor-пагинация, фильтры assetId/status).
useMovementОдна запись журнала движений EAM по id.
useMovementsЖурнал движений актива EAM (read-only, cursor-пагинация; фильтры assetId/objectId/op/status/dateFrom/dateTo).