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:
@@ -1,16 +1,16 @@
|
||||
---
|
||||
title: "Séquençage shipping par STOP — Quai assigné"
|
||||
title: "Séquençage shipping par STOP - Quai assigné"
|
||||
tags: [outbound, expédition, shipping, tournée, STOP, stacker-crane, custom, AGV]
|
||||
status: draft
|
||||
status: review
|
||||
standard_ref: concepts/shipping.md
|
||||
jira_refs: [LIM-88]
|
||||
jira_refs: [LIM-88, LIM-94]
|
||||
confluence_refs: ["Expédition - LIMAGRAIN - DEV"]
|
||||
sources: ["LIM-88 LOT2.1 [TOURNÉES] Séquençage des tâches de shipping par STOP - quai assigné.md"]
|
||||
last_updated: 2026-05-12
|
||||
sources: ["LIM-88 LOT2.1 [TOURNÉES] Séquençage des tâches de shipping par STOP - quai assigné.md", "Jira LIM-88 (lecture directe, revue de code)"]
|
||||
last_updated: 2026-07-17
|
||||
author: Arthur
|
||||
---
|
||||
|
||||
# Séquençage shipping par STOP — Quai assigné
|
||||
# Séquençage shipping par STOP - Quai assigné
|
||||
|
||||
> **Résumé** : quand un quai est déjà assigné à une tournée (RUT),
|
||||
> les palettes doivent sortir de l'ASRS vers l'image de quai dans
|
||||
@@ -30,9 +30,12 @@ Ce custom est le **cas complémentaire** de la
|
||||
(LIM-87) qui traite le cas « quai non assigné ».
|
||||
|
||||
Ici, le quai est **déjà assigné au RUT** quand la tournée est libérée
|
||||
(ou assigné avant la fin du picking, ou après). Dans ce cas, LIM-87
|
||||
(défrag custom) ne s'applique pas : c'est le **flux shipping standard**
|
||||
qui prend le relais pour envoyer les palettes vers l'image de quai.
|
||||
(ou assigné avant la fin du picking, ou après). L'assignation de l'image
|
||||
de quai peut être manuelle ou **automatique** via le job LIM-94 (voir
|
||||
[Assignation automatique de l'image de quai](assignation-image-quai.md)).
|
||||
Dans ce cas, LIM-87 (défrag custom) ne s'applique pas : c'est le **flux
|
||||
shipping standard** qui prend le relais pour envoyer les palettes vers
|
||||
l'image de quai.
|
||||
Il faut néanmoins respecter la règle métier d'ordonnancement par n° de
|
||||
STOP (ordre inverse : STOP max → STOP 1) pour que les palettes soient
|
||||
posées sur l'image de quai dans le bon ordre de chargement camion.
|
||||
@@ -50,7 +53,7 @@ pas :
|
||||
> Custom imaginé au départ : bloquer la génération des tâches de
|
||||
> shipping tant que tout le picking n'est pas terminé.
|
||||
|
||||
Trop restrictif — on ne profiterait pas du temps pendant lequel les
|
||||
Trop restrictif - on ne profiterait pas du temps pendant lequel les
|
||||
palettes complètes pourraient déjà être pré-positionnées sur l'image
|
||||
de quai dans l'ordre. Par ailleurs, bloquer la génération de tâche est
|
||||
complexe car de nombreux process la déclenchent (pas uniquement des
|
||||
@@ -65,7 +68,7 @@ jobs).
|
||||
Dès que le quai est assigné, toutes les palettes prêtes (complètes
|
||||
dans l'ASRS + palettes filles revenues de picking) ont leur tâche de
|
||||
shipping générée par le standard. Une palette non encore pickée n'a
|
||||
pas de tâche — sa tâche sera créée au moment où elle rentrera dans un
|
||||
pas de tâche - sa tâche sera créée au moment où elle rentrera dans un
|
||||
TK après picking.
|
||||
|
||||
#### 2. Ordonnancement d'exécution (custom stacker crane)
|
||||
@@ -99,7 +102,7 @@ palette rentre bien dans l'ASRS.
|
||||
|
||||
- **Le tri du stacker crane doit considérer les palettes sur tous les
|
||||
TK** (pas uniquement celles dans un TK unique comme en standard).
|
||||
Pattern déjà réalisé sur le **projet Bardinet** — à reprendre.
|
||||
Pattern déjà réalisé sur le **projet Bardinet** - à reprendre.
|
||||
|
||||
### Ce qui reste standard
|
||||
|
||||
@@ -109,6 +112,40 @@ palette rentre bien dans l'ASRS.
|
||||
si pas de stock trouvé → palettes suivantes du STOP envoyées ;
|
||||
si nouveau stock trouvé → récupère le séquençage
|
||||
|
||||
## Implémentation définitive (revue de code validée 2026-06-02)
|
||||
|
||||
> **Statut** : En cours de test client (pré-production). Revue de code
|
||||
> et tests validés. Deux revues successives : le tri multi-TK (Maxime
|
||||
> Halgand) puis un garde-fou complémentaire sur la génération des
|
||||
> tâches de chargement (Vincent Charvet).
|
||||
|
||||
Le custom se limite à une **query clonée** et deux **workflows**
|
||||
overridés. Aucune génération de tâche custom : le standard crée les
|
||||
tâches shipping au fil de l'eau, le custom n'intervient qu'au **tri**
|
||||
et pose un garde-fou sur la génération des tâches de chargement AGV.
|
||||
|
||||
### Query
|
||||
|
||||
| Élément | Rôle |
|
||||
|---|---|
|
||||
| `CST_Tasks_PendingOutboundForStackerCrane` | Cœur du custom. Clone de `Tasks_PendingOutboundForStackerCrane`. Filtre pour récupérer toutes les tâches shipping, conteneurs picking, conteneurs shipping et conteneurs client d'un **numéro de STOP supérieur**, et vérifier s'ils sont **tous en station image de quai (DockStage)** ou non |
|
||||
|
||||
### Workflows
|
||||
|
||||
| Workflow | Modification |
|
||||
|---|---|
|
||||
| `StackerCrane_GetOutboundPendingTasks_PR` | Utilise la query custom au lieu de la standard. Ajoute un log pour conserver les informations de recherche |
|
||||
| `Outbound_CreateShippingOrLoadTasksToDockOrStage_PR` | Empêche la création d'une tâche de chargement s'il n'y a **pas de stage (image de quai) associé à l'OS**. Sans ce garde-fou, les palettes bloquent aux PS car les AGV n'ont pas de destination pour effectuer le mouvement (commit `0aec1c3b`). Le stage est posé par [LIM-94](assignation-image-quai.md) |
|
||||
|
||||
### Règle de filtrage
|
||||
|
||||
Le filtre ne bloque que les **sorties d'expédition** : une palette d'un
|
||||
STOP donné ne sort vers l'image de quai que si tous les STOP supérieurs
|
||||
sont déjà arrivés en station DockStage. En revanche, les **sorties de
|
||||
palettes picking restent toujours autorisées** pour permettre le
|
||||
prélèvement anticipé : le picking n'est jamais bloqué par le
|
||||
séquençage.
|
||||
|
||||
## Flux fonctionnel
|
||||
|
||||
```mermaid
|
||||
@@ -149,7 +186,7 @@ sequenceDiagram
|
||||
|----|--------------|------------------|
|
||||
| CT-01 | RUT mono-STOP, 3 PC dans ASRS, quai assigné | 3 tâches shipping, palettes partent vers image de quai |
|
||||
| CT-02 | RUT multi-STOP (1, 2, 3), 2 PC chacun, quai assigné | 6 tâches. Stacker crane exécute STOP 3, puis 2, puis 1 |
|
||||
| CT-03 | RUT multi-STOP, picking terminé avant libération, toutes PF revenues | Identique à CT-02 — PF ou PC, même logique |
|
||||
| CT-03 | RUT multi-STOP, picking terminé avant libération, toutes PF revenues | Identique à CT-02 - PF ou PC, même logique |
|
||||
|
||||
### Cas limites (cœur du custom)
|
||||
|
||||
@@ -173,7 +210,7 @@ sequenceDiagram
|
||||
| CT-09 | 2 RUT en parallèle, quais distincts | Ordonnancement indépendant par RUT. Pas de fuite de tri |
|
||||
| CT-11 | RUT A avec quai, RUT B sans quai | RUT A traité par ce custom. RUT B relève de LIM-87 (défrag). Vérifier absence d'interférence |
|
||||
| CT-12 | SOR ajouté à un RUT en cours d'exécution | Nouvelles palettes s'insèrent dans l'ordre STOP. Si picking nécessaire → PF reviendront à l'ASRS |
|
||||
| CT-13 | Bascule de quai en cours de tournée | **À définir en recette.** Tâches restantes regénérées vers nouveau quai. Palettes déjà à l'ancien quai → traitement manuel |
|
||||
| CT-13 | Bascule de quai en cours de tournée | **Scénario exclu** : on ne peut pas changer le quai une fois la RUT libérée (contrainte WMS, note dev revue de code). Une rebascule relève d'une opération manuelle exceptionnelle, hors périmètre custom |
|
||||
|
||||
### Stock reassign au picking
|
||||
|
||||
@@ -184,25 +221,31 @@ sequenceDiagram
|
||||
|
||||
## Points d'attention
|
||||
|
||||
⚠️ Le custom de tri multi-TK reprend un **pattern Bardinet** — ne pas
|
||||
⚠️ Le custom de tri multi-TK reprend un **pattern Bardinet** - ne pas
|
||||
réinventer le mécanisme.
|
||||
|
||||
⚠️ Le retour systématique des PF vers l'ASRS (pas de crossdock) est
|
||||
le comportement standard attendu mais **doit être validé en recette**.
|
||||
|
||||
⚠️ La bascule de quai en cours de tournée (CT-13) n'est pas couverte
|
||||
par le custom — les palettes déjà à l'image de quai de l'ancien quai
|
||||
sont à traiter manuellement.
|
||||
⚠️ La bascule de quai en cours de tournée (CT-13) est **impossible** :
|
||||
le quai ne peut pas être changé une fois la RUT libérée. Une rebascule
|
||||
serait une opération manuelle exceptionnelle, hors périmètre custom.
|
||||
|
||||
⚠️ Les tâches de chargement ne doivent jamais être générées sans image
|
||||
de quai associée à l'OS, sinon les palettes bloquent aux PS (les AGV
|
||||
n'ont pas de destination). Garde-fou porté par
|
||||
`Outbound_CreateShippingOrLoadTasksToDockOrStage_PR`.
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
- [ ] Retour PF vers ASRS (CT-08) : confirmer que le standard crée
|
||||
- ❓ Retour PF vers ASRS (CT-08) : confirmer que le standard crée
|
||||
bien une tâche de rangement quand pas de route vers l'image de quai.
|
||||
Sinon custom de secours nécessaire. (@Nicolas)
|
||||
→ voir [Questions ouvertes](../08-transverse/questions-ouvertes.md)
|
||||
- [ ] Bascule de quai en cours de tournée (CT-13) : définir le
|
||||
comportement attendu pour les palettes déjà à l'ancien quai.
|
||||
(@Justine)
|
||||
- [x] ~~Bascule de quai en cours de tournée (CT-13) : définir le
|
||||
comportement attendu pour les palettes déjà à l'ancien quai.~~
|
||||
→ **Résolu** (note dev, revue de code) : on ne peut pas changer le
|
||||
quai une fois la RUT libérée. Scénario exclu du custom.
|
||||
→ voir [Questions ouvertes](../08-transverse/questions-ouvertes.md)
|
||||
|
||||
## Historique des modifications
|
||||
@@ -210,11 +253,14 @@ sont à traiter manuellement.
|
||||
| Date | Auteur | Modification |
|
||||
|------|--------|--------------|
|
||||
| 2026-05-12 | Arthur | Création initiale depuis LIM-88 |
|
||||
| 2026-07-17 | Arthur | Ajout implémentation définitive (revue de code 02/06 : query `CST_Tasks_PendingOutboundForStackerCrane`, WF `StackerCrane_GetOutboundPendingTasks_PR` + `Outbound_CreateShippingOrLoadTasksToDockOrStage_PR`, règle picking toujours autorisé) ; statut préprod ; résolution CT-13 (quai non modifiable après libération RUT) |
|
||||
| 2026-07-17 | Arthur | Cross-ref LIM-94 (assignation auto de l'image de quai / stage `X_EXP` dont dépend le garde-fou de chargement) ; jira_refs +LIM-94 |
|
||||
|
||||
## Références
|
||||
|
||||
| Source | Type | Date |
|
||||
|--------|------|------|
|
||||
| [LIM-88](https://easywmsfrance.atlassian.net/browse/LIM-88) | Ticket Jira | 2026 |
|
||||
| [LIM-88](https://easywmsfrance.atlassian.net/browse/LIM-88) | Ticket Jira (statut préprod / test client) | 2026 |
|
||||
| Revue de code LIM-88 (M. Halgand, V. Charvet, N. Chabanis) | Revue de code validée, commit `0aec1c3b` | 2026-06-02 |
|
||||
| Expédition - LIMAGRAIN - DEV | Page Confluence | 2026 |
|
||||
| Projet Bardinet | Pattern custom stacker crane multi-TK | — |
|
||||
| Projet Bardinet | Pattern custom stacker crane multi-TK | - |
|
||||
|
||||
Reference in New Issue
Block a user