gmao/docs/ui-audit/EXTERNAL_MAINTENANCE_WORKFLOW.md

99 lines
4.5 KiB
Markdown
Raw Normal View History

# Workflow maintenance external — proposition Phase 2.1
## État réel actuel
`LotTask` possède déjà `contrat`, `company_id`, `contract_id`,
`gestionnaire`, `periodicite` et `jours_entre_interventions`. `ScheduledTask`
possède également lentreprise, le contrat, léquipement, la salle,
laffectation et les dates prévues/réelles. `ContractVisit` représente une
visite de contrat avec une date et un statut.
Cette base permet d'associer une tâche à une entreprise, mais ne distingue pas
encore proprement : date d'échéance, rendez-vous avec heure, passage libre,
arrivée réelle, non-venue et temps d'accompagnement du technicien.
## Implémentation Phase 2.1b
La migration `i4d5e6f7a8b9` et la page **Passages & contrôles** couvrent les
modes « Sur rendez-vous », « Date connue, heure inconnue » et « Passage libre »,
ainsi que la date réelle, l'arrivée, la non-venue et l'accompagnement
ponctuel/complet. Un rendez-vous avec heures devient une contrainte fixe de
`DayPlanner`; les autres modes sont des informations non bloquantes jusqu'à
l'arrivée de l'entreprise.
## Parcours métier proposé
1. Dans la fiche du lot, choisir lexécutant : technicien du collège,
entreprise, Département ou mixte.
2. Si nécessaire, choisir lentreprise et le contrat.
3. Définir le périmètre : tous les équipements actifs du lot/catégorie, ou une
sélection manuelle filtrée par bâtiment, zone et salle.
4. Définir la périodicité et la prochaine échéance séparément.
5. Choisir le mode de passage : rendez-vous, date sans heure ou passage libre.
6. Pour un rendez-vous, saisir date, heure/durée, notes et accompagnement.
7. À larrivée, enregistrer le passage réel ; une non-venue laisse la tâche à
réaliser et permet de proposer un nouveau rendez-vous.
## États métier proposés
`À planifier`, `Rendez-vous fixé`, `Passage libre`, `Arrivée`, `En cours`,
`Réalisé`, `Reporté`, `Non venue`, `Annulé`.
Le rendez-vous et le passage réel sont distincts. La prochaine échéance ne doit
être recalculée quaprès une vérification réellement enregistrée, selon les
règles du contrat. Par défaut, la proposition est : date réelle + périodicité.
## Temps dentreprise et temps technicien
La durée de présence de lentreprise nest pas automatiquement la durée
bloquée dans `DayPlanner`. Une tâche doit distinguer :
- présence totale de lentreprise ;
- accompagnement ponctuel du technicien ;
- accompagnement complet du technicien.
Seul laccompagnement prévu bloque lagenda du technicien. Un passage libre
reste une information/alerte et ne réserve aucun créneau arbitraire.
## Périmètre des équipements
Deux modes sont à prévoir :
- **dynamique** : tous les équipements actifs répondant au lot/catégorie et
aux filtres de localisation ;
- **manuel** : sélection explicite déquipements.
Le mode dynamique simplifie la maintenance dun parc qui évolue ; le mode
manuel convient à un contrat limité à quelques appareils. Linterface doit
afficher le nombre déquipements concernés et permettre de revoir la sélection.
## Espaces verts
Les durées de tonte, bordures, taille et évacuation sont des durées propres à
une zone. Elles ne doivent pas être portées par une règle générique de lot.
Une extension dédiée de périmètre/zone est à concevoir après validation du
modèle de localisation existant.
## RBAC et sécurité
La consultation suit les permissions du lot, de lentreprise et du planning.
La modification dun contrat ou dun rendez-vous doit être autorisée par la
permission métier correspondante. Les liens vers les équipements restent
protégés par les permissions patrimoine.
## Migration à étudier avant développement
Avant toute migration, comparer une extension de `LotTask`/`ContractVisit` avec
un modèle de passage séparé. Les champs éventuels seraient notamment : mode
dexécutant, mode de passage, fenêtre, heure, durée daccompagnement, statut,
date réelle et périmètre dynamique. Aucune table ni migration nest créée dans
cette étude.
# Mise en œuvre Phase 2.1b
Les tâches de lot disposent maintenant d'un exécutant explicite (interne,
entreprise extérieure, Département, mixte ou à définir), d'une entreprise et
d'un contrat facultatifs, ainsi que d'un périmètre dynamique ou manuel.
Le rendez-vous, la fenêtre de passage, la non-venue et l'accompagnement
restent à implémenter autour de `ContractVisit` dans une migration dédiée ;
aucune date/heure fictive n'est donc créée dans cette passe.