- Updated docs and inventory files - Added new architecture docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
142 lines
6.2 KiB
Markdown
142 lines
6.2 KiB
Markdown
# US-MAI005-009: Reasignar viaje con motivo
|
|
|
|
**ID:** US-MAI005-009
|
|
**Modulo:** MAI-005 (Despacho)
|
|
**Prioridad:** Alta
|
|
**Story Points:** 5
|
|
|
|
---
|
|
|
|
## Historia de Usuario
|
|
|
|
**Como** despachador del centro de control
|
|
**Quiero** poder cambiar la unidad asignada a un viaje registrando el motivo del cambio
|
|
**Para** responder a imprevistos operativos y mantener trazabilidad de las decisiones
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
### CA-001: Iniciar reasignacion
|
|
**Dado** que tengo un viaje con unidad asignada
|
|
**Cuando** selecciono la opcion de reasignar
|
|
**Entonces** se abre el flujo de reasignacion mostrando la asignacion actual
|
|
|
|
### CA-002: Seleccionar motivo obligatorio
|
|
**Dado** que inicio la reasignacion
|
|
**Cuando** selecciono una nueva unidad
|
|
**Entonces** debo elegir un motivo de la lista predefinida
|
|
|
|
### CA-003: Motivos predefinidos
|
|
**Dado** que debo seleccionar motivo
|
|
**Cuando** veo la lista de opciones
|
|
**Entonces** encuentro: Falla mecanica, Operador no disponible, Solicitud cliente, Optimizacion, Skills no coinciden, Problema capacidad, Otro
|
|
|
|
### CA-004: Detalle adicional opcional
|
|
**Dado** que seleccione un motivo
|
|
**Cuando** selecciono "Otro" o quiero dar mas contexto
|
|
**Entonces** puedo escribir un detalle adicional en texto libre
|
|
|
|
### CA-005: Ver sugerencias para reasignacion
|
|
**Dado** que inicio la reasignacion
|
|
**Cuando** busco nueva unidad
|
|
**Entonces** veo sugerencias ordenadas por score excluyendo la unidad actual
|
|
|
|
### CA-006: Confirmar reasignacion
|
|
**Dado** que seleccione nueva unidad y motivo
|
|
**Cuando** confirmo la reasignacion
|
|
**Entonces** el viaje se asigna a la nueva unidad y la anterior queda disponible
|
|
|
|
### CA-007: Notificar afectados
|
|
**Dado** que se confirma la reasignacion
|
|
**Cuando** el proceso termina
|
|
**Entonces** se notifica al operador anterior (liberado) y al nuevo (asignado)
|
|
|
|
### CA-008: Registrar en log de auditoria
|
|
**Dado** que se completa la reasignacion
|
|
**Cuando** consulto el historial del viaje
|
|
**Entonces** veo el registro con: unidad anterior, nueva unidad, motivo, detalle, usuario, timestamp
|
|
|
|
---
|
|
|
|
## Mockup / UI
|
|
|
|
```
|
|
+-----------------------------------------------------------------------+
|
|
| REASIGNAR VIAJE [X] |
|
|
+-----------------------------------------------------------------------+
|
|
| |
|
|
| Viaje: VJE-0456 | Cliente: Transportes MX |
|
|
| Origen: CDMX | Destino: Queretaro | Fecha: 27-Ene-2026 |
|
|
| |
|
|
| ASIGNACION ACTUAL |
|
|
| +----------------------------------------------------------------+ |
|
|
| | Unidad: U-005 Kenworth T680 | |
|
|
| | Operador: Juan Perez Garcia | |
|
|
| | Asignado: 27-Ene-2026 08:30 por admin@transportes.com | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| MOTIVO DE REASIGNACION * |
|
|
| +----------------------------------------------------------------+ |
|
|
| | ( ) Falla mecanica | |
|
|
| | (x) Operador no disponible | |
|
|
| | ( ) Solicitud del cliente | |
|
|
| | ( ) Optimizacion de rutas | |
|
|
| | ( ) Skills no coinciden | |
|
|
| | ( ) Problema de capacidad | |
|
|
| | ( ) Otro | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| Detalle adicional (opcional): |
|
|
| +----------------------------------------------------------------+ |
|
|
| | Operador reporto enfermedad esta manana | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| NUEVA UNIDAD |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #1 U-012 Freightliner Cascadia [72] ### [SELECT] | |
|
|
| | Carlos Lopez | 15.3 km | DISPONIBLE | |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #2 U-008 International LT [65] ## [ ] | |
|
|
| | Roberto Sanchez | 22.1 km | DISPONIBLE | |
|
|
| +----------------------------------------------------------------+ |
|
|
| | #3 U-015 Volvo VNL [58] ## [ ] | |
|
|
| | Maria Garcia | 28.5 km | DISPONIBLE | |
|
|
| +----------------------------------------------------------------+ |
|
|
| |
|
|
| [Cancelar] [CONFIRMAR CAMBIO] |
|
|
| |
|
|
+-----------------------------------------------------------------------+
|
|
```
|
|
|
|
---
|
|
|
|
## Notas Tecnicas
|
|
|
|
- Endpoint: `POST /api/dispatch/reassign`
|
|
- Motivos definidos como ENUM en backend: `ReassignReason`
|
|
- Requiere permiso `dispatch:write`
|
|
- Notificaciones via modulo de notificaciones existente
|
|
- Log se guarda en `dispatch_logs` con action='REASSIGNED'
|
|
- Al confirmar: actualizar `trips.unit_id`, cambiar estado unidad anterior a AVAILABLE
|
|
- Transaccion atomica para evitar estados inconsistentes
|
|
|
|
---
|
|
|
|
## Definicion de Done
|
|
|
|
- [ ] Endpoint /dispatch/reassign implementado
|
|
- [ ] UI de reasignacion con formulario
|
|
- [ ] Lista de motivos predefinidos
|
|
- [ ] Campo de detalle opcional
|
|
- [ ] Sugerencias de nuevas unidades (excluyendo actual)
|
|
- [ ] Notificaciones a operadores afectados
|
|
- [ ] Registro en log de auditoria
|
|
- [ ] Liberacion automatica de unidad anterior
|
|
- [ ] Tests unitarios de validaciones
|
|
- [ ] Tests E2E del flujo completo
|
|
|
|
---
|
|
|
|
*US-MAI005-009 - Modulo MAI-005 - ERP Transportistas*
|