AASA#70046 -- Assetmanagement voor SABIC inrichten
svn path=/Customer/trunk/; revision=54435
This commit is contained in:
@@ -20,7 +20,98 @@ SET DEFINE OFF
|
||||
-- script om dagelijks terugkerende scripts aan te roepen.
|
||||
CREATE OR REPLACE PROCEDURE aasa_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||||
AS
|
||||
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT ins_deel_omschrijving,
|
||||
ins_deel_mjb_score1,
|
||||
ins_deel_mjb_score2,
|
||||
ins_srtcontroledl_xcp_key,
|
||||
(SELECT ins_kenmerkdeel_waarde
|
||||
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
|
||||
WHERE kd.ins_deel_key = d.ins_deel_key
|
||||
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||||
AND sk.ins_srtkenmerk_omschrijving = 'Kritische asset')
|
||||
kritisch,
|
||||
(SELECT TO_CHAR (ins_deelsrtcontrole_datum_org, 'YYYY')
|
||||
FROM ins_deelsrtcontrole dsc
|
||||
WHERE dsc.ins_deel_key = d.ins_deel_key
|
||||
AND dsc.ins_srtcontrole_key = x.ins_srtcontrole_key
|
||||
AND dsc.ins_deelsrtcontrole_status = 0)
|
||||
orgdatum,
|
||||
COALESCE (fac.nextcyclusdate (
|
||||
COALESCE (
|
||||
(SELECT MAX (ins_deelsrtcontrole_datum)
|
||||
FROM ins_deelsrtcontrole dsc
|
||||
WHERE ins_deelsrtcontrole_status <> 0
|
||||
AND dsc.ins_deel_key =
|
||||
d.ins_deel_key
|
||||
AND dsc.ins_srtcontrole_key =
|
||||
x.ins_srtcontrole_key),
|
||||
DECODE (x.ins_srtcontroledl_xcp_startdat,
|
||||
NULL, d.ins_deel_aanmaak,
|
||||
TO_DATE (NULL))),
|
||||
1, -- interval
|
||||
ins_srtcontroledl_xcp_eenheid,
|
||||
ins_srtcontroledl_xcp_periode,
|
||||
ins_srtcontroledl_xcp_bits,
|
||||
1,
|
||||
1),
|
||||
ins_srtcontroledl_xcp_startdat) volgende
|
||||
FROM ins_deel d,
|
||||
ins_srtcontroledl_xcp x,
|
||||
ins_srtcontrole sc,
|
||||
ctr_disc_params dp
|
||||
WHERE d.ins_deel_key = x.ins_deel_key
|
||||
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||||
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
|
||||
AND dp.ctr_disc_params_ismjob = 1;
|
||||
|
||||
v_prio NUMBER;
|
||||
v_freeze VARCHAR2 (4);
|
||||
|
||||
BEGIN
|
||||
|
||||
-- Conditiescores worden vanaf 2020.1 in het proces berekend, per melding en ook direct naar het object.
|
||||
-- Deze object-scores worden moeten vervolgens geagregeerd worden naar gebouw en locatieniveau. Doen we dagelijks dmv onderstaande procedure:
|
||||
---- Call this procedure to update aggregate scores (for a location/building)
|
||||
---- PROCEDURE update_aggr_scores (p_locatie_key IN NUMBER DEFAULT NULL, p_gebouw_key IN NUMBER DEFAULT NULL);
|
||||
cnd.update_aggr_scores (NULL, NULL);
|
||||
|
||||
|
||||
-- pas de urgentie bij de taken aan
|
||||
SELECT fac.getSetting ('mjb_feeze_year')
|
||||
INTO v_freeze
|
||||
FROM DUAL;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
-- kritische installatie en planning dit jaar of vorig jaar niet uitgevoerd.
|
||||
IF rec.kritisch = 1
|
||||
AND (TO_CHAR (rec.volgende, 'yyyy') = v_freeze OR rec.orgdatum <= v_freeze)
|
||||
THEN
|
||||
v_prio := 3;
|
||||
-- planning vorig jaar + storingshistorie
|
||||
ELSIF rec.orgdatum < v_freeze
|
||||
THEN
|
||||
v_prio := 3;
|
||||
--prioriteit < 4
|
||||
ELSIF rec.ins_deel_mjb_score2 < 4 OR rec.ins_deel_mjb_score1 >= 4
|
||||
THEN
|
||||
v_prio := 3;
|
||||
ELSIF rec.ins_deel_mjb_score2 < 7
|
||||
THEN
|
||||
v_prio := 2;
|
||||
ELSE
|
||||
v_prio := 1;
|
||||
END IF;
|
||||
|
||||
UPDATE ins_srtcontroledl_xcp x
|
||||
SET ins_srtcontroledl_xcp_prio = v_prio
|
||||
WHERE x.ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
|
||||
END LOOP;
|
||||
|
||||
aaxx_daily_task (p_applname, p_applrun);
|
||||
END;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user