Introduzione
In questo documento verranno descritti il funzionamento e gli aspetti tecnici per il modulo Controllo qualità.
1. Scopo
Questo modulo ha lo scopo di bloccare l’avanzamento collo in caso sia necessario un controllo di qualità. Il controllo potrà esser attivato:
-In fase di produzione
-In fase di spedizione
2. Funzionalità
Le funzionalità previste per questo modulo saranno:
3. Convenzioni
Convenzioni definite in fase di progettazione e condivise tra i vari moduli del TMes/TLog.
4. Specifiche di implementazione
Elenco API create o modificate durante lo sviluppo
3.1 ControlloQualitaController
AddColliCQ
Aggiunge i controlli di qualità ad un elenco di colli.
OGNI CHECKPOINT INSERITO ATTIVERÀ IL CONTROLLO IN SOLO UNO DEI FLAG PRODUZIONE O SPEDIZIONE.I FLAG VERIFICAPRODUZIONE E VERIFICASPEDIZIONE DOVRANNO ESSER IN MUTUA ESCLUSIONE.
JSon request:
| { “Colli” : [ “000011”, “000015” ], “FlagVerificaSpedizione” : “1”, “FlagVerificaProduzione” : “0”, “FlagVerificaSuperUser” : “0”, “CodiceCausaleVerifica” : “F”, “Descrizione” : “Controllare dimensioni senza super user!”} |
DeleteColliCQ
Elimina tutti i controlli di qualità da un elenco di colli. Eventuali CheckPointCollo non di controllo qualità non verranno eliminati.
JSon request:
| { “Colli” : [ “000011”, “000015” ] } |
GetCQperElencoColli
Funzione che ritorna un riepilogo controlli da effettuare/effettuati su un elenco colli.
JSon request:
| { “Colli” : [ “000336”, “000337”, “000338” ] } |
JSon response:
Successivamente a questa chiamata si potrà effettuare, per ogni collo, la chiamata
| [ { “CodiceCollo”: “000336”, “NumCheckpointTotali”: 2, “NumCheckpointAperti”: 2, “DataUltimaLavorazione”: “0001-01-01T00:00:00” }, { “CodiceCollo”: “000337”, “NumCheckpointTotali”: 3, “NumCheckpointAperti”: 2, “DataUltimaLavorazione”: “0001-01-01T00:00:00” }, { “CodiceCollo”: “000338”, “NumCheckpointTotali”: 0, “NumCheckpointAperti”: 0, “DataUltimaLavorazione”: “0001-01-01T00:00:00” } ] |
Avanzamento/colloCheckpointCQ per avere per ogni collo, il dettaglio della verifica da effettuare.
GetCQperElencoOrdini
Funzione che ritorna un riepilogo dei controlli da effettuare per tutti i colli degli ordini della richiesta. Vengono presi in considerazione solo i CheckPointCollo del controllo qualità.
JSon request:
| { “Ordini” : [ “2020TST000006”, “2021TST000015”, “2021TST000147” ] } |
Dopo il reperimento dell’elenco colli, la funzione richiama la stessa ricerca della funzione GetCQperElencoColli. La response di conseguenza è la stessa che per quella funzione.
3.2 AvanzamentoController
colliItemsList, prodItemsList, ordiniItemsList
Modificate le funzioni per reperire l’elenco dei colli.
In particolare è stato aggiunto il flag FgControlloQualita (opzionale) nella request per recuperare i soli CheckPointCollo dei controlli qualità:
JSon request:
| { … “FgControlloQualita” : “1”, … } |
Impostando questo flag, il campo Semaforo viene validato in base ai soli CheckPointCollocon FgControlloQualità = 1
colloCheckpointCQ
Funzione che ritorna l’elenco dei CheckPoint per uno specifico collo.
Questa funzione per i flag FlagVerificaProduzione, FlagVerificaSpedizione ritorna i seguenti valori:
| - | 0: | > nessuna verifica |
|---|---|---|
| - | 1: | da verificare |
| - | 2: | verificato |
Quest’ultimo valore viene impostato con la funzione: chiudiColloCheckpointCQ. Esempio JSon response
| [ { “Id”: 10069, “IdCollo”: 25, … “Descrizione”: “Verifica importantissssssima”, “FgStato”: 0, “FlagControlloQualita”: 1, “FlagVerificaSpedizione”: 0, “FlagVerificaProduzione”: 1, “DataCreazione”: “2022-03-10T17:58:55.123”, … “CodiceCausaleVerifica”: “X”, “DescrizioneCausaleVerifica”: “Causale per superuser”, “FlagVerificaSuperUser”: 1 }, { “Id”: 30080, |
| “IdCollo”: 25, … “Descrizione”: “Verificare imballo”, “FgStato”: 0, “FlagControlloQualita”: 1, “FlagVerificaSpedizione”: 2, “FlagVerificaProduzione”: 0, “DataCreazione”: “2022-03-14T16:35:27.32”, … “CodiceCausaleVerifica”: “S”, “DescrizioneCausaleVerifica”: “Causale spedizione”, “FlagVerificaSuperUser”: 0 } ] |
chiudiColloCheckpointCQ
Funzione per segnare un controllo come effettuato.
In GET la stringa del collo in questione, nel BODY i dati del check_point da chiudere.
Aggiorna i seguenti campi a DB
| fg_stato = 1, dt_valorizzazione_checkpoint = getdate(), c_utente_conclusione = <utente-loggato> fg_verifica_sped / fg_verifica_prod = 2 |
JSon request
| { “id” : “10062”, “FlagControlloQualita” : “1”, “FlagVerificaSpedizione” : “0”, “FlagVerificaProduzione” : “1”, “UtenteConclusione” : “Red” } |
UtenteConclusione è opzionale. Se non specificato viene utilizzato l’utente che ha fatto login.
Qualora il check_point da chiudere sia con FlagVerificaSuperUser=1 verrà verificato che l’utente che effettua il controllo abbia c_tipo_operatore=ADMIN. Se il check_point viene chiuso da TLog allora l’utente viene considerato sempre SuperUser.
E’ ammessa la chiusura di entrambi i flag Produzione e Spedizione per permettere a TLog con una chiamata di chiudere tutto.
causaliVerifica
Funzione che ritorna l’elenco delle causali da inserire in un CheckPoint.
A questa funzione è stato aggiungo il flag FlagVerificaSuperUser per sapere se quella causale deve esser verificata da un super-user.
Esempio JSon respose:
| [ { “Codice”: “F”, “Descrizione”: “Causale 2”, “Annullato”: 0, “FlagVerificaSpedizione”: 1, “FlagVerificaProduzione”: 1, “FlagVerificaSuperUser”: 0 }, { “Codice”: “P”, “Descrizione”: “Causale produzione”, “Annullato”: 0, “FlagVerificaSpedizione”: 0, “FlagVerificaProduzione”: 1, “FlagVerificaSuperUser”: 1 } ] |
5. Modifiche strutture database
Per l’implementazione sono state applicate le seguenti modifiche alla struttura del database:
| – Aggiungo se la causale può esser verificata da un superuser ALTERTABLE tesy_causali_verifica ADD fg_verifica_superuser intnullGO – Riporto l'informazione superuser dalla causale al check_point_collo attivato sul collo ALTERTABLE check_point_collo ADD fg_verifica_superuser intnull GO – Tabella AS Parameters per il recupero dei colli di un ordine CREATETYPE [dbo].[ListaOrdiniTVP] ASTABLE([ordine] nvarchar(50)NOTNULL) |
La versione del DB è stata portata a: 62