PGHE#68684 -- GBS watchdog en eerste versie monitoring
svn path=/Customer/trunk/; revision=53890
This commit is contained in:
171
PGHE/pghe.sql
171
PGHE/pghe.sql
@@ -38,6 +38,16 @@ AS
|
||||
FUNCTION klant_melding (p_melding_key IN 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;
|
||||
/
|
||||
|
||||
@@ -78,6 +88,7 @@ AS
|
||||
AND std1.mld_stdmelding_key = std2.mld_stdmelding_key)
|
||||
OR
|
||||
( 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_melding_key <> m2.mld_melding_key
|
||||
@@ -194,6 +205,7 @@ AS
|
||||
RETURN NUMBER
|
||||
AS
|
||||
v_klant_melding NUMBER;
|
||||
v_stdmeldinggroep_key NUMBER;
|
||||
BEGIN
|
||||
SELECT DECODE (a.prs_bedrijf_key, 1021, 1, 0) klant_melding -- bedrijfskey van Gemeente Heerlen
|
||||
INTO v_klant_melding
|
||||
@@ -203,11 +215,106 @@ AS
|
||||
WHERE m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_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;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
RETURN 0;
|
||||
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;
|
||||
/
|
||||
|
||||
@@ -352,7 +459,7 @@ CREATE OR REPLACE VIEW pghe_v_monitoring
|
||||
wht_tht,
|
||||
totaal,
|
||||
totaal_z_respijt,
|
||||
totaal_index,
|
||||
totaal_weging,
|
||||
status,
|
||||
afgerond,
|
||||
dienst,
|
||||
@@ -372,26 +479,26 @@ CREATE OR REPLACE VIEW pghe_v_monitoring
|
||||
note
|
||||
)
|
||||
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 (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 (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 (COALESCE (mld_melding_indult, 0), 0, 'Nee', 'Ja'),
|
||||
|| 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') indult,
|
||||
DECODE (g.respijt.tijdsduur,
|
||||
0, NULL,
|
||||
TO_CHAR (ROUND (g.respijt.tijdsduur, 2)))
|
||||
respijt,
|
||||
prs_kostenplaats_nr,
|
||||
alg_locatie_code,
|
||||
alg_gebouw_upper,
|
||||
alg_verdieping_volgnr,
|
||||
prs_kostenplaats_nr kostenplaats,
|
||||
alg_locatie_code locatie,
|
||||
alg_gebouw_upper gebouw,
|
||||
alg_verdieping_volgnr verdieping,
|
||||
ruimte,
|
||||
mld_stdmelding_omschrijving,
|
||||
t_van,
|
||||
mld_stdmelding_omschrijving omschrijving,
|
||||
t_van begin,
|
||||
gereed,
|
||||
thtijdstip,
|
||||
thtijdstip thtijdstip,
|
||||
(SELECT MAX(fac_tracking_datum)
|
||||
FROM fac_tracking
|
||||
WHERE fac_tracking_refkey = m_start --mld_melding_key
|
||||
@@ -420,16 +527,17 @@ AS
|
||||
DECODE (
|
||||
telaat,
|
||||
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)
|
||||
totaal_index,
|
||||
totaal_weging,
|
||||
(SELECT mld_statuses_omschrijving
|
||||
FROM mld_statuses
|
||||
WHERE mld_statuses_key = mld_melding_status),
|
||||
DECODE (mld_melding_afgerond, 1, 'x'),
|
||||
WHERE mld_statuses_key = mld_melding_status) status,
|
||||
DECODE (mld_melding_afgerond, 1, 'x') afgerond,
|
||||
(SELECT prs_dienst_omschrijving
|
||||
FROM prs_dienst
|
||||
WHERE prs_dienst_key = g.prs_dienst_key),
|
||||
WHERE prs_dienst_key = g.prs_dienst_key) dienst,
|
||||
mld_stdmelding_key,
|
||||
mld_ins_discipline_key,
|
||||
overlappend,
|
||||
@@ -439,16 +547,16 @@ AS
|
||||
WHERE COALESCE(m2.mld_melding_parentkey, -1) = m_start
|
||||
GROUP BY m2.mld_melding_parentkey) gekoppeld,
|
||||
wegingsfactor,
|
||||
mld_melding_omschrijving,
|
||||
mld_melding_opmerking,
|
||||
mld_melding_omschrijving melding_omschrijving,
|
||||
mld_melding_opmerking melding_opmerking,
|
||||
klant_melding,
|
||||
(SELECT prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_key = g.prs_bedrijf_key)
|
||||
prs_bedrijf_naam,
|
||||
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1),
|
||||
PCHX.get_kenmerk('MLD', 102, m_start), -- bedrijf die de malus moet betalen
|
||||
ins_srtdiscipline_prefix,
|
||||
bedrijf_naam,
|
||||
DECODE (antedateren + g.respijt.tijdsduur + mld_melding_indult + mld_melding_afgerond, 0, 0, 1) og,
|
||||
PCHX.get_kenmerk('MLD', 102, m_start) bedrijf_malus, -- bedrijf die de malus moet betalen
|
||||
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)
|
||||
AS kenmerken
|
||||
FROM mld_kenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||||
@@ -551,7 +659,7 @@ AS
|
||||
- m.min_t_sla.tijdsduur,
|
||||
m.max_t_actual.eenheid)
|
||||
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?
|
||||
(SELECT COUNT ( * )
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
@@ -582,8 +690,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 (UPPER (SUBSTR (sd.ins_srtdiscipline_prefix, 1, 1)) = 'Q'
|
||||
OR (PCHX.get_user = 'PCHA' AND d.ins_discipline_key in (232, 220)) -- V en G, W en R
|
||||
AND ( UPPER (SUBSTR (stdg.mld_stdmeldinggroep_naam, 1, 1)) =
|
||||
'P' -- Prestatiemelding
|
||||
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)
|
||||
-- anders alleen storingen ingelegd door klant medewerkers
|
||||
@@ -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 ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user