erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-002-ordenes-servicio/historias-usuario/US-MMD002-007-tablero-kanban.md

167 lines
6.0 KiB
Markdown

# US-MMD002-007: Ver Tablero Kanban de Ordenes
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | US-MMD002-007 |
| **Epica** | EPIC-MMD-002 - Ordenes de Servicio |
| **Modulo** | ordenes-servicio |
| **Prioridad** | P0 |
| **Story Points** | 8 |
| **Sprint** | Sprint 5 |
| **Estado** | Backlog |
---
## Historia de Usuario
**Como** jefe de taller,
**quiero** ver un tablero Kanban con todas las ordenes activas,
**para** tener visibilidad del estado de cada servicio y detectar cuellos de botella.
## Descripcion Detallada
El tablero Kanban muestra las ordenes agrupadas por estado en columnas. Permite visualizar rapidamente cuantas ordenes hay en cada etapa y su tiempo de permanencia. Opcionalmente permite arrastrar ordenes entre columnas.
---
## Criterios de Aceptacion
**Escenario 1: Ver tablero con columnas de estado**
```gherkin
DADO que accedo al tablero Kanban
CUANDO se carga la vista
ENTONCES veo columnas para cada estado:
| RECIBIDO | EN_DIAGNOSTICO | COTIZADO | APROBADO | EN_REPARACION | LISTO |
Y cada columna muestra el conteo de ordenes
```
**Escenario 2: Ver tarjeta de orden**
```gherkin
DADO que veo una orden en el tablero
CUANDO observo su tarjeta
ENTONCES veo:
| Folio | OS-2025-0042 |
| Vehiculo | Kenworth T680 - ABC-123 |
| Cliente | Transportes del Norte |
| Mecanico | Juan Perez |
| Tiempo en estado | 2h 30m |
```
**Escenario 3: Indicador de tiempo excedido**
```gherkin
DADO que una orden lleva mas de 24h en un estado
CUANDO veo el tablero
ENTONCES la tarjeta tiene indicador rojo
Y muestra alerta "Atencion requerida"
```
**Escenario 4: Filtrar por mecanico**
```gherkin
DADO que quiero ver ordenes de un mecanico especifico
CUANDO filtro por "Juan Perez"
ENTONCES solo veo ordenes asignadas a Juan
```
**Escenario 5: Arrastrar orden entre columnas**
```gherkin
DADO que una orden esta en EN_REPARACION
CUANDO la arrastro a LISTO
ENTONCES el sistema valida que puede cambiar a ese estado
Y actualiza el estado de la orden
Y registra el cambio en historial
```
**Escenario 6: Abrir detalle de orden**
```gherkin
DADO que hago clic en una tarjeta
CUANDO se abre el detalle
ENTONCES veo informacion completa de la orden
Y puedo editar o agregar trabajos
```
---
## Layout del Tablero
```
┌─────────────────────────────────────────────────────────────────────────┐
│ TABLERO DE ORDENES Filtros: [Mecanico ▼] [Hoy]│
├───────────┬───────────┬───────────┬───────────┬───────────┬───────────┤
│ RECIBIDO │ DIAGNOST │ COTIZADO │ APROBADO │ REPARANDO │ LISTO │
│ (3) │ (2) │ (1) │ (2) │ (4) │ (1) │
├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
│ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │
│ │OS-042 │ │ │OS-040 │ │ │OS-038 │ │ │OS-035 │ │ │OS-030 │ │ │OS-028 │ │
│ │Kenw...│ │ │Freig..│ │ │Volvo..│ │ │Inter..│ │ │Hino..│ │ │Scania│ │
│ │2h 30m │ │ │4h 15m │ │ │🔴1d │ │ │30min │ │ │3h │ │ │15min │ │
│ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │
│ ┌───────┐ │ ┌───────┐ │ │ ┌───────┐ │ ┌───────┐ │ │
│ │OS-041 │ │ │OS-039 │ │ │ │OS-034 │ │ │OS-031 │ │ │
│ │Mack..│ │ │Peter..│ │ │ │Volvo..│ │ │Kenw..│ │ │
│ │45min │ │ │2h │ │ │ │1h 20m │ │ │5h 45m│ │ │
│ └───────┘ │ └───────┘ │ │ │ └───────┘ │ │
└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┘
```
---
## Tareas Tecnicas
**Backend:**
- [ ] BE-055: Endpoint GET /api/orders/kanban (agrupado por estado)
- [ ] BE-056: Calcular tiempo en estado actual
- [ ] BE-057: Endpoint PATCH /api/orders/:id/move (mover entre estados)
- [ ] BE-058: Validar transiciones de estado permitidas
**Frontend:**
- [ ] FE-053: Crear KanbanBoard component
- [ ] FE-054: Crear KanbanColumn component
- [ ] FE-055: Crear OrderCard component
- [ ] FE-056: Implementar drag & drop (react-beautiful-dnd)
- [ ] FE-057: Indicadores visuales de tiempo
- [ ] FE-058: Filtros por mecanico, fecha, cliente
---
## Transiciones de Estado Permitidas
| Desde | Hacia Permitido |
|-------|-----------------|
| RECIBIDO | EN_DIAGNOSTICO, CANCELADO |
| EN_DIAGNOSTICO | COTIZADO, EN_REPARACION, CANCELADO |
| COTIZADO | APROBADO, RECHAZADO |
| APROBADO | EN_REPARACION, CANCELADO |
| EN_REPARACION | LISTO, ESPERANDO_REFACCIONES |
| ESPERANDO_REFACCIONES | EN_REPARACION |
| LISTO | ENTREGADO |
---
## Dependencias
**Depende de:**
- [ ] US-MMD002-001: Crear orden
- [ ] US-MMD002-003: Asignar orden
**Bloquea:**
- [ ] Ninguno (vista de monitoreo)
---
## Definition of Done (DoD)
- [ ] Tablero con columnas por estado
- [ ] Tarjetas con info de orden
- [ ] Indicadores de tiempo
- [ ] Drag & drop funcional
- [ ] Filtros operativos
- [ ] Responsive (tablet)
- [ ] Tests pasando
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06