PRD + Technique v13.0.2.0.21 GMAO Suite Odoo 13 CE Emac SAH github.com/kouemousah/GMAO
Documentation Technique & Fonctionnelle
GMAO Suite

Spécification complète — modèles, BPMN, architecture, sécurité, risques et roadmap IA

01

Phase 0 — Management & Analyse des besoins

Flux pré-développement

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

Livrables

LivrableDescription
Rapport d'analyse des besoinsUser stories, matrice besoins/solutions
Cartographies BPMN AS-IS / TO-BEDiagrammes avant/après, gains quantifiés
CDC Fonctionnel & TechniqueDocument complet validé, MoSCoW
Plan projet & roadmapPhases, jalons, ressources, KPIs
Matrice rôles & habilitationsProfils, 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
Liste demandes maintenance
Formulaire demande — détail
Formulaire demande
Historique des états — traçabilité complète
Historique des états

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
Équipes de maintenance kanban
Fiche équipe — KPIs et membres
Fiche équipe détail
ChampTypeDescription
nameCharNom de l'équipe
member_idsMany2many → hr.employeeMembres de l'équipe
taux_reussiteFloat (computed)% interventions réussies
charge_travailInteger (computed)Nombre demandes en cours

3.2 Équipements & Sites

Équipements — liste production
Liste équipements
Sites de maintenance & navigation
Sites de maintenance
Équipement — fiche détaillée
Fiche équipement

3.3 Contrats de maintenance

Contrats — alerte expiration visible en kanban
Contrats de maintenance
Rapport pièces utilisées — filtres avancés
Rapport pièces utilisées

3.4 Pièces de maintenance & Efficacité

Fiche pièce — stock, coût, allocation
Fiche pièce maintenance
Allocation pièces par intervention
Allocation pièces
Efficacité énergétique — IPÉ, consommation kWh
Efficacité énergétique
04

Modèles de Données Principaux

4.1 maintenance.request — états et transitions

Nouveau À valider En cours Réparé Clôturé | Annulé
ModèleChamps calculés clésDépendances
maintenance.request_compute_cost, _compute_durationmaintenance.equipment, hr.employee, res.partner
maintenance.suiviDurée pause, coût réelmaintenance.request, hr.employee
maintenance.equipmentCompteur maintenances, prochaine interventionmaintenance.site, maintenance.equipment.category
maintenance.preventiveTaux réalisation, analyse coûtmaintenance.equipment, hr.employee
maintenance.contractAlerte échéance, durée restanteres.partner, res.company (multi-société)
maintenance.kpiMTTR, taux résolution, coût moyenmaintenance.request (agrégation)
maintenance.parts.usedCoût total, stock disponibleproduct.product (stock Odoo)
maintenance.efficacite.energetiqueIPÉ, variation consommation, économie kWhmaintenance.equipment
05

Architecture Technique

┌─────────────────────────────────────────────────────────────┐ │ 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)

ModuleUsage
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

CRONFichierAction
Emailmail_cron.xmlEnvoi notifications email
Alertesmaintenance_alert_cron.xmlAlertes contrats, remplacements, expirations
Préventivemaintenance_cron.xmlGénération auto interventions
06

Sécurité & Contrôle d'Accès

GroupeReadWriteCreateDeleteAdminMulti-société
group_maintenance_user_readonly
group_maintenance_user
group_maintenance_manager
group_gmao_suite_creator
07

Analyse des Risques & Solutions

Approche
Chaque risque identifié en Phase 0 est adressé par une solution technique structurelle intégrée dès la conception.
RisqueNiveauSolution 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 utilisateursFaible
Interface Odoo standard, co-conception Phase 0, formation déploiement incluse
08

Roadmap — Intelligence Artificielle & Odoo 17/19

Fonctionnalités à venir · Horizon 2026
Architecture prête
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.