# 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`) - 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