màj wiki avec retour MES lot-5 AD

This commit is contained in:
Arthur Ria
2026-05-20 09:41:27 +02:00
commit 23eb3f3c84
4106 changed files with 469381 additions and 0 deletions
@@ -0,0 +1,155 @@
---
title: "Séquençage des tâches de picking TK → PS"
tags: [picking, séquençage, transstockeur, événement, workflow, algorithme]
status: draft
standard_ref: concepts/picking.md
jira_refs: [LIM-84, LIM-61]
confluence_refs: []
sources: ["LIM-84 LOT2.2 [PICKING] Séquençage des tâches de picking TK PS.md", "Logique combinatoire picking - TK vers PS - V1.1.md", "REU PICKING SEQUENCAGE 11-05-2026 - Analyse comparative notes + AF + devops.md"]
last_updated: 2026-05-12
author: Arthur
---
# Séquençage des tâches de picking TK → PS
> **Résumé** : algorithme événementiel (V1.1) qui ordonne les tâches
> de picking depuis les transstockeurs (TK) vers les postes de sortie
> (PS). Il écrit les numéros de séquence `Line.CstAtt` sur chaque
> tâche et contrôle le flag `OS.CstAtt` pour autoriser le
> stacker_crane.
> **Standard EasyWMS** : → voir [Picking](../../concepts/picking.md)
## Déclenchement
L'algorithme est déclenché sur **deux événements** :
- **TaskCreatedEvent** — nouvelle tâche de picking créée (MINI JOB
LIM-75 ou réassignation). Condition : tâche type PICKING et OS
statut Released
- **OutboundOrderReleasedEvent** — OS passe en Released (lancement
ou relance après arrêt)
## Process principal
1. `OS.CstAtt ← false` (verrouille le stacker_crane)
2. Récupérer toutes les tâches de picking de l'OS
3. Filtrer : tâches **en attente** uniquement (en cours = intouchables)
4. Trier selon les 5 critères ci-dessous
5. Écrire les séquences `Line.CstAtt`
6. `OS.CstAtt ← true` (déverrouille le stacker_crane)
## Contraintes amont (constitution palettes filles)
**C1. Palettes les plus complètes possible** — seuil ~95%. Calcul en
pro rata Bag/pal : chaque sac = `1/Bag_pal` de son lot. Additif,
gère nativement les multi-lots.
**C2. Ne pas splitter les lignes de stock** — prioritaire sur les
règles de tri. Regrouper la ligne complète quitte à décaler le maïs.
| Contrainte | Valeur |
|------------|--------|
| Poids max palette | **1 250 kg** |
| Hauteur max | 1,90 m |
| Gerbage | Interdit |
| Mélange espèces | Autorisé |
| Traitement commercial | **Désactivé** (V1.1) |
## Les 5 critères de tri (V1.1)
```
tâches.trier_par(
(1) type_picking ASC // NÉGATIF (0) avant DIRECT (1)
(2) espèce_maïs ASC // MAÏS (0) avant autres (1)
(3) quantité_espèce DESC // espèce la + volumineuse
(4) poids_article DESC // article le + lourd en base
(5) palette_source // regroupement par palette
)
```
### Critère 1 — Picking négatif en premier
Prioritaire sur tout, y compris Maïs first. Condition cumulative
(V1.1) : % quantité > seuil fiche article (défaut 55%) **ET** poids
unitaire sac ≥ 7 kg.
### Critère 2 — Espèce Maïs en premier
Le maïs est lourd/stable → base de palette fille.
### Critère 3 — Espèce la plus volumineuse
Espèce avec la plus grande quantité totale de sacs dans l'OS.
### Critère 4 — Article le plus lourd en base
Les semences essais (légères) se retrouvent naturellement en haut.
### Critère 5 — Regroupement par palette source
L'opérateur enchaîne toutes les tâches d'une palette avant de la
libérer.
## Écriture des séquences (Line.CstAtt)
Deux tâches **interchangeables** reçoivent le **même numéro** de
séquence (ex-aequo), laissant au stacker_crane la liberté
d'optimiser. Interchangeables si : même palette source, OU tous les
critères de tri identiques.
## Détermination picking négatif (MINI JOB LIM-75)
```
SI quantité_à_prélever > seuil_article × quantité_palette_source
ET article unique dans la palette source
ET pas d'attribut logistique à capturer
ET poids_unitaire_sac ≥ 7 kg
ALORS → PICKING_NÉGATIF
SINON → PICKING_DIRECT
```
## Paramètres WMS
| Paramètre | Défaut | Note V1.1 |
|-----------|--------|-----------|
| `CONTROLE_TRAITEMENT_COMMERCIAL` | **false** | Désactivé |
| Seuil picking négatif (fiche article) | 55% | Inchangé |
| Poids min picking négatif | **7 kg** | Nouveau |
| Seuil remplissage palette | **~95%** | Nouveau |
| Poids max palette | **1 250 kg** | Corrigé |
| `MAX_NB_BUFFER_PK` | 3 | Inchangé |
## Points d'attention
⚠️ Le custom LIM-61 (capacité buffer) doit gérer les palettes
multi-PK.
⚠️ En cas d'erreur du process, l'OS reste bloqué (CstAtt = false).
⚠️ Condition poids ≥ 7 kg : évite l'instabilité palette (gros sacs
ramenés sur petits sacs).
## Liens
- [Placement PS → PK](placement-ps-pk.md) — algorithme aval
- [Picking combinatoire](picking-combinatoire.md) — vue d'ensemble
- [Historique et arbitrage](sequencage-tk-ps-historique.md) —
solutions envisagées + arbitrage contradictions réunion 11/05/2026
## Historique des modifications
| Date | Auteur | Modification |
|------|--------|--------------|
| 2026-05-12 | Arthur | Création initiale depuis LIM-84 |
| 2026-05-12 | Arthur | Refonte V1.1 : algo complet, 5 critères, contraintes amont, arbitrage réunion 11/05 |
| 2026-05-12 | Arthur | Découpage : historique solutions + arbitrage → page dédiée |
## Références
| Source | Type | Date |
|--------|------|------|
| [LIM-84](https://easywmsfrance.atlassian.net/browse/LIM-84) | Ticket Jira | 2026 |
| [LIM-61](https://easywmsfrance.atlassian.net/browse/LIM-61) | Ticket Jira | 2026 |
| Logique combinatoire picking - TK vers PS - V1.1 | Spec technique | 11/05/2026 |
| REU PICKING SEQUENCAGE 11-05-2026 | CR réunion | 11/05/2026 |