Files
mapo-core/MP.SPEC
Samuele Locatelli 657e203767 Fix ricerca repa-opr
2026-06-08 17:09:12 +02:00
..
2024-11-04 08:52:43 +01:00
2026-06-08 17:09:12 +02:00
2026-06-04 13:45:46 +02:00
2026-06-08 17:09:12 +02:00
2022-07-21 10:05:03 +02:00
2026-06-08 17:09:12 +02:00
2026-06-08 17:09:12 +02:00
2022-07-21 14:57:51 +02:00
2023-10-20 18:54:28 +02:00
2026-06-04 13:45:46 +02:00
2026-06-04 13:45:46 +02:00
2026-02-24 16:48:39 +01:00
2022-07-23 11:45:59 +02:00
2026-06-08 17:09:12 +02:00
2022-09-16 11:17:28 +02:00
2026-06-04 13:45:46 +02:00
2026-06-04 13:45:46 +02:00
2026-06-04 13:45:46 +02:00
2026-06-04 13:45:46 +02:00
2022-09-16 11:17:28 +02:00

MP.SPEC

MAPO SPEC: WebApp / Sito in versione dotNetCore 8 per la gestione del MES MAPO in particolare per le gestioni SPECiali (ina ttesa di finire di migrare SITE e ADM).

Comprende funzionalità amministrative avanzate e funzionalità standard.

Sezioni Principali

Sono gestiti

  • Articoli
  • Operatori
  • Assegnazione Operatori/Macchine a reparti
  • PODL (Promesse ODL) prima della produzione
  • ODL (Ordini di lavoro) legate ad effettive attività di produzione
  • Gestione speciale dei KIT
  • Gestione Dossier (es caso Baglietto)
  • Gestione Ricette (tramite dossier)
  • Gestione Parametri macchina
  • Gestione giacenze magazzino (ove gestite)

Ci sono anche alcune pagine speciali di admin (ad esempio FluxLogStatus, usata per deduplicare i dati di FluxLog)

Architettura

Livello Dati (MP.Data)

Il layer dati centralizzato in MP.Data fornisce:

  • 8 Repository: Anag, Production, Dossier, FluxLog, System, MpVoc, MpMon, MpLand
  • Cache FusionCache (Memory + Redis + DB) con invalidazione per tag
  • DI Registrations attraverso DataServiceCollectionExtensions (AddSpecDataLayer, AddLandDataLayer, etc.)
  • MpDataService come servizio singleton centrale per accesso a DB, Redis, MongoDB

Livello Applicazione (MP.SPEC)

  • MpDataService (Scoped, singleton in Program.cs): service wrapper sul DAL con caching FusionCache
  • Componenti Blazor Server: layout interattivo server-side con AddInteractiveServerComponents()
  • API Controllers: RecipeController, RecipeArchiveController per operazioni ricette
  • Autenticazione: Windows Authentication (Negotiate) con Autorizzazione Blazor Server

Livello Infrastruttura

  • SQL Server: 4 DbContext (MoonProContext, MoonPro_VocContext, MoonPro_FluxContext, MoonPro_STATSContext)
  • MongoDB: storage ricette
  • Redis: caching distribuito (FusionCache) + backplane
  • OpenTelemetry: tracing su Uptrace (abilitabile via conf)
  • MessagePipe: broadcasting messaggi real-time

Refactoring Completati (Giugno 2026)

Repository Pattern - Decomposizione MpSpecController

Il grande MpSpecController/MpSpecRepository.cs è stato scomposto in 8 repository specialistici:

# Repository Interfaccia Metodi DbContext
1 Anag IAnagRepository 26 MoonProContext
2 Production IProductionRepository 32 MoonProContext
3 Dossier IDossierRepository 6 MoonPro_FluxContext
4 FluxLog IFluxLogRepository 3 MoonPro_FluxContext
5 System ISystemRepository 7 MoonProContext + MoonProAdminContext
6 MpVoc IMpVocRepository 3 MoonPro_VocContext
7 MpMon IMpMonRepository 4 MoonProContext
8 MpLand IMpLandRepository 6 MoonProContext

Tutti i reference a dbController.XXX() nei servizi sono stati rimossi. I metodi originali rimangono nel file di repository come fallback documentato.

Migrazione FusionCache

Tutti i metodi di lettura in MpDataService.cs sono stati migrati al pattern GetOrFetchAsync<T>():

  • L1 MemoryCache: 1/3 della scadenza totale
  • L2 Redis (Distributed): TTL configurabile
  • L3 Database: fetch diretto dal DbContext
  • Invalidazione: per tag (es. Utils.redisArtList, Utils.redisOdlByKey)
  • 48+ metodi migrati o confermati corretti

Fix DI e Static State (MP.AppAuth)

Risolto il null reference error originario (Cannot provide a value for property 'AAService' on type 'CmpTop'):

  • Rimpiazzati tutti i static IConfiguration _configuration con readonly istanza nei controllers
  • AppAuthService ora riceve i controllers via constructor DI invece di crearli con new()
  • Registrazioni DI centralizzate in DataServiceCollectionExtensions.cs
  • Tutti i controllers e services mp.appauth registrati come Scoped

Build

Tutte le 10 soluzioni compilano con successo (0 errori): MP.SPEC, MP.Data, MP.Land, MP.MON, MP.TAB3, MP.Stats, MP.INVE, MP.IOC, MP.RIOC, MP.Prog, IobConf