Programmazione e Report
Configura report programmati di manutenzione, integra con Cloud Scheduler e gestisci le pause dei piani con registro di audit.
A cosa serve
- Distribuire ordini tra tecnici in base a capacità e ubicazione.
- Rispettare finestre di manutenzione della produzione.
- Minimizzare spostamenti tra stabilimenti o zone.
Come funziona
Lo scheduler risolve un problema di assegnazione considerando skill del tecnico, ubicazione dell'asset, finestre autorizzate e SLA pendenti. Il supervisore può forzare manualmente.
Report programmati
Puoi configurare report automatici che vengono generati e consegnati periodicamente con informazioni sui tuoi piani di manutenzione.
Creare un report programmato
- Vai a Manutenzione > Report Programmati.
- Clicca su Nuovo Report.
- Configura i parametri:
| Campo | Obbligatorio | Descrizione |
|---|---|---|
| Nome | Si | Nome descrittivo del report (max 200 caratteri) |
| Frequenza | Si | daily, weekly o monthly |
| Formato | No | PDF (default) o Excel |
| Canale di consegna | No | email (default) o whatsapp |
| Destinatari | No | Lista di indirizzi email o numeri di telefono |
| Ora | No | Ora UTC di esecuzione (0-23, default: 8) |
| Giorno della settimana | No | Solo per frequenza weekly (0=lunedi a 6=domenica) |
| Giorno del mese | No | Solo per frequenza monthly (1-28) |
| Abilitato | No | Attiva o disattiva il report |
Frequenze disponibili
| Frequenza | Esecuzione |
|---|---|
| daily | Ogni giorno all'ora configurata |
| weekly | Nel giorno della settimana configurato all'ora configurata |
| monthly | Nel giorno del mese configurato all'ora configurata |
Preset di branding
I report programmati possono utilizzare un preset di branding salvato per mantenere un'identita visiva coerente:
| Campo del branding | Descrizione |
|---|---|
| company_name | Nome dell'azienda nell'intestazione |
| logo_url | URL del logo (PNG/JPG) |
| header_lines | Righe aggiuntive nell'intestazione (divisione, telefono, ecc.) |
| header_bg_color | Colore di sfondo dell'intestazione (hex, es: #003366) |
| footer_text | Testo del pie di pagina |
| accent_color | Colore di accento per tabelle ed elementi evidenziati |
| font_family | Famiglia di font: Courier, Helvetica o Times |
Per collegare un branding a un report programmato, usa il campo branding_id:
{
"name": "Report Settimanale di Manutenzione",
"frequency": "weekly",
"format": "pdf",
"branding_id": "branding_abc123",
"day_of_week": 0,
"hour": 8
}Integrazione con Cloud Scheduler
I report programmati vengono eseguiti attraverso un endpoint interno invocato da Google Cloud Scheduler:
POST /internal/run-scheduled-reportsFlusso di esecuzione
- Cloud Scheduler invoca l'endpoint a intervalli regolari.
- Il sistema controlla tutti i report abilitati di tutti i tenant.
- Per ogni report, verifica se e il momento di eseguirlo in base alla sua frequenza e ora configurata.
- Genera il report nel formato specificato (PDF o Excel).
- Consegna il report al canale configurato (email o WhatsApp).
- Aggiorna
last_run_ate calcolanext_run_at.
Sicurezza dell'endpoint
L'endpoint interno e protetto da:
- HMAC Secret — L'header
X-Scheduler-Secretdeve corrispondere al segreto configurato. - Senza JWT — Non richiede autenticazione utente, solo il segreto dello scheduler.
Mettere in pausa e riprendere i piani
Puoi mettere in pausa temporaneamente un piano di manutenzione senza eliminarlo. La pausa disabilita l'esecuzione automatica e registra l'azione nel trail di audit.
Mettere in pausa un piano
- Seleziona il piano da Manutenzione > Piani.
- Clicca su Pausa.
- Opzionalmente, inserisci un motivo (max 500 caratteri).
Quando metti in pausa un piano:
| Azione | Dettaglio |
|---|---|
paused impostato a true | Segna il piano come in pausa |
enabled impostato a false | Impedisce l'esecuzione automatica |
paused_at registrato | Timestamp di quando e stato messo in pausa |
paused_by registrato | ID dell'utente che ha messo in pausa |
pause_reason memorizzato | Motivo opzionale fornito |
| Voce di audit creata | Registra l'azione "pause" con il motivo |
Riprendere un piano
- Seleziona il piano in pausa.
- Clicca su Riprendi.
Quando riprendi un piano:
| Azione | Dettaglio |
|---|---|
paused impostato a false | Rimuove il flag di pausa |
enabled impostato a true | Riattiva l'esecuzione automatica |
next_due_at ricalcolato | La prossima esecuzione viene calcolata da adesso, non dalla data originale |
| Campi di pausa cancellati | paused_at, paused_by, pause_reason vengono rimossi |
| Voce di audit creata | Registra l'azione "resume" |
Trail di audit
Tutte le azioni di pausa e ripresa vengono registrate nel trail di audit immutabile:
{
"action": "pause",
"resource_type": "maintenance_plan",
"resource_id": "plan_abc123",
"actor": "user_xyz",
"actor_type": "user",
"details": { "reason": "Apparecchiatura in riparazione maggiore" },
"timestamp": "2026-03-25T10:30:00Z"
}Questo permette di tracciare chi ha messo in pausa o ripreso un piano, quando e perche.
Protezione di idempotenza
Il sistema include molteplici meccanismi per garantire che i piani non vengano eseguiti in modo duplicato:
| Meccanismo | Descrizione |
|---|---|
| Claim atomico | Prima di eseguire un piano, avanza next_due_at al futuro in modo atomico. Se un'altra istanza lo ha gia reclamato, viene saltato |
| Rollback in caso di errore | Se l'esecuzione fallisce, next_due_at viene ripristinato al valore originale per il tentativo nel ciclo successivo |
| Semaforo di concorrenza | Massimo 5 tenant elaborati in parallelo per evitare sovraccarico |
| HMAC dello scheduler | L'endpoint interno accetta solo richieste con il segreto corretto |
Esecuzione manuale dei report
Oltre all'esecuzione automatica, puoi generare qualsiasi report programmato immediatamente:
- Vai a Manutenzione > Report Programmati.
- Seleziona il report.
- Clicca su Esegui Ora.
L'esecuzione manuale aggiorna last_run_at ma non modifica next_run_at. Il report viene consegnato immediatamente al canale configurato.
Benefici chiave
- Assegnazione ottimizzata per skill e ubicazione.
- Rispetta automaticamente le finestre di produzione.
- Minimizza spostamenti — meno tempo morto.
- Forzatura manuale per casi eccezionali.
- Visibilità preventiva del piano della settimana.
Piani di Manutenzione
Configura piani di manutenzione preventiva con trigger a calendario o contatore, percorsi multi-asset e generazione automatica di attivita.
Esecuzione dei Piani
Esegui piani di manutenzione manualmente o automaticamente, visualizza l'anteprima dei risultati e monitora la cronologia delle esecuzioni.