Modulo Controllo Qualità
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:
- Selezione dei colli per i quali attivare in controllo di qualità. La selezione potrà esser effettuata effettuando ricerche per ordine di vendita/produzione o di commessa.
- Dichiarazione se il controllo di qualità dovrà esser effettuato da un operatore super-user abilitato o da un operatore qualsiasi. Questa informazione è legata alla causale selezionata.
- Selezione della causale di blocco da un elenco predefinito.
- Inserimento di un messaggio che appare al momento del blocco del collo.
- Report dello stato di controllo qualità in un monitor dedicato del TMes.
3. Convenzioni
Convenzioni definite in fase di progettazione e condivise tra i vari moduli del TMes/TLog.
- Tutti i controlli qualità vengono salvati nella tabella check_point_collo ed avranno il flag fg_controllo_qualita=1
- L’obbligo che un controllo deve esser effettuato da un SuperUser viene ereditato dalla Causale in fase di inserimento. L’utente potrà poi modificare il flag in fase di creazione del CheckPointCollo.
- Ad un solo CheckPointCollo può esser associato una sola verifica: di produzione o di spedizione.
- I flag FlagVerificaProduzione e FlagVerificaSpedizione del CheckPointCollo verranno salvati a database con valore 1. Nel momento in cui il controllo verrà effettuato il corrispondente campo a database passa a 2.
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