lint(limagrain): corrections completes Phase 1+2

- Bloquants: mermaid 03-picking/_index reconstitue (archive 11-05), 13 liens vers pages squelette retires, 2 liens recibles (anoxie, application-dictionary)
- Conventions: 910 em dashes -> tirets simples, 145 checklists -> puces question, 13 questions resolues barrees
- Liens: 9 ancres reparees (slugs GitHub)
- Delta: 12 standard_ref remappes, blocs Standard EasyWMS + sections References ajoutes, front matter complete
- Glossaire: 15 termes standard deplaces en section rappel avec renvoi
- Rapport: limagrain/_lint_report.md (Phase 1 + Phase 2 + re-scan final)
- Inclut les pages des sessions precedentes non commitees + CLAUDE.md et consume.log en l'etat
This commit is contained in:
2026-07-20 12:56:42 +02:00
parent 23eb3f3c84
commit 7496aafe64
59 changed files with 6457 additions and 2023 deletions
@@ -1,21 +1,21 @@
---
title: "Job AGV Réception production vers ASRS"
title: "Job AGV - Réception production vers ASRS"
tags: [agv, job, reception, production, asrs, pie]
status: draft
standard_ref: architecture/galileo-integration.md
jira_refs: [LIM-71, LIM-64, LIM-66]
confluence_refs: []
sources: ["LIM-71 LOT1.2 RECEPTION PRODUCTION AGV Job de création des tâches images de quai ASRS.md"]
last_updated: 2026-05-12
last_updated: 2026-07-17
author: Arthur
---
# Job AGV Réception production vers ASRS
# Job AGV - Réception production vers ASRS
> **Résumé** : job périodique (30 s) qui crée les tâches de déplacement
> AGV depuis les images de quai vers le buffer d'entrée production
> (alimentant le PIE de l'ASRS). Concerne uniquement les réceptions
> production (CstAtt04 = "ASN").
> AGV depuis les images de quai vers le PIE de l'ASRS, via les stratégies
> de rangement. Concerne les réceptions production (CstAtt04 = "ASN") et
> les piles de palettes vides (code `PAL`).
> **Standard EasyWMS** : → voir
> [Galileo Integration](../../architecture/galileo-integration.md),
@@ -25,6 +25,12 @@ author: Arthur
## Contexte projet
> **Statut (LIM-71)** : en préprod (test client). Revues de code validées
> le 27/03/2026, le 28/04/2026 (ajout piles de palettes) et le 01/07/2026
> (ajout job de régénération). Deux tentatives ont été **annulées en cours
> de dev** : le marquage `CstAtt06` (abandonné, cf. plus bas) et la condition
> `CstAtt12` sur les conteneurs production (non requise : pas d'étiquette).
Dans le flux de réception production, les palettes arrivent de la
production (ou de l'ancien magasin) et vont **directement dans l'ASRS**
sans passer par un poste de travail. Elles sont déchargées par un
@@ -72,39 +78,82 @@ sequenceDiagram
## Logique d'éligibilité
Le job parcourt tous les supports positionnés sur des images de quai.
Un support est éligible si **toutes** les conditions suivantes sont
réunies :
Le job parcourt tous les conteneurs positionnés sur des **stages d'image de
quai** (`LocationType.DockStage`). Un conteneur est éligible si **toutes**
les conditions suivantes sont réunies :
| Condition | Détail |
|-----------|--------|
| Séquence 8000* | Support fictif créé lors de la déclaration image de quai ([LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64)) |
| Emplacement = DockStage | Conteneur posé sur un stage d'image de quai |
| Code `8000*` **ou** `PAL*` | Support fictif production (séq. 8000, [LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64)) **ou** pile de palettes vides (`PAL`) |
| CstAtt04 = "ASN" | Support de type production |
| CstAtt06 vide | Pas encore traité par ce job |
| Aucune tâche active | Statuts actifs = Bloqué, Créé, En attente, En attente d'annulation, En cours. Statuts historiques (ignorés) = Annulé, Terminé |
| Aucune tâche active | `!c.Tasks.Any()` - aucun ordre de mouvement rattaché au conteneur |
La double vérification CstAtt06 + absence de tâche active est une
**sécurité anti-doublon**.
> **Reversal marquage CstAtt06** : la logique initiale prévoyait de marquer
> `CstAtt06` = destination pour éviter les doublons. Décidé en interne
> (19/03/2026) de **ne pas l'implémenter** : l'absence de tâche active suffit
> comme anti-doublon, et ne pas marquer `CstAtt06` permet de **regénérer** une
> tâche de rangement au prochain cycle si la précédente a été annulée. Ce job
> **n'utilise donc pas** `CstAtt06`.
>
> **Reversal condition CstAtt12** : une condition `CstAtt12 = true` (étiquette
> posée) a été ajoutée puis **retirée** pour la production et les piles de
> palettes - ces conteneurs n'ont pas d'étiquette. `CstAtt12` ne conditionne
> que les réceptions **fournisseur** vers les PK.
## Traitement d'un support éligible
## Traitement d'un conteneur éligible
### Marquage
Le job positionne `CstAtt06` = valeur du paramètre
`DESTINATION_PRODUCTION` (ex : "ENTREE_PRODUCTION").
### Création de la tâche
Pour chaque conteneur récupéré, le job effectue une **recherche
d'emplacement** basée sur les **stratégies de rangement** configurées, puis
génère la tâche de rangement si un emplacement est trouvé.
| Champ | Valeur |
|-------|--------|
| Origine | Sous-emplacement de l'image de quai |
| Destination | Déterminée par la **stratégie de rangement** configurée (MU d'entrée Est ou Ouest, Est par défaut) |
| Origine | Stage de l'image de quai |
| Destination | Déterminée par la **stratégie de rangement** (PIE_01 / PIE_02, entrée Est ou Ouest, **Est par défaut**) |
| Statut initial | "En attente" |
Les stratégies sont importées et configurées via la vue standard
`LocationPutawayStrategyVList`, modifiée pour autoriser les **stages** comme
station d'origine (type Stage, ou un stage précis). Les stratégies vont des
stages vers PIE_01 / PIE_02 en « fin de séquence ».
Le passage "en attente" → "créé" est géré par le WMS standard
(`Task_GenerateMovementJob_PR`). Le module AGV / GNA écoute ce
changement et envoie les tâches à la flotte iGo.
### Éléments AD (LIM-71)
| Élément AD | Type | Rôle |
|------------|------|------|
| `CST_StoreProductionContainer_Job` | Workflow + Job (30 s) | Récupère les conteneurs via la query, cherche un emplacement pour chacun et génère la tâche de rangement si trouvé |
| `CST_AvailableProductionContainers` | Query | Récupère les conteneurs candidats : sur DockStage, `CstAtt04 = "ASN"`, code `8000*` ou `PAL*`, sans tâche active |
| `LocationPutawayStrategyVList` | Vue | Ajout des stages dans la liste des stations d'origine (sélection type Stage ou stage précis) |
| `Galileo_PIEEventHandler_PR` | Workflow | Ignore l'erreur de lecture d'étiquette au PIE quand il s'agit d'une pile de palettes |
## Piles de palettes vides
Le job gère aussi le rangement des **piles de palettes vides** (conteneurs
dont le code commence par `PAL`). Elles suivent le même mécanisme
(query + stratégie de rangement + tâche AGV). Au PIE, l'erreur de lecture
d'étiquette est ignorée pour ces piles (`Galileo_PIEEventHandler_PR`).
## Job de régénération des tâches réception → PK
En complément (ajouté sous LIM-71, revue de code OK 01/07/2026), un job
distinct **régénère** les tâches manquantes pour les conteneurs de réception
**fournisseur** qui ont un PK assigné mais aucune tâche.
| Élément AD | Type | Rôle |
|------------|------|------|
| `CST_Reception_RegenerateTask_Job` | Workflow + Job (15 s) | Crée une tâche pour les conteneurs de réception (`CstAtt08`) avec un PK assigné (`CstAtt06`) posés sur une image de quai sans tâche. Vérifie que la station de picking est trouvée |
| `CST_ReceptionContainers_WithoutTasksToPK` | Query | Récupère ces conteneurs de réception sans tâche vers leur PK |
> Ce job de régénération relève du flux **réception fournisseur → PK**
> (cf. [Réception fournisseur](../01-inbound/reception-fournisseur.md),
> LIM-67 / LIM-74) et non de la réception production. Il confirme l'usage de
> `CstAtt06` = code du PK assigné côté réception fournisseur.
## Redirection si PIE saturé
Gérée en **standard** par le système de routes et distances configuré
@@ -124,37 +173,39 @@ destination ; c'est le WMS qui reroute si nécessaire.
| Paramètre | Description | Valeur par défaut |
|-----------|-------------|-------------------|
| DESTINATION_PRODUCTION | Code du buffer d'entrée production (destination des tâches AGV) | ENTREE_PRODUCTION |
| ~~DESTINATION_PRODUCTION~~ | ~~Code du buffer d'entrée production~~ - **obsolète** : la destination est désormais déterminée par les stratégies de rangement, plus par ce paramètre | ~~ENTREE_PRODUCTION~~ |
## Points d'attention
- Un support non ASN (fournisseur, intersite, retour) sur une image
de quai est **ignoré** il est géré par le
de quai est **ignoré** - il est géré par le
[Mega Job](../03-picking/job-assignation-pk.md) (LIM-70)
- Le marquage CstAtt06 a été simplifié en cours de développement
(certains cas de tests marqués "Plus utilisé") — la vérification
par absence de tâche active reste la sécurité principale
- La stratégie de rangement détermine l'entrée Est/Ouest ; le
paramètre DESTINATION_PRODUCTION n'est plus directement utilisé
comme destination de tâche
- Ce job **n'utilise pas** `CstAtt06` (marquage abandonné) : l'anti-doublon
repose uniquement sur l'absence de tâche active, ce qui permet la
régénération après annulation
- La stratégie de rangement détermine l'entrée Est/Ouest (Est par défaut) ;
le paramètre `DESTINATION_PRODUCTION` est **obsolète**
- Les piles de palettes vides (`PAL*`) sont traitées par le même job ;
l'erreur de lecture d'étiquette au PIE est ignorée pour ces piles
## Questions ouvertes
- [ ] Redirection multi-poumons / multi-PIE : config EasyS prête ?
- Redirection multi-poumons / multi-PIE : config EasyS prête ?
(@Nicolas)
- [ ] CstAtt06 encore nécessaire comme marqueur si la vérification
par tâche active suffit ? (@Fabien)
- ~~CstAtt06 encore nécessaire comme marqueur ?~~ → **Résolu (LIM-71)** :
marquage CstAtt06 abandonné, l'absence de tâche active suffit.
## Historique des modifications
| Date | Auteur | Modification |
|------|--------|--------------|
| 2026-05-12 | Arthur | Création initiale depuis LIM-71 |
| 2026-07-17 | Arthur | Relecture 18 commentaires : abandon marquage CstAtt06 (anti-doublon = tâche active), destination via stratégies de rangement (DESTINATION_PRODUCTION obsolète), gestion piles de palettes (PAL), reversal CstAtt12 (non requis production), éléments AD (CST_StoreProductionContainer_Job, CST_AvailableProductionContainers, LocationPutawayStrategyVList, Galileo_PIEEventHandler_PR), job régénération CST_Reception_RegenerateTask_Job, statut préprod + 3 revues de code |
## Références
| Source | Type | Date |
|--------|------|------|
| [LIM-71](https://easywmsfrance.atlassian.net/browse/LIM-71) | Ticket Jira | 2026 |
| [LIM-71](https://easywmsfrance.atlassian.net/browse/LIM-71) | Ticket Jira (18 commentaires) | 2026-03 → 2026-07 |
| [LIM-64](https://easywmsfrance.atlassian.net/browse/LIM-64) | Ticket Jira (déclaration image quai) | 2026 |
| [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) | Ticket Jira (passage PIE) | 2026 |
| [LIM-66](https://easywmsfrance.atlassian.net/browse/LIM-66) | Ticket Jira (passage PIE) | 2026 |