ASLE#38748 -- Verbeteringen implementatie NH punt 4 en 7
svn path=/Customer/trunk/; revision=32662
This commit is contained in:
@@ -76,6 +76,7 @@ CREATE OR REPLACE VIEW asle_v_schoonmaak_bron
|
||||
zone,
|
||||
compartiment,
|
||||
opmerking_sup,
|
||||
dnd,
|
||||
plan_start,
|
||||
plan_eind,
|
||||
groep_naam
|
||||
@@ -101,6 +102,12 @@ AS
|
||||
r.zone,
|
||||
r.compartiment,
|
||||
r.opmerking_sup,
|
||||
COALESCE(
|
||||
(SELECT fac.safe_to_number (mld_kenmerkopdr_waarde)
|
||||
FROM mld_kenmerkopdr ko
|
||||
WHERE ko.mld_opdr_key = o.mld_opdr_key AND mld_kenmerk_key = 201),
|
||||
0)
|
||||
dnd,
|
||||
(SELECT fac.safe_to_date (mld_kenmerkopdr_waarde,
|
||||
'dd-mm-yyyy hh24:mi')
|
||||
FROM mld_kenmerkopdr ko
|
||||
@@ -248,6 +255,7 @@ AS
|
||||
AND alg_kenmerk_key = 1080) os -- opmerking voor de schoonmaker
|
||||
WHERE o.mld_statusopdr_key IN (3, 5, 8)
|
||||
AND o.mld_opdr_key = s.mld_opdr_key
|
||||
AND s.dnd = 0
|
||||
AND TRUNC (COALESCE (s.plan_start, o.mld_opdr_einddatum)) =
|
||||
TRUNC (SYSDATE)
|
||||
AND o.mld_opdr_key = ks.mld_opdr_key(+)
|
||||
@@ -270,7 +278,7 @@ AS
|
||||
timestamp,
|
||||
prs_perslid_naam,
|
||||
alg_ruimte_nr,
|
||||
type_schoonmaak,
|
||||
type_schoonmaak || DECODE(dnd, 0, NULL, ' [DND]'),
|
||||
status
|
||||
|| ' - '
|
||||
|| TO_CHAR (plan_eind, 'hh24:mi')
|
||||
@@ -322,7 +330,8 @@ AS
|
||||
COALESCE (plan_eind, SYSDATE))
|
||||
plan_eind,
|
||||
mld_opdr_key,
|
||||
mld_melding_key
|
||||
mld_melding_key,
|
||||
dnd
|
||||
FROM (SELECT prs_perslid_naam,
|
||||
COALESCE(plan_start, b.mld_melding_einddatum),
|
||||
b.mld_melding_einddatum,
|
||||
@@ -335,7 +344,8 @@ AS
|
||||
b.mld_opdr_key,
|
||||
b.mld_melding_key,
|
||||
b.mld_typeopdr_key,
|
||||
ks.mld_kenmerkopdr_waarde
|
||||
ks.mld_kenmerkopdr_waarde,
|
||||
b.dnd
|
||||
FROM asle_v_schoonmaak_bron b,
|
||||
mld_statusopdr so,
|
||||
mld_melding m,
|
||||
@@ -398,7 +408,7 @@ AS
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_key = s.prs_perslid_key) naam,
|
||||
s.prs_perslid_key,
|
||||
mld_stdmelding_omschrijving,
|
||||
mld_stdmelding_omschrijving || DECODE(dnd, 0, NULL, ' [DND]'),
|
||||
mld_melding_einddatum,
|
||||
listagg (mld_typeopdr_omschrijving, CHR (10))
|
||||
WITHIN GROUP (ORDER BY mld_opdr_bedrijfopdr_volgnr)
|
||||
@@ -445,7 +455,8 @@ AS
|
||||
prs_perslid_key,
|
||||
mld_stdmelding_omschrijving,
|
||||
mld_melding_einddatum,
|
||||
alg_ruimte_nr;
|
||||
alg_ruimte_nr,
|
||||
dnd;
|
||||
|
||||
CREATE OR REPLACE VIEW asle_v_rap_schoonmaak_sched
|
||||
(
|
||||
@@ -476,7 +487,7 @@ AS
|
||||
groep_naam,
|
||||
s.alg_ruimte_key
|
||||
FROM asle_v_schoonmaak s, asle_imp_werkschema w, prs_perslid p
|
||||
WHERE TRUNC (mld_melding_einddatum) > TRUNC (SYSDATE - 7)
|
||||
WHERE TRUNC (mld_melding_einddatum) > TRUNC (SYSDATE - 28)
|
||||
AND TRUNC (mld_melding_einddatum) = TRUNC (start_inzet)
|
||||
AND s.prs_perslid_key = w.prs_perslid_key
|
||||
AND s.prs_perslid_key = p.prs_perslid_key
|
||||
@@ -874,6 +885,12 @@ AS
|
||||
AND s.mld_stdmelding_omschrijving = 'DND'
|
||||
AND s.mld_opdr_key IS NOT NULL;
|
||||
|
||||
CREATE OR REPLACE VIEW asle_v_uitvoerende_vandaag
|
||||
AS
|
||||
SELECT DISTINCT pf.prs_perslid_key, prs_perslid_naam_friendly
|
||||
FROM prs_v_perslid_fullnames pf, mld_opdr o
|
||||
WHERE pf.prs_perslid_key = o.mld_uitvoerende_keys
|
||||
AND TRUNC (mld_opdr_datumbegin) = TRUNC (SYSDATE);
|
||||
|
||||
-- View voor John om data uit FACILITOR te analyseren.
|
||||
CREATE OR REPLACE VIEW asle_v_rap_schoonm_result_det
|
||||
@@ -1062,11 +1079,14 @@ AS
|
||||
p_naar VARCHAR2)
|
||||
RETURN NUMBER;
|
||||
|
||||
FUNCTION find_next_room (p_import_key IN NUMBER,
|
||||
p_locatie_key IN NUMBER,
|
||||
p_date IN DATE,
|
||||
p_perslid_key IN NUMBER,
|
||||
p_tolerantie IN NUMBER)
|
||||
FUNCTION find_next_room (p_import_key IN NUMBER,
|
||||
p_locatie_key IN NUMBER,
|
||||
p_date IN DATE,
|
||||
p_perslid_key IN NUMBER,
|
||||
p_tolerantie IN NUMBER,
|
||||
p_MinRoomForFloorChange IN NUMBER,
|
||||
p_StartTimeMechanism IN NUMBER,
|
||||
p_WaitTimeForFloorChange IN NUMBER)
|
||||
RETURN NUMBER;
|
||||
|
||||
PROCEDURE schedule_stats (p_import_key IN NUMBER,
|
||||
@@ -1303,11 +1323,14 @@ AS
|
||||
|
||||
|
||||
|
||||
FUNCTION find_next_room (p_import_key IN NUMBER,
|
||||
p_locatie_key IN NUMBER,
|
||||
p_date IN DATE,
|
||||
p_perslid_key IN NUMBER,
|
||||
p_tolerantie IN NUMBER)
|
||||
FUNCTION find_next_room (p_import_key IN NUMBER,
|
||||
p_locatie_key IN NUMBER,
|
||||
p_date IN DATE,
|
||||
p_perslid_key IN NUMBER,
|
||||
p_tolerantie IN NUMBER,
|
||||
p_MinRoomForFloorChange IN NUMBER,
|
||||
p_StartTimeMechanism IN NUMBER,
|
||||
p_WaitTimeForFloorChange IN NUMBER)
|
||||
RETURN NUMBER
|
||||
AS
|
||||
CURSOR c_find_room (
|
||||
@@ -1538,9 +1561,9 @@ AS
|
||||
-- *** als nu blijkt dat we voor <20><>n kamer een zonewisseling over gaan, dan toch maar even proberen
|
||||
-- of ik op mijn eigen zone met een langere (leegloop) tijd nog iets kan schoonmaken
|
||||
-- dit wordt pas interessant na half tien
|
||||
IF v_rooms_that_can_be_cleaned <2 AND to_number(to_char(v_last_clean, 'hh24mi')) > 930
|
||||
IF v_rooms_that_can_be_cleaned < p_MinRoomForFloorChange AND to_number(to_char(v_last_clean, 'hh24mi')) > p_StartTimeMechanism
|
||||
THEN
|
||||
FOR rec IN c_find_room (v_last_clean, v_last_zone, 'Match', 15)
|
||||
FOR rec IN c_find_room (v_last_clean, v_last_zone, 'Match', p_WaitTimeForFloorChange)
|
||||
LOOP
|
||||
BEGIN
|
||||
v_found_mld := rec.mld_melding_key;
|
||||
@@ -2410,6 +2433,9 @@ AS
|
||||
v_melding_key mld_melding.mld_melding_key%TYPE;
|
||||
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||||
v_tolerantie NUMBER(3);
|
||||
v_MinRoomForFloorChange NUMBER(3);
|
||||
v_StartTimeMechanism NUMBER(4);
|
||||
v_WaitTimeForFloorChange NUMBER(3);
|
||||
v_ruimte_aanduiding VARCHAR2(100);
|
||||
c_mld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE
|
||||
:= mld_t_uitvoertijd (1, 'D');
|
||||
@@ -2727,6 +2753,32 @@ BEGIN
|
||||
FROM asle_v_schoonmaak
|
||||
WHERE TRUNC (mld_melding_einddatum) = TRUNC(SYSDATE+p_offset);
|
||||
|
||||
-- Een aantal parameters in het planningsprocess zijn configureerbaar
|
||||
-- MinRoomForFloorChange Minimaal aantal kamers op de nieuwe zone om niet te wachten (default 2)
|
||||
-- StartTimeMechanism Begintijd voor het mechanisme (default: 9:30)
|
||||
-- WaitTimeForFloorChange Wachttijd om te kijken bij minder dan MinRoomForFloorChange kamers op nieuwe zone of er op deze zone nog kamers zijn. (Default 15 min)
|
||||
|
||||
SELECT MIN(TRUNC(fac_usrdata_prijs))
|
||||
INTO v_MinRoomForFloorChange
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrdata_code = 'MinRoomForFloorChange'
|
||||
AND fac_usrdata_verwijder IS NULL;
|
||||
IF v_MinRoomForFloorChange IS NULL THEN v_MinRoomForFloorChange := 2; END IF;
|
||||
|
||||
SELECT MIN(TRUNC(fac_usrdata_prijs))
|
||||
INTO v_StartTimeMechanism
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrdata_code = 'StartTimeMechanism'
|
||||
AND fac_usrdata_verwijder IS NULL;
|
||||
IF v_StartTimeMechanism IS NULL THEN v_StartTimeMechanism := 930; END IF;
|
||||
|
||||
SELECT MIN(TRUNC(fac_usrdata_prijs))
|
||||
INTO v_WaitTimeForFloorChange
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrdata_code = 'WaitTimeForFloorChange'
|
||||
AND fac_usrdata_verwijder IS NULL;
|
||||
IF v_WaitTimeForFloorChange IS NULL THEN v_WaitTimeForFloorChange := 15; END IF;
|
||||
|
||||
WHILE v_room_planned <> 0 AND v_loopcount < 1000
|
||||
LOOP
|
||||
v_room_planned := 0;
|
||||
@@ -2739,7 +2791,10 @@ BEGIN
|
||||
rec.alg_locatie_key,
|
||||
TRUNC (rec.last_clean),
|
||||
rec.prs_perslid_key,
|
||||
v_tolerantie);
|
||||
v_tolerantie,
|
||||
v_MinRoomForFloorChange,
|
||||
v_StartTimeMechanism,
|
||||
v_WaitTimeForFloorChange);
|
||||
|
||||
IF v_opdr_key <> -1 OR v_opdr_key IS NULL
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user