Workbench maintenance

Le Workbench est l’écran de la maintenance opérationnelle pour un aéronef donné, accessible à /fleet/:id/maintenance. Il s’ouvre dès qu’un

DT

(« Dossier de Travail ») est en cours sur cet aéronef et présente :

  • l’arbre de configuration appliquée (CA) avec poses et déposes inline par point d’emploi ;
  • le bandeau de divergence si la CA s’écarte de la décomposition source de la version produit ;
  • un compteur synthétique (points d’emploi, posés, divergence) ;
  • l’atelier de rattachement du DT et un bouton « Terminer la maintenance ».

Deux portes d’entrée vers les poses/déposes. Le Workbench /fleet/:id/maintenance est la porte d’entrée du flux d’enrôlement. Pour un DT de maintenance (curatif / préventif / mixte), le bouton « Voir le dossier en cours » mène désormais à la fiche du DT (/work-packages/:id), centrée sur les Ordres de travail ; le même arbre CA (poses/déposes) y est accessible via l’onglet « Poses / déposes ». C’est exactement le composant décrit ci-dessous, réutilisé dans la fiche du DT.

Les échéances dépassées (scheduler) sont consultables sur la fiche aéronef et sur la liste des

Dossiers de travail ; elles ne sont pas affichées directement dans le Workbench.

Ouvrir un dossier de travail

Quatre types (kinds) de DT, choisis à l’ouverture :

  • enrolment — décomposition initiale d’un aéronef neuf (mode pose create, saisie libre des SN qui crée le StockItem atomiquement).
  • curative — réaction à un défaut, un incident ou une non-conformité.
  • preventive — exécution planifiée de tâches issues d’un PEA.
  • mixed — combinaison curatif + préventif (chantier global).

Création d'un DT

  1. Déclencher depuis la fiche aéronef

    Bouton contextuel : « Enrôler l’aéronef » (statut to_enrol) ou « Démarrer la maintenance » (statut in_service). La modale StartMaintenanceDialog pré-remplit le kind correspondant.

  2. Renseigner le DT

    Code, dates prévues, atelier de rattachement (workshopStorage), responsable, description. API : POST/work-packages.

  3. Ajouter des Ordres de Travail (OT)

    Depuis le détail DT (/work-packages/:id), modale « Ajouter un OT » → POST POST/work-orders. Chaque OT porte ses opérations (work-order-operations).

Poser et déposer dans la CA

Pose d'un composant

  1. Sélectionner un point d'emploi

    Dans l’arbre, chaque slot libre affiche un picker. En mode enrolment, saisie libre du SN (mode create). En mode curative/preventive/mixed, sélection depuis l’inventaire de l’atelier (mode pick).

  2. Confirmer la pose

    L’installation est créée atomiquement avec son MeterSnapshot d’origine. API : POST/installations.

  3. Dépose

    Sur un point d’emploi occupé, bouton « Déposer » → modale DeposeDialog qui demande le storage de retour. API : POST/installations/:id/uninstall.

Garde-fous métier à la pose

Avant toute pose (API ou UI), le backend vérifie quatre conditions bloquantes. La modale InstallDialog les reflète par un bandeau d’erreur qui désactive le bouton :

  • type d’article non installable (PartType.isMountable=false) — outillages, conteneurs et consommables ne suivent pas le cycle pose/dépose.
  • réception technique R2 non validée (StockItem.technicalReceptionStatus='pending') — un technicien navigabilité doit acter l’identification + les compteurs avant mise en service.
  • état impropre (condition{new, serviceable}) — seuls les composants neufs ou utilisables peuvent être posés.
  • date d’expiration dépassée (StockItem.expiryDate < aujourd'hui) — exigence EASA Part-145 / EMAR-FR M : un composant périmé doit être retiré du service ou remis en révision avant toute nouvelle utilisation.

Saisir les compteurs et données techniques

  • Compteurs aéronef (heures, cycles, calendrier) : modale MeterReadingFormModalPOST/aircraft/:aircraftId/meter-readings.
  • Données techniques d’un composant posé (identification, snapshots compteurs, PEA affectés, documents) : TechnicalDataDrawer ouvert depuis l’arbre CA.

Voir la page Programmes d’entretien pour comprendre comment les échéances qui peuplent les OT préventifs sont déclenchées.

Clôturer le DT

Une fois les opérations terminées, le bouton « Terminer la maintenance » transite le DT en completed via POST/work-packages/:id/transition (payload { to: 'completed' }). Effets de bord :

  • le statut de l’aéronef quitte in_enrolment ou maintenance et bascule sur in_service ;
  • un meterSnapshotAtCompletion est figé sur le DT (visible dans le détail) ;
  • l’audit log immuable conserve l’évènement.

La signature électronique conforme EASA Part-145 (APRS / CRS, horodatage RFC 3161) est prévue par le cadre réglementaire mais n’est pas encore implémentée dans le code. La clôture actuelle vaut accusé de fin d’opération, sans valeur de libération navigabilité.