156 lines
5.4 KiB
Markdown
156 lines
5.4 KiB
Markdown
---
|
||
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 |
|