MAI-002 (Tarifas y SLA): - README, REQUERIMIENTOS, RESUMEN-EPICA - 5 User Stories (31 SP total) - Covers: tarifario por lane, recargos, SLA, cotizaciones, aprobaciones MAI-004 (Planeacion TMS): - README, REQUERIMIENTOS, RESUMEN-EPICA - 5 User Stories (39 SP total) - Covers: tablero planeacion, consolidacion, asignacion, validaciones, ETA MAI-005 (Despacho): - README, REQUERIMIENTOS, RESUMEN-EPICA - 5 User Stories (28 SP total) - Covers: checklist NOM-068, sellos, evidencias, kit documental, gate out Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
111 lines
4.9 KiB
Markdown
111 lines
4.9 KiB
Markdown
# US-MAI004-002: Consolidar OTs en embarque
|
|
|
|
**ID:** US-MAI004-002
|
|
**Módulo:** MAI-004 (Planeación TMS)
|
|
**Prioridad:** Alta
|
|
**Story Points:** 8
|
|
|
|
---
|
|
|
|
## Historia de Usuario
|
|
|
|
**Como** planner de tráfico
|
|
**Quiero** que el sistema sugiera qué OTs puedo consolidar en un mismo viaje
|
|
**Para** maximizar la utilización de capacidad de las unidades
|
|
|
|
---
|
|
|
|
## Criterios de Aceptación
|
|
|
|
### CA-001: Selección múltiple
|
|
**Dado** que hay OTs con características similares
|
|
**Cuando** selecciono 2 o más OTs en el tablero
|
|
**Entonces** se habilita el botón "Sugerir Consolidación"
|
|
|
|
### CA-002: Análisis de compatibilidad
|
|
**Dado** que solicito sugerencia de consolidación
|
|
**Cuando** el sistema analiza las OTs
|
|
**Entonces** verifica: zona origen similar, destinos cercanos, ventanas compatibles, mismo tipo equipo
|
|
|
|
### CA-003: Resultado positivo
|
|
**Dado** que las OTs son consolidables
|
|
**Cuando** veo el resultado
|
|
**Entonces** muestra: capacidad combinada, ahorro estimado, y botón "Crear Embarque"
|
|
|
|
### CA-004: Resultado negativo
|
|
**Dado** que las OTs no son consolidables
|
|
**Cuando** veo el resultado
|
|
**Entonces** muestra el motivo: "Ventanas incompatibles", "Destinos muy lejanos", etc.
|
|
|
|
### CA-005: Creación de embarque
|
|
**Dado** que acepto la sugerencia
|
|
**Cuando** confirmo crear embarque
|
|
**Entonces** se crea EMB con las OTs agrupadas y aparece en el tablero
|
|
|
|
---
|
|
|
|
## Mockup / UI
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ ANÁLISIS DE CONSOLIDACIÓN [X]│
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ OTs Seleccionadas: │
|
|
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
│ │ OT-1234 │ CDMX → GDL │ 8 ton │ Ventana 8:00-12:00 │ │
|
|
│ │ OT-1237 │ CDMX → GDL Sur │ 4 ton │ Ventana 9:00-14:00 │ │
|
|
│ └───────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ───────────────────────────────────────────────────────────── │
|
|
│ │
|
|
│ ✅ CONSOLIDACIÓN RECOMENDADA │
|
|
│ │
|
|
│ Criterios cumplidos: │
|
|
│ ✓ Mismo origen: CDMX │
|
|
│ ✓ Destinos cercanos: 15 km entre GDL y GDL Sur │
|
|
│ ✓ Ventanas compatibles: Overlap 9:00-12:00 │
|
|
│ ✓ Mismo tipo equipo: Caja seca │
|
|
│ │
|
|
│ Capacidad combinada: 12 toneladas │
|
|
│ Unidad sugerida: Caja seca 18 ton (67% utilización) │
|
|
│ │
|
|
│ 💰 Ahorro estimado: $2,500 vs 2 viajes separados │
|
|
│ │
|
|
│ [Cancelar] [Crear Embarque EMB-0089] │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Reglas de Consolidación
|
|
|
|
| Criterio | Condición | Peso |
|
|
|----------|-----------|------|
|
|
| Mismo origen | Distancia < 20km | Obligatorio |
|
|
| Destinos cercanos | Distancia < 50km | Obligatorio |
|
|
| Ventanas compatibles | Overlap > 2 horas | Obligatorio |
|
|
| Mismo tipo equipo | Match exacto | Obligatorio |
|
|
| Mismo cliente | Preferido | Opcional |
|
|
| Capacidad disponible | Sum < 100% unidad | Obligatorio |
|
|
|
|
---
|
|
|
|
## Notas Técnicas
|
|
|
|
- Algoritmo de clustering por zona geográfica
|
|
- Cálculo de distancias vía API de mapas (cache)
|
|
- El ahorro se calcula: 2*tarifa_individual - tarifa_consolidada
|
|
|
|
---
|
|
|
|
## Definición de Done
|
|
|
|
- [ ] Selección múltiple de OTs
|
|
- [ ] Algoritmo de análisis implementado
|
|
- [ ] UI de resultado con detalles
|
|
- [ ] Creación de embarque funcional
|
|
- [ ] Cálculo de ahorro estimado
|
|
- [ ] Tests unitarios del algoritmo
|