Contraintes et regles
Regles de validation et contraintes appliquees lors de la creation et la modification des tournees.
Contraintes et regles
Lors de la creation et la modification des tournees, le systeme applique un ensemble de regles de validation pour garantir la coherence des donnees.
Contraintes sur les taches
Eligibilite
Pour etre ajoutee a une tournee, une tache doit respecter toutes ces conditions :
| Contrainte | Detail |
|---|---|
| Pas en statut terminal | Les taches delivered, failed ou cancelled ne sont pas eligibles |
| Pas dans une tournee active | Une tache ne peut appartenir qu'a une seule tournee non terminale a la fois |
| Collecte completee | Les taches de type pickup doivent etre au statut picked_up pour etre ajoutees |
Contraintes par mode de routage
| Mode | Contrainte |
|---|---|
| Direct | Tous les types de taches sont autorises (collecte, livraison, transfert, retour) |
| Via hub | Les taches de type delivery ne sont pas autorisees. Seules les collectes, transferts et retours peuvent etre inclus. |
Contraintes de capacite
| Contrainte | Source | Description |
|---|---|---|
| Taches par jour | maxTasksPerDay sur le chauffeur | Le systeme de scoring penalise les chauffeurs proches de leur limite |
| Poids | maxCapacityKg sur le vehicule | Capacite maximale en kilogrammes du vehicule |
| Nombre de colis | maxPackages sur le vehicule | Nombre maximal de colis transportables |
| Taches par tournee | Systeme | Minimum 2, maximum 200 taches par tournee |
Contraintes temporelles
| Contrainte | Description |
|---|---|
| Creneaux horaires | Chaque tache peut avoir une fenetre horaire (deliverAfter / deliverBefore). L'optimiseur en tient compte pour le placement dans l'ordre de la tournee. |
| Horaires de shift | Les chauffeurs ont des horaires de travail (shiftStartsAt / shiftEndsAt). |
| Date planifiee | La tournee peut avoir une date planifiee (scheduledDate). |
Contraintes geographiques
| Contrainte | Description |
|---|---|
| Zones de livraison | Les chauffeurs sont assignes a des zones. Le scoring accorde un bonus aux chauffeurs dont les zones correspondent a la tache. |
| Position de depart | La position du domicile du chauffeur (homeLatitude / homeLongitude) est utilisee pour le calcul de distance initiale. |
| Distance entre arrets | Un avertissement visuel s'affiche dans le formulaire de creation si deux arrets consecutifs sont tres eloignes. |
Priorites des taches
Chaque tache porte une priorite qui influence son placement :
| Priorite | Code | Comportement |
|---|---|---|
| Urgente | urgent | Traitee en premier |
| Haute | high | Prioritaire |
| Normale | normal | Traitement standard |
| Basse | low | Traitee en dernier |
Cascade chauffeur
Lorsqu'un chauffeur est assigne ou modifie sur une tournee, le changement est propage en cascade a toutes les taches de la tournee. De meme, lorsqu'un chauffeur est ajoute a une tournee via l'ajout de taches, les nouvelles taches heritent du chauffeur de la tournee.
Verrouillage pessimiste
Toutes les operations de creation et modification de tournees utilisent un verrouillage pessimiste (PESSIMISTIC_WRITE) sur les taches concernees. Cela empeche les conditions de concurrence lorsque plusieurs dispatchers travaillent simultanement.
Voir aussi : Tournees de livraison | Zones de livraison | Optimisation