Files

100 lines
3.9 KiB
Markdown

# MAPO-CORE
Repository multi-soluzione per i progetti .NET Core Blazor Server di MAPO (MES - Manufacturing Execution System).
Applicazione multipiattaforma (Windows, macOS, Linux), deployabile tramite IIS o altri web server.
## Architettura
Il progetto è organizzato in **multiple soluzioni** indipendenti, ciascuna con il proprio dominio funzionale:
### Soluzioni MAPO Core
| Soluzione | Dominio |
|-----------|---------|
| `MP.SPEC` | Gestione articoli, operatori, ODL, KIT, Dossier, Ricette, Parametri macchina |
| `MP.IOC` / `MP.RIOC` | Gestione ordini di produzione (UpdateProd) e interfaccia client |
| `MP.LAND` | Gestione Land/Zone |
| `MP.MON` | Monitoraggio produzione |
| `MP.TAB3` | Dashboard e reporting |
| `MP.Prog` | Programmazione produzione |
| `MP.Stats` | Statistiche e analytics |
| `MP.INVE` | Gestione inventario/magazzino |
| `IobConf.UI` / `IobConf.Core` | Configurazione IOB (Input/Output Board) |
### Soluzioni IOB-WIN (Gateway Hardware)
| Soluzione | Dominio |
|-----------|---------|
| `IOB-WIN` | Gateway principale IOB |
| `IOB-WIN-FACADE` | Layer di astrazione per hardware |
| `IOB-WIN-BECKHOFF` | Driver Beckhoff |
| `IOB-WIN-FANUC` | Driver FANUC |
| `IOB-WIN-MITSUBISHI` | Driver Mitsubishi |
| `IOB-WIN-OMRON` | Driver OMRON |
| `IOB-WIN-SIEMENS` | Driver Siemens |
| `IOB-WIN-SHELLY` | Driver Shelly |
| `IOB-WIN-OSAI` | Driver OSAI |
| `IOB-WIN-PING` | Ping/monitoring hardware |
| `IOB-WIN-OPC-UA` | Comunicazione OPC-UA |
| `IOB-WIN-MTC` | Driver MTC |
| `IOB-WIN-KAWASAKI` | Driver Kawasaki |
| `IOB-WIN-FTP` | Scambio file FTP |
| `IOB-WIN-FILE` | Gestione file locale |
| `IOB-WIN-SQL` | Accesso database SQL |
| `IOB-WIN-WPS` | Interfaccia WPS |
| `IOB-WIN-NEXT` | Driver Next generation |
| `IOB-UT` / `IOB-UT-NEXT` | Unit tests IOB |
### Soluzioni EgwCApp (Gateway Communication)
| Soluzione | Dominio |
|-----------|---------|
| `EgwCApp.Core` | Core comunicazione gateway |
| `EgwCApp.XmlProc` | Processing XML |
| `EgwCApp.ExcImport` | Importazione eccedenze |
| `EgwCApp.Testing` | Testing |
| `EgwCApp.XmlTesting` | Testing XML |
### Altri Progetti
| Progetto | Dominio |
|----------|---------|
| `VersGen` | Generazione versioni |
| `Scratch` | Prototipi e sperimentazione |
## Stack Tecnologico
- **Frontend**: Blazor Server con componenti interattivi (`AddInteractiveServerComponents()`)
- **Backend**: ASP.NET Core Web API, Minimal APIs, Controllers tradizionali
- **Database**: SQL Server (4 DbContext: MoonProContext, MoonPro_VocContext, MoonPro_FluxContext, MoonPro_STATSContext)
- **NoSQL**: MongoDB per storage ricette
- **Caching**: FusionCache (Memory + Redis + DB) con invalidazione per tag
- **Autenticazione**: Windows Authentication (Negotiate/Kerberos)
- **Osservabilità**: OpenTelemetry tracing su Uptrace, MessagePipe per broadcasting real-time
## Build & CI/CD
```powershell
# Build tutte le soluzioni in parallelo
./build_all_par.ps1 --agent
# Build singola soluzione
dotnet build MP-SPEC.sln
```
Il pipeline GitLab CI è configurato in `.gitlab-ci.yml` con supporto per NuGet restore e build multi-soluzione.
## Documentazione Interna
Ogni soluzione contiene il proprio `README.md` con dettagli specifici su funzionalità, architettura e stato del refactoring.
## Stato Attuale (Luglio 2026)
- Tutte le soluzioni compilano senza errori
- Migrazione FusionCache completata per MP.SPEC (48+ metodi migrati al pattern `GetOrFetchAsync<T>`)
- Decomposizione MpSpecController in 8 repository specialistici
- Fix DI e gestione stato statico in MP.AppAuth
- Cache reset funzionale per InsEnabled da reload
- Spostamento ricerca ODL su Minimal API
- Fix navigazione filtri PODL KIT (ritorno pagina 1 al cambio filtro)
- Integrazione FusionCache su RIOC con test di reset
- Supporto multi-driver IOB-WIN per diversi hardware (Beckhoff, FANUC, Mitsubishi, OMRON, Siemens, Shelly, OSAI, Kawasaki, MTC, OPC-UA)
- Gateway comunicazione EgwCApp per scambio dati XML e importazione eccedenze