PNBR#64700: Monitoring werkplekbezetting in Facilitor
svn path=/Customer/trunk/; revision=50466
This commit is contained in:
@@ -8756,7 +8756,87 @@ AS
|
|||||||
(SELECT fac_notificatie_job_nextrun
|
(SELECT fac_notificatie_job_nextrun
|
||||||
FROM fac_notificatie_job
|
FROM fac_notificatie_job
|
||||||
WHERE fac_notificatie_job_view = 'PNBR_V_NOTI_OGD');
|
WHERE fac_notificatie_job_view = 'PNBR_V_NOTI_OGD');
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW PNBR_V_STATUSVERLOOP_WPBEZ
|
||||||
|
AS
|
||||||
|
SELECT d.ins_deel_omschrijving,
|
||||||
|
d.ins_deel_key,
|
||||||
|
r.alg_ruimte_key,
|
||||||
|
r.alg_ruimte_nr,
|
||||||
|
stat_his.ranking,
|
||||||
|
stat_his.ins_deel_state,
|
||||||
|
DECODE (stat_his.ins_deel_state,
|
||||||
|
0, 'vrij',
|
||||||
|
1, 'bezet',
|
||||||
|
99, 'storing') status,
|
||||||
|
stat_his.ins_deel_statedate,
|
||||||
|
COALESCE (stat_his.duur_status,
|
||||||
|
ROUND ((SYSDATE - stat_his.ins_deel_statedate) * 1440)) duur_status
|
||||||
|
FROM ins_deel d,
|
||||||
|
alg_ruimte r,
|
||||||
|
(SELECT ranking,
|
||||||
|
ins_deel_key,
|
||||||
|
ins_deel_state,
|
||||||
|
ins_deel_statedate,
|
||||||
|
( ins_deel_statedate
|
||||||
|
- LAG (ins_deel_statedate)
|
||||||
|
OVER (PARTITION BY ins_deel_key ORDER BY ranking))
|
||||||
|
* -1440 AS duur_status --- duur van de status in minuten
|
||||||
|
FROM (SELECT ins_deel_key,
|
||||||
|
ins_deel_state,
|
||||||
|
ins_deel_statedate,
|
||||||
|
RANK ()
|
||||||
|
OVER (
|
||||||
|
PARTITION BY ins_deel_key
|
||||||
|
ORDER BY ins_deel_key, ins_deel_statedate DESC) AS ranking
|
||||||
|
FROM ins_deel_state_history) rank_state) stat_his
|
||||||
|
WHERE d.ins_deel_key = stat_his.ins_deel_key
|
||||||
|
AND d.ins_alg_ruimte_key = r.alg_ruimte_key;
|
||||||
|
|
||||||
|
--- bezet wordt direct bezet
|
||||||
|
--- tussen 15 en 60 minuten vrij zien we als medewerker afwezig
|
||||||
|
--- vrij nemen we pas weer over als deze status langer dan een uur duurt
|
||||||
|
CREATE OR REPLACE VIEW pnbr_v_wpbez
|
||||||
|
AS
|
||||||
|
SELECT DISTINCT
|
||||||
|
d.ins_deel_omschrijving,
|
||||||
|
d.alg_ruimte_key,
|
||||||
|
d.ins_deel_key,
|
||||||
|
d.alg_ruimte_nr,
|
||||||
|
CASE
|
||||||
|
WHEN current_state.ins_deel_state = 0
|
||||||
|
AND current_state.duur_status > 59
|
||||||
|
THEN
|
||||||
|
'vrij'
|
||||||
|
WHEN current_state.ins_deel_state = 0
|
||||||
|
AND current_state.duur_status < 60
|
||||||
|
AND current_state.duur_status > 15
|
||||||
|
THEN
|
||||||
|
'medewerker afwezig'
|
||||||
|
WHEN current_state.ins_deel_state = 99
|
||||||
|
THEN
|
||||||
|
'storing'
|
||||||
|
ELSE
|
||||||
|
'bezet'
|
||||||
|
END def_status
|
||||||
|
FROM pnbr_v_statusverloop_wpbez d,
|
||||||
|
(SELECT ranking,
|
||||||
|
ins_deel_key,
|
||||||
|
ins_deel_state,
|
||||||
|
ins_deel_statedate,
|
||||||
|
ROUND ((SYSDATE - ins_deel_statedate) * 1440) AS duur_status --- duur van de status in minuten
|
||||||
|
FROM (SELECT ins_deel_key,
|
||||||
|
ins_deel_state,
|
||||||
|
ins_deel_statedate,
|
||||||
|
RANK ()
|
||||||
|
OVER (
|
||||||
|
PARTITION BY ins_deel_key
|
||||||
|
ORDER BY
|
||||||
|
ins_deel_key, ins_deel_statedate DESC) AS ranking
|
||||||
|
FROM ins_deel_state_history) rank_state
|
||||||
|
WHERE ranking = 1) current_state
|
||||||
|
WHERE d.ins_deel_key = current_state.ins_deel_key;
|
||||||
|
|
||||||
------ payload end ------
|
------ payload end ------
|
||||||
|
|
||||||
SET DEFINE OFF
|
SET DEFINE OFF
|
||||||
|
|||||||
Reference in New Issue
Block a user