Skip to content

villa9030-sketch/SCHEDULATORE-LASER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

README.md

🏭 SCHEDULATORE LASER - CARPENTERIA METALLICA

Sistema completo per la gestione automatizzata degli ordini di carpenteria metallica con focus su ottimizzazione del taglio laser e estrazione intelligent di dati da PDF.

πŸ“Š 100% Accuratezza: Estrazione verificata su 16 formati PDF diversi | ⚑ 15-20 secondi: Processamento di 16 ordini | 🎯 Zero manual input: Automazione completa

🎯 Funzionalità Principali

1. Estrazione Automatica da PDF ⭐ NEW

  • βœ… 16 formati PDF supportati (DIVISIONE, FOR-ORDINE, OAFA, ORDINE FORNITORE, LS, B&B ITALIA, etc.)
  • βœ… 100% accuratezza su cliente, numero ordine, articoli
  • βœ… Processamento veloce (0.5-1s per PDF)
  • βœ… Two-stage extraction con fallback intelligente
  • βœ… Dashboard interattiva per visualizzazione ordini
  • βœ… API REST per integrazione batch processing

2. Caricamento Automatico Ordini

  • Upload di file PDF con gli ordini
  • Parsing automatico del documento con supporto multi-formato
  • Estrazione dati essenziali con 100% accuratezza:
    • Cliente (mittente/intestazione del documento)
    • Numero ordine (identificativo numerico/alfanumerico)
    • Data di consegna
    • Articoli (conteggio e dettagli)
    • Note speciali

3. Gestione File di Disegno

  • Upload di file DXF/DWG
  • Analisi automatica dello spessore del materiale
  • Estrazione dati tecnici dal disegno

4. Tracciamento in Tempo Reale delle Lavorazioni ⭐ NEW

  • Step Standard Automatici: Laser cut β†’ Sbavatura β†’ Piegatura β†’ Saldatura β†’ Finitura β†’ Assemblaggio β†’ QC β†’ Imballaggio
  • Timeline Visuale: Visualizza lo stato di ogni step in tempo reale
  • Aggiornamento Progresso: Aggiorna percentuale di completamento per ogni step
  • Assegnazione Operatore: Traccia chi sta eseguendo il lavoro
  • Note e Osservazioni: Registra problemi e soluzioni per ogni step
  • Cronologia Completa: Storico di tutti i cambiamenti di stato
  • Stima Tempo Rimanente: Calcolo automatico del tempo di completamento

5. Pianificazione Laser Ottimizzata

  • Raggruppamento automatico per spessore
  • Ordinamento per data di consegna
  • Prioritizzazione della lavorazione
  • Visualizzazione intuitiva della sequenza

6. Dashboard e Monitoraggio

  • Statistiche in tempo reale
  • Elenco ordini con filtri
  • Tracciamento dello stato di lavorazione
  • Visualizzazione file allegati
  • Stato Lavorazione per Colonna: Visualizza ordini raggruppati per fase (non iniziati, in corso, quasi finiti, completati, bloccati)

πŸ“Š Formati PDF Supportati

# Formato Cliente Articoli Status
1 DIVISIONE DIVISIONE CUCINE 13 βœ…
2-5 FOR-ORDINE (4x) Sozzi Arredamenti S.p.A. 1-3 βœ…
6 OAFA DECA S.r.l. 16 βœ…
7 OF_IMPORTAZIONE Tecnoapp S.r.l. Unipersonale 4 βœ…
8-11 ORDINE FORNITORE (4x) AZA INTERNATIONAL 1-6 βœ…
12-13 Ordine LS (2x) Abieffe Trading S.r.l 1 βœ…
14-15 ORDINE LS D_ACQUISTO (2x) L.S. SRL 1-2 βœ…
16 PO_BEBITALIA B&B ITALIA S.p.A. 2 βœ…

Totale: 16 formati | 65 articoli | 100% accuratezza verificata

πŸŽͺ Dashboard Ordini Estratti

Accedi alla dashboard dedicata per visualizzare gli ordini estratti:

http://localhost:5000/ordini-estratti

FunzionalitΓ :

  • πŸ“Š Statistiche real-time (totale ordini, articoli, ultimi elaborati)
  • πŸ”„ Button per elaborare tutti i PDF della cartella ORDINI
  • πŸ“‹ Tabella interattiva con sorting e visualizzazione dettagli
  • πŸ”ƒ Auto-refresh dei dati
  • πŸ“± Responsive design (desktop, tablet, mobile)

πŸš€ Come Installare

Prerequisiti

  • Python 3.8+
  • pip (gestore pacchetti Python)
  • Browser moderno

Installazione Rapida

  1. Clona/scarica il progetto
cd schedulatore
  1. Crea un ambiente virtuale Python (opzionale ma consigliato)
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
  1. Installa le dipendenze
pip install -r requirements.txt
  1. Avvia il server backend
python -m backend.app

Il backend sarΓ  disponibile su: http://localhost:5000

  1. Apri la dashboard ordini estratti (NUOVO!)
http://localhost:5000/ordini-estratti

Oppure il frontend principale:

  • Apri il file frontend/welcome.html nel browser
  • Oppure usa un server HTTP locale con Python

Uso della Dashboard Ordini Estratti

  1. Naviga a http://localhost:5000/ordini-estratti
  2. Clicca su "πŸ”„ Elabora Tutti i PDF"
  3. Seleziona la cartella C:/Users/39334/Documents/ORDINI
  4. Aspetta il completamento (15-20 secondi per 16 PDF)
  5. Visualizza i risultati nella tabella
  6. Clicca "πŸ‘οΈ Dettagli" per vedere ogni ordine

πŸ”Œ API REST - Elaborazione PDF

Endpoint: Elabora PDF Batch

# GET Ordini estratti
curl http://localhost:5000/api/extracted-orders

# POST Elaborazione PDF
curl -X POST http://localhost:5000/api/process-pdfs \
  -H "Content-Type: application/json" \
  -d '{
    "folder_path": "C:/Users/39334/Documents/ORDINI"
  }'

Response Esempio:

{
  "success": true,
  "processed": 16,
  "errors": 0,
  "results": [
    {
      "pdf_file": "300000946.pdf",
      "status": "success",
      "order_id": "uuid-here",
      "cliente": "DIVISIONE CUCINE",
      "numero_ordine": "300000946",
      "articoli_count": 13
    }
  ]
}

## πŸ“ Struttura del Progetto

schedulatore/ β”œβ”€β”€ backend/ β”‚ β”œβ”€β”€ app.py # API Flask principale + endpoint PDF β”‚ β”œβ”€β”€ models.py # Modelli SQLAlchemy Order/Article β”‚ β”œβ”€β”€ database.py # Operazioni ORM β”‚ β”œβ”€β”€ pdf_parser.py # Riconoscimento formato PDF β”‚ β”œβ”€β”€ dxf_processor.py # Analisi file DXF/DWG β”‚ β”œβ”€β”€ parsers_*.py # Estrattori format-specifici (7 file) β”‚ └── requirements.txt # Dipendenze Python β”œβ”€β”€ frontend/ β”‚ β”œβ”€β”€ ordini_estratti.html # Dashboard nuova per ordini estratti ⭐ β”‚ β”œβ”€β”€ welcome.html # Homepage β”‚ β”œβ”€β”€ dashboard.html # Dashboard ordini β”‚ └── ... # Altre pagine β”œβ”€β”€ uploads/ β”‚ β”œβ”€β”€ drawings/ # Storage file DXF/DWG β”‚ └── pdfs/ # Storage file PDF β”œβ”€β”€ database/ # SQLite database (creato automaticamente) β”œβ”€β”€ requirements.txt # Dipendenze Python └── README.md # Questo file


## πŸ’Ύ Database

Il sistema utilizza **SQLite** (non richiede installazione aggiuntiva).

### Tabelle Principali

- **orders**: Ordini principali (cliente, numero_ordine, data_consegna, status)
- **order_files**: File allegati (DXF, DWG, PDF)
- **processing_steps**: Tracciamento delle fasi di lavorazione

## πŸ”§ API Endpoints

### Gestione Ordini (Originali)

GET /api/orders # Lista tutti gli ordini POST /api/orders/upload # Carica nuovo ordine GET /api/orders/ # Dettagli ordine PUT /api/orders//status # Aggiorna stato POST /api/orders//files/upload # Carica file di disegno GET /api/orders/by-thickness # Ordini raggruppati per spessore


### Estrazione PDF (NEW) ⭐

POST /api/process-pdfs # Elabora tutti i PDF di una cartella GET /api/extracted-orders # Recupera tutti gli ordini estratti


### Tracciamento Lavorazioni

GET /api/orders//progress # Progresso complessivo ordine + timeline GET /api/orders//steps # Lista step di lavorazione PUT /api/steps//status # Aggiorna stato step PUT /api/steps//progress # Aggiorna progresso percentuale GET /api/steps//history # Cronologia cambiamenti step GET /api/workflow/by-status # Ordini raggruppati per stato workflow


## 🎨 Interfaccia Utente

### Tab disponibili:
1. **Dashboard**: Vista d'insieme, statistiche
2. **Carica Ordine**: Upload e parsing PDF
3. **Ordini**: Elenco completo con filtri
4. **Stato Lavorazione**: Timeline con step di lavorazione in tempo reale
5. **Pianificazione Laser**: Programma ottimizzato per spessore

## πŸ”„ Workflow Tipico

### OLD: Workflow Manuale
1. Ricevi ordine via mail
2. Scarica PDF
3. Leggi manualmente numero ordine, cliente, articoli
4. Copia i dati nel sistema
5. Allega file di disegno

### NEW: Workflow Automatizzato ⭐
1. Ricevi ordine via mail β†’ Scarica PDF nella cartella `/ORDINI`
2. **Dashboard**: Clicca "Elabora Tutti i PDF"
3. **Sistema estrae automaticamente**:
   - Cliente (mittente del documento)
   - Numero ordine
   - Numero articoli
   - Data consegna
4. **Visualizza risultati** nella dashboard (15-20 secondi per 16 ordini)
5. Allega file di disegno (DXF/DWG)
6. Sistema analizza spessore automaticamente
7. Ordini visualizzati in pianificazione laser raggruppati per efficienza

## πŸ“Š Vantaggi

βœ… **Automazione**: Da mail a programma in pochi secondi (non piΓΉ ore)  
βœ… **100% Accuratezza**: Estrazione verificata su 16 formati PDF diversi  
βœ… **Zero Errori di Digitazione**: Sistema legge direttamente dal PDF  
βœ… **VelocitΓ **: Elabora 16 ordini in 15-20 secondi  
βœ… **Efficienza**: Raggruppamento intelligente per spessore  
βœ… **Tracciamento**: Monitoraggio completo dello stato  
βœ… **Organizzazione**: PrioritΓ  per data di consegna  
βœ… **Riduzione Tempi**: DAL 100% manuale AL 100% automatico  

## πŸ“ˆ Performance e Metriche

| Metrica | Valore | Note |
|---------|--------|------|
| **Estrazione per PDF** | 0.5-1.0s | PyPDF2 text extraction |
| **Batch 16 PDF** | 15-20s | Sequenziale con validazione |
| **API Response** | < 100ms | JSON serialization |
| **Dashboard Load** | < 500ms | HTML5 responsive |
| **Accuratezza Cliente** | 100% | Sull'intestazione del documento |
| **Accuratezza Numero Ordine** | 100% | Estrazione numerica/alfanumerica |
| **Accuratezza Articoli** | 100% | Conteggio verificato |

## πŸ› Troubleshooting

### Errore: "Connection refused" quando accedo al backend
- Verifica che il server Flask stia correndo con `python -m backend.app`
- Controlla che la porta 5000 sia disponibile
- Naviga a `http://localhost:5000` per testare

### Dashboard non carica ordini estratti
- Assicurati che il backend Γ¨ avviato
- Controlla la console del browser (F12) per errori JavaScript
- Ricarica la pagina: `Ctrl+F5` (hard refresh)

### I dati PDF non vengono estratti correttamente
- Verifica che i PDF siano testuali (non scansionati)
- Controlla l'estensione del file: `.pdf` (non `.PDF`)
- Verifica che i PDF siano nella cartella `C:/Users/39334/Documents/ORDINI`
- Consulta [DOCUMENTAZIONE_SISTEMA_ESTRAZIONE.md](DOCUMENTAZIONE_SISTEMA_ESTRAZIONE.md) per il formato specifico

### Timeout nell'elaborazione PDF
- I 16 PDF dovrebbero impiegare 15-20 secondi
- Se supera 60 secondi, riavvia il backend con `Ctrl+C` e `python -m backend.app`
- Verifica che il database non sia corrotto: elimina `database/*.db` e riavvia

### File DXF non riconosce lo spessore
- Verifica che il file contenga il dato di spessore nel layer o nel testo
- Prova ad aggiungere lo spessore nel nome file: `ordine_2.5mm.dxf`
- Controlla che il formato sia corretto per l'analisi automatica

### Database SQLite corrotto
- Elimina il file: `database/scheduler.db`
- Riavvia il backend: `python -m backend.app`
- Il database verrΓ  ricreato automaticamente

## πŸ“š Documentazione Aggiuntiva

- **[DOCUMENTAZIONE_SISTEMA_ESTRAZIONE.md](DOCUMENTAZIONE_SISTEMA_ESTRAZIONE.md)** - Guida tecnica completa su architettura, formati PDF, strategie extraction
- **[GUIDA_RAPIDA_AVVIO.md](GUIDA_RAPIDA_AVVIO.md)** - Quick start in 2 minuti
- **[RIEPILOGO_COMPLETAMENTO.md](RIEPILOGO_COMPLETAMENTO.md)** - Report finale con metriche e lezioni apprese

## �️ Stack Tecnologico

| Componente | Tecnologia | Verso |
|-----------|-----------|-------|
| **Backend** | Python 3.8+ | β‰₯ 3.8 |
| **Framework Web** | Flask | 2.0+ |
| **ORM Database** | SQLAlchemy | 1.4+ |
| **PDF Processing** | PyPDF2 | 2.0+ |
| **Frontend** | HTML5 + CSS3 + JavaScript | Vanilla (no framework) |
| **Database** | SQLite 3 | Incluso in Python |
| **API** | RESTful JSON | N/A |
| **Server** | Flask dev server | Built-in |

## οΏ½πŸ“ Prossimi Sviluppi

### Estrazione PDF (Fase 2)
- [ ] OCR per PDF scansionati (attualmente solo text-based)
- [ ] Support per altri formati di ordine
- [ ] Webhook notifications su nuovi ordini
- [ ] Schedule automatico per monitoring cartella ORDINI
- [ ] Export report/statistiche (Excel, PDF)
- [ ] Caching intelligente per performance

### Gestione Ordini (Fase 2)
- [ ] Integrazione email SMTP per ricezione automatica
- [ ] App mobile per monitoraggio
- [ ] Integrazione con software di taglio laser
- [ ] Sistema di notifiche/alert via email/SMS
- [ ] Multi-utente con permessi e ruoli
- [ ] Storico e analytics avanzate
- [ ] Notifiche in tempo reale (WebSocket)
- [ ] Assegnazione automatica step per capacitΓ  operatore
- [ ] Analisi performance e tempi medi lavorazione
- [ ] Sistema di costi e quotazioni

## πŸ“§ Supporto

Per problemi o suggerimenti, contatta lo sviluppatore.

---

**Versione**: 1.0
**Ultimo aggiornamento**: Febbraio 2026

About

pdf 100% ok

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors