====== OEE Competition ======
I seguenti moduli software hanno l'obiettivo di gestire l'OEE Competition. La richiesta è stata quella di mostrare sull'Andon Board di ogni linea di un determinato dipartimento, i valori in tempo reale (relativi al turno corrente) dei pezzi prodotti e degli scarti, sia per linea che per dipartimento. Inoltre, questi valori vanno confrontati con delle soglie (per linea e dipartimento) preconfigurate tramite inserimento manuale in una pagina dell'applicazione.
Quindi i dati da mostrare sono:
- pezzi prodotti del turno corrente della linea
- soglia pezzi prodotti per turno della linea
- scarti prodotti del turno corrente della linea
- soglia scarti per turno della linea
- pezzi prodotti del turno corrente del dipartimento
- soglia pezzi prodotti per turno del dipartimento
- scarti prodotti per turno del dipartimento
- soglia scarti per turno del dipartimento
I dati devono essere registrati per turno e accessibili successivamente tramite nuova pagina dell'applicazione.
Un esempio dei grafici da mostrare sull'Andon Board (vanno gestiti anche i colori dello sfondo o dei grafici):
{{:cli:franke:andon.png?1200|}}
Da sviluppare:
- analizzare come recuperare i dati di pezzi prodotti e scarti del turno, per linea e dipartimento (già esistente o da sviluppare??)
- aggiungere una tabella delle soglie di pezzi e scarti per ubicazione
- aggiungere la possibilità di valorizzare i dati della tabella tramite GUI
- registrare i dati di pezzi prodotti e scarti per linea e per dipartimento, ogni turno: registrare anche i valori delle soglie in modo che i dati siano utilizzabili anche in un secondo momento, anche se le soglie cambiano
Un esempio di un set di dati da visualizzare per giorno/mese (in base alla selezione delle date):
{{:cli:franke:tabella1.png?1200|}}
===== Configurazioni aggiuntive database =====
CREATE TABLE public.thresholds (
codubi character varying(51),
codturnidet character varying(51),
thnp1 double precision,
thnp2 double precision,
ths1 double precision,
ths2 double precision
);
COMMENT ON COLUMN public.thresholds.codubi IS '1:1 ubicaz.codice';
COMMENT ON COLUMN public.thresholds.codturnidet IS '1:1 turnidet.codice';
COMMENT ON COLUMN public.thresholds.thnp1 IS 'soglia pezzi 1';
COMMENT ON COLUMN public.thresholds.thnp2 IS 'soglia pezzi 2';
COMMENT ON COLUMN public.thresholds.ths1 IS 'soglia scarti 1';
COMMENT ON COLUMN public.thresholds.ths2 IS 'soglia scarti 2';
ALTER TABLE ONLY public.thresholds
ADD CONSTRAINT uq_codubi_codturnidet UNIQUE (codubi, codturnidet);
==== Esempio estrazione dati per configurazione soglie ====
select ubicaz.codice, ubicaz.descrizio, ubicaz.codubib, u2.descrizio as dubib,
concat_pipe(ubicaz.codturno||';'||turni.descrizio||';'||turnidet.codice||';'||turnidet.descrizio||';'||turnidet.orainsec||';'||turnidet.durata||';'||thresholds.thnp1||';'||thresholds.ths1) as info
from ubicaz
left join ubicaz u2 on ubicaz.codubib = u2.codice
left join turni on ubicaz.codturno = turni.codice
join turnidet on turni.codice = turnidet.codturno
left join thresholds on ubicaz.codice = thresholds.codubi and turnidet.codice = thresholds.codturnidet
where ubicaz.tiposet = 'P'
group by ubicaz.codice, ubicaz.descrizio, ubicaz.codubib, u2.descrizio
order by ubicaz.codice, ubicaz.descrizio