01
Phase 0 — Management & Analyse des besoins
1
Recueil des besoins utilisateurs Ateliers métier, interviews, observation terrain
2
Cartographie AS-IS (BPMN) Flux existants, goulots, redondances
3
Optimisation processus TO-BE Refonte avant digitalisation — principe fondateur
4
Rédaction CDC Fonctionnel & Technique Exigences, règles de gestion, MoSCoW
5
Validation & sign-off Accord formel avant démarrage développement
Livrable Description
Rapport d'analyse des besoins User stories, matrice besoins/solutions
Cartographies BPMN AS-IS / TO-BE Diagrammes avant/après, gains quantifiés
CDC Fonctionnel & Technique Document complet validé, MoSCoW
Plan projet & roadmap Phases, jalons, ressources, KPIs
Matrice rôles & habilitations Profils, droits, parcours par rôle
02
Processus Métier — Diagrammes BPMN
2.1 Cycle de vie — Demande d'intervention
Cycle Demande
Nouveau
Affecter
Technicien
Valider &
Démarrer
Intervenir
(email auto)
Résultat ?
OK
Clôturer
(coût auto)
Clôturé
Annulé
KO
Liste des demandes — vue production
Formulaire demande — détail
Historique des états — traçabilité complète
2.2 Maintenance Préventive — Génération automatique
Maintenance Préventive
⏱
CRON
Évaluer
équipements
Générer
demandes
Notifier email
(mail.template)
Planifier
technicien
Planifiée
2.5 Diagrammes des processus (réels)
Diagrammes générés à partir du code réel du module (workflow d'état, CRON préventif, attribution automatique, flux correctif et modèle de données). Rendus dynamiquement avec Mermaid.js.
Diagramme 1 — Cycle de vie d'une demande de maintenance
Workflow d'état d'une intervention. Le rapport d'intervention (code panne, cause, travaux) est obligatoire pour passer à « Terminé ».
flowchart LR
N["Nouveau (new)"] -->|Valider| TV["A valider (to_validate)"]
TV -->|Demarrer| IP["En cours (in_progress)"]
IP -->|Marquer repare| RP["Repare (repaired)"]
RP -->|"Terminer (rapport obligatoire)"| DN["Termine (done)"]
N -.Annuler.-> CX["Annule (cancel)"]
TV -.Annuler.-> CX
IP -.Annuler.-> CX
RP -.Annuler.-> CX
Diagramme 2 — Génération automatique des demandes préventives (CRON)
Un CRON quotidien crée les demandes préventives selon la périodicité de chaque équipement (anti-doublon).
flowchart TD
C["CRON quotidien"] --> Q{"Equipement operationnel ET prochaine maintenance <= aujourd'hui+1j ?"}
Q -->|Non| SKIP["Ignorer"]
Q -->|Oui| D{"Demande preventive deja ouverte ?"}
D -->|Oui| SKIP
D -->|Non| CR["Creer demande preventive (equipe = equipe de l'equipement)"]
Diagramme 3 — Attribution automatique d'équipe (scoring multi-critères)
Filtre dur (société/état/actif) puis score pondéré ; aucune exclusion par charge ; le chef d'équipe devient technicien.
flowchart TD
R["Demande de maintenance"] --> F{"Filtre dur : active + validee + meme societe"}
F -->|0 equipe| NO["Notification : aucune equipe"]
F -->|N equipes| S["Scoring 0-100 pondere : charge + performance + reactivite + proximite (site) + competence (categorie)"]
S --> B["Meilleure equipe (score max)"]
B --> T["Technicien = chef d'equipe"]
Diagramme 4 — Détection → génération de demande corrective
La conformité et l'efficacité énergétique alimentent le flux correctif (demande en brouillon, en attente de validation).
flowchart LR
INS["Inspection conformite & securite"] -->|"non conforme / action requise"| DR["Demande corrective (brouillon)"]
EE["Evaluation efficacite energetique"] --> PA["Plan d'actions tracable"]
PA -->|"Generer demande"| DR
EQR["Suivi remplacement equipement"] -->|"ratio cout/valeur > seuil"| AL["Alerte e-mail + PDF (aide a la decision)"]
Diagramme 5 — Modèle de données (entités principales)
Cœur du modèle Odoo du module et ses relations.
flowchart TD
SITE["maintenance.site"] --> EQ["gmao.equipment"]
CAT["gmao.equipment.category"] --> EQ
EQ --> REQ["gmao.request"]
TEAM["gmao.team"] --> REQ
REQ --> PU["maintenance.parts.used"]
FC["gmao.failure.code"] --> REQ
PH["gmao.report.phrase"] --> REQ
CON["maintenance.contract"] --> EQ
EQ --> COF["maintenance.conformite.securite"]
EQ --> EFF["maintenance.efficacite.energetique"]
EFF --> EFA["maintenance.efficacite.action"]
COF -.genere.-> REQ
EFA -.genere.-> REQ
03
Périmètre Fonctionnel & Captures
3.1 Équipes de maintenance
Équipes — vue kanban
Fiche équipe — KPIs et membres
Champ Type Description
nameChar Nom de l'équipe
member_idsMany2many → hr.employee Membres de l'équipe
taux_reussiteFloat (computed) % interventions réussies
charge_travailInteger (computed) Nombre demandes en cours
Équipements — liste production
Sites de maintenance & navigation
Équipement — fiche détaillée
3.3 Contrats de maintenance
Contrats — alerte expiration visible en kanban
Rapport pièces utilisées — filtres avancés
3.4 Pièces de maintenance & Efficacité
Fiche pièce — stock, coût, allocation
Allocation pièces par intervention
Efficacité énergétique — IPÉ, consommation kWh
04
Modèles de Données Principaux
4.1 maintenance.request — états et transitions
Nouveau →
À valider →
En cours →
Réparé →
Clôturé
|
Annulé
Modèle Champs calculés clés Dépendances
maintenance.request_compute_cost, _compute_durationmaintenance.equipment, hr.employee, res.partner
maintenance.suiviDurée pause, coût réel maintenance.request, hr.employee
maintenance.equipmentCompteur maintenances, prochaine intervention maintenance.site, maintenance.equipment.category
maintenance.preventiveTaux réalisation, analyse coût maintenance.equipment, hr.employee
maintenance.contractAlerte échéance, durée restante res.partner, res.company (multi-société)
maintenance.kpiMTTR, taux résolution, coût moyen maintenance.request (agrégation)
maintenance.parts.usedCoût total, stock disponible product.product (stock Odoo)
maintenance.efficacite.energetiqueIPÉ, variation consommation, économie kWh maintenance.equipment
┌─────────────────────────────────────────────────────────────┐
│ Couche Présentation │
│ QWeb Templates · OWL Framework · Chart.js · CSS3 Resp. │
├──────────────────────┬───────────────────┬──────────────────┤
│ Vues XML (18) │ Rapports QWeb │ Portail Client │
│ Form / Tree / │ PDF — contrats │ portal.py │
│ Kanban / Graph / │ interventions │ res.users ext. │
│ Pivot / Search │ │ │
├──────────────────────┴───────────────────┴──────────────────┤
│ Couche Modèles Python (ORM Odoo) │
│ maintenance.request maintenance.suivi │
│ maintenance.equipment maintenance.preventive │
│ maintenance.contract maintenance.kpi +14 modèles │
│ maintenance.code mail.template portal.mixin │
├────────────────────────────┬────────────────────────────────┤
│ PostgreSQL + Odoo ORM │ Email natif Odoo + CRON (×13) │
│ Indexation + store=True │ Fallback email automatique │
└────────────────────────────┴────────────────────────────────┘
Dépendances Odoo (manifest)
Module Usage
baseCore, res.partner, res.company
mailChatter, email notifications
stockPièces utilisées (product.product)
hrTechniciens (hr.employee)
webFrontend OWL, widgets
base_address_citySites (res.city)
CRON automatiques
CRON Fichier Action
Email mail_cron.xmlEnvoi notifications email
Alertes maintenance_alert_cron.xmlAlertes contrats, remplacements, expirations
Préventive maintenance_cron.xmlGénération auto interventions
06
Sécurité & Contrôle d'Accès
Groupe Read Write Create Delete Admin Multi-société
group_maintenance_user_readonly✓ — — — — —
group_maintenance_user✓ ✓ ✓ — — —
group_maintenance_manager✓ ✓ ✓ ✓ ✓ ✓
group_gmao_suite_creator✓ ✓ ✓ — — —
07
Analyse des Risques & Solutions
Chaque risque identifié en Phase 0 est adressé par une solution technique structurelle intégrée dès la conception.
Risque Niveau Solution technique intégrée
Performance dashboard Requêtes ORM multiples Élevé Indexation PostgreSQL,
store=True, pagination, chargement différé graphiques, CRON découplé
Délai d'envoi des emails File d'attente serveur mail Moyen Notifications email natives Odoo (
mail.template, 13 templates),
try/except, retry CRON, journalisation, alertes admin
Odoo 13 CE strict Pas d'Enterprise Moyen Zéro dépendance Enterprise, 100% natif CE, testé exclusivement sur 13 CE
Multi-société Fuites inter-entités Moyen ir.rule explicites, domaine
company_id in / False, tests systématiques
Adoption utilisateurs Faible Interface Odoo standard, co-conception Phase 0, formation déploiement incluse
08
Roadmap — Intelligence Artificielle & Odoo 17/19
Fonctionnalités à venir · Horizon 2026
Couches modèle, vue et sécurité découplées pour faciliter la migration Odoo 19 et l'intégration des APIs IA natives.
Migration Odoo 19 OWL 2, APIs Python modernisées, PostgreSQL optimisé. Rétrocompatibilité données par migration script.
Automatisation intelligente des workflows IA suggère technicien optimal, durée estimée, pièces probables — sans configuration manuelle.
OCR — Lecture automatique de documents Capture depuis bons d'intervention papier et fiches équipements. Fin de la resaisie.
Génération automatique des devis Basé sur l'historique — coûts, délais, ressources — prêt à soumettre au client.
Rapports d'intervention par l'IA Rapport structuré généré à la clôture : diagnostic, actions, recommandations, en langage naturel.
Analyse prédictive & planification Modèles ML sur historique pannes pour anticiper défaillances par équipement, site, saison.