167 lines
6.0 KiB
Markdown
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
|