- Updated docs and inventory files - Added new architecture docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.1 KiB
US-MAI005-008: Configurar reglas de asignacion
ID: US-MAI005-008 Modulo: MAI-005 (Despacho) Prioridad: Media Story Points: 5
Historia de Usuario
Como administrador de operaciones Quiero definir y configurar los criterios de scoring para asignacion de unidades Para adaptar el algoritmo a las prioridades del negocio y mejorar la eficiencia operativa
Criterios de Aceptacion
CA-001: Listar reglas existentes
Dado que accedo a la configuracion de despacho Cuando entro a la seccion de reglas de asignacion Entonces veo todas las reglas definidas con su nombre, prioridad y estado (activa/inactiva)
CA-002: Crear nueva regla
Dado que quiero personalizar el algoritmo Cuando creo una nueva regla de asignacion Entonces puedo definir nombre, condiciones, pesos de criterios y prioridad
CA-003: Definir condiciones de aplicacion
Dado que estoy creando una regla Cuando defino las condiciones Entonces puedo especificar: tipos de viaje, clientes, rutas, horarios
CA-004: Ajustar pesos de criterios
Dado que estoy editando una regla Cuando modifico los pesos Entonces puedo ajustar el porcentaje de distancia, capacidad, disponibilidad y skills (sumando 100%)
CA-005: Validar suma de pesos
Dado que modifico los pesos de criterios Cuando la suma no es igual a 100% Entonces el sistema muestra error y no permite guardar
CA-006: Previsualizar impacto
Dado que modifique los pesos de una regla Cuando solicito previsualizacion Entonces veo como cambiarian los scores de viajes recientes con la nueva configuracion
CA-007: Activar/desactivar regla
Dado que tengo una regla creada Cuando cambio su estado Entonces la regla se activa o desactiva sin eliminarla
CA-008: Definir prioridad entre reglas
Dado que tengo multiples reglas Cuando un viaje cumple condiciones de varias reglas Entonces se aplica la regla con mayor prioridad
Mockup / UI
+-----------------------------------------------------------------------+
| CONFIGURACION - REGLAS DE ASIGNACION |
+-----------------------------------------------------------------------+
| [+ Nueva Regla] Buscar: [_______] |
+-----------------------------------------------------------------------+
| |
| +----------------------------------------------------------------+ |
| | REGLA: Clientes VIP Prioridad: 1 | |
| | Estado: ACTIVA | |
| | Condiciones: Clientes categoria 'VIP' | |
| | Pesos: Dist 30% | Cap 25% | Disp 25% | Skills 20% | |
| | [Editar] [Previsualizar] [Desactivar] | |
| +----------------------------------------------------------------+ |
| |
| +----------------------------------------------------------------+ |
| | REGLA: Cargas HAZMAT Prioridad: 2 | |
| | Estado: ACTIVA | |
| | Condiciones: Viajes con skill 'HAZMAT' | |
| | Pesos: Dist 25% | Cap 20% | Disp 20% | Skills 35% | |
| | [Editar] [Previsualizar] [Desactivar] | |
| +----------------------------------------------------------------+ |
| |
| +----------------------------------------------------------------+ |
| | REGLA: Default Prioridad: 99 | |
| | Estado: ACTIVA (Sistema) | |
| | Condiciones: Todos los viajes | |
| | Pesos: Dist 40% | Cap 25% | Disp 20% | Skills 15% | |
| | [Editar] [Previsualizar] [--] | |
| +----------------------------------------------------------------+ |
| |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
| EDITAR REGLA: Clientes VIP [X] |
+-----------------------------------------------------------------------+
| |
| Nombre: [Clientes VIP_________________] |
| Prioridad: [1] |
| |
| CONDICIONES (todas deben cumplirse) |
| +----------------------------------------------------------------+ |
| | Tipo de viaje: [ ] Todos [x] Nacional [ ] Local | |
| | Clientes: [x] Solo VIP [ ] Todos | |
| | Rutas: [ ] Todas [ ] Especificas: [Seleccionar...] | |
| | Horario: [ ] Todo el dia [x] 06:00 - 18:00 | |
| +----------------------------------------------------------------+ |
| |
| PESOS DE CRITERIOS (Total: 100%) |
| +----------------------------------------------------------------+ |
| | Distancia: [====30%====]------- | |
| | Capacidad: [===25%===]--------- | |
| | Disponibilidad: [===25%===]--------- | |
| | Skills: [==20%==]----------- | |
| +----------------------------------------------------------------+ |
| | Total: 100% [OK] | |
| +----------------------------------------------------------------+ |
| |
| [Cancelar] [Previsualizar Impacto] [Guardar] |
| |
+-----------------------------------------------------------------------+
Notas Tecnicas
- Tabla
dispatch_rulespara persistir reglas - Regla "Default" no puede eliminarse ni desactivarse
- Prioridad menor = mayor importancia (1 es maxima prioridad)
- Condiciones se almacenan como JSONB
- Pesos se validan en backend (sum = 100)
- Cache de reglas con invalidacion al modificar
- Endpoint
POST /api/dispatch/rules/previewpara simulacion
Definicion de Done
- CRUD completo de reglas de asignacion
- UI de lista de reglas con estado
- Formulario de edicion con sliders de pesos
- Validacion de suma de pesos = 100%
- Editor de condiciones (clientes, rutas, horarios)
- Funcion de previsualizacion de impacto
- Activar/desactivar reglas
- Proteccion de regla Default
- Tests unitarios de validaciones
- Tests de integracion de CRUD
US-MAI005-008 - Modulo MAI-005 - ERP Transportistas