100 lines
3.9 KiB
Markdown
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
|