PGHE#68684 -- GBS watchdog en eerste versie monitoring
svn path=/Customer/trunk/; revision=53890
This commit is contained in:
173
PGHE/pghe.sql
173
PGHE/pghe.sql
@@ -38,6 +38,16 @@ AS
|
|||||||
FUNCTION klant_melding (p_melding_key IN NUMBER)
|
FUNCTION klant_melding (p_melding_key IN NUMBER)
|
||||||
RETURN NUMBER;
|
RETURN NUMBER;
|
||||||
|
|
||||||
|
FUNCTION get_weging (p_startdatum IN DATE, p_stdmeldinggroep_naam IN VARCHAR2)
|
||||||
|
RETURN NUMBER;
|
||||||
|
|
||||||
|
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
||||||
|
pto IN VARCHAR2,
|
||||||
|
psubject IN VARCHAR2,
|
||||||
|
pbody IN VARCHAR2,
|
||||||
|
psessionid IN VARCHAR2,
|
||||||
|
pemailkey IN NUMBER);
|
||||||
|
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -78,6 +88,7 @@ AS
|
|||||||
AND std1.mld_stdmelding_key = std2.mld_stdmelding_key)
|
AND std1.mld_stdmelding_key = std2.mld_stdmelding_key)
|
||||||
OR
|
OR
|
||||||
( std1.mld_stdmeldinggroep_key <> 1 -- Prestatiekortingen
|
( std1.mld_stdmeldinggroep_key <> 1 -- Prestatiekortingen
|
||||||
|
AND std1.mld_Stdmeldinggroep_key <> 8 -- Losse voorzieningen worden niet samengenomen
|
||||||
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
|
AND m1.mld_alg_onroerendgoed_keys = m2.mld_alg_onroerendgoed_keys) -- op dezelfde ruimte
|
||||||
)
|
)
|
||||||
AND m1.mld_melding_key <> m2.mld_melding_key
|
AND m1.mld_melding_key <> m2.mld_melding_key
|
||||||
@@ -194,6 +205,7 @@ AS
|
|||||||
RETURN NUMBER
|
RETURN NUMBER
|
||||||
AS
|
AS
|
||||||
v_klant_melding NUMBER;
|
v_klant_melding NUMBER;
|
||||||
|
v_stdmeldinggroep_key NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT DECODE (a.prs_bedrijf_key, 1021, 1, 0) klant_melding -- bedrijfskey van Gemeente Heerlen
|
SELECT DECODE (a.prs_bedrijf_key, 1021, 1, 0) klant_melding -- bedrijfskey van Gemeente Heerlen
|
||||||
INTO v_klant_melding
|
INTO v_klant_melding
|
||||||
@@ -203,11 +215,106 @@ AS
|
|||||||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||||
AND m.mld_melding_key = p_melding_key;
|
AND m.mld_melding_key = p_melding_key;
|
||||||
|
|
||||||
|
-- Prestatiekortingen worden altijd berekend ook als ze door RHHR zelf gemeld zijn.
|
||||||
|
IF v_klant_melding = 0 THEN
|
||||||
|
SELECT mld_stdmeldinggroep_key
|
||||||
|
INTO v_stdmeldinggroep_key
|
||||||
|
FROM mld_melding m, mld_stdmelding std
|
||||||
|
WHERE std.mld_stdmelding_key = m.mld_stdmelding_key
|
||||||
|
AND m.mld_melding_key = p_melding_key;
|
||||||
|
|
||||||
|
IF v_stdmeldinggroep_key = 1 THEN --- ToDo: Alle vakgroeptypen toevoegen.
|
||||||
|
RETURN 1;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
RETURN v_klant_melding;
|
RETURN v_klant_melding;
|
||||||
EXCEPTION WHEN NO_DATA_FOUND
|
EXCEPTION WHEN NO_DATA_FOUND
|
||||||
THEN
|
THEN
|
||||||
RETURN 0;
|
RETURN 0;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
FUNCTION get_weging (p_startdatum IN DATE, p_stdmeldinggroep_naam IN VARCHAR2)
|
||||||
|
RETURN NUMBER
|
||||||
|
AS
|
||||||
|
v_mld_stdmelding_regime NUMBER;
|
||||||
|
v_norm_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL);
|
||||||
|
v_beginuur NUMBER;
|
||||||
|
v_einduur NUMBER;
|
||||||
|
v_werkdagen NUMBER;
|
||||||
|
BEGIN
|
||||||
|
IF SUBSTR(p_stdmeldinggroep_naam,1,15) = 'Beschikbaarheid' -- TODO conditie metingen toevoegen
|
||||||
|
OR p_stdmeldinggroep_naam = 'Functionaliteit voorziening'
|
||||||
|
THEN
|
||||||
|
CASE WHEN p_startdatum BETWEEN TO_DATE('20210101', 'yyyymmdd') AND TO_DATE('20270101', 'yyyymmdd')
|
||||||
|
THEN RETURN 1;
|
||||||
|
WHEN p_startdatum BETWEEN TO_DATE('20270101', 'yyyymmdd') AND TO_DATE('20320101', 'yyyymmdd')
|
||||||
|
THEN RETURN 0.85;
|
||||||
|
WHEN p_startdatum BETWEEN TO_DATE('20320101', 'yyyymmdd') AND TO_DATE('20370101', 'yyyymmdd')
|
||||||
|
THEN RETURN 0.7;
|
||||||
|
ELSE
|
||||||
|
RETURN 0;
|
||||||
|
END CASE;
|
||||||
|
ELSE
|
||||||
|
RETURN 1;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
PROCEDURE mail_gbs_melding(pfrom IN VARCHAR2,
|
||||||
|
pto IN VARCHAR2,
|
||||||
|
psubject IN VARCHAR2,
|
||||||
|
pbody IN VARCHAR2,
|
||||||
|
psessionid IN VARCHAR2,
|
||||||
|
pemailkey IN NUMBER)
|
||||||
|
|
||||||
|
AS
|
||||||
|
|
||||||
|
v_errormsg VARCHAR2 (1000);
|
||||||
|
v_errorhint VARCHAR2 (1000);
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
|
||||||
|
v_volgnr NUMBER;
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
IF psubject = 'Watchdog Alarm'
|
||||||
|
THEN
|
||||||
|
UPDATE fac_usrdata
|
||||||
|
SET fac_usrdata_vervaldatum = SYSDATE
|
||||||
|
WHERE fac_usrdata_key = 181; -- Watchdog
|
||||||
|
ELSE
|
||||||
|
UPDATE fac_usrdata
|
||||||
|
SET fac_usrdata_vervaldatum = SYSDATE
|
||||||
|
WHERE fac_usrdata_key = 60; -- Laatst ontvangen bericht
|
||||||
|
|
||||||
|
v_errorhint := 'Bepaal volgnummer';
|
||||||
|
SELECT MAX(fac_rapport_volgnr)
|
||||||
|
INTO v_volgnr
|
||||||
|
FROM fac_rapport
|
||||||
|
WHERE fac_rapport_node = 'GBS_MELDING';
|
||||||
|
|
||||||
|
v_errorhint := 'Bewaar mail ' || v_volgnr;
|
||||||
|
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
|
||||||
|
VALUES ('GBS_MELDING', v_volgnr + 1, pfrom || CHR (10) || psubject || CHR (10) || pbody);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
EXCEPTION WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||||
|
fac.writelog ('GBS_MELDING', 'E', v_errormsg, v_errorhint);
|
||||||
|
|
||||||
|
INSERT INTO fac_result (fac_result_sessionid,
|
||||||
|
fac_result_naam,
|
||||||
|
fac_result_waarde)
|
||||||
|
VALUES (psessionid,
|
||||||
|
'errormsg',
|
||||||
|
'Fout bij verwerken GBS bericht: ' || psubject);
|
||||||
|
END;
|
||||||
|
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -352,7 +459,7 @@ CREATE OR REPLACE VIEW pghe_v_monitoring
|
|||||||
wht_tht,
|
wht_tht,
|
||||||
totaal,
|
totaal,
|
||||||
totaal_z_respijt,
|
totaal_z_respijt,
|
||||||
totaal_index,
|
totaal_weging,
|
||||||
status,
|
status,
|
||||||
afgerond,
|
afgerond,
|
||||||
dienst,
|
dienst,
|
||||||
@@ -372,26 +479,26 @@ CREATE OR REPLACE VIEW pghe_v_monitoring
|
|||||||
note
|
note
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
SELECT m_start, --mld_melding_key,
|
SELECT m_start melding_key, --mld_melding_key,
|
||||||
DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
|
DECODE (antedateren, 0, '', 'T') -- de begintijd of eindtijd van de melding is aangepast
|
||||||
|| DECODE (g.respijt.tijdsduur, 0, '', 'R') -- er is een respijt ingevuld
|
|| DECODE (g.respijt.tijdsduur, 0, '', 'R') -- er is een respijt ingevuld
|
||||||
|| DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
|
|| DECODE (mld_melding_indult, 1, 'I', '') -- indult is aangevinkt dus melding doet niet mee
|
||||||
|| DECODE (niet_overlappen, 1, 'O', '') -- melding is gemarkeerd als zijnde niet te overlappen met een andere melding
|
|| DECODE (niet_overlappen, 1, 'O', '') -- melding is gemarkeerd als zijnde niet te overlappen met een andere melding
|
||||||
|| DECODE (aantal_beschikb, 0, '', 'B'), -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
|
|| DECODE (aantal_beschikb, 0, '', 'B') afw, -- binnen de looptijd van de melding is er ook een beschikbaarheidsmelding in dezelfde ruimte
|
||||||
DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja'),
|
DECODE (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja') indult,
|
||||||
DECODE (g.respijt.tijdsduur,
|
DECODE (g.respijt.tijdsduur,
|
||||||
0, NULL,
|
0, NULL,
|
||||||
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
|
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
|
||||||
respijt,
|
respijt,
|
||||||
prs_kostenplaats_nr,
|
prs_kostenplaats_nr kostenplaats,
|
||||||
alg_locatie_code,
|
alg_locatie_code locatie,
|
||||||
alg_gebouw_upper,
|
alg_gebouw_upper gebouw,
|
||||||
alg_verdieping_volgnr,
|
alg_verdieping_volgnr verdieping,
|
||||||
ruimte,
|
ruimte,
|
||||||
mld_stdmelding_omschrijving,
|
mld_stdmelding_omschrijving omschrijving,
|
||||||
t_van,
|
t_van begin,
|
||||||
gereed,
|
gereed,
|
||||||
thtijdstip,
|
thtijdstip thtijdstip,
|
||||||
(SELECT MAX(fac_tracking_datum)
|
(SELECT MAX(fac_tracking_datum)
|
||||||
FROM fac_tracking
|
FROM fac_tracking
|
||||||
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
||||||
@@ -420,16 +527,17 @@ AS
|
|||||||
DECODE (
|
DECODE (
|
||||||
telaat,
|
telaat,
|
||||||
1,
|
1,
|
||||||
coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk)), -- Alleen als dagen x24!
|
(coalesce(bk,0) + DECODE(vk, null, 0, (TRUNC (g.uitloop.tijdsduur/DECODE(g.thtsla.tijdsduur, 0, 0.1, g.thtsla.tijdsduur)) * vk))) * -- Alleen als dagen x24!
|
||||||
|
wegingsfactor,
|
||||||
NULL)
|
NULL)
|
||||||
totaal_index,
|
totaal_weging,
|
||||||
(SELECT mld_statuses_omschrijving
|
(SELECT mld_statuses_omschrijving
|
||||||
FROM mld_statuses
|
FROM mld_statuses
|
||||||
WHERE mld_statuses_key = mld_melding_status),
|
WHERE mld_statuses_key = mld_melding_status) status,
|
||||||
DECODE (mld_melding_afgerond, 1, 'x'),
|
DECODE (mld_melding_afgerond, 1, 'x') afgerond,
|
||||||
(SELECT prs_dienst_omschrijving
|
(SELECT prs_dienst_omschrijving
|
||||||
FROM prs_dienst
|
FROM prs_dienst
|
||||||
WHERE prs_dienst_key = g.prs_dienst_key),
|
WHERE prs_dienst_key = g.prs_dienst_key) dienst,
|
||||||
mld_stdmelding_key,
|
mld_stdmelding_key,
|
||||||
mld_ins_discipline_key,
|
mld_ins_discipline_key,
|
||||||
overlappend,
|
overlappend,
|
||||||
@@ -439,16 +547,16 @@ AS
|
|||||||
WHERE COALESCE(m2.mld_melding_parentkey, -1) = m_start
|
WHERE COALESCE(m2.mld_melding_parentkey, -1) = m_start
|
||||||
GROUP BY m2.mld_melding_parentkey) gekoppeld,
|
GROUP BY m2.mld_melding_parentkey) gekoppeld,
|
||||||
wegingsfactor,
|
wegingsfactor,
|
||||||
mld_melding_omschrijving,
|
mld_melding_omschrijving melding_omschrijving,
|
||||||
mld_melding_opmerking,
|
mld_melding_opmerking melding_opmerking,
|
||||||
klant_melding,
|
klant_melding,
|
||||||
(SELECT prs_bedrijf_naam
|
(SELECT prs_bedrijf_naam
|
||||||
FROM prs_bedrijf b
|
FROM prs_bedrijf b
|
||||||
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
|
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
|
||||||
prs_bedrijf_naam,
|
bedrijf_naam,
|
||||||
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1),
|
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1) og,
|
||||||
PCHX.get_kenmerk('MLD', 102, m_start), -- bedrijf die de malus moet betalen
|
PCHX.get_kenmerk('MLD', 102, m_start) bedrijf_malus, -- bedrijf die de malus moet betalen
|
||||||
ins_srtdiscipline_prefix,
|
ins_srtdiscipline_prefix prefix,
|
||||||
(SELECT listagg (mld_srtkenmerk_omschrijving || ': ' || PCHX.get_kenmerk ('MLD',k.mld_kenmerk_key, m_start), chr(10)) WITHIN GROUP (ORDER BY k.mld_kenmerk_volgnummer)
|
(SELECT listagg (mld_srtkenmerk_omschrijving || ': ' || PCHX.get_kenmerk ('MLD',k.mld_kenmerk_key, m_start), chr(10)) WITHIN GROUP (ORDER BY k.mld_kenmerk_volgnummer)
|
||||||
AS kenmerken
|
AS kenmerken
|
||||||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||||||
@@ -551,7 +659,7 @@ AS
|
|||||||
- m.min_t_sla.tijdsduur,
|
- m.min_t_sla.tijdsduur,
|
||||||
m.max_t_actual.eenheid)
|
m.max_t_actual.eenheid)
|
||||||
uitloop_z_respijt, -- hoeveel te laat
|
uitloop_z_respijt, -- hoeveel te laat
|
||||||
sr.alg_srtruimte_prijs4 wegingsfactor, -- wegingsfactor bij soortruimte
|
pghe.get_weging(m.t_van, stdg.mld_stdmeldinggroep_naam) wegingsfactor, -- Afhankelijk van de stdmeldinggroep en de periode
|
||||||
-- is de tijd van de melding aangepast?
|
-- is de tijd van de melding aangepast?
|
||||||
(SELECT COUNT ( * )
|
(SELECT COUNT ( * )
|
||||||
FROM fac_tracking t, fac_srtnotificatie sn
|
FROM fac_tracking t, fac_srtnotificatie sn
|
||||||
@@ -582,9 +690,10 @@ AS
|
|||||||
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||||||
AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
|
AND m.mld_alg_onroerendgoed_keys = rg.alg_ruimte_key(+)
|
||||||
AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
AND rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
|
||||||
AND (UPPER (SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) = 'Q'
|
AND ( UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) =
|
||||||
OR (PCHX.get_user = 'PCHA' AND d.ins_discipline_key in (232, 220)) -- V en G, W en R
|
'P' -- Prestatiemelding
|
||||||
OR klant_melding = 1)
|
OR d.ins_discipline_key IN (86, 90) -- V en G, W en R
|
||||||
|
OR klant_melding = 1)
|
||||||
-- meldingen op inspecties worden altijd getoond (Kq)
|
-- meldingen op inspecties worden altijd getoond (Kq)
|
||||||
-- anders alleen storingen ingelegd door klant medewerkers
|
-- anders alleen storingen ingelegd door klant medewerkers
|
||||||
-- alleen meldingen waarvoor een malus geldt
|
-- alleen meldingen waarvoor een malus geldt
|
||||||
@@ -1511,6 +1620,18 @@ END;
|
|||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
|
-- Rapport om de sychronisatie status van de koppeling op de portal te tonen.
|
||||||
|
CREATE OR REPLACE VIEW pghe_v_rap_gbs_status_info
|
||||||
|
(
|
||||||
|
item_key,
|
||||||
|
item,
|
||||||
|
datum
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT fac_usrdata_key, fac_usrdata_code, fac_usrdata_vervaldatum
|
||||||
|
FROM fac_usrdata
|
||||||
|
WHERE fac_usrtab_key = 60;
|
||||||
|
|
||||||
------ payload end ------
|
------ payload end ------
|
||||||
|
|
||||||
SET DEFINE OFF
|
SET DEFINE OFF
|
||||||
|
|||||||
Reference in New Issue
Block a user