Ejecucion de Planes
Ejecuta planes de mantenimiento manual o automaticamente, previsualiza resultados y rastrea el historial de ejecuciones.
Ejecucion manual
Puedes ejecutar cualquier plan de mantenimiento inmediatamente desde el dashboard, sin esperar a que el scheduler lo dispare.
- Ve a Mantenimiento > Planes.
- Selecciona el plan que deseas ejecutar.
- Haz clic en Ejecutar.
Al ejecutar un plan manualmente:
- Se crea una tarea con todos los parametros configurados en el plan.
- Se envian las notificaciones configuradas (email y/o WhatsApp).
- Se actualiza
last_executed_atyexecution_countdel plan. - Para planes de calendario, se recalcula
next_due_at. - Para planes de contador, se reinicia
current_countera cero.
enabled del plan. Puedes ejecutar un plan deshabilitado.Previsualizacion (dry run)
Antes de ejecutar un plan, puedes previsualizar exactamente que pasaria sin crear ninguna tarea ni enviar notificaciones.
La previsualizacion muestra:
| Campo | Descripcion |
|---|---|
| task_title | Titulo que tendria la tarea generada |
| task_priority | Prioridad asignada |
| task_due_date | Fecha limite calculada |
| assigned_to_name | Nombre de la persona asignada |
| asset_name | Nombre del activo vinculado |
| checklist_items | Cantidad de items en la lista de verificacion |
| notifications | Canales y destinatarios de notificacion |
| next_due_after_execution | Proxima fecha de ejecucion despues de ejecutar |
| execution_count_after | Numero de ejecucion resultante |
Notificacion de prueba
Puedes verificar que las notificaciones estan correctamente configuradas sin ejecutar el plan:
- Selecciona el plan.
- Haz clic en Probar Notificacion.
El sistema envia una notificacion de prueba con el prefijo [TEST] en el titulo. Esto permite verificar:
- Que la cuenta de email esta activa y puede enviar.
- Que el numero de WhatsApp esta conectado.
- Que la persona asignada tiene datos de contacto validos.
Historial de ejecucion
Cada plan mantiene un historial completo de todas las tareas que ha generado.
El historial muestra:
| Campo | Descripcion |
|---|---|
| task_code | Codigo unico de la tarea (ej: MAN-001) |
| title | Titulo de la tarea |
| status | Estado actual (todo, in_progress, done, etc.) |
| priority | Prioridad asignada |
| created_at | Fecha de creacion |
| due_date | Fecha limite |
El historial esta paginado y ordenado por fecha de creacion descendente.
Resultados de notificacion
Cada tarea generada por un plan registra el resultado de las notificaciones enviadas:
{
"notification_results": {
"email": { "sent": true, "to": "tecnico@empresa.com" },
"whatsapp": { "sent": false, "error": "Number not connected" }
}
}Esto permite rastrear exactamente que notificaciones se enviaron con exito y cuales fallaron, sin afectar la creacion de la tarea.
Ejecucion automatica via Cloud Scheduler
El sistema verifica automaticamente los planes pendientes cada hora a traves de un endpoint interno:
POST /internal/check-maintenance-dueEste endpoint esta protegido por un secreto HMAC (X-Scheduler-Secret) y es invocado por Google Cloud Scheduler.
Flujo de ejecucion automatica
- Cloud Scheduler invoca el endpoint interno cada hora.
- El sistema descubre todos los tenants registrados.
- Para cada tenant, busca planes con
enabled: true,trigger: calendar, ynext_due_at <= ahora. - Ejecuta cada plan pendiente creando la tarea y enviando notificaciones.
- Usa un claim atomico para evitar ejecuciones duplicadas en entornos con multiples instancias.
next_due_at para que el plan se reintente en el siguiente ciclo.Proteccion de idempotencia
El sistema usa un mecanismo de claim atomico para prevenir ejecuciones duplicadas:
- Antes de ejecutar, avanza
next_due_atal futuro atomicamente. - Si otra instancia ya reclamo el plan, el claim falla y se salta.
- Si la ejecucion falla, se revierte
next_due_atal valor original.
Incremento de contador
Para planes basados en contador, puedes incrementar el valor del contador manualmente o via integracion:
POST /api/v1/maintenance/{plan_id}/increment-counter
{
"value": 10
}La respuesta indica el estado actual:
{
"plan_id": "abc123",
"current_counter": 490,
"threshold": 500,
"triggered": false,
"task": null
}Cuando el contador alcanza o supera el umbral, el plan se ejecuta automaticamente:
{
"plan_id": "abc123",
"current_counter": 0,
"threshold": 500,
"triggered": true,
"task": {
"task_id": "...",
"task_code": "MAN-015",
"title": "Cambio de filtros — Bomba Principal"
}
}Programacion y Reportes
Configura reportes programados de mantenimiento, integra con Cloud Scheduler y gestiona pausas de planes con registro de auditoria.
Cumplimiento de Mantenimiento
Monitorea el cumplimiento del mantenimiento preventivo con metricas de tasa de cumplimiento, planes vencidos y tendencias diarias.