Files
magman/README.md
T
2024-08-01 17:07:55 +02:00

10 KiB

MagMan

Gestione magazzino per applicazioni BeamWall, integrato con EgtBeamWall.

Prerequisiti e versioni

Un prerequisito è il disaccoppiamento tra EgtB&W ed il componente MagMan: abbiamo che il sw EgtB&W è basato su netFramework 4.7.2 mentre l'applicazione, che deve girare su windows e linux e quindi dotNet Core 6.0 LTS o successivi, non può essere direttamente connessa tramite dll

In particoalre il problema c'è a livello delle librerie di accesso EntityFramework.

Per superare il problema il disaccoppiamento sarà svolto tramite chaimate REST che il client (applicazione EgtB&W) farà al server.

Inoltre la distribuzione della funzionalità, per essere semplificata, avverrà tramite apposito pacchetto nuget ospitato sul repository nexus aziendale.

Descrizione

Lo scopo principale dell'applicazione è fare da gestore del magazzino grezzi / scarti (remnant) che possono essere impiegati per i nesting e la gestione dei progetti di magazzino.

Insieme a questo, per completare in parte le funzionalità di tipo Industria 4.0, sono previste funzionalità di gestione dei dati di stato impianto, registrazione log e reportistica base di primo livello sull'impianto.

Il sofware è previsto in modalità multi-tenant, dove verrà generato un DB per ogni cliente nel quale andranno a confluire i dati di una o più macchine che il cliente possiede e gestite con EgtB&W; in questo modo è sempre possibile un upgrade dall'infrastruttura cloud di EgalWare verso il CUBE locale del cliente qualora desiderato.

Di base il sistema deve prevedere il riconoscimento degli utenti e/o dei software EgalWare licenziati e reindirizzare l'impiego delle funzionalità avanzate verso il DB dedicato al cliente.

Architettura

Il progetto è pensato in architettura multi-tenant per la versione online, ovvero un unico indirizzo web (tramite load balancers x reverse proxy) che fornisce l'applicazione a tutti i clienti.

Ogni cliente, facendo login, verrà riconosciuto e gli verrà fornita la partizione dati/DB di competenza del tenant secondo lo schema seguente:

Workflow

Di seguito lo schema di funzionamento:

flowchart TB
    user(User Login\n web browser) --> ServerApp
    egtbw(EgtB&W sw\n REST call) --> ServerApp

    ServerApp{{magman.egalware.com}} --> multiTenant(Admin DB)
    ServerApp --> clientData(Tenant DB Data)

    multiTenant--> tenantMgmt(Clienti)
    multiTenant--> MachMgmt(Macchine) 
    multiTenant--> KeyMgmt(Chiavi/Licenze)
    multiTenant--> UserMgmt(Utenti)

    clientData --> MagData(Dati Magazzino)
    clientData --> MachineData(Stato Impianto)
    clientData --> LogData(Log Impianto)
    clientData --> CommData(Stato Commesse)


style ServerApp fill:#2239EF
style multiTenant fill:#CD1111
style clientData fill:#22AB19


In pratica le chiamate vengono inviate tutte al servizio web e da qui smistate per competenza e funzionalità verso i vari DB.

Chiavi/Licenze rappresentano le info associate ad ogni licenza software, che poi rappresenta una macchina tracciata.

A livello architetturale il progetto è separato tra la parte Data.Admin e Data.Tenant.

Oggetti di base

Gli oggetti di abse sono i seguenti:

  • utenti (reali o associati al programma)
  • anagrafica barre
  • locazioni magazzino (inizialmente 1 sola, possibilità espansione futura locazioni)
  • giancenze articoli
  • progetti (prod), in particolare l'ultimo:
    • dataora calcolo,
    • impegno articoli stimato associato,
    • inizio prima lavorazione,
    • ultima lavorazionie registrata,
    • chiusura (manuale/esplicita, opzionale)

Ruoli utente

Di seguito sono indicati e definiti i ruoli utente previsti, con indicazione esplicita se si tratta di ruoli INT (=amministrativi di Egalware) o di ruoli cliente

Nome Ruolo Int/Ext Customer
SuperAdmin Int Ruolo amministrativo massimo, può creare nuovi clienti (e relativi DB) ed associare user a DB cliente
PowerReader Int Ruolo di base per ogni login con email @egalware, non può modificare o creare associazioni user/DB
BWUser Ext User implicito associato ad ogni chiave licenza di EgtB&W e di conseguenza ad uno specifico ClientID
RealUser Ext User esplicito, dotato di email univoca, associato in fase di creazione/primo accesso ad uno specifico ClientID

Flusso operativo da programma

Quando è il programma EgtBW a impiegare il sistema, questo avverrà tramite procedure REST. Un programma di esempio (con relativa ddl di comunicazione) è incluso nel progetto.

In particolare sono previste le seguenti funzionalità

  • riconoscimento di ogni chiave dato numero/codice (per determinare user/pwd)
  • riconoscimento della singola macchina per cui il software è stato fornito (identica per macchina e pc ufficio)
  • funzionalità di richiesta anagrafiche magazzino che restituisce tutto il set delle anagrafiche in magazzino, inteso come elenco articoli dato materiale, sezione, ...
  • funzionalità di richiesta stato magazzino che restituisce tutto il set delle barre in magazzino (codice anagrafico, stato, valori giacenza)
  • funzionalità di ricerca magazzino che restituisce il set delle barre in magazzino che rispondono ai criteri richiesti 8es solo barre di un certo materiale, materiale + sezione...
  • funzionalità di impegno barre (ovvero viene registrato a sistema che un numero specifico di barre sono assocaite ad un ID progetto)
  • funzionalità di consumo di una barra al momento dell'inizio della lavorazione della stessa
  • funzionalità di versamento remnant a fine lavorazione barra
  • funzionalità di registrazione eventi (log) per replica log locali
  • funzionalità di registrazione stato impianto (tramite invio in particolari stati del processo)

Flusso operativo Egalware

Egalware potrà registrare i propri utenti con le email @egalware.com e questi verranno automaticamente riconosciuti come validi e in grado di operare con livello base nel sistema come PowerReader.

Verranno poi individuati i key user EgalWare di livello SuperAdmin, che potranno svolgere i seguenti compiti

  • creare nuovi ClientID (quindi i relativi DB univoci) da poter inserire nelle configurazioni dei programmi EgtB&W
  • creare nuovi utenti data email (che potranno poi sempre tramite email impostare autonomamente la loro password di accesso)
  • verificare gli user (sia di programma che espliciti) e le relative associazioni ai ClientID
  • effettuare associazione utenti e ClientID in caso di problemi in fase di registrazione
  • accedere a tutti i dati dei singoli clienti e macchine

Gli utenti base Egalware di livello PowerReader potranno

  • verificare le anagrafiche clienti
  • verificare le anagrafiche utente
  • verificare le informazioni di base associate allo stato impianto dei clienti e gli ultimi dati inviati/ricevuto dai sw EgtB&W

Flusso operativo utente

Ogni end user potrà registrare ed associare quanti utenti voglia a patto che siano dotati di un email univoca per il sistema (e abbia ovviamente almeno 1 macchina con relativo software EgtB&W intestata).

Ogni nuovo user dovrà poi essere associato al bucket del cliente tramite un codice univoco

Gestione Sync DB

E' stato implementato un nuovo set di tabelle sul DB (locale) di EgtBeamWall per gestire materiali e grezzi non tramite file ma tramite DB e così gettare la base per la gestione del sync locale/cloud.

Nello stesso tempo, il sito web, oltre a proporre pagine utente, implementa web API rest che, tramite apposita libreria di comuncazione SDK (messa sul repo nuget aziendale) permette di comuncare, sincronizzare e gestire i dati.

Revisione documento

Versione Data Editor Note
1.0.2408.0100 2024.08.01 S.E.Locatelli Fix problema refresh al cambio tipo materiale in prod x update gestione redis in cluster
1.0.2407.2400 2024.07.24 S.E.Locatelli Completato gestione con cluster sia MariaDB che Redis, ottimizzazioni comunicazione e sync
1.0.2407.1100 2024.07.11 S.E.Locatelli Preparazione gestione con cluster sia MariaDB che Redis
1.0.2407.0800 2024.07.08 S.E.Locatelli Modifica conteggio totali (non qty ma metri/aree), update e ottimizzazioni generali
1.0.2407.0300 2024.07.03 S.E.Locatelli Ottimizazioni display x numeri decimali, miglioramento gestione cambio pagine, eventi non responsivi, ...
1.0.2406.2900 2024.06.29 S.E.Locatelli Implementaizone perc avanzamento proj + nuove info progetto (update sync e SDK)
1.0.2405.0700 2024.05.07 S.E.Locatelli Update gestione LogMacchina, gestione errori da dati negativi, stored varie
1.0.2404.3000 2024.04.30 S.E.Locatelli Prima versione upload LogMacchina
1.0.2404.2400 2024.04.24 S.E.Locatelli Vari fix e ottimizzazioni db, rimozione pacchetti nuget superati per riscritture varie, gestione logical delete info
1.0.2402.2900 2024.02.29 S.E.Locatelli Completato fix dati mancanti descrizione, prima versione update display pagina su notifica redis pub/sub
0.9.2402.2000 2024.02.20 S.E.Locatelli Completato sync x Alias, materiali, items, testing da prototipo DB locale
0.8.2402.0200 2024.02.02 S.E.Locatelli Completata gestione utenti
0.7.2401.3000 2024.01.30 S.E.Locatelli Consumi e stime ok, fix DTO syncro
0.6.2401.2600 2024.01.26 S.E.Locatelli Prime versione magazzino (consumi, qrcode, display movimenti)
0.5.2401.2400 2024.01.24 S.E.Locatelli Prime versione display progetti caricati
0.4.2401.2000 2024.01.20 S.E.Locatelli Completamento funzionalità editing di base
0.3.2401.1900 2024.01.19 S.E.Locatelli Completamento prima release SDK comunicazione
0.2.2401.1800 2024.01.18 S.E.Locatelli Prime note sync DB online/locale
0.2.2401.1000 2024.01.10 S.E.Locatelli Revisione modalità multi-tenant
0.1.2401.0500 2024.01.05 S.E.Locatelli update ruoli e workflow
0.1.2312.2800 2023.12.28 S.E.Locatelli Prima revisione documento