From ea5b3dde8cffaed2c2d32df2b5fbe74694d1ff1a Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Fri, 24 Apr 2015 15:28:36 +0000 Subject: [PATCH] NMMS#32004 -- Aanpassingen tbv rapportage en freeze svn path=/Customer/trunk/; revision=24984 --- NMMS/nmms.sql | 358 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 234 insertions(+), 124 deletions(-) diff --git a/NMMS/nmms.sql b/NMMS/nmms.sql index 66899bd3d..1649e6047 100644 --- a/NMMS/nmms.sql +++ b/NMMS/nmms.sql @@ -184,7 +184,6 @@ END; -- Selecteer oa. de MIN(begintijd) en MAX(eindtijd) van overlappende meldingen: -- op dezelfde ruimte voor dezelfde dienst -- met hetzelfde regime in dezelfde eenheid -/* Formatted on 21-10-2014 16:54:44 (QP5 v5.136.908.31019) */ CREATE OR REPLACE VIEW nmms_v_startmelding_geg ( m_start, @@ -206,7 +205,9 @@ CREATE OR REPLACE VIEW nmms_v_startmelding_geg mld_melding_einddatum_std, mld_melding_einddatum, mld_melding_omschrijving, - mld_melding_opmerking + mld_melding_opmerking, + nmm_melding, + prs_bedrijf_key ) AS SELECT m.m_start, @@ -240,7 +241,9 @@ AS m.mld_melding_einddatum_std, -- min_melding_einddatum_std of min_tht_einddatum_start??? m.mld_melding_einddatum, -- max_melding_einddatum x.mld_melding_omschrijving, -- mld_melding_oms. van alleen M_START - x.mld_melding_opmerking -- mld_melding_opm. van alleen M_START + x.mld_melding_opmerking, -- mld_melding_opm. van alleen M_START + m.nmm_melding, -- melding gemeld door medewerker NMM + m.prs_bedrijf_key -- bedrijf key van de melder FROM ( SELECT m.m_start, SUM (m.OPEN) OPEN, COUNT (m.mld_melding_key) aantal, @@ -257,7 +260,9 @@ AS MAX (m.mld_melding_t_respijt.eenheid) max_respijt_eenheid, -- altijd dezelfde eenheid als uitvoertijd??? MAX (m.mld_melding_indult) mld_melding_indult, MIN (m.mld_melding_einddatum_std) mld_melding_einddatum_std, -- min_melding_einddatum_std of min_thtsla_einddatum_start??? - MAX (m.mld_melding_einddatum) mld_melding_einddatum + MAX (m.mld_melding_einddatum) mld_melding_einddatum, + MAX (m.nmm_melding) nmm_melding, + MAX (m.prs_bedrijf_key) prs_bedrijf_key FROM (SELECT nmms.get_first_melding (m.mld_melding_key, 1) m_start, m.mld_melding_key, DECODE (m.mld_melding_status, 4, 1, 0) open, -- open = Geaccepteerd??? @@ -267,9 +272,13 @@ AS m.mld_melding_t_respijt, m.mld_melding_indult, m.mld_melding_einddatum_std, - m.mld_melding_einddatum - FROM mld_melding m, mld_stdmelding std + m.mld_melding_einddatum, + a.prs_bedrijf_key, + DECODE(a.prs_bedrijf_key, 1542, 1, 0) nmm_melding + FROM mld_melding m, mld_stdmelding std, prs_perslid p, prs_afdeling a WHERE m.mld_melding_parentkey IS NULL + AND m.prs_perslid_key = p.prs_perslid_key + AND p.prs_afdeling_key = a.prs_afdeling_key -- meldingen die al geexporteerd zijn (en in de tabel nmms_monitoring staan) komen niet meer in deze view AND NOT EXISTS (SELECT 1 @@ -325,7 +334,9 @@ CREATE OR REPLACE VIEW nmms_v_monitoring overlappend, wegingsfactor, melding_omschrijving, - melding_opmerking + melding_opmerking, + nmm_melding, + bedrijf_naam ) AS SELECT m_start, --mld_melding_key, @@ -424,7 +435,9 @@ AS overlappend, wegingsfactor, mld_melding_omschrijving, - mld_melding_opmerking + mld_melding_opmerking, + nmm_melding, + (SELECT prs_bedrijf_naam FROM prs_bedrijf b WHERE b.prs_bedrijf_key = g.prs_bedrijf_key) prs_bedrijf_naam FROM (SELECT m.m_start, m.aantal, DECODE (m.aantal, 1, NULL, m.overlappend) overlappend, @@ -551,7 +564,9 @@ AS AND sn.fac_srtnotificatie_code = 'MLDUPD' AND (t.fac_tracking_oms LIKE '%Start :%' OR t.fac_tracking_oms LIKE '%Afgemeld:%')) - antedateren + antedateren, + nmm_melding, + prs_bedrijf_key FROM nmms_v_startmelding_geg m, mld_stdmelding std, mld_stdmeldinggroep stdg, @@ -585,6 +600,9 @@ AS AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+) AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+) + AND (q.vervolg IS NOT NULL OR UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) = 'Q' OR nmm_melding = 1) + -- storingen op vervolgmeldingen en inspecties (Q) worden altijd getoond + -- anders alleen storingen ingelegd door NMM medewerkers AND m.m_start = q.mld_melding_key(+) AND m.m_start = obj.mld_melding_key(+) -- mld_melding_key VAN MELDING MET LAAGSTE KEY??? AND obj.ins_deel_key = d.ins_deel_key(+)) g; @@ -625,7 +643,11 @@ CREATE OR REPLACE VIEW nmms_v_rap_monitoring fclt_f_dienst, hide_f_stdmelding_key, wegingsfactor, + totaal, overlappend, + te_laat, + nmm, + bedrijf, hide_f_melding_omschrijving, hide_f_melding_opmerking ) @@ -667,7 +689,11 @@ AS dienst, stdmelding_key, wegingsfactor, + (COALESCE(kb,0) + COALESCE(kp,0)) * COALESCE(wegingsfactor,1) totaal, overlappend, + DECODE(SIGN(thtijdstip - COALESCE(gereed,SYSDATE)), -1, 'x', '') te_laat, + DECODE(nmm_melding, 1, 'x', ''), + bedrijf_naam, melding_omschrijving, melding_opmerking FROM nmms_v_monitoring; @@ -1110,7 +1136,87 @@ AS wegingsfactor, totaal FROM nmms_v_monitoring_tot; - + +-- rapport om historische informatie te tonen +CREATE OR REPLACE VIEW nmms_v_monitoring_history +( + fclt_d_datum, + html_melding, + hide_f_melding_key, + fclt_f_afw, + q_vervolg, + indult, + respijt, + ruimte, + object, + thema, + omschrijving, + begin, + gereed, + thtijdstip, + eenheid, + tht, + wht, + regime, + groep, + typekorting, + basiskorting, + variabelekorting, + uren, + kb, + prestatiekorting, + factor, + kp, + fclt_f_dienst, + hide_f_stdmelding_key, + wegingsfactor, + overlappend, + hide_f_melding_omschrijving, + hide_f_melding_opmerking +) +AS + SELECT TO_CHAR (begin, 'dd-mm-yyyy') begin, + '' + || melding_key + || '' + melding, + melding_key, + afw, + q_vervolg, + indult, + respijt, + ruimte, + object, + thema, + omschrijving, + TO_CHAR (begin, 'dd-mm-yyyy hh24:mi:ss') begin, + TO_CHAR (gereed, 'dd-mm-yyyy hh24:mi:ss') gereed, + TO_CHAR (thtijdstip, 'dd-mm-yyyy hh24:mi:ss') thtijdstip, + eenheid, + tht, + wht, + regime, + groep, + typekorting, + basiskorting, + variabelekorting, + uren, + kb, + prestatiekorting, + factor, + kp, + dienst, + stdmelding_key, + wegingsfactor, + overlappend, + mld_melding_omschrijving, + mld_melding_opmerking + FROM nmms_monitoring mo, mld_melding m + WHERE mo.melding_key = m.mld_melding_key AND begin IS NOT NULL; + CREATE OR REPLACE VIEW nmms_v_dwh_monitoring ( melding_key, @@ -1244,123 +1350,127 @@ AS IS SELECT * FROM nmms_v_monitoring_tot; BEGIN - -- Zet de meldingen die geen afwijking kennen en die niet op status afgerond staan naar status verwerkt - FOR rec IN c1 - LOOP - BEGIN + -- Gaan we vandaag de freeze starten? Dit mag alleen op de derde werkdag van de maand om 17:00 uur. + IF fac.count_Work_Days(trunc(sysdate, 'MON'), sysdate) = 2 + THEN + -- Zet de meldingen die geen afwijking kennen en die niet op status afgerond staan naar status verwerkt + FOR rec IN c1 + LOOP BEGIN - mld.setmeldingstatus (rec.melding_key, 6, 4); - END; - END; - END LOOP; - - - -- zet slave meldingen van samenvallende meldingen ook op verwerkt - FOR rec IN c2 - LOOP - BEGIN - IF rec.mld_melding_status = 6 OR rec.mld_melding_status = 5 -- verwerkt of afgemeld - THEN BEGIN - mld.setmeldingstatus (rec.mld_melding_key, 6, 4); + mld.setmeldingstatus (rec.melding_key, 6, 4); END; - END IF; - END; - END LOOP; - - - -- Voeg de entries uit het monitoringsoverzicht toe aan de freeze tabel. - FOR rec IN c3 - LOOP - BEGIN - BEGIN - INSERT INTO nmms_monitoring (melding_key, - afw, - q_vervolg, - indult, - respijt, - ruimte, - object, - thema, - omschrijving, - begin, - gereed, - thtijdstip, - verwerkt, - eenheid, - tht, - wht, - regime, - groep, - typekorting, - basiskorting, - variabelekorting, - uren, - kb, - prestatiekorting, - factor, - kp, - herhalingskorting, - aantal, - kh, - wegingsfactor, - dienst, - stdmelding_key, - totaal, - overlappend, - kinderen, - export_datum) - VALUES (rec.melding_key, - rec.afw, - rec.q_vervolg, - rec.indult, - rec.respijt, - rec.ruimte, - rec.object, - rec.thema, - rec.omschrijving, - rec.begin, - rec.gereed, - rec.thtijdstip, - rec.verwerkt, - rec.eenheid, - rec.tht, - rec.wht, - rec.regime, - rec.groep, - rec.typekorting, - rec.basiskorting, - rec.variabelekorting, - rec.uren, - rec.kb, - rec.prestatiekorting, - rec.factor, - rec.kp, - rec.herhalingskorting, - rec.aantal, - rec.kh, - rec.wegingsfactor, - rec.dienst, - rec.stdmelding_key, - DECODE (rec.indult, 'Ja', 0, rec.totaal), - rec.overlappend, - rec.kinderen, - SYSDATE); END; - END; - END LOOP; - - INSERT INTO nmms_monitoring (melding_key, export_datum) - SELECT mld_melding_key, SYSDATE - FROM mld_melding m - WHERE m.mld_melding_status = 6 -- Historie - AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) < - TRUNC (SYSDATE, 'MONTH') - AND m.mld_melding_key NOT IN (SELECT nm.melding_key - FROM nmms_monitoring nm - WHERE nm.melding_key IS NOT NULL); - - COMMIT; + END LOOP; + + + -- zet slave meldingen van samenvallende meldingen ook op verwerkt + FOR rec IN c2 + LOOP + BEGIN + IF rec.mld_melding_status = 6 OR rec.mld_melding_status = 5 -- verwerkt of afgemeld + THEN + BEGIN + mld.setmeldingstatus (rec.mld_melding_key, 6, 4); + END; + END IF; + END; + END LOOP; + + + -- Voeg de entries uit het monitoringsoverzicht toe aan de freeze tabel. + FOR rec IN c3 + LOOP + BEGIN + BEGIN + INSERT INTO nmms_monitoring (melding_key, + afw, + q_vervolg, + indult, + respijt, + ruimte, + object, + thema, + omschrijving, + begin, + gereed, + thtijdstip, + verwerkt, + eenheid, + tht, + wht, + regime, + groep, + typekorting, + basiskorting, + variabelekorting, + uren, + kb, + prestatiekorting, + factor, + kp, + herhalingskorting, + aantal, + kh, + wegingsfactor, + dienst, + stdmelding_key, + totaal, + overlappend, + kinderen, + export_datum) + VALUES (rec.melding_key, + rec.afw, + rec.q_vervolg, + rec.indult, + rec.respijt, + rec.ruimte, + rec.object, + rec.thema, + rec.omschrijving, + rec.begin, + rec.gereed, + rec.thtijdstip, + rec.verwerkt, + rec.eenheid, + rec.tht, + rec.wht, + rec.regime, + rec.groep, + rec.typekorting, + rec.basiskorting, + rec.variabelekorting, + rec.uren, + rec.kb, + rec.prestatiekorting, + rec.factor, + rec.kp, + rec.herhalingskorting, + rec.aantal, + rec.kh, + rec.wegingsfactor, + rec.dienst, + rec.stdmelding_key, + DECODE (rec.indult, 'Ja', 0, rec.totaal), + rec.overlappend, + rec.kinderen, + SYSDATE); + END; + END; + END LOOP; + + INSERT INTO nmms_monitoring (melding_key, export_datum) + SELECT mld_melding_key, SYSDATE + FROM mld_melding m + WHERE m.mld_melding_status = 6 -- Historie + AND fac.gettrackingdate ('MLDAFM', m.mld_melding_key) < + TRUNC (SYSDATE, 'MONTH') + AND m.mld_melding_key NOT IN (SELECT nm.melding_key + FROM nmms_monitoring nm + WHERE nm.melding_key IS NOT NULL); + + COMMIT; + END IF; END nmms_export_freeze_monitoring; / @@ -1601,7 +1711,7 @@ GRANT SELECT ON nmms_v_dwh_opdr_materiaal TO aafm; BEGIN adm.systrackscriptId('$Id$', 0); END; / -BEGIN fac.registercustversion('NMMS', 4); END; +BEGIN fac.registercustversion('NMMS', 5); END; / COMMIT; spool off