PNBR#64700: Monitoring werkplekbezetting in Facilitor
svn path=/Customer/trunk/; revision=50466
This commit is contained in:
@@ -8757,6 +8757,86 @@ AS
|
||||
FROM fac_notificatie_job
|
||||
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 ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user