Pular para o conteúdo principal
PDGRHSuperviseur

Module de production sectorielle (palmier à huile) PDG / Admin / Superviseur

Module sectoriel dédié au cycle complet de production : récolte → maturité → transport → réception → pressoir → CPO. Conforme aux standards Big 5 (Wilmar / Sime Darby / IOI / Golden Agri / FGV) et au cadre RSPO Principles & Criteria v4.

Accès​

Menu latéral → Production

URL directe : /dashboard/palm-oil-production

Imports WhatsApp et quantités inconnues​

Un relevé lisible conserve ses nombres de fûts et de bidons. Le volume en litres dépend des contenances valides à la date du relevé : si elles manquent, le volume reste non renseigné, avec un avertissement. Configurez les contenances dans Ratios de production avant les prochains relevés ; les imports déjà terminés ne sont pas recalculés automatiquement. Chaque ratio porte une nature : conversion d'unités (contenance d'un bidon ou d'un fût, kg ↔ tonne, densité) ou rendement de procédé (par exemple 2,5 bidons d'huile par fût de noix). Seules les conversions servent au calcul des volumes ; un ancien ratio sans nature compte comme avant.

Dans les stocks et les indicateurs de production, non renseigné signifie une quantité inconnue ; 0 reste une quantité connue. Une reprise d'un ancien import conserve une clôture de stock plus récente. Si la confirmation d'un import est incertaine, rechargez l'historique avant de le relancer. Un conflit avec une donnée historique connue doit être examiné avant une nouvelle tentative.

Données d'exemple (tenant test-import)

Un tenant test-import exploite 28 parcelles sur 200 hectares (80 plantés). Les parcelles A-P sont dédiées au cultivar Tenera. Capacité ligne pressoir : 1 TPH (FFB). Chaque tenant configure ses propres parcelles, cultivars et capacité via les paramètres plantation.


1. Modèle de maturité L1-L4 (configuration tenant)​

Le module supporte 4 niveaux de maturité opérationnelle, configurés par tenant via tenant_palm_oil_config.maturity_level. Chaque niveau a un défaut de capacité TPH (tonnes FFB/heure) et une bande OER attendue (Oil Extraction Rate, %), définis dans le code canonique src/types/palmOilConfig.ts (MATURITY_OER_BANDS) et la spec specs/palm-oil-operations-template.md (FR-1) :

NiveauCapacité par défautOER attenduÉquipements typiquesCertification
L1 Artisanal0.1 TPH (100 kg/h)12-13%Pressoir manuel, cuves boisAucune
L2 Semi-mécanisé0.5 TPH (500 kg/h)14-15%Cuiseur + presse à vis motoriséeOptionnelle ISO 9001
L3 Mécanisé1.0 TPH (cible petit moulin Afrique)17-18%Ligne complète M1-M6 (cuiseur, dépresseur, clarificateur, chaudière, déshuileur, pressoir noix)HACCP requise
L4 Industriel5.0 TPH20-23%Multi-ligne + traçabilité plantation→pressoir totaleRSPO Principles & Criteria v4 obligatoire
Capacité TPH = tenant-configurable

Les valeurs ci-dessus sont les défauts par niveau de maturité. Chaque tenant peut configurer sa propre capacité réelle via tenant_palm_oil_config.capacity_tph (numeric, indépendant du niveau). Un tenant test-import cible par exemple une ligne 1 TPH (voir le dossier maître palm-oil-machinery/).

Référentiel industrie (Big 5 + classification générale)​

Échelle industriePlage TPH typiqueActeurs représentatifs
Petit moulin (small)1 - 5 TPHProducteurs artisanaux et semi-industriels Afrique de l'Ouest et Centrale (Cameroun, Côte d'Ivoire, Nigeria)
Moyen moulin (medium)5 - 20 TPHActeurs régionaux ; cible long terme typique pour les tenants L3→L4
Grand moulin (large)20+ TPHBig 5 mondial : Sime Darby Plantation, Wilmar International, IOI Group, Golden Agri-Resources, FGV Holdings (60+ TPH typique)

L'activation de la règle FFA 6h, du suivi POME (Palm Oil Mill Effluent), et des cibles de certification (certification_targets JSONB) sont contrôlées au niveau du tenant.

Référence Big 5

Golden Agri-Resources structure ses opérations en tiers similaires (smallholder / mécanisé / mill complete / sustainable). Le L4 Kaltiv représente le segment "RSPO Certified Mill" mais à une échelle adaptée au contexte africain (5 TPH par défaut, configurable jusqu'aux capacités industrielles).


2. Maturité des régimes (5 grades canoniques)​

5 grades canoniques pour grader chaque FFB (Fresh Fruit Bunch) à la réception. Contrainte DB CHECK sur harvests.maturity_grade (text) :

GradeLabel UISignificationAction recommandée
pas_mur"Pas mûr"Régime vert / sous-mûrLaisser mûrir, FFA bas mais huile insuffisante
presque_mur"Presque mûr"Transition mûreLaisser mûrir 24-48h
mur"Mûr"Maturité optimaleFenêtre de coupe idéale (cible)
sur_mur"Sur-mûr"FFA monte rapidementÀ traiter en priorité (moins de 6h)
refuse"Refusé"Vert / pourri / non conformeBridge SKIP — n'incrémente PAS oil_production_records.input_quantity
Comportement bridge sur "refuse"

Une récolte avec maturity_grade = "refuse" est automatiquement écartée par le bridge atomique link_harvest_to_opr (Section 5). Sa quantité n'alimente PAS l'OPR. L'événement est tracé dans bridge_events pour audit. Le superviseur doit ensuite décider : rejeter le FFB ou reclasser avec justification.

Référence Big 5

Les 5 grades adoptent la convention Wilmar / Sime Darby (4-5 tier maturity SOP), avec le presque_mur aligné sur le standard malaisien pour permettre la traçabilité plantation→pressoir requise par RSPO.


3. Règle FFA 6h (Free Fatty Acids)​

Le FFA (Free Fatty Acids, % d'acidité libre) est l'indicateur principal de fraîcheur de l'huile.

Biologie​

Après la coupe (harvests.cutting_start), le FFA monte rapidement dans les FFB selon trois phases :

  1. 0 → 15 minutes : FFA stable (lipase activée mais pas encore productive)
  2. 15 minutes → 6 heures : montée linéaire (oxydation enzymatique)
  3. Au-delà de 6 heures : seuil critique — perte de prime qualité, passage en seuil "standard"

Mécanisme système​

  • harvests.ffa_risk_hours est calculé à l'enregistrement (différence entre cutting_start et reception_timestamp)
  • Un job pg_cron ffa_timer_5h_scan (*/30 * * * *) émet une alerte 1 heure avant le seuil critique, donnant à l'équipe le temps de prioriser le pressage
  • La règle est togglable par tenant via tenant_palm_oil_config.ffa_6h_rule_enabled (boolean)

Seuils prime / standard​

Configurés par tenant :

  • tenant_palm_oil_config.ffa_premium_threshold (numeric, ex. 2.5%)
  • tenant_palm_oil_config.ffa_standard_threshold (numeric, ex. 5.0%)

Au-dessus de ffa_standard_threshold, l'huile est déclassée en grade industriel (perte de marge ~25% du prix de marché).

Référence Big 5 + RSPO

La règle 6h vient du standard malaisien (Sime Darby Plantation / IOI Group) et est codifiée dans RSPO Principles & Criteria v4 (Indicator 4.2.3). Au-delà de 6h, la traçabilité RSPO est rompue : l'huile ne peut plus être vendue comme "RSPO Certified".


4. Réception au pressoir​

Dans Production huile de palme → Production → Transport Récolte, chaque transport présente sa réception et l’état du délai FFA.

  • Saisissez l’heure d’arrivée, à la seconde, dans le fuseau du site affiché. Le droit de modification Production est requis pour cette première saisie.
  • Une réception ne peut être enregistrée qu’une fois par ce chemin. Une heure située plus d’une heure dans le futur est refusée.
  • Une arrivée antérieure à la coupe est conservée avec un diagnostic, sans délai FFA confirmé ; elle ne devient pas un délai nul ou un badge rouge.
  • Sans site actif unique et fuseau utilisable, la saisie reste indisponible. Une heure inexistante ou ambiguë lors d’un changement d’heure doit être corrigée ; elle n’est pas déplacée automatiquement.
  • Seul un résultat confirmé et à jour affiche un délai. Une lecture périmée, indisponible ou un diagnostic ne vaut jamais zéro heure. Utilisez Actualiser pour relire les données.

Corriger une heure déjà enregistrée​

Le droit d’approbation Production est requis. Cliquez sur Corriger la réception, indiquez une nouvelle heure et un motif de 1 à 500 caractères, puis confirmez. Le journal conserve votre identité, le motif et les heures avant/après. Effacer une réception ou confirmer la même heure n’est pas proposé.

En cas d’échec, le motif reste dans le formulaire tant que la même identité est active. Une erreur réseau peut survenir après l’enregistrement : relisez la réception avant de réessayer. Si la valeur a changé, fermez puis rouvrez le formulaire pour repartir de la valeur actuelle. Un changement d’utilisateur ou d’entreprise ferme le formulaire et efface sa saisie locale.

Le résumé des transports utilise le jour du site. Un message remplace les chiffres quand le fuseau ou la lecture ne sont pas disponibles.


5. Architecture du bridge atomique harvest → OPR​

Le RPC link_harvest_to_opr(harvest_id, opr_id) est additif et idempotent (Architecture Rule R196).

Caractéristiques​

  • Une oil_production_records (OPR) référence plusieurs récoltes via linked_harvest_ids (ARRAY UUID)
  • Contrainte unique : la même récolte ne peut PAS être liée 2 fois à la même OPR (idempotency garantie)
  • L'input_quantity de l'OPR est incrémenté par harvests.quantity_kg à chaque appel
  • Récoltes maturity_grade = "refuse" sont SKIP automatiquement (Section 2)
  • Sécurité : RPC SECURITY INVOKER — respecte les politiques RLS du tenant courant

Cas d'usage typique​

Sur une journée de pressage typique, plusieurs récoltes alimentent la même OPR :

  • 7h : Parcelle A (matin, 1500 kg, mur) → bridge ajoute à OPR du jour
  • 11h : Parcelle B (matin, 1200 kg, sur_mur) → bridge ajoute (priorité FFA)
  • 14h : Parcelle E (après-midi, 800 kg, refuse) → bridge SKIP
  • 16h : Parcelle F (après-midi, 1100 kg, mur) → bridge ajoute

Total OPR : 3800 kg input_quantity (1500 + 1200 + 1100). La parcelle E est tracée mais NE compte PAS.

Idempotency​

Si l'opérateur clique "Lier" 2 fois pour la même récolte, la quantité n'est PAS doublée — le bridge détecte le doublon via linked_harvest_ids @> ARRAY[harvest_id] et retourne was_idempotent = true.


Cross-références ERP​

  • 💰 OER → Revenue : voir Comptabilité OHADA — l'OER (oil_production_records.efficiency_ratio) alimente les ventes et le compte 70 (Ventes)
  • 📊 Gemba sur FFB grading : voir Excellence Opérationnelle (Lean) — la qualité des récoltes alimente les indicateurs PDCA et les rituels QRQC
  • 🤖 Triggers proactifs KONA : voir Conseiller IA — alertes automatiques quand un FFB approche du seuil 6h FFA, suggestions de priorisation
  • 🌱 Récoltes amont : voir Référentiel Agriculture — pour les parcelles alimentant la chaîne de pressage

Référentiel Big 5 (industrie sectorielle)​

ActeurApport adopté
Wilmar InternationalStandard 4-5 tier maturité, traçabilité plantation→pressoir
Sime Darby PlantationRSPO Principles & Criteria v4 implémentation, ligne de presse 1 TPH+
IOI GroupRègle 6h FFA biologique, intégration verticale plantation→raffinage
Golden Agri-ResourcesModèle L1-L4 maturité opérationnelle (artisanal → industriel)
FGV HoldingsWorkflow mill-floor reception checkpoint (truck → scan → grade)

Certification cible : RSPO à L4. Roadmap interne disponible dans palm-oil-machinery/docs/roadmap_certifications.md (étape 4 : Année 3+, durée 12-18 mois, prime de marché +15-25%).


FAQ​

Q : Pourquoi le grade refuse bloque-t-il le bridge ? R : Pour préserver l'intégrité des KPIs OER (Oil Extraction Rate). Si une récolte refusée alimentait input_quantity, l'efficiency_ratio serait artificiellement diminué (l'huile produite est divisée par une masse FFB sur-estimée). Le grade refuse est tracé dans bridge_events pour audit qualité, mais n'entre pas dans le calcul OER.

Q : Comment activer ou désactiver la règle 6h FFA ? R : Paramètres → Configuration module → toggle Activer la règle 6h FFA (tenant_palm_oil_config.ffa_6h_rule_enabled). Quand désactivée, le pg_cron ffa_timer_5h_scan n'émet pas d'alertes pour ce tenant. Utile pour les phases pilotes ou les niveaux L1 sans pressoir mécanisé.

Q : Plusieurs récoltes par jour pour la même OPR ? R : Oui, le bridge est additif (Section 5). L'OPR du jour accumule les FFB de plusieurs parcelles dans linked_harvest_ids. Cas typique : 3-5 récoltes par jour pendant la haute saison.

Q : Que se passe-t-il si input_quantity = 0 ? R : Le trigger trg_compute_oer qui calcule l'efficiency_ratio ne se déclenche pas (division par zéro évitée). Le diagnostic le plus fréquent : aucune récolte n'a été liée à l'OPR via le bridge. Vérifier linked_harvest_ids — si vide, ajouter manuellement les récoltes du jour via le formulaire OPR.

Q : KONA peut-il répondre à mes questions sur ce module ? R : Oui, depuis la version v68 du Conseiller IA (FOF-936), KONA dispose d'un domaine dédié palm_oil_production qui répond aux questions sur les grades de maturité, la règle FFA 6h, le workflow réception, le bridge atomique, et les équipements M1-M6. Demandez par exemple : "Qu'est-ce que la maturité sur_mur ?" ou "Comment activer la règle 6h FFA ?"


Roadmap​

Phase 3 (planifié — FOF-904)​

  • 5-test qualité huile : saisie UI + dashboard
    • FFA (Free Fatty Acids, %)
    • Humidité (%)
    • Impuretés (%)
    • Couleur (Lovibond R/Y)
    • Densité (kg/m³)
  • Dashboard POME (Palm Oil Mill Effluent) : suivi environnemental + déclaration autorité

Phase 4 (RSPO compliance — Année 3+)​

  • Audit RSPO Gap Assessment
  • Traçabilité plantation→pressoir complète (28 parcelles A-Z trackées)
  • Mise en place ligne RSPO Certified Sustainable Palm Oil (CSPO)
  • Prime de marché ciblée : +15 à +25% du prix de référence

Module documenté dans le cadre de l'EPIC FOF-927 (Help Ecosystem Sync — maturity grade + FFA timer + reception). Mis à jour : 2026-05-08.