diff --git a/pom.xml b/pom.xml index 4e2bf4459..8db7773df 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ 42.5.5 8.6.6 1.17.6 - 1.20.2 + 1.21.0 diff --git a/src/main/resources/h2/data-h2.sql b/src/main/resources/h2/data-h2.sql index e4bd7c0fe..01863feb7 100644 --- a/src/main/resources/h2/data-h2.sql +++ b/src/main/resources/h2/data-h2.sql @@ -373,3 +373,16 @@ INSERT INTO NODO4_CFG.IBAN_ATTRIBUTES_MASTER (OBJ_ID, FK_IBAN_MASTER, FK_IBAN_AT values (200, 200, 200), (201, 201, 200), (202, 202, 201); + +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('1', '2024-02-15 01:00:00', '2024-02-15 20:00:00', false, 2); +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('2', '2024-04-15 01:00:00', '2024-04-15 20:00:00', true, 2); +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('3', '2024-07-15 01:00:00', '2024-07-15 20:00:00', true, 2); +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('4', '2023-12-31 11:00:00', '2024-01-01 18:00:00', false, 2); +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('5', '2024-05-21 01:00:00', '2024-05-21 20:00:00', true, 3); +INSERT INTO NODO4_CFG.MANUTENZIONE_STAZIONE (OBJ_ID, DATA_ORA_INIZIO, DATA_ORA_FINE, STANDIN, FK_STAZIONE) +VALUES('6', '2023-12-31 11:00:00', '2024-01-01 18:00:00', true, 3); diff --git a/src/main/resources/h2/schema-h2.sql b/src/main/resources/h2/schema-h2.sql index c2c28ed4c..e980bbb6c 100644 --- a/src/main/resources/h2/schema-h2.sql +++ b/src/main/resources/h2/schema-h2.sql @@ -96,6 +96,7 @@ create table NODO4_CFG.STAZIONI VERSIONE numeric not null default 1.0, SERVIZIO_NMP varchar(255), INVIO_RT_ISTANTANEO char not null default 'N', + FLAG_STANDIN char not null default 'Y', TARGET_HOST varchar(100), TARGET_PORT numeric, TARGET_PATH varchar(100), @@ -719,5 +720,44 @@ CREATE OR REPLACE VIEW NODO4_CFG.IBAN_VALIDI_PER_PA AS JOIN NODO4_CFG.PA p ON (( mas.FK_PA = p.OBJ_ID)) ); - - +CREATE TABLE NODO4_CFG.MANUTENZIONE_STAZIONE( + OBJ_ID integer GENERATED BY DEFAULT AS IDENTITY, + DATA_ORA_INIZIO TIMESTAMP(0) WITH TIME ZONE NOT NULL, + DATA_ORA_FINE TIMESTAMP(0) WITH TIME ZONE NOT NULL, + STANDIN boolean NOT NULL, + FK_STAZIONE integer NOT NULL, + CONSTRAINT PK_MANUTENZIONE_STAZIONE PRIMARY KEY (OBJ_ID), + CONSTRAINT FK_MANUTENZIONE_STAZIONE_STAZIONE FOREIGN KEY (FK_STAZIONE) REFERENCES NODO4_CFG.STAZIONI +); + +-- MANUTENZIONE_STAZIONE_ESPANSA VIEW +CREATE OR REPLACE VIEW NODO4_CFG.MANUTENZIONE_STAZIONE_ESPANSA AS +SELECT mequal.OBJ_ID::varchar(255) AS ID, mequal.DATA_ORA_INIZIO, mequal.DATA_ORA_FINE, ipa.ID_INTERMEDIARIO_PA AS INTERMEDIARIO_PA_CODICE_FISCALE +FROM NODO4_CFG.MANUTENZIONE_STAZIONE mequal JOIN NODO4_CFG.STAZIONI s ON mequal.FK_STAZIONE = s.OBJ_ID JOIN NODO4_CFG.INTERMEDIARI_PA ipa ON s.FK_INTERMEDIARIO_PA = ipa.OBJ_ID +WHERE EXTRACT('year' FROM mequal.DATA_ORA_INIZIO) = EXTRACT('year' FROM mequal.DATA_ORA_FINE ) +UNION ALL +SELECT mdiffStart.OBJ_ID || 'start' AS ID, mdiffStart.DATA_ORA_INIZIO, (DATE_TRUNC('year', mdiffStart.DATA_ORA_INIZIO) + interval '1' year) AS DATA_ORA_FINE , ipa.ID_INTERMEDIARIO_PA AS INTERMEDIARIO_PA_CODICE_FISCALE +FROM NODO4_CFG.MANUTENZIONE_STAZIONE mdiffStart JOIN NODO4_CFG.STAZIONI s ON mdiffStart.FK_STAZIONE = s.OBJ_ID JOIN NODO4_CFG.INTERMEDIARI_PA ipa ON s.FK_INTERMEDIARIO_PA = ipa.OBJ_ID +WHERE EXTRACT('year' FROM mdiffStart.DATA_ORA_INIZIO) != EXTRACT('year' FROM mdiffStart.DATA_ORA_FINE ) +UNION ALL +SELECT mdiffEnd.OBJ_ID || 'end' AS ID, (DATE_TRUNC('year', mdiffEnd.DATA_ORA_FINE )) AS DATA_ORA_INIZIO, mdiffEnd.DATA_ORA_FINE , ipa.ID_INTERMEDIARIO_PA AS INTERMEDIARIO_PA_CODICE_FISCALE +FROM NODO4_CFG.MANUTENZIONE_STAZIONE mdiffEnd JOIN NODO4_CFG.STAZIONI s ON mdiffEnd.FK_STAZIONE = s.OBJ_ID JOIN NODO4_CFG.INTERMEDIARI_PA ipa ON s.FK_INTERMEDIARIO_PA = ipa.OBJ_ID +WHERE EXTRACT('year' FROM mdiffEnd.DATA_ORA_INIZIO) != EXTRACT('year' FROM mdiffEnd.DATA_ORA_FINE ); + +-- MANUTENZIONE_STAZIONE_RIEPILOGO VIEW +CREATE OR REPLACE VIEW NODO4_CFG.MANUTENZIONE_STAZIONE_RIEPILOGO AS +SELECT INTERMEDIARIO_PA_CODICE_FISCALE, TO_CHAR(DATE_TRUNC('year', DATA_ORA_INIZIO), 'YYYY') AS ANNO_MANUTENZIONE, +SUM(COALESCE( + ( + SELECT EXTRACT(epoch FROM DATA_ORA_FINE - DATA_ORA_INIZIO)/3600 + FROM NODO4_CFG.MANUTENZIONE_STAZIONE_ESPANSA AS maintenanceForUsedHours + WHERE maintenanceForUsedHours.DATA_ORA_FINE < CURRENT_TIMESTAMP and maintenanceForUsedHours.ID = maintenanceBase.ID + ), 0)) AS ORE_UTILIZZATE, +SUM(COALESCE( + ( + SELECT EXTRACT(epoch FROM DATA_ORA_FINE - DATA_ORA_INIZIO)/3600 + FROM NODO4_CFG.MANUTENZIONE_STAZIONE_ESPANSA AS maintenanceForScheduledHours + WHERE maintenanceForScheduledHours.DATA_ORA_INIZIO > CURRENT_TIMESTAMP and maintenanceForScheduledHours.ID = maintenanceBase.ID + ), 0)) AS ORE_PROGRAMMATE +FROM NODO4_CFG.MANUTENZIONE_STAZIONE_ESPANSA AS maintenanceBase +GROUP BY INTERMEDIARIO_PA_CODICE_FISCALE, ANNO_MANUTENZIONE; \ No newline at end of file