- Updated docs and inventory files - Added new architecture docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
134 lines
5.7 KiB
Markdown
134 lines
5.7 KiB
Markdown
# US-MAI005-006: Sugerir mejor unidad para asignacion
|
|
|
|
**ID:** US-MAI005-006
|
|
**Modulo:** MAI-005 (Despacho)
|
|
**Prioridad:** Alta
|
|
**Story Points:** 8
|
|
|
|
---
|
|
|
|
## Historia de Usuario
|
|
|
|
**Como** despachador del centro de control
|
|
**Quiero** ver sugerencias de asignacion con scoring detallado para cada viaje pendiente
|
|
**Para** tomar decisiones informadas y asignar la mejor unidad disponible de forma eficiente
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
### CA-001: Visualizar sugerencias ordenadas
|
|
**Dado** que tengo un viaje pendiente de asignar
|
|
**Cuando** solicito sugerencias de asignacion
|
|
**Entonces** veo una lista de unidades ordenadas por score total de mayor a menor
|
|
|
|
### CA-002: Mostrar desglose de score
|
|
**Dado** que veo la lista de sugerencias
|
|
**Cuando** reviso cada unidad sugerida
|
|
**Entonces** puedo ver el desglose del score por criterio (distancia, capacidad, disponibilidad, skills)
|
|
|
|
### CA-003: Indicador visual de score
|
|
**Dado** que veo una unidad sugerida
|
|
**Cuando** observo el score total
|
|
**Entonces** veo un indicador visual (verde >80, amarillo 60-80, rojo <60)
|
|
|
|
### CA-004: Informacion de distancia
|
|
**Dado** que veo una unidad sugerida
|
|
**Cuando** reviso los datos de distancia
|
|
**Entonces** veo la distancia en km y el tiempo estimado de llegada al origen
|
|
|
|
### CA-005: Mostrar ubicacion en mapa
|
|
**Dado** que veo las sugerencias
|
|
**Cuando** selecciono ver en mapa
|
|
**Entonces** veo el origen del viaje y las unidades sugeridas con su ubicacion actual
|
|
|
|
### CA-006: Filtrar sugerencias
|
|
**Dado** que solicito sugerencias
|
|
**Cuando** aplico filtros (tipo de unidad, skills, distancia maxima)
|
|
**Entonces** las sugerencias respetan los filtros aplicados
|
|
|
|
### CA-007: Asignar desde sugerencia
|
|
**Dado** que revise las sugerencias
|
|
**Cuando** selecciono una unidad y confirmo
|
|
**Entonces** el viaje queda asignado y se registra el score en el log
|
|
|
|
---
|
|
|
|
## Mockup / UI
|
|
|
|
```
|
|
+-----------------------------------------------------------------------+
|
|
| SUGERENCIAS DE ASIGNACION [X] |
|
|
+-----------------------------------------------------------------------+
|
|
| |
|
|
| Viaje: VJE-0456 | Cliente: Transportes MX |
|
|
| Origen: Av. Insurgentes 1234, CDMX | Destino: Queretaro Centro |
|
|
| Capacidad requerida: 20 TON | Skills: HAZMAT |
|
|
| |
|
|
| Filtros: [Tipo: Todos v] [Distancia max: 50km] [Solo con HAZMAT] |
|
|
| |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #1 U-005 - Kenworth T680 [87] #### | |
|
|
| | Juan Perez Garcia | 7.2 km | ETA: 15 min | |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | | Distancia: 95/100 | Cap: 100/100 | Disp: 100/100 |Skill:90| |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | Skills: HAZMAT, Refrigerado | |
|
|
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #2 U-012 - Freightliner Cascadia [72] ### | |
|
|
| | Carlos Lopez | 15.3 km | ETA: 25 min | |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | | Distancia: 70/100 | Cap: 100/100 | Disp: 50/100 |Skill:100| |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | Skills: HAZMAT, Carga Pesada | |
|
|
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #3 U-008 - International LT [65] ## | |
|
|
| | Roberto Sanchez | 22.1 km | ETA: 35 min | |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | | Distancia: 55/100 | Cap: 100/100 | Disp: 100/100|Skill:70| |
|
|
| | +-------------------------------------------------------+ | |
|
|
| | Skills: HAZMAT (falta: ninguno) | |
|
|
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| Mostrando 3 de 3 unidades disponibles | Algoritmo: weighted_score_v1|
|
|
| |
|
|
+-----------------------------------------------------------------------+
|
|
```
|
|
|
|
---
|
|
|
|
## Notas Tecnicas
|
|
|
|
- Endpoint: `POST /api/dispatch/suggest`
|
|
- Calculo de distancia con formula Haversine
|
|
- Criterios de scoring configurables en `dispatch_rules`
|
|
- Cache de ubicaciones GPS con TTL de 30 segundos
|
|
- Maximo de 5 sugerencias por defecto (configurable)
|
|
- Score se persiste en `dispatch_logs` al asignar
|
|
- Mapa utiliza componente MapView con marcadores dinamicos
|
|
|
|
---
|
|
|
|
## Definicion de Done
|
|
|
|
- [ ] Endpoint /dispatch/suggest implementado
|
|
- [ ] Algoritmo de scoring con 4 criterios
|
|
- [ ] UI de lista de sugerencias con desglose
|
|
- [ ] Indicadores visuales de score (colores)
|
|
- [ ] Vista de mapa con unidades sugeridas
|
|
- [ ] Filtros de busqueda funcionales
|
|
- [ ] Integracion con endpoint /dispatch/assign
|
|
- [ ] Tests unitarios del algoritmo de scoring
|
|
- [ ] Tests E2E del flujo completo
|
|
|
|
---
|
|
|
|
*US-MAI005-006 - Modulo MAI-005 - ERP Transportistas*
|