Ejecución de Planes
Ejecuta planes de mantenimiento manual o automáticamente, previsualiza resultados y rastrea el historial de ejecuciones.
¿Para qué sirve?
- Guiar al técnico paso a paso durante la intervención.
- Capturar evidencia (foto, firma, lectura) al cierre.
- Reportar consumos de repuestos y tiempo real invertido.
¿Cómo funciona?
La app móvil carga la orden, muestra la checklist de pasos, permite adjuntar evidencia y registra consumos. El cierre sincroniza con el backend en tiempo real (o batch en modo offline).
Ejecución 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 | Descripción |
|---|---|
| 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 verificación |
| notifications | Canales y destinatarios de notificación |
| next_due_after_execution | Proxima fecha de ejecución despues de ejecutar |
| execution_count_after | Numero de ejecución resultante |
Notificación de prueba
Puedes verificar que las notificaciones estan correctamente configuradas sin ejecutar el plan:
- Selecciona el plan.
- Haz clic en Probar Notificación.
El sistema envia una notificación 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 ejecución
Cada plan mantiene un historial completo de todas las tareas que ha generado.
El historial muestra:
| Campo | Descripción |
|---|---|
| task_code | Codigo único 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 notificación
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.
Ejecución automatica via Cloud Scheduler
El sistema verifica automáticamente 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 ejecución 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 ejecución 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 integración:
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
}Cuándo el contador alcanza o supera el umbral, el plan se ejecuta automáticamente:
{
"plan_id": "abc123",
"current_counter": 0,
"threshold": 500,
"triggered": true,
"task": {
"task_id": "...",
"task_code": "MAN-015",
"title": "Cambio de filtros — Bomba Principal"
}
}Beneficios clave
- Checklist guiada paso a paso — menos errores.
- Modo offline con sync automático al reconectar.
- Evidencia estructurada: foto + firma + lectura.
- Reporte de consumo de repuestos por orden.
- Tiempo real de intervención capturado automáticamente.
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.