BLOS#62336 -- Herinrichting proces TechnischeDienst-opdrachten

svn path=/Customer/trunk/; revision=49505
This commit is contained in:
Jos Migo
2021-01-21 11:37:45 +00:00
parent d768989412
commit d819194fa5

View File

@@ -529,72 +529,169 @@ AS
CREATE OR REPLACE VIEW blos_v_rap_opdrachten_intern CREATE OR REPLACE VIEW blos_v_rap_opdrachten_intern
( (
type, -- Uit Intern bedrijf gekoppeld (=TD BLOS = Poule-opdracht) of via MLDORD aan Persoon / Handyman = Klus-opdracht) TYPE,
mld_opdr_key, MLD_OPDR_KEY,
mld_uitvoerende_key, MLD_UITVOERENDE_KEY,
opdrachtnr, OPDRACHTNR,
opdracht_datum, OPDRACHT_DATUM,
status, STATUS,
melding, MELDING,
behandelaar, BEHANDELAAR,
locatie_plaats, LOCATIE_PLAATS,
locatie_omschrijving, LOCATIE_OMSCHRIJVING,
geplande_aanvang, GEPLANDE_AANVANG,
omschrijving, OMSCHRIJVING,
prs_perslid_key, PRS_PERSLID_KEY,
naam_uitvoerder, NAAM_UITVOERDER,
cluster_blos, CLUSTER_BLOS,
type_locatie, TYPE_LOCATIE,
uren_besteed, UREN_BESTEED,
afmeld_datum, AFMELD_DATUM,
opdracht_type OPDRACHT_TYPE
) )
AS AS
SELECT CASE WHEN mu.type = 'B' THEN 'Poule-opdracht' SELECT CASE
WHEN mu.type = 'P' THEN 'Klus-opdracht' WHEN mu.TYPE = 'B' THEN 'Poule-opdracht'
ELSE '<?>' END WHEN mu.TYPE = 'P' THEN 'Klus-opdracht'
type, ELSE '<?>'
o.mld_opdr_key, END
CASE WHEN mu.type = 'B' THEN o.prs_perslid_key TYPE,
WHEN mu.type = 'P' THEN mu.mld_uitvoerende_key o.mld_opdr_key,
ELSE NULL END CASE
mld_uitvoerende_key, WHEN mu.TYPE = 'B' THEN o.prs_perslid_key
TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr WHEN mu.TYPE = 'P' THEN mu.mld_uitvoerende_key
opdrachtnummer, ELSE NULL
o.mld_opdr_datumbegin, END
DECODE (os.mld_statusopdr_key, 8, DECODE (o.mld_opdr_halted, 1, 'Onderbroken', os.mld_statusopdr_omschrijving), os.mld_statusopdr_omschrijving) status, mld_uitvoerende_key,
std.mld_stdmelding_omschrijving, TO_CHAR (o.mld_melding_key)
COALESCE(p.prs_perslid_naam_full,'<nog geen behandelaar>'), -- BEHANDELAAR || '/'
l.alg_locatie_plaats, || o.mld_opdr_bedrijfopdr_volgnr
l.alg_locatie_omschrijving, opdrachtnummer,
o.mld_opdr_plandatum, o.mld_opdr_datumbegin,
TRIM(regexp_replace(regexp_substr(o.mld_opdr_omschrijving, '(([^ ]*)( |$)*){10}'), '[[:space:]]',' ')) || '...', DECODE (
p.prs_perslid_key, os.mld_statusopdr_key,
mu.naam, 8, DECODE (o.mld_opdr_halted,
(select ud.fac_usrdata_omschr from alg_onrgoedkenmerk k, fac_usrdata ud where k.alg_onrgoed_key = m.mld_alg_locatie_key and fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key and ud.fac_usrtab_key=1 and k.alg_kenmerk_key = 1000), -- kenmerk Cluster 1, 'Onderbroken',
(select ud.fac_usrdata_omschr from alg_onrgoedkenmerk k, fac_usrdata ud where k.alg_onrgoed_key = m.mld_alg_locatie_key and fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key and ud.fac_usrtab_key=2 and k.alg_kenmerk_key = 1002), -- kenmerk Type KDV, BVO, et. os.mld_statusopdr_omschrijving),
(select ko.mld_kenmerkopdr_waarde from mld_kenmerkopdr ko where ko.mld_opdr_key = o.mld_opdr_key and ko.mld_kenmerk_key = 25), -- kenmerk Uren_besteed os.mld_statusopdr_omschrijving)
(select max(ft.fac_tracking_datum) from fac_tracking ft where ft.fac_tracking_refkey = o.mld_opdr_key and ft.fac_srtnotificatie_key = 74), -- MLDAFM status,
ot.mld_typeopdr_omschrijving std.mld_stdmelding_omschrijving,
FROM mld_opdr o, COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>'), -- BEHANDELAAR
mld_melding m, l.alg_locatie_plaats,
mld_typeopdr ot, l.alg_locatie_omschrijving,
prs_v_perslid_fullnames p, o.mld_opdr_plandatum,
ins_tab_discipline d, TRIM (
mld_stdmelding std, REGEXP_REPLACE (
alg_locatie l, REGEXP_SUBSTR (o.mld_opdr_omschrijving,
mld_v_uitvoerende mu, '(([^ ]*)( |$)*){10}'),
mld_statusopdr os '[[:space:]]',
WHERE o.mld_melding_key = m.mld_melding_key(+) ' '))
AND o.prs_perslid_key = p.prs_perslid_key(+) || '...',
AND o.mld_typeopdr_key = ot.mld_typeopdr_key p.prs_perslid_key,
AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten mu.naam,
AND m.mld_stdmelding_key = std.mld_stdmelding_key(+) (SELECT ud.fac_usrdata_omschr
AND std.mld_ins_discipline_key = d.ins_discipline_key(+) FROM alg_onrgoedkenmerk k, fac_usrdata ud
AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie WHERE k.alg_onrgoed_key = m.mld_alg_locatie_key
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) =
AND os.mld_statusopdr_key = o.mld_statusopdr_key ud.fac_usrdata_key
AND mu.intern = 1 ; AND ud.fac_usrtab_key = 1
AND k.alg_kenmerk_key = 1000), -- kenmerk Cluster
(SELECT ud.fac_usrdata_omschr
FROM alg_onrgoedkenmerk k, fac_usrdata ud
WHERE k.alg_onrgoed_key = m.mld_alg_locatie_key
AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = 2
AND k.alg_kenmerk_key = 1002), -- kenmerk Type KDV, BVO, et.
(SELECT ko.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = 25), -- kenmerk Uren_besteed
(SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
AND ft.fac_srtnotificatie_key = 74), -- MLDAFM
ot.mld_typeopdr_omschrijving
FROM mld_opdr o,
mld_melding m,
mld_typeopdr ot,
prs_v_perslid_fullnames p,
ins_tab_discipline d,
mld_stdmelding std,
alg_locatie l,
mld_v_uitvoerende mu,
mld_statusopdr os
WHERE o.mld_melding_key = m.mld_melding_key(+)
AND o.prs_perslid_key = p.prs_perslid_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten
AND m.mld_stdmelding_key = std.mld_stdmelding_key(+)
AND std.mld_ins_discipline_key = d.ins_discipline_key(+)
AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
AND os.mld_statusopdr_key = o.mld_statusopdr_key
AND mu.intern = 1;
-- Notificactiejob voor BLOS vanuit Opdrachten Notities met bepaalde notitie-classificatie voor servicedesk...
-- Flag = 16 (en geen +1 xemail, xmobile)
CREATE OR REPLACE VIEW BLOS_V_NOTI_SERVICEDESK_ORD -- ORD = Orders/Opdrachten
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY
-- XEMAIL,
-- XMOBILE
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
241 -- prs_perslid van persoon Facilitairbeheer Onderhoud met juiste emailadres facilitairbeheer@blos.nl
receiver,
'Opdrachtnotitie bij ' || TO_CHAR(o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) ||
' van ' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
text,
'CUST02'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST02')
fac_srtnotificatie_key,
o.mld_opdr_key
key,
n.mld_opdr_note_key
xkey
FROM mld_melding m,
mld_opdr o,
mld_opdr_note n,
prs_perslid p,
fac_note_group ng
WHERE o.mld_opdr_key = n.mld_opdr_key
AND m.mld_melding_key = o.mld_melding_key
AND n.prs_perslid_key = p.prs_perslid_key
AND n.fac_note_group_key = ng.fac_note_group_key
AND ng.fac_note_group_key = 1 -- 'Notitie voor Facilitair'
AND n.prs_perslid_key NOT IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = 21) -- Servicedesk - Operationeel
AND n.mld_opdr_note_aanmaak >=
COALESCE (
( SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft, fac_srtnotificatie sn
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
AND sn.fac_srtnotificatie_code = 'CUST02'),
SYSDATE - (SELECT COALESCE (fac_notificatie_job_interval, 1) / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'BLOS_V_NOTI_SERVICEDESK_ORD' )
) ;
------ payload end ------ ------ payload end ------