HM-SPMS/platform/common/database/initscript/iscs6000_func_openGauss.sql

10464 lines
513 KiB
MySQL
Raw Normal View History

-- 兼容MySQL的 substring_index 函数
DROP FUNCTION IF EXISTS substring_index;
CREATE OR REPLACE FUNCTION substring_index (str text, delim text, num integer = 1, out ret text)
RETURNS text
AS $$
BEGIN
IF num > 0 THEN
ret = array_to_string((string_to_array(str, delim))[:num], delim);
ELSE
DECLARE _array TEXT[];
BEGIN
_array = string_to_array(str, delim);
ret = array_to_string(_array[array_length(_array, 1) + num + 1:], delim);
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION FUNC_TI_ACCUML() RETURNS TRIGGER AS $$
BEGIN
/*
*
* ,:.,
* ,
* :线
*/
/*
* Acc后,
* 1,Acc_limit_info的记录,
* 2,ANALOG_MAP_TO_FES中添加一条记录
*/
IF COALESCE(NEW.IS_LIMIT,0) <> 0 THEN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO accuml_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '1', '1', 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME
);
ELSE
INSERT INTO accuml_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME
FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ;
END IF;
END IF;
IF COALESCE(NEW.IS_SAMPLE,0) <> 0 THEN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 );
END IF;
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO accuml_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER, PERCENT, DEV_TYPE, POINT_TP_NAME, DESCRIPTION)
VALUES (
concat('accuml' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.RTU_TAG , '-1', '0', '1',99999999999999.9, 0, 1, 20, NEW.DEV_TYPE,NEW.POINT_TP_NAME,NEW.DESCRIPTION
);
ELSE
INSERT INTO accuml_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER, PERCENT, DEV_TYPE, POINT_TP_NAME, DESCRIPTION)
SELECT
concat('accuml' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.RTU_TAG , '-1', '0', '1', RANGE_UP,RANGE_LOW, IS_FILTER, PERCENT, NEW.DEV_TYPE,NEW.POINT_TP_NAME,NEW.DESCRIPTION
FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'accuml', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('accuml'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_ACCUML ON accuml;
CREATE TRIGGER TI_ACCUML AFTER INSERT ON accuml FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_ACCUML();
CREATE OR REPLACE FUNCTION FUNC_TU_ACCUML() RETURNS TRIGGER AS $$
BEGIN
--limit变不limit
IF COALESCE(OLD.IS_LIMIT,0) != 0 AND COALESCE(NEW.IS_LIMIT,0) = 0
THEN
BEGIN
DELETE FROM accuml_limit_info WHERE TAG_NAME=OLD.TAG_NAME;
END;
--limit变limit
ELSEIF COALESCE(OLD.IS_LIMIT,0) = 0 AND COALESCE(NEW.IS_LIMIT,0) != 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO accuml_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '1', '1', 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME
);
ELSE
INSERT INTO accuml_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME
FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ;
END IF;
END;
--limit表
ELSE
BEGIN
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME
THEN
BEGIN
UPDATE accuml_limit_info
SET
accuml_limit_info.TAG_NAME = NEW.TAG_NAME,
accuml_limit_info.LOCATION_ID = NEW.LOCATION_ID,
accuml_limit_info.SUB_SYSTEM = NEW.SUB_SYSTEM,
accuml_limit_info.POINT_TP_NAME = NEW.POINT_TP_NAME
WHERE accuml_limit_info.TAG_NAME = OLD.TAG_NAME;
END;
END IF;
END;
END IF;
--sample变成不采样
IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0
THEN
BEGIN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END;
--
ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0
THEN
BEGIN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
(NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 );
END;
--
ELSE
BEGIN
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM
OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD OR NEW.SAMPLE_DEADBAND<>OLD.SAMPLE_DEADBAND
THEN
BEGIN
UPDATE sample_define
SET
sample_define.TAG_NAME = NEW.TAG_NAME ,
sample_define.DESCRIPTION = NEW.DESCRIPTION ,
sample_define.LOCATION_ID = NEW.LOCATION_ID ,
sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM ,
sample_define.DEVICE_TAG = NEW.DEVICE,
sample_define.POINT_TYPE = NEW.POINT_TYPE ,
sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD ,
sample_define.SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND
WHERE TAG_NAME= OLD.TAG_NAME;
END;
END IF;
END;
END IF;
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.RTU_TAG <> OLD.RTU_TAG
OR NEW.DEV_TYPE <> OLD.DEV_TYPE OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION
THEN
BEGIN
UPDATE accuml_map_to_fes SET
KEY_ID_TAG = concat('accuml' , '.' , NEW.TAG_NAME),
LOCATION_ID =NEW.LOCATION_ID,
SUB_SYSTEM = NEW.SUB_SYSTEM,
RTU_TAG = NEW.RTU_TAG,
DEV_TYPE = NEW.DEV_TYPE,
POINT_TP_NAME = NEW.POINT_TP_NAME,
DESCRIPTION = NEW.DESCRIPTION
WHERE KEY_ID_TAG=concat('accuml' , '.' , OLD.TAG_NAME) ;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'accuml', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('accuml'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_ACCUML ON accuml;
CREATE TRIGGER TU_ACCUML AFTER UPDATE ON accuml FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_ACCUML();
CREATE OR REPLACE FUNCTION FUNC_TD_ACCUML() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_LIMIT,0) <> 0
THEN
DELETE FROM accuml_limit_info WHERE TAG_NAME=OLD.TAG_NAME ;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) <> 0
THEN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END IF;
DELETE FROM accuml_map_to_fes WHERE KEY_ID_TAG=concat('accuml' , '.' , OLD.TAG_NAME);
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_ACCUML ON accuml;
CREATE TRIGGER TD_ACCUML BEFORE DELETE ON accuml FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_ACCUML();
CREATE OR REPLACE FUNCTION FUNC_TDA_ACCUML() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'accuml', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('accuml'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ACCUML ON accuml;
CREATE TRIGGER TDA_ACCUML AFTER DELETE ON accuml FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ACCUML();
CREATE OR REPLACE FUNCTION FUNC_TIA_ACS_DEVICE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'acs_device_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('acs_device_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ACS_DEVICE_INFO ON acs_device_info;
CREATE TRIGGER TIA_ACS_DEVICE_INFO AFTER INSERT ON acs_device_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ACS_DEVICE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_ACS_DEVICE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'acs_device_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('acs_device_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ACS_DEVICE_INFO ON acs_device_info;
CREATE TRIGGER TUA_ACS_DEVICE_INFO AFTER UPDATE ON acs_device_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ACS_DEVICE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_ACS_DEVICE_INFO() RETURNS TRIGGER AS $$
BEGIN
delete from acs_device_node_map where ACS_DEVICE_TAG = old.TAG_NAME;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'acs_device_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('acs_device_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ACS_DEVICE_INFO ON acs_device_info;
CREATE TRIGGER TDA_ACS_DEVICE_INFO AFTER DELETE ON acs_device_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ACS_DEVICE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_ACS_DEVICE_NODE_MAP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'acs_device_node_map', 'NODE_NAME', '', NEW.NODE_NAME, getTableSubSystem('acs_device_node_map'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ACS_DEVICE_NODE_MAP ON acs_device_node_map;
CREATE TRIGGER TIA_ACS_DEVICE_NODE_MAP AFTER INSERT ON acs_device_node_map FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ACS_DEVICE_NODE_MAP();
CREATE OR REPLACE FUNCTION FUNC_TUA_ACS_DEVICE_NODE_MAP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'acs_device_node_map', 'NODE_NAME', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('acs_device_node_map'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ACS_DEVICE_NODE_MAP ON acs_device_node_map;
CREATE TRIGGER TUA_ACS_DEVICE_NODE_MAP AFTER UPDATE ON acs_device_node_map FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ACS_DEVICE_NODE_MAP();
CREATE OR REPLACE FUNCTION FUNC_TDA_ACS_DEVICE_NODE_MAP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'acs_device_node_map', 'NODE_NAME', OLD.NODE_NAME, '', getTableSubSystem('acs_device_node_map'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ACS_DEVICE_NODE_MAP ON acs_device_node_map;
CREATE TRIGGER TDA_ACS_DEVICE_NODE_MAP AFTER DELETE ON acs_device_node_map FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ACS_DEVICE_NODE_MAP();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_ACTION_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_action_define', 'action_id', '', NEW.ACTION_ID, getTableSubSystem('alarm_action_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_ACTION_DEFINE ON alarm_action_define;
CREATE TRIGGER TIA_ALARM_ACTION_DEFINE AFTER INSERT ON alarm_action_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_ACTION_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_ACTION_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_action_define', 'action_id', OLD.ACTION_ID, NEW.ACTION_ID, getTableSubSystem('alarm_action_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_ACTION_DEFINE ON alarm_action_define;
CREATE TRIGGER TUA_ALARM_ACTION_DEFINE AFTER UPDATE ON alarm_action_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_ACTION_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_ACTION_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_action_define', 'action_id', OLD.ACTION_ID, '', getTableSubSystem('alarm_action_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_ACTION_DEFINE ON alarm_action_define;
CREATE TRIGGER TDA_ALARM_ACTION_DEFINE AFTER DELETE ON alarm_action_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_ACTION_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_KEYWORD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_keyword_define', 'keyword_id', '', NEW.KEYWORD_ID, getTableSubSystem('alarm_keyword_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_KEYWORD_DEFINE ON alarm_keyword_define;
CREATE TRIGGER TIA_ALARM_KEYWORD_DEFINE AFTER INSERT ON alarm_keyword_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_KEYWORD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_KEYWORD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_keyword_define', 'keyword_id', OLD.KEYWORD_ID, NEW.KEYWORD_ID, getTableSubSystem('alarm_keyword_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_KEYWORD_DEFINE ON alarm_keyword_define;
CREATE TRIGGER TUA_ALARM_KEYWORD_DEFINE AFTER UPDATE ON alarm_keyword_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_KEYWORD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_KEYWORD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_keyword_define', 'keyword_id', OLD.KEYWORD_ID, '', getTableSubSystem('alarm_keyword_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_KEYWORD_DEFINE ON alarm_keyword_define;
CREATE TRIGGER TDA_ALARM_KEYWORD_DEFINE AFTER DELETE ON alarm_keyword_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_KEYWORD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_LEVEL_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_level_define', 'priority_id', '', NEW.PRIORITY_ID, getTableSubSystem('alarm_level_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_LEVEL_DEFINE ON alarm_level_define;
CREATE TRIGGER TIA_ALARM_LEVEL_DEFINE AFTER INSERT ON alarm_level_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_LEVEL_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_LEVEL_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_level_define', 'priority_id', OLD.PRIORITY_ID, NEW.PRIORITY_ID, getTableSubSystem('alarm_level_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_LEVEL_DEFINE ON alarm_level_define;
CREATE TRIGGER TUA_ALARM_LEVEL_DEFINE AFTER UPDATE ON alarm_level_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_LEVEL_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_LEVEL_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_level_define', 'priority_id', OLD.PRIORITY_ID, '', getTableSubSystem('alarm_level_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_LEVEL_DEFINE ON alarm_level_define;
CREATE TRIGGER TDA_ALARM_LEVEL_DEFINE AFTER DELETE ON alarm_level_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_LEVEL_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_LEVEL_SOUND_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_level_sound_def', 'priority_id,region_id', '', concat(NEW.PRIORITY_ID,',',NEW.REGION_ID), getTableSubSystem('alarm_level_sound_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_LEVEL_SOUND_DEF ON alarm_level_sound_def;
CREATE TRIGGER TIA_ALARM_LEVEL_SOUND_DEF AFTER INSERT ON alarm_level_sound_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_LEVEL_SOUND_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_LEVEL_SOUND_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_level_sound_def', 'priority_id,region_id', concat(OLD.PRIORITY_ID,',',OLD.REGION_ID), concat(NEW.PRIORITY_ID,',',NEW.REGION_ID), getTableSubSystem('alarm_level_sound_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_LEVEL_SOUND_DEF ON alarm_level_sound_def;
CREATE TRIGGER TUA_ALARM_LEVEL_SOUND_DEF AFTER UPDATE ON alarm_level_sound_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_LEVEL_SOUND_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_LEVEL_SOUND_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_level_sound_def', 'priority_id,region_id', concat(OLD.PRIORITY_ID,',',OLD.REGION_ID), '', getTableSubSystem('alarm_level_sound_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_LEVEL_SOUND_DEF ON alarm_level_sound_def;
CREATE TRIGGER TDA_ALARM_LEVEL_SOUND_DEF AFTER DELETE ON alarm_level_sound_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_LEVEL_SOUND_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_MANNER_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_manner_define', 'manner_id', '', NEW.MANNER_ID, getTableSubSystem('alarm_manner_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_MANNER_DEFINE ON alarm_manner_define;
CREATE TRIGGER TIA_ALARM_MANNER_DEFINE AFTER INSERT ON alarm_manner_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_MANNER_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_MANNER_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_manner_define', 'manner_id', OLD.MANNER_ID, NEW.MANNER_ID, getTableSubSystem('alarm_manner_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_MANNER_DEFINE ON alarm_manner_define;
CREATE TRIGGER TUA_ALARM_MANNER_DEFINE AFTER UPDATE ON alarm_manner_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_MANNER_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_MANNER_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_manner_define', 'manner_id', OLD.MANNER_ID, '', getTableSubSystem('alarm_manner_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_MANNER_DEFINE ON alarm_manner_define;
CREATE TRIGGER TDA_ALARM_MANNER_DEFINE AFTER DELETE ON alarm_manner_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_MANNER_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_STATUS_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_status_define', 'alarm_type,status_value', '', concat(NEW.ALARM_TYPE,',',NEW.STATUS_VALUE), getTableSubSystem('alarm_status_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_STATUS_DEFINE ON alarm_status_define;
CREATE TRIGGER TIA_ALARM_STATUS_DEFINE AFTER INSERT ON alarm_status_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_STATUS_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_STATUS_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_status_define', 'alarm_type,status_value', concat(OLD.ALARM_TYPE,',',OLD.STATUS_VALUE), concat(NEW.ALARM_TYPE,',',NEW.STATUS_VALUE), getTableSubSystem('alarm_status_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_STATUS_DEFINE ON alarm_status_define;
CREATE TRIGGER TUA_ALARM_STATUS_DEFINE AFTER UPDATE ON alarm_status_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_STATUS_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_STATUS_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_status_define', 'alarm_type,status_value', concat(OLD.ALARM_TYPE,',',OLD.STATUS_VALUE), '', getTableSubSystem('alarm_status_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_STATUS_DEFINE ON alarm_status_define;
CREATE TRIGGER TDA_ALARM_STATUS_DEFINE AFTER DELETE ON alarm_status_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_STATUS_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_ALARM_TYPE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_type_define', 'type_id', '', NEW.TYPE_ID, getTableSubSystem('alarm_type_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_ALARM_TYPE_DEFINE ON alarm_type_define;
CREATE TRIGGER TIA_ALARM_TYPE_DEFINE AFTER INSERT ON alarm_type_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_ALARM_TYPE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_ALARM_TYPE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'alarm_type_define', 'type_id', OLD.TYPE_ID, NEW.TYPE_ID, getTableSubSystem('alarm_type_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_ALARM_TYPE_DEFINE ON alarm_type_define;
CREATE TRIGGER TUA_ALARM_TYPE_DEFINE AFTER UPDATE ON alarm_type_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_ALARM_TYPE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_ALARM_TYPE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_type_define', 'type_id', OLD.TYPE_ID, '', getTableSubSystem('alarm_type_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ALARM_TYPE_DEFINE ON alarm_type_define;
CREATE TRIGGER TDA_ALARM_TYPE_DEFINE AFTER DELETE ON alarm_type_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ALARM_TYPE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TI_ANALOG() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(NEW.IS_CONTROL,0) <> 0
THEN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO analog_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME)
values (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,0, 1, 30, 30, 0, 1, 9999999.9, 0, 0.01, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
);
ELSE
INSERT INTO analog_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END IF;
IF COALESCE(NEW.IS_LIMIT,0) <> 0
THEN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO analog_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME
);
ELSE
INSERT INTO analog_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME
FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ;
END IF;
END IF;
IF COALESCE(NEW.IS_SAMPLE,0) <> 0
THEN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 );
END IF;
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO analog_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, DESCRIPTION)
VALUES (
concat('analog' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', 1, 20, 1, 0.01, 0.0001, 0, 1, 9999999.9, 0, NEW.DESCRIPTION
);
ELSE
INSERT INTO analog_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, DESCRIPTION)
SELECT
concat('analog' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, NEW.DESCRIPTION
FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'analog', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('analog'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_ANALOG ON analog;
CREATE TRIGGER TI_ANALOG AFTER INSERT ON analog FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_ANALOG();
CREATE OR REPLACE FUNCTION FUNC_TU_ANALOG() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0
THEN
BEGIN
DELETE FROM analog_control WHERE TAG_NAME=OLD.TAG_NAME;
DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME;
END;
ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO analog_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME)
values (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,0, 1, 30, 30, 0, 1, 9999999.9, 0, 0.01, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
);
ELSE
INSERT INTO analog_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END;
ELSE
BEGIN
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME
OR NEW.RTU_TAG <> OLD.RTU_TAG
THEN
UPDATE analog_control
SET
analog_control.TAG_NAME = NEW.TAG_NAME,
analog_control.LOCATION_ID = NEW.LOCATION_ID,
analog_control.SUB_SYSTEM = NEW.SUB_SYSTEM,
analog_control.POINT_TP_NAME = NEW.POINT_TP_NAME,
analog_control.RTU_TAG = NEW.RTU_TAG
WHERE analog_control.TAG_NAME = OLD.TAG_NAME;
END IF;
END;
END IF;
IF COALESCE(OLD.IS_LIMIT,0) != 0 AND COALESCE(NEW.IS_LIMIT,0) = 0
THEN
BEGIN
DELETE FROM analog_limit_info WHERE TAG_NAME=OLD.TAG_NAME;
END;
ELSEIF COALESCE(OLD.IS_LIMIT,0) = 0 AND COALESCE(NEW.IS_LIMIT,0) != 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO analog_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME
);
ELSE
INSERT INTO analog_limit_info (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME
FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ;
END IF;
END;
ELSE
BEGIN
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME
THEN
UPDATE analog_limit_info SET
analog_limit_info.TAG_NAME = NEW.TAG_NAME ,
analog_limit_info.LOCATION_ID = NEW.LOCATION_ID ,
analog_limit_info.SUB_SYSTEM = NEW.SUB_SYSTEM ,
analog_limit_info.POINT_TP_NAME = NEW.POINT_TP_NAME
WHERE analog_limit_info.TAG_NAME = OLD.TAG_NAME;
END IF;
END;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0
THEN
BEGIN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END;
ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0
THEN
BEGIN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 );
END;
ELSE
BEGIN
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM
OR NEW.DEVICE <> OLD.DEVICE OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD <> OLD.SAMPLE_PERIOD OR NEW.SAMPLE_DEADBAND <> OLD.SAMPLE_DEADBAND
THEN
UPDATE sample_define
SET
sample_define.TAG_NAME = NEW.TAG_NAME ,
sample_define.DESCRIPTION = NEW.DESCRIPTION ,
sample_define.LOCATION_ID = NEW.LOCATION_ID ,
sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM ,
sample_define.DEVICE_TAG = NEW.DEVICE,
sample_define.POINT_TYPE = NEW.POINT_TYPE ,
sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD ,
sample_define.SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND
WHERE TAG_NAME= OLD.TAG_NAME;
END IF;
END;
END IF;
IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.DEV_TYPE <> OLD.DEV_TYPE
OR NEW.RTU_TAG <> OLD.RTU_TAG OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION
THEN
UPDATE analog_map_to_fes SET
KEY_ID_TAG = concat('analog' , '.' , NEW.TAG_NAME),
LOCATION_ID =NEW.LOCATION_ID,
SUB_SYSTEM = NEW.SUB_SYSTEM,
DEV_TYPE = NEW.DEV_TYPE,
POINT_TP_NAME = NEW.POINT_TP_NAME,
RTU_TAG = NEW.RTU_TAG,
DESCRIPTION = NEW.DESCRIPTION
WHERE KEY_ID_TAG=concat('analog' , '.' , OLD.TAG_NAME) ;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'analog', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('analog'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_ANALOG ON analog;
CREATE TRIGGER TU_ANALOG AFTER UPDATE ON analog FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_ANALOG();
CREATE OR REPLACE FUNCTION FUNC_TD_ANALOG() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) <> 0
THEN
DELETE FROM analog_control WHERE TAG_NAME=OLD.TAG_NAME ;
END IF;
IF COALESCE(OLD.IS_LIMIT,0) <> 0
THEN
DELETE FROM analog_limit_info WHERE TAG_NAME=OLD.TAG_NAME ;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) <> 0
THEN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END IF;
DELETE FROM analog_map_to_fes WHERE KEY_ID_TAG=concat('analog' , '.' , OLD.TAG_NAME) ;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_ANALOG ON analog;
CREATE TRIGGER TD_ANALOG BEFORE DELETE ON analog FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_ANALOG();
CREATE OR REPLACE FUNCTION FUNC_TDA_ANALOG() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'analog', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('analog'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_ANALOG ON analog;
CREATE TRIGGER TDA_ANALOG AFTER DELETE ON analog FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_ANALOG();
CREATE OR REPLACE FUNCTION FUNC_TIA_BAS_CRAFT_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'bas_craft_def', 'id', '', NEW.ID, getTableSubSystem('bas_craft_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_BAS_CRAFT_DEF ON bas_craft_def;
CREATE TRIGGER TIA_BAS_CRAFT_DEF AFTER INSERT ON bas_craft_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_BAS_CRAFT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_BAS_CRAFT_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'bas_craft_def', 'id', OLD.ID, NEW.ID, getTableSubSystem('bas_craft_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_BAS_CRAFT_DEF ON bas_craft_def;
CREATE TRIGGER TUA_BAS_CRAFT_DEF AFTER UPDATE ON bas_craft_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_BAS_CRAFT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_BAS_CRAFT_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'bas_craft_def', 'id', OLD.ID, '', getTableSubSystem('bas_craft_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_BAS_CRAFT_DEF ON bas_craft_def;
CREATE TRIGGER TDA_BAS_CRAFT_DEF AFTER DELETE ON bas_craft_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_BAS_CRAFT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_BAS_MODE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'bas_mode_def', 'id,location_id,craft_id,mode_no', '', concat(NEW.ID,',',NEW.LOCATION_ID,',',NEW.CRAFT_ID,',',NEW.MODE_NO), getTableSubSystem('bas_mode_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_BAS_MODE_DEF ON bas_mode_def;
CREATE TRIGGER TIA_BAS_MODE_DEF AFTER INSERT ON bas_mode_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_BAS_MODE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_BAS_MODE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'bas_mode_def', 'id,location_id,craft_id,mode_no', concat(OLD.ID,',',OLD.LOCATION_ID,',',OLD.CRAFT_ID,',',OLD.MODE_NO), concat(NEW.ID,',',NEW.LOCATION_ID,',',NEW.CRAFT_ID,',',NEW.MODE_NO), getTableSubSystem('bas_mode_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_BAS_MODE_DEF ON bas_mode_def;
CREATE TRIGGER TUA_BAS_MODE_DEF AFTER UPDATE ON bas_mode_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_BAS_MODE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_BAS_MODE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'bas_mode_def', 'id,location_id,craft_id,mode_no', concat(OLD.ID,',',OLD.LOCATION_ID,',',OLD.CRAFT_ID,',',OLD.MODE_NO), '', getTableSubSystem('bas_mode_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_BAS_MODE_DEF ON bas_mode_def;
CREATE TRIGGER TDA_BAS_MODE_DEF AFTER DELETE ON bas_mode_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_BAS_MODE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_BAS_MODE_TYPE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'bas_mode_type', 'id', '', NEW.ID, getTableSubSystem('bas_mode_type'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_BAS_MODE_TYPE ON bas_mode_type;
CREATE TRIGGER TIA_BAS_MODE_TYPE AFTER INSERT ON bas_mode_type FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_BAS_MODE_TYPE();
CREATE OR REPLACE FUNCTION FUNC_TUA_BAS_MODE_TYPE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'bas_mode_type', 'id', OLD.ID, NEW.ID, getTableSubSystem('bas_mode_type'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_BAS_MODE_TYPE ON bas_mode_type;
CREATE TRIGGER TUA_BAS_MODE_TYPE AFTER UPDATE ON bas_mode_type FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_BAS_MODE_TYPE();
CREATE OR REPLACE FUNCTION FUNC_TDA_BAS_MODE_TYPE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'bas_mode_type', 'id', OLD.ID, '', getTableSubSystem('bas_mode_type'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_BAS_MODE_TYPE ON bas_mode_type;
CREATE TRIGGER TDA_BAS_MODE_TYPE AFTER DELETE ON bas_mode_type FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_BAS_MODE_TYPE();
CREATE OR REPLACE FUNCTION FUNC_TIA_DEV_GROUP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dev_group', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('dev_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DEV_GROUP ON dev_group;
CREATE TRIGGER TIA_DEV_GROUP AFTER INSERT ON dev_group FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DEV_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TUA_DEV_GROUP() RETURNS TRIGGER AS $$
DECLARE rtuTag varchar(64) DEFAULT '';
BEGIN
IF NEW.TAG_NAME <> OLD.TAG_NAME THEN
BEGIN
UPDATE dev_info SET GROUP_TAG_NAME = NEW.TAG_NAME WHERE GROUP_TAG_NAME = OLD.TAG_NAME;
END;
END IF;
IF NEW.RTU_NO <> COALESCE(OLD.RTU_NO,-1) THEN
SELECT TAG_NAME INTO rtuTag FROM fes_rtu_para WHERE fes_rtu_para.RTU_NO = NEW.RTU_NO;
UPDATE accuml SET accuml.RTU_TAG = rtuTag from dev_info WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND accuml.DEVICE = dev_info.TAG_NAME;
UPDATE analog SET analog.RTU_TAG = rtuTag from dev_info WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND analog.DEVICE = dev_info.TAG_NAME;
UPDATE digital SET digital.RTU_TAG = rtuTag from dev_info WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND digital.DEVICE = dev_info.TAG_NAME;
UPDATE mix SET mix.RTU_TAG = rtuTag from dev_info WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND mix.DEVICE = dev_info.TAG_NAME;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dev_group', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('dev_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DEV_GROUP ON dev_group;
CREATE TRIGGER TUA_DEV_GROUP AFTER UPDATE ON dev_group FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DEV_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TDA_DEV_GROUP() RETURNS TRIGGER AS $$
BEGIN
DELETE FROM dev_info WHERE GROUP_TAG_NAME = OLD.TAG_NAME;
--
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dev_group', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('dev_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DEV_GROUP ON dev_group;
CREATE TRIGGER TDA_DEV_GROUP AFTER DELETE ON dev_group FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DEV_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TI_DEV_INFO() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO accuml(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) SELECT
concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', NEW.GRAY, NEW.CONTRAST, NEW.QCOLOR,'0', NEW.VALUE, NEW.STATUS, 0, 0, UNIT_ID, '', '', '', NEW.REGION_ID, NEW.OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, NEW.DEV_TYPE, TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, '', ''
FROM accuml_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME;
INSERT INTO analog(
TAG_NAME, DESCRIPTION, RTU_TAG, DEV_TYPE, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, IS_CONTROL,GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) SELECT
concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), DESCRIPTION , '', NEW.DEV_TYPE,NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,IS_CONTROL,NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,NEW.VALUE,NEW.STATUS,'0', '0', UNIT_ID, '', '', '', NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, '', ''
FROM analog_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME;
INSERT INTO digital(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME,INPUT_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID ) SELECT
concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,'', IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,NEW.VALUE,NEW.STATUS,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', ALARM_PRIORITY, '', '', '', '', ALARM_DELAY_TIME,INPUT_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,IS_SUMMARY, NEW.SUMMARY_VALUE,NEW.SUMMARY_STATUS,NEW.DEV_TYPE,TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, '', POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, '', ''
FROM digital_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME;
INSERT INTO mix(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, METHOD, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID) SELECT
concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,'', IS_CONTROL, STATE_TEXT_NAME, NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,'0', NEW.VALUE,NEW.STATUS, '0', '0' , '', ALARM_PRIORITY, '', '', '', '', ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,NEW.IS_SUMMARY,NEW.SUMMARY_VALUE,NEW.SUMMARY_STATUS,NEW.DEV_TYPE,TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, '', ''
FROM mix_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dev_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('dev_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_DEV_INFO ON dev_info;
CREATE TRIGGER TI_DEV_INFO AFTER INSERT ON dev_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_DEV_INFO();
CREATE OR REPLACE FUNCTION FUNC_TU_DEV_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dev_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('dev_info'));
END IF;
IF
OLD.CONTRAST = NEW.CONTRAST AND
OLD.DESCRIPTION = NEW.DESCRIPTION AND
OLD.DEV_TYPE = NEW.DEV_TYPE AND
OLD.GRAY = NEW.GRAY AND
OLD.LOCATION_ID = NEW.LOCATION_ID AND
OLD.OPT_HANDOVER_GROUP = NEW.OPT_HANDOVER_GROUP AND
OLD.QCOLOR = NEW.QCOLOR AND
OLD.REGION_ID = NEW.REGION_ID AND
OLD.STATUS = NEW.STATUS AND
OLD.SUB_SYSTEM = NEW.SUB_SYSTEM AND
OLD.TAG_NAME = NEW.TAG_NAME AND
OLD.VALUE = NEW.VALUE
THEN RETURN NEW;
END IF;
UPDATE accuml SET
DEVICE=NEW.TAG_NAME,
LOCATION_ID=NEW.LOCATION_ID,
SUB_SYSTEM=NEW.SUB_SYSTEM,
GRAY=NEW.GRAY,
CONTRAST=NEW.CONTRAST,
QCOLOR=NEW.QCOLOR,
VALUE=NEW.VALUE,
STATUS=NEW.STATUS,
REGION_ID=NEW.REGION_ID,
OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP,
DEV_TYPE= NEW.DEV_TYPE ,
TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),
DESCRIPTION = DESCRIPTION
WHERE DEVICE=OLD.TAG_NAME ;
UPDATE analog SET
DEVICE=NEW.TAG_NAME,
LOCATION_ID=NEW.LOCATION_ID,
SUB_SYSTEM=NEW.SUB_SYSTEM,
GRAY=NEW.GRAY,
CONTRAST=NEW.CONTRAST,
QCOLOR=NEW.QCOLOR,
VALUE=NEW.VALUE,
STATUS=NEW.STATUS,
REGION_ID=NEW.REGION_ID,
OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP,
DEV_TYPE= NEW.DEV_TYPE ,
TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),
DESCRIPTION = DESCRIPTION
WHERE DEVICE=OLD.TAG_NAME ;
UPDATE digital SET
DEVICE=NEW.TAG_NAME,
LOCATION_ID=NEW.LOCATION_ID,
SUB_SYSTEM=NEW.SUB_SYSTEM,
GRAY=NEW.GRAY,
CONTRAST=NEW.CONTRAST,
QCOLOR=NEW.QCOLOR,
VALUE=NEW.VALUE,
STATUS=NEW.STATUS,
REGION_ID=NEW.REGION_ID,
OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP,
DEV_TYPE= NEW.DEV_TYPE ,
TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),
DESCRIPTION = DESCRIPTION
WHERE DEVICE=OLD.TAG_NAME ;
UPDATE mix SET
DEVICE=NEW.TAG_NAME,
LOCATION_ID=NEW.LOCATION_ID,
SUB_SYSTEM=NEW.SUB_SYSTEM,
GRAY=NEW.GRAY,
CONTRAST=NEW.CONTRAST,
QCOLOR=NEW.QCOLOR,
VALUE=NEW.VALUE,
STATUS=NEW.STATUS,
REGION_ID=NEW.REGION_ID,
OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP,
DEV_TYPE= NEW.DEV_TYPE ,
TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),
DESCRIPTION = DESCRIPTION
WHERE DEVICE=OLD.TAG_NAME ;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_DEV_INFO ON dev_info;
CREATE TRIGGER TU_DEV_INFO AFTER UPDATE ON dev_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_DEV_INFO();
CREATE OR REPLACE FUNCTION FUNC_TD_DEV_INFO() RETURNS TRIGGER AS $$
BEGIN
DELETE FROM accuml WHERE DEVICE = OLD.TAG_NAME;
DELETE FROM analog WHERE DEVICE = OLD.TAG_NAME;
DELETE FROM digital WHERE DEVICE = OLD.TAG_NAME;
DELETE FROM mix WHERE DEVICE = OLD.TAG_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_DEV_INFO ON dev_info;
CREATE TRIGGER TD_DEV_INFO BEFORE DELETE ON dev_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_DEV_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_DEV_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dev_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('dev_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DEV_INFO ON dev_info;
CREATE TRIGGER TDA_DEV_INFO AFTER DELETE ON dev_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DEV_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_DEV_TOPO_VER() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dev_topo_ver', 'LOCATION_ID', '',NEW.LOCATION_ID, getTableSubSystem('dev_topo_ver'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DEV_TOPO_VER ON dev_topo_ver;
CREATE TRIGGER TIA_DEV_TOPO_VER AFTER INSERT ON dev_topo_ver FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DEV_TOPO_VER();
CREATE OR REPLACE FUNCTION FUNC_TUA_DEV_TOPO_VER() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dev_topo_ver', 'LOCATION_ID', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('dev_topo_ver'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DEV_TOPO_VER ON dev_topo_ver;
CREATE TRIGGER TUA_DEV_TOPO_VER AFTER UPDATE ON dev_topo_ver FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DEV_TOPO_VER();
CREATE OR REPLACE FUNCTION FUNC_TDA_DEV_TOPO_VER() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dev_topo_ver', 'LOCATION_ID', OLD.LOCATION_ID, '', getTableSubSystem('dev_topo_ver'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DEV_TOPO_VER ON dev_topo_ver;
CREATE TRIGGER TDA_DEV_TOPO_VER AFTER DELETE ON dev_topo_ver FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DEV_TOPO_VER();
CREATE OR REPLACE FUNCTION FUNC_TIA_DEV_TYPE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dev_type_def', 'dev_type_id', '', NEW.DEV_TYPE_ID, getTableSubSystem('dev_type_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DEV_TYPE_DEF ON dev_type_def;
CREATE TRIGGER TIA_DEV_TYPE_DEF AFTER INSERT ON dev_type_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DEV_TYPE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_DEV_TYPE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, NEW.DEV_TYPE_ID, getTableSubSystem('dev_type_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DEV_TYPE_DEF ON dev_type_def;
CREATE TRIGGER TUA_DEV_TYPE_DEF AFTER UPDATE ON dev_type_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DEV_TYPE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_DEV_TYPE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, '', getTableSubSystem('dev_type_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DEV_TYPE_DEF ON dev_type_def;
CREATE TRIGGER TDA_DEV_TYPE_DEF AFTER DELETE ON dev_type_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DEV_TYPE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_DICT_MENU_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dict_menu_info', 'menu_name,actual_value', '', concat(NEW.MENU_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_menu_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DICT_MENU_INFO ON dict_menu_info;
CREATE TRIGGER TIA_DICT_MENU_INFO AFTER INSERT ON dict_menu_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DICT_MENU_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_DICT_MENU_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dict_menu_info', 'menu_name,actual_value', concat(OLD.MENU_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.MENU_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_menu_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DICT_MENU_INFO ON dict_menu_info;
CREATE TRIGGER TUA_DICT_MENU_INFO AFTER UPDATE ON dict_menu_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DICT_MENU_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_DICT_MENU_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dict_menu_info', 'menu_name,actual_value', concat(OLD.MENU_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_menu_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DICT_MENU_INFO ON dict_menu_info;
CREATE TRIGGER TDA_DICT_MENU_INFO AFTER DELETE ON dict_menu_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DICT_MENU_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_DICT_STATE_TEXT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dict_state_text_info', 'state_text_name,actual_value', '', concat(NEW.STATE_TEXT_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_state_text_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DICT_STATE_TEXT_INFO ON dict_state_text_info;
CREATE TRIGGER TIA_DICT_STATE_TEXT_INFO AFTER INSERT ON dict_state_text_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DICT_STATE_TEXT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_DICT_STATE_TEXT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dict_state_text_info', 'state_text_name,actual_value', concat(OLD.STATE_TEXT_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.STATE_TEXT_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_state_text_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DICT_STATE_TEXT_INFO ON dict_state_text_info;
CREATE TRIGGER TUA_DICT_STATE_TEXT_INFO AFTER UPDATE ON dict_state_text_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DICT_STATE_TEXT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_DICT_STATE_TEXT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dict_state_text_info', 'state_text_name,actual_value', concat(OLD.STATE_TEXT_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_state_text_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DICT_STATE_TEXT_INFO ON dict_state_text_info;
CREATE TRIGGER TDA_DICT_STATE_TEXT_INFO AFTER DELETE ON dict_state_text_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DICT_STATE_TEXT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_DICT_TEXT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dict_text_define', 'class_name,actual_value', '', concat(NEW.CLASS_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_text_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DICT_TEXT_DEFINE ON dict_text_define;
CREATE TRIGGER TIA_DICT_TEXT_DEFINE AFTER INSERT ON dict_text_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DICT_TEXT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_DICT_TEXT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dict_text_define', 'class_name,actual_value', concat(OLD.CLASS_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.CLASS_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_text_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DICT_TEXT_DEFINE ON dict_text_define;
CREATE TRIGGER TUA_DICT_TEXT_DEFINE AFTER UPDATE ON dict_text_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DICT_TEXT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_DICT_TEXT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dict_text_define', 'class_name,actual_value', concat(OLD.CLASS_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_text_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DICT_TEXT_DEFINE ON dict_text_define;
CREATE TRIGGER TDA_DICT_TEXT_DEFINE AFTER DELETE ON dict_text_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DICT_TEXT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_DICT_UNIT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dict_unit_info', 'unit_id', '', NEW.UNIT_ID, getTableSubSystem('dict_unit_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DICT_UNIT_INFO ON dict_unit_info;
CREATE TRIGGER TIA_DICT_UNIT_INFO AFTER INSERT ON dict_unit_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DICT_UNIT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_DICT_UNIT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dict_unit_info', 'unit_id', OLD.UNIT_ID, NEW.UNIT_ID, getTableSubSystem('dict_unit_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DICT_UNIT_INFO ON dict_unit_info;
CREATE TRIGGER TUA_DICT_UNIT_INFO AFTER UPDATE ON dict_unit_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DICT_UNIT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_DICT_UNIT_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dict_unit_info', 'unit_id', OLD.UNIT_ID, '', getTableSubSystem('dict_unit_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DICT_UNIT_INFO ON dict_unit_info;
CREATE TRIGGER TDA_DICT_UNIT_INFO AFTER DELETE ON dict_unit_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DICT_UNIT_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_DICT_VOL_LEVEL() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'dict_vol_level', 'vl_id', '', NEW.VL_ID, getTableSubSystem('dict_vol_level'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_DICT_VOL_LEVEL ON dict_vol_level;
CREATE TRIGGER TIA_DICT_VOL_LEVEL AFTER INSERT ON dict_vol_level FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_DICT_VOL_LEVEL();
CREATE OR REPLACE FUNCTION FUNC_TUA_DICT_VOL_LEVEL() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'dict_vol_level', 'vl_id', OLD.VL_ID, NEW.VL_ID, getTableSubSystem('dict_vol_level'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_DICT_VOL_LEVEL ON dict_vol_level;
CREATE TRIGGER TUA_DICT_VOL_LEVEL AFTER UPDATE ON dict_vol_level FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_DICT_VOL_LEVEL();
CREATE OR REPLACE FUNCTION FUNC_TDA_DICT_VOL_LEVEL() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'dict_vol_level', 'vl_id', OLD.VL_ID, '', getTableSubSystem('dict_vol_level'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DICT_VOL_LEVEL ON dict_vol_level;
CREATE TRIGGER TDA_DICT_VOL_LEVEL AFTER DELETE ON dict_vol_level FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DICT_VOL_LEVEL();
CREATE OR REPLACE FUNCTION FUNC_TI_DIGITAL() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(NEW.IS_CONTROL,0) <> 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO digital_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 1, 30, 30, 30, NEW.RTU_TAG, 1, '-1', '-1', '-1', '-1', '-1', '', 0 , NEW.POINT_TP_NAME,0
);
ELSE
INSERT INTO digital_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, NEW.RTU_TAG, OFFSET_NUM, '-1', '-1', '-1', '-1', '-1', '', IS_CHECK_PREVENTION , NEW.POINT_TP_NAME,CTRL_TYPE
FROM digital_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END;
END IF;
IF COALESCE(NEW.IS_SAMPLE,0) <> 0
THEN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
(NEW.TAG_NAME,NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 );
END IF;
INSERT INTO digital_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, VALUE_NUM, RTU_TAG, DOT_NO1, DOT_NO2, DOT_NO3, DOT_NO4, DOT_NO5, IS_FILTER_ERR, IS_FILTER_DISTURB, DISTURB_TIME, POLARITY, DESCRIPTION) VALUES (
concat('digital' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.VALUE_NUM , NEW.RTU_TAG, '-1', '-1' , '-1' , '-1', '-1', '0' , '0' , '0' , '0', NEW.DESCRIPTION );
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'digital', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('digital'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_DIGITAL ON digital;
CREATE TRIGGER TI_DIGITAL AFTER INSERT ON digital FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_DIGITAL();
CREATE OR REPLACE FUNCTION FUNC_TU_DIGITAL() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0
THEN
BEGIN
DELETE FROM digital_control WHERE TAG_NAME=OLD.TAG_NAME;
DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME;
END;
ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO digital_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 1, 30, 30, 30, NEW.RTU_TAG, 1, '-1', '-1', '-1', '-1', '-1', '', 0 , NEW.POINT_TP_NAME,0
);
ELSE
INSERT INTO digital_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, NEW.RTU_TAG, OFFSET_NUM, '-1', '-1', '-1', '-1', '-1', '', IS_CHECK_PREVENTION , NEW.POINT_TP_NAME,CTRL_TYPE
FROM digital_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END;
ELSE
BEGIN
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.RTU_TAG<>OLD.RTU_TAG
OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME
THEN
UPDATE digital_control
SET
digital_control.TAG_NAME = NEW.TAG_NAME,
digital_control.LOCATION_ID = NEW.LOCATION_ID,
digital_control.SUB_SYSTEM = NEW.SUB_SYSTEM,
digital_control.RTU_TAG = NEW.RTU_TAG ,
digital_control.POINT_TP_NAME = NEW.POINT_TP_NAME
WHERE digital_control.TAG_NAME = OLD.TAG_NAME;
END IF;
END;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0
THEN
BEGIN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END;
ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0
THEN
BEGIN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
(NEW.TAG_NAME,NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,0, 0, 0, 0 );
END;
ELSE
BEGIN
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM
OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD
THEN
UPDATE sample_define
SET
sample_define.TAG_NAME = NEW.TAG_NAME,
sample_define.DESCRIPTION = NEW.DESCRIPTION ,
sample_define.LOCATION_ID = NEW.LOCATION_ID ,
sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM ,
sample_define.DEVICE_TAG = NEW.DEVICE,
sample_define.POINT_TYPE = NEW.POINT_TYPE,
sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD
WHERE TAG_NAME= OLD.TAG_NAME;
END IF;
END;
END IF;
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.RTU_TAG<>OLD.RTU_TAG OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM
OR NEW.DEV_TYPE<>OLD.DEV_TYPE OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION
THEN
UPDATE digital_map_to_fes SET
KEY_ID_TAG = concat('digital' , '.' , NEW.TAG_NAME),
RTU_TAG = NEW.RTU_TAG,
LOCATION_ID =NEW.LOCATION_ID,
SUB_SYSTEM = NEW.SUB_SYSTEM,
DEV_TYPE = NEW.DEV_TYPE,
POINT_TP_NAME = NEW.POINT_TP_NAME,
DESCRIPTION = NEW.DESCRIPTION
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME) ;
END IF;
IF NEW.VALUE_NUM<>OLD.VALUE_NUM THEN
BEGIN
IF NEW.VALUE_NUM = 1 THEN
BEGIN
UPDATE digital_map_to_fes SET
VALUE_NUM = NEW.VALUE_NUM,
DOT_NO2 = '-1',
DOT_NO3 = '-1',
DOT_NO4 = '-1',
DOT_NO5 = '-1'
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
END;
ELSEIF NEW.VALUE_NUM = 2 THEN
BEGIN
UPDATE digital_map_to_fes SET
VALUE_NUM = NEW.VALUE_NUM,
DOT_NO3 = '-1',
DOT_NO4 = '-1',
DOT_NO5 = '-1'
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
END;
ELSEIF NEW.VALUE_NUM = 3 THEN
BEGIN
UPDATE digital_map_to_fes SET
VALUE_NUM = NEW.VALUE_NUM,
DOT_NO4 = '-1',
DOT_NO5 = '-1'
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
END;
ELSEIF NEW.VALUE_NUM = 4 THEN
BEGIN
UPDATE digital_map_to_fes SET
VALUE_NUM = NEW.VALUE_NUM,
DOT_NO5 = '-1'
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
END;
ELSE
BEGIN
UPDATE digital_map_to_fes SET
VALUE_NUM = NEW.VALUE_NUM
WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
END;
END IF;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'digital', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('digital'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_DIGITAL ON digital;
CREATE TRIGGER TU_DIGITAL AFTER UPDATE ON digital FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_DIGITAL();
CREATE OR REPLACE FUNCTION FUNC_TD_DIGITAL() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) <> 0
THEN
DELETE FROM digital_control WHERE TAG_NAME=OLD.TAG_NAME ;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) <> 0
THEN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END IF;
DELETE FROM digital_map_to_fes WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME);
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_DIGITAL ON digital;
CREATE TRIGGER TD_DIGITAL BEFORE DELETE ON digital FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_DIGITAL();
CREATE OR REPLACE FUNCTION FUNC_TDA_DIGITAL() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'digital', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('digital'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_DIGITAL ON digital;
CREATE TRIGGER TDA_DIGITAL AFTER DELETE ON digital FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_DIGITAL();
CREATE OR REPLACE FUNCTION FUNC_TIA_FBD_GROUP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'fbd_group', 'id', '', NEW.ID, getTableSubSystem('fbd_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_FBD_GROUP ON FBD_GROUP;
CREATE TRIGGER TIA_FBD_GROUP AFTER INSERT ON FBD_GROUP FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_FBD_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TUA_FBD_GROUP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'fbd_group', 'id', OLD.ID, NEW.ID, getTableSubSystem('fbd_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_FBD_GROUP ON FBD_GROUP;
CREATE TRIGGER TUA_FBD_GROUP AFTER UPDATE ON FBD_GROUP FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_FBD_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TDA_FBD_GROUP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'fbd_group', 'id', OLD.ID, '', getTableSubSystem('fbd_group'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_FBD_GROUP ON FBD_GROUP;
CREATE TRIGGER TDA_FBD_GROUP AFTER DELETE ON FBD_GROUP FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_FBD_GROUP();
CREATE OR REPLACE FUNCTION FUNC_TIA_HMI_TYPE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'hmi_type_info', 'hmi_id', '', NEW.HMI_ID, getTableSubSystem('hmi_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_HMI_TYPE_INFO ON hmi_type_info;
CREATE TRIGGER TIA_HMI_TYPE_INFO AFTER INSERT ON hmi_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_HMI_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_HMI_TYPE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'hmi_type_info', 'hmi_id', OLD.HMI_ID, NEW.HMI_ID, getTableSubSystem('hmi_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_HMI_TYPE_INFO ON hmi_type_info;
CREATE TRIGGER TUA_HMI_TYPE_INFO AFTER UPDATE ON hmi_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_HMI_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_HMI_TYPE_INFO() RETURNS TRIGGER AS $$
--1,0HMI画面
DECLARE num int;
BEGIN
num = DIV((OLD.HMI_ID-1),32);
--
IF num = 0 THEN
UPDATE rm_role_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 1 THEN
UPDATE rm_role_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 2 THEN
UPDATE rm_role_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 3 THEN
UPDATE rm_role_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 4 THEN
UPDATE rm_role_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 5 THEN
UPDATE rm_role_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 6 THEN
UPDATE rm_role_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 7 THEN
UPDATE rm_role_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 8 THEN
UPDATE rm_role_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 9 THEN
UPDATE rm_role_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 10 THEN
UPDATE rm_role_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 11 THEN
UPDATE rm_role_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 12 THEN
UPDATE rm_role_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 13 THEN
UPDATE rm_role_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 14 THEN
UPDATE rm_role_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 15 THEN
UPDATE rm_role_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
END IF;
--
IF num = 0 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 1 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 2 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 3 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 4 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 5 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 6 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 7 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 8 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 9 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 10 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 11 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 12 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 13 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 14 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
ELSEIF num = 15 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0';
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'hmi_type_info', 'hmi_id', OLD.HMI_ID, '', getTableSubSystem('hmi_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_HMI_TYPE_INFO ON hmi_type_info;
CREATE TRIGGER TDA_HMI_TYPE_INFO AFTER DELETE ON hmi_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_HMI_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_IA_DISPOSAL_PLAN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'ia_disposal_plan', 'KEY_ID_TAG', '',NEW.KEY_ID_TAG, getTableSubSystem('ia_disposal_plan'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_IA_DISPOSAL_PLAN ON ia_disposal_plan;
CREATE TRIGGER TIA_IA_DISPOSAL_PLAN AFTER INSERT ON ia_disposal_plan FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_IA_DISPOSAL_PLAN();
CREATE OR REPLACE FUNCTION FUNC_TUA_IA_DISPOSAL_PLAN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'ia_disposal_plan', 'KEY_ID_TAG', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('ia_disposal_plan'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_IA_DISPOSAL_PLAN ON ia_disposal_plan;
CREATE TRIGGER TUA_IA_DISPOSAL_PLAN AFTER UPDATE ON ia_disposal_plan FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_IA_DISPOSAL_PLAN();
CREATE OR REPLACE FUNCTION FUNC_TDA_IA_DISPOSAL_PLAN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'ia_disposal_plan', 'KEY_ID_TAG', OLD.KEY_ID_TAG, '', getTableSubSystem('ia_disposal_plan'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_IA_DISPOSAL_PLAN ON ia_disposal_plan;
CREATE TRIGGER TDA_IA_DISPOSAL_PLAN AFTER DELETE ON ia_disposal_plan FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_IA_DISPOSAL_PLAN();
CREATE OR REPLACE FUNCTION FUNC_TI_MIX() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(NEW.IS_CONTROL,0) <> 0
THEN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO mix_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 0, 1, 30, 30, 0, 1, 0.01, 65536, 0, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
);
ELSE
INSERT INTO mix_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
FROM mix_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END IF;
IF COALESCE(NEW.IS_SAMPLE,0) <> 0
THEN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
(NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 );
END IF;
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO mix_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, DESCRIPTION)
VALUES (
concat('mix' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', 0, 1, 65535, 0, 1, 1, 5, NEW.DESCRIPTION
);
ELSE
INSERT INTO mix_map_to_fes (
KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, DESCRIPTION) SELECT
concat('mix' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, NEW.DESCRIPTION
FROM mix_temp_define WHERE TAG_NAME = NEW.POINT_TP_NAME;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'mix', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('mix'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_MIX ON mix;
CREATE TRIGGER TI_MIX AFTER INSERT ON mix FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_MIX();
CREATE OR REPLACE FUNCTION FUNC_TU_MIX() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0
THEN
BEGIN
DELETE FROM mix_control WHERE TAG_NAME=OLD.TAG_NAME;
DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME;
END;
ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0
THEN
BEGIN
IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN
INSERT INTO mix_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME)
VALUES (
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 0, 1, 30, 30, 0, 1, 0.01, 65536, 0, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
);
ELSE
INSERT INTO mix_control(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT
NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME
FROM mix_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME;
END IF;
END;
ELSE
BEGIN
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.RTU_TAG<>OLD.RTU_TAG
THEN
UPDATE mix_control
SET
TAG_NAME = NEW.TAG_NAME,
LOCATION_ID = NEW.LOCATION_ID,
SUB_SYSTEM = NEW.SUB_SYSTEM,
RTU_TAG = NEW.RTU_TAG,
POINT_TP_NAME = NEW.POINT_TP_NAME
WHERE TAG_NAME = OLD.TAG_NAME;
END IF;
END;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0
THEN
BEGIN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END;
ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0
THEN
BEGIN
INSERT INTO sample_define (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES
( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 );
END;
ELSE
BEGIN
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM
OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD
THEN
UPDATE sample_define
SET
sample_define.TAG_NAME = NEW.TAG_NAME ,
sample_define.DESCRIPTION = NEW.DESCRIPTION ,
sample_define.LOCATION_ID = NEW.LOCATION_ID ,
sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM ,
sample_define.DEVICE_TAG = NEW.DEVICE,
sample_define.POINT_TYPE = NEW.POINT_TYPE,
sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD
WHERE TAG_NAME= OLD.TAG_NAME;
END IF;
END;
END IF;
IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.DEV_TYPE<>OLD.DEV_TYPE
OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME OR NEW.RTU_TAG<>OLD.RTU_TAG OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.DESCRIPTION<>OLD.DESCRIPTION
THEN
UPDATE mix_map_to_fes SET
KEY_ID_TAG = concat('mix' , '.' , NEW.TAG_NAME),
LOCATION_ID =NEW.LOCATION_ID,
SUB_SYSTEM = NEW.SUB_SYSTEM,
DEV_TYPE = NEW.DEV_TYPE,
POINT_TP_NAME = NEW.POINT_TP_NAME,
RTU_TAG = NEW.RTU_TAG,
DESCRIPTION = NEW.DESCRIPTION
WHERE KEY_ID_TAG=concat('mix' , '.' , OLD.TAG_NAME);
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'mix', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('mix'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_MIX ON mix;
CREATE TRIGGER TU_MIX AFTER UPDATE ON mix FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_MIX();
CREATE OR REPLACE FUNCTION FUNC_TD_MIX() RETURNS TRIGGER AS $$
BEGIN
IF COALESCE(OLD.IS_CONTROL,0) <> 0
THEN
DELETE FROM mix_control WHERE TAG_NAME=OLD.TAG_NAME;
END IF;
IF COALESCE(OLD.IS_SAMPLE,0) <> 0
THEN
DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ;
END IF;
DELETE FROM mix_map_to_fes WHERE KEY_ID_TAG=concat('mix' , '.' , OLD.TAG_NAME);
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_MIX ON mix;
CREATE TRIGGER TD_MIX BEFORE DELETE ON mix FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_MIX();
CREATE OR REPLACE FUNCTION FUNC_TDA_MIX() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'mix', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('mix'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_MIX ON mix;
CREATE TRIGGER TDA_MIX AFTER DELETE ON mix FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_MIX();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_CTRL_ACT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', '', concat(NEW.CTRL_GRP_NAME,',',NEW.CTRL_GRP_NO), getTableSubSystem('opt_ctrl_act_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_CTRL_ACT_DEFINE ON opt_ctrl_act_define;
CREATE TRIGGER TIA_OPT_CTRL_ACT_DEFINE AFTER INSERT ON opt_ctrl_act_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_CTRL_ACT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_CTRL_ACT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', concat(OLD.CTRL_GRP_NAME,',',OLD.CTRL_GRP_NO), concat(NEW.CTRL_GRP_NAME,',',NEW.CTRL_GRP_NO), getTableSubSystem('opt_ctrl_act_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_CTRL_ACT_DEFINE ON opt_ctrl_act_define;
CREATE TRIGGER TUA_OPT_CTRL_ACT_DEFINE AFTER UPDATE ON opt_ctrl_act_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_CTRL_ACT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_CTRL_ACT_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', concat(OLD.CTRL_GRP_NAME,',',OLD.CTRL_GRP_NO), '', getTableSubSystem('opt_ctrl_act_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_CTRL_ACT_DEFINE ON opt_ctrl_act_define;
CREATE TRIGGER TDA_OPT_CTRL_ACT_DEFINE AFTER DELETE ON opt_ctrl_act_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_CTRL_ACT_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_HANDOVER_GRP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_handover_grp', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_handover_grp'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_HANDOVER_GRP ON opt_handover_grp;
CREATE TRIGGER TIA_OPT_HANDOVER_GRP AFTER INSERT ON opt_handover_grp FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_HANDOVER_GRP();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_HANDOVER_GRP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_handover_grp', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_handover_grp'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_HANDOVER_GRP ON opt_handover_grp;
CREATE TRIGGER TUA_OPT_HANDOVER_GRP AFTER UPDATE ON opt_handover_grp FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_HANDOVER_GRP();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_HANDOVER_GRP() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_handover_grp', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_handover_grp'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_HANDOVER_GRP ON opt_handover_grp;
CREATE TRIGGER TDA_OPT_HANDOVER_GRP AFTER DELETE ON opt_handover_grp FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_HANDOVER_GRP();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_INTERLOCK_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_interlock_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_interlock_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_INTERLOCK_DEFINE ON opt_interlock_define;
CREATE TRIGGER TIA_OPT_INTERLOCK_DEFINE AFTER INSERT ON opt_interlock_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_INTERLOCK_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_INTERLOCK_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_interlock_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_interlock_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_INTERLOCK_DEFINE ON opt_interlock_define;
CREATE TRIGGER TUA_OPT_INTERLOCK_DEFINE AFTER UPDATE ON opt_interlock_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_INTERLOCK_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_INTERLOCK_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_interlock_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_interlock_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_INTERLOCK_DEFINE ON opt_interlock_define;
CREATE TRIGGER TDA_OPT_INTERLOCK_DEFINE AFTER DELETE ON opt_interlock_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_INTERLOCK_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_INTERLOCK_PARA() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_interlock_para', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_interlock_para'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_INTERLOCK_PARA ON opt_interlock_para;
CREATE TRIGGER TIA_OPT_INTERLOCK_PARA AFTER INSERT ON opt_interlock_para FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_INTERLOCK_PARA();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_INTERLOCK_PARA() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_interlock_para', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_interlock_para'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_INTERLOCK_PARA ON opt_interlock_para;
CREATE TRIGGER TUA_OPT_INTERLOCK_PARA AFTER UPDATE ON opt_interlock_para FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_INTERLOCK_PARA();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_INTERLOCK_PARA() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_interlock_para', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_interlock_para'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_INTERLOCK_PARA ON opt_interlock_para;
CREATE TRIGGER TDA_OPT_INTERLOCK_PARA AFTER DELETE ON opt_interlock_para FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_INTERLOCK_PARA();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_SHIELD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_define', 'shield_id', '', NEW.SHIELD_ID, getTableSubSystem('opt_shield_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_SHIELD_DEFINE ON opt_shield_define;
CREATE TRIGGER TIA_OPT_SHIELD_DEFINE AFTER INSERT ON opt_shield_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_SHIELD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_SHIELD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_define', 'shield_id', OLD.SHIELD_ID, NEW.SHIELD_ID, getTableSubSystem('opt_shield_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_SHIELD_DEFINE ON opt_shield_define;
CREATE TRIGGER TUA_OPT_SHIELD_DEFINE AFTER UPDATE ON opt_shield_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_SHIELD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_SHIELD_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_define', 'shield_id', OLD.SHIELD_ID, '', getTableSubSystem('opt_shield_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_SHIELD_DEFINE ON opt_shield_define;
CREATE TRIGGER TDA_OPT_SHIELD_DEFINE AFTER DELETE ON opt_shield_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_SHIELD_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_SHIELD_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_info', 'shield_id', '', NEW.SHIELD_ID, getTableSubSystem('opt_shield_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_SHIELD_INFO ON opt_shield_info;
CREATE TRIGGER TIA_OPT_SHIELD_INFO AFTER INSERT ON opt_shield_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_SHIELD_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_SHIELD_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_info', 'shield_id', OLD.SHIELD_ID, NEW.SHIELD_ID, getTableSubSystem('opt_shield_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_SHIELD_INFO ON opt_shield_info;
CREATE TRIGGER TUA_OPT_SHIELD_INFO AFTER UPDATE ON opt_shield_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_SHIELD_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_SHIELD_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_info', 'shield_id', OLD.SHIELD_ID, '', getTableSubSystem('opt_shield_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_SHIELD_INFO ON opt_shield_info;
CREATE TRIGGER TDA_OPT_SHIELD_INFO AFTER DELETE ON opt_shield_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_SHIELD_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_SHIELD_OBJ() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_obj', 'shield_id,key_id_tag', '', concat(NEW.SHIELD_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_shield_obj'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_SHIELD_OBJ ON opt_shield_obj;
CREATE TRIGGER TIA_OPT_SHIELD_OBJ AFTER INSERT ON opt_shield_obj FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_SHIELD_OBJ();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_SHIELD_OBJ() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_obj', 'shield_id,key_id_tag', concat(OLD.SHIELD_ID,',',OLD.KEY_ID_TAG), concat(NEW.SHIELD_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_shield_obj'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_SHIELD_OBJ ON opt_shield_obj;
CREATE TRIGGER TUA_OPT_SHIELD_OBJ AFTER UPDATE ON opt_shield_obj FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_SHIELD_OBJ();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_SHIELD_OBJ() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_obj', 'shield_id,key_id_tag', concat(OLD.SHIELD_ID,',',OLD.KEY_ID_TAG), '', getTableSubSystem('opt_shield_obj'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_SHIELD_OBJ ON opt_shield_obj;
CREATE TRIGGER TDA_OPT_SHIELD_OBJ AFTER DELETE ON opt_shield_obj FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_SHIELD_OBJ();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_SHIELD_TIME() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_time', 'time_id', '', NEW.TIME_ID, getTableSubSystem('opt_shield_time'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_SHIELD_TIME ON opt_shield_time;
CREATE TRIGGER TIA_OPT_SHIELD_TIME AFTER INSERT ON opt_shield_time FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_SHIELD_TIME();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_SHIELD_TIME() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_time', 'time_id', OLD.TIME_ID, NEW.TIME_ID, getTableSubSystem('opt_shield_time'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_SHIELD_TIME ON opt_shield_time;
CREATE TRIGGER TUA_OPT_SHIELD_TIME AFTER UPDATE ON opt_shield_time FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_SHIELD_TIME();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_SHIELD_TIME() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_time', 'time_id', OLD.TIME_ID, '', getTableSubSystem('opt_shield_time'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_SHIELD_TIME ON opt_shield_time;
CREATE TRIGGER TDA_OPT_SHIELD_TIME AFTER DELETE ON opt_shield_time FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_SHIELD_TIME();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_TAG_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_tag_info', 'key_id_tag,tag_type', '', concat(NEW.KEY_ID_TAG,',',NEW.TAG_TYPE), getTableSubSystem('opt_tag_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_TAG_INFO ON opt_tag_info;
CREATE TRIGGER TIA_OPT_TAG_INFO AFTER INSERT ON opt_tag_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_TAG_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_TAG_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_tag_info', 'key_id_tag,tag_type', concat(OLD.KEY_ID_TAG,',',OLD.TAG_TYPE), concat(NEW.KEY_ID_TAG,',',NEW.TAG_TYPE), getTableSubSystem('opt_tag_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_TAG_INFO ON opt_tag_info;
CREATE TRIGGER TUA_OPT_TAG_INFO AFTER UPDATE ON opt_tag_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_TAG_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_TAG_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_tag_info', 'key_id_tag,tag_type', concat(OLD.KEY_ID_TAG,',',OLD.TAG_TYPE), '', getTableSubSystem('opt_tag_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_TAG_INFO ON opt_tag_info;
CREATE TRIGGER TDA_OPT_TAG_INFO AFTER DELETE ON opt_tag_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_TAG_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_TOKEN_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_token_define', 'token_id', '', NEW.TOKEN_ID, getTableSubSystem('opt_token_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_TOKEN_DEFINE ON opt_token_define;
CREATE TRIGGER TIA_OPT_TOKEN_DEFINE AFTER INSERT ON opt_token_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_TOKEN_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_TOKEN_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_token_define', 'token_id', OLD.TOKEN_ID, NEW.TOKEN_ID, getTableSubSystem('opt_token_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_TOKEN_DEFINE ON opt_token_define;
CREATE TRIGGER TUA_OPT_TOKEN_DEFINE AFTER UPDATE ON opt_token_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_TOKEN_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_TOKEN_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_token_define', 'token_id', OLD.TOKEN_ID, '', getTableSubSystem('opt_token_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_TOKEN_DEFINE ON opt_token_define;
CREATE TRIGGER TDA_OPT_TOKEN_DEFINE AFTER DELETE ON opt_token_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_TOKEN_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_OPT_TOKEN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'opt_token_info', 'token_id,key_id_tag', '', concat(NEW.TOKEN_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_token_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_OPT_TOKEN_INFO ON opt_token_info;
CREATE TRIGGER TIA_OPT_TOKEN_INFO AFTER INSERT ON opt_token_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_OPT_TOKEN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_OPT_TOKEN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'opt_token_info', 'token_id,key_id_tag', concat(OLD.TOKEN_ID,',',OLD.KEY_ID_TAG), concat(NEW.TOKEN_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_token_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_OPT_TOKEN_INFO ON opt_token_info;
CREATE TRIGGER TUA_OPT_TOKEN_INFO AFTER UPDATE ON opt_token_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_OPT_TOKEN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_OPT_TOKEN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'opt_token_info', 'token_id,key_id_tag', concat(OLD.TOKEN_ID,',',OLD.KEY_ID_TAG), '', getTableSubSystem('opt_token_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_OPT_TOKEN_INFO ON opt_token_info;
CREATE TRIGGER TDA_OPT_TOKEN_INFO AFTER DELETE ON opt_token_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_OPT_TOKEN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_REGION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'region_info', 'region_id', '', NEW.REGION_ID, getTableSubSystem('region_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_REGION_INFO ON region_info;
CREATE TRIGGER TIA_REGION_INFO AFTER INSERT ON region_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_REGION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_REGION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'region_info', 'region_id', OLD.REGION_ID, NEW.REGION_ID, getTableSubSystem('region_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_REGION_INFO ON region_info;
CREATE TRIGGER TUA_REGION_INFO AFTER UPDATE ON region_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_REGION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_REGION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'region_info', 'region_id', OLD.REGION_ID, '', getTableSubSystem('region_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_REGION_INFO ON region_info;
CREATE TRIGGER TDA_REGION_INFO AFTER DELETE ON region_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_REGION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_REPORT_TYPE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'report_type_info', 'report_id', '', NEW.REPORT_ID, getTableSubSystem('report_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_REPORT_TYPE_INFO ON report_type_info;
CREATE TRIGGER TIA_REPORT_TYPE_INFO AFTER INSERT ON report_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_REPORT_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_REPORT_TYPE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'report_type_info', 'report_id', OLD.REPORT_ID, NEW.REPORT_ID, getTableSubSystem('report_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_REPORT_TYPE_INFO ON report_type_info;
CREATE TRIGGER TUA_REPORT_TYPE_INFO AFTER UPDATE ON report_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_REPORT_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_REPORT_TYPE_INFO() RETURNS TRIGGER AS $$
--PERM_TYPE = 1,0HMI画面
DECLARE num int;
BEGIN
num = DIV((OLD.REPORT_ID-1),32);
--
IF num = 0 THEN
UPDATE rm_role_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 1 THEN
UPDATE rm_role_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 2 THEN
UPDATE rm_role_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 3 THEN
UPDATE rm_role_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 4 THEN
UPDATE rm_role_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 5 THEN
UPDATE rm_role_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 6 THEN
UPDATE rm_role_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 7 THEN
UPDATE rm_role_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 8 THEN
UPDATE rm_role_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 9 THEN
UPDATE rm_role_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 10 THEN
UPDATE rm_role_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 11 THEN
UPDATE rm_role_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 12 THEN
UPDATE rm_role_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 13 THEN
UPDATE rm_role_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 14 THEN
UPDATE rm_role_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 15 THEN
UPDATE rm_role_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
END IF;
--
IF num = 0 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 1 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 2 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 3 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 4 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 5 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 6 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 7 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 8 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 9 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 10 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 11 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 12 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 13 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 14 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
ELSEIF num = 15 THEN
UPDATE rm_userg_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1';
END IF;
DELETE FROM t_sys_table_file_tree WHERE TREECODE = OLD.REPORT_DEFINE;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'report_type_info', 'report_id', OLD.REPORT_ID, '', getTableSubSystem('report_type_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_REPORT_TYPE_INFO ON report_type_info;
CREATE TRIGGER TDA_REPORT_TYPE_INFO AFTER DELETE ON report_type_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_REPORT_TYPE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_DEPT_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_dept_def', 'dept_id', '', NEW.DEPT_ID, getTableSubSystem('rm_dept_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_DEPT_DEF ON rm_dept_def;
CREATE TRIGGER TIA_RM_DEPT_DEF AFTER INSERT ON rm_dept_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_DEPT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_DEPT_DEF() RETURNS TRIGGER AS $$
DECLARE oldNum int;
DECLARE newNum int;
BEGIN
oldNum = DIV((OLD.DEPT_ID-1),32);
newNum = DIV((NEW.DEPT_ID-1),32);
IF NEW.DEPT_ID <> OLD.DEPT_ID THEN
BEGIN
--,,,
IF oldNum = 0 THEN
UPDATE rm_user_def SET
PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1),
PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2),
PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3),
PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4)
WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 1 THEN
UPDATE rm_user_def SET
PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1),
PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2),
PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3),
PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4)
WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 2 THEN
UPDATE rm_user_def SET
PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1),
PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2),
PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3),
PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4)
WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 3 THEN
UPDATE rm_user_def SET
PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1),
PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2),
PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3),
PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4)
WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
END IF;
--,
IF oldNum = 0 THEN
UPDATE rm_user_def SET PERM_DEPT1 = resetBit(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 1 THEN
UPDATE rm_user_def SET PERM_DEPT2 = resetBit(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 2 THEN
UPDATE rm_user_def SET PERM_DEPT3 = resetBit(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF oldNum = 3 THEN
UPDATE rm_user_def SET PERM_DEPT4 = resetBit(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
END IF;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_dept_def', 'dept_id', OLD.DEPT_ID, NEW.DEPT_ID, getTableSubSystem('rm_dept_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_DEPT_DEF ON rm_dept_def;
CREATE TRIGGER TUA_RM_DEPT_DEF AFTER UPDATE ON rm_dept_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_DEPT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_DEPT_DEF() RETURNS TRIGGER AS $$
DECLARE num int;
BEGIN
--
num = DIV((OLD.DEPT_ID-1),32);
IF num = 0 THEN
UPDATE rm_user_def SET PERM_DEPT1 = resetBit(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF num = 1 THEN
UPDATE rm_user_def SET PERM_DEPT2 = resetBit(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF num = 2 THEN
UPDATE rm_user_def SET PERM_DEPT3 = resetBit(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
ELSEIF num = 3 THEN
UPDATE rm_user_def SET PERM_DEPT4 = resetBit(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32));
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_dept_def', 'dept_id', OLD.DEPT_ID, '', getTableSubSystem('rm_dept_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_DEPT_DEF ON rm_dept_def;
CREATE TRIGGER TDA_RM_DEPT_DEF AFTER DELETE ON rm_dept_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_DEPT_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_NORM_FUNC_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_norm_func_def', 'func_id', '', NEW.FUNC_ID, getTableSubSystem('rm_norm_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_NORM_FUNC_DEF ON rm_norm_func_def;
CREATE TRIGGER TIA_RM_NORM_FUNC_DEF AFTER INSERT ON rm_norm_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_NORM_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_NORM_FUNC_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_norm_func_def', 'func_id', OLD.FUNC_ID, NEW.FUNC_ID, getTableSubSystem('rm_norm_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_NORM_FUNC_DEF ON rm_norm_func_def;
CREATE TRIGGER TUA_RM_NORM_FUNC_DEF AFTER UPDATE ON rm_norm_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_NORM_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_NORM_FUNC_DEF() RETURNS TRIGGER AS $$
DECLARE num int;
BEGIN
--
num = DIV((OLD.FUNC_ID-1),32);
IF num = 0 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC1 = resetBit(PERM_NOM_FUNC1,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC1,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 1 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC2 = resetBit(PERM_NOM_FUNC2,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC2,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 2 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC3 = resetBit(PERM_NOM_FUNC3,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC3,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 3 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC4 = resetBit(PERM_NOM_FUNC4,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC4,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 4 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC5 = resetBit(PERM_NOM_FUNC5,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC5,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 5 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC6 = resetBit(PERM_NOM_FUNC6,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC6,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 6 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC7 = resetBit(PERM_NOM_FUNC7,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC7,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
ELSEIF num = 7 THEN
UPDATE rm_role_def SET PERM_NOM_FUNC8 = resetBit(PERM_NOM_FUNC8,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC8,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32));
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_norm_func_def', 'func_id', OLD.FUNC_ID, '', getTableSubSystem('rm_norm_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_NORM_FUNC_DEF ON rm_norm_func_def;
CREATE TRIGGER TDA_RM_NORM_FUNC_DEF AFTER DELETE ON rm_norm_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_NORM_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_ROLE_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_db_info', 'perm_role,perm_table_name', '', concat(NEW.PERM_ROLE,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_role_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_ROLE_DB_INFO ON rm_role_db_info;
CREATE TRIGGER TIA_RM_ROLE_DB_INFO AFTER INSERT ON rm_role_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_ROLE_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_ROLE_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_db_info', 'perm_role,perm_table_name', concat(OLD.PERM_ROLE,',',OLD.PERM_TABLE_NAME), concat(NEW.PERM_ROLE,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_role_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_ROLE_DB_INFO ON rm_role_db_info;
CREATE TRIGGER TUA_RM_ROLE_DB_INFO AFTER UPDATE ON rm_role_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_ROLE_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_ROLE_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_db_info', 'perm_role,perm_table_name', concat(OLD.PERM_ROLE,',',OLD.PERM_TABLE_NAME), '', getTableSubSystem('rm_role_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_ROLE_DB_INFO ON rm_role_db_info;
CREATE TRIGGER TDA_RM_ROLE_DB_INFO AFTER DELETE ON rm_role_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_ROLE_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_ROLE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_role_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_ROLE_DEF ON rm_role_def;
CREATE TRIGGER TIA_RM_ROLE_DEF AFTER INSERT ON rm_role_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_ROLE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_ROLE_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_role_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_ROLE_DEF ON rm_role_def;
CREATE TRIGGER TUA_RM_ROLE_DEF AFTER UPDATE ON rm_role_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_ROLE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_ROLE_DEF() RETURNS TRIGGER AS $$
DECLARE num int;
BEGIN
--
--
num = DIV((OLD.PERM_ID-1),32);
IF num = 0 THEN
UPDATE rm_userg_def SET PERM_ROLE1 = resetBit(PERM_ROLE1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 1 THEN
UPDATE rm_userg_def SET PERM_ROLE2 = resetBit(PERM_ROLE2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 2 THEN
UPDATE rm_userg_def SET PERM_ROLE3 = resetBit(PERM_ROLE3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 3 THEN
UPDATE rm_userg_def SET PERM_ROLE4 = resetBit(PERM_ROLE4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 4 THEN
UPDATE rm_userg_def SET PERM_ROLE5 = resetBit(PERM_ROLE5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 5 THEN
UPDATE rm_userg_def SET PERM_ROLE6 = resetBit(PERM_ROLE6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 6 THEN
UPDATE rm_userg_def SET PERM_ROLE7 = resetBit(PERM_ROLE7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 7 THEN
UPDATE rm_userg_def SET PERM_ROLE8 = resetBit(PERM_ROLE8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
END IF;
--rm_role_db_info
DELETE FROM rm_role_db_info WHERE PERM_ROLE = OLD.PERM_ID;
--rm_role_hmi_info
DELETE FROM rm_role_hmi_info WHERE PERM_ROLE = OLD.PERM_ID;
--rm_role_spef_reg
DELETE FROM rm_role_spef_reg WHERE PERM_ROLE = OLD.PERM_ID;
--rm_userg_rsp_info
DELETE FROM rm_userg_rsp_info WHERE PERM_ROLE = OLD.PERM_ID;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_role_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_ROLE_DEF ON rm_role_def;
CREATE TRIGGER TDA_RM_ROLE_DEF AFTER DELETE ON rm_role_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_ROLE_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_ROLE_HMI_INFO() RETURNS TRIGGER AS $$
DECLARE num int;
DECLARE pos int;
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
num = DIV((NEW.PERM_ROLE-1),32);
pos = IF(NEW.PERM_ROLE%32=0,32,NEW.PERM_ROLE%32);
IF NEW.PERM_TYPE = '1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE EXISTS (
SELECT rm_userg_def.PERM_ID FROM rm_userg_def
WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID
AND testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos)
);
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_userg_hmi_info ,report_type_info
WHERE testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos)
AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
--,,
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_role_hmi_info, rm_userg_def,report_type_info
WHERE testNumber(elt( (DIV((PERM_ROLE-1),32)) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_hmi_info', 'perm_role,perm_type', '', concat(NEW.PERM_ROLE,',',NEW.PERM_TYPE), getTableSubSystem('rm_role_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_ROLE_HMI_INFO ON rm_role_hmi_info;
CREATE TRIGGER TIA_RM_ROLE_HMI_INFO AFTER INSERT ON rm_role_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_ROLE_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_ROLE_HMI_INFO() RETURNS TRIGGER AS $$
DECLARE oldNum int;
DECLARE oldPos int;
DECLARE newNum int;
DECLARE newPos int;
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
oldNum = DIV((OLD.PERM_ROLE-1),32);
oldPos = IF(OLD.PERM_ROLE%32=0,32,OLD.PERM_ROLE%32);
newNum = DIV((NEW.PERM_ROLE-1),32);
newPos = IF(NEW.PERM_ROLE%32=0,32,NEW.PERM_ROLE%32);
IF NEW.PERM_TYPE = '1' AND OLD.PERM_TYPE='1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE EXISTS (
SELECT rm_userg_def.PERM_ID FROM rm_userg_def
WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID
AND testNumber(elt(oldNum+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),oldPos)
);
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_userg_hmi_info ,report_type_info
WHERE testNumber(elt(newNum+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),newPos)
AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
--,,
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_role_hmi_info, rm_userg_def,report_type_info
WHERE testNumber(elt( (DIV((PERM_ROLE-1),32)) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_hmi_info', 'perm_role,perm_type', concat(OLD.PERM_ROLE,',',OLD.PERM_TYPE), concat(NEW.PERM_ROLE,',',NEW.PERM_TYPE), getTableSubSystem('rm_role_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_ROLE_HMI_INFO ON rm_role_hmi_info;
CREATE TRIGGER TUA_RM_ROLE_HMI_INFO AFTER UPDATE ON rm_role_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_ROLE_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_ROLE_HMI_INFO() RETURNS TRIGGER AS $$
DECLARE num int;
DECLARE pos int;
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
num = DIV((OLD.PERM_ROLE-1),32);
pos = IF(OLD.PERM_ROLE%32=0,32,OLD.PERM_ROLE%32);
IF OLD.PERM_TYPE = '1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE EXISTS (
SELECT rm_userg_def.PERM_ID FROM rm_userg_def
WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID
AND testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos)
);
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_userg_hmi_info ,report_type_info
WHERE testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos)
AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
--,,
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_role_hmi_info, rm_userg_def,report_type_info
WHERE testNumber(elt( (DIV((PERM_ROLE-1),32)) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_hmi_info', 'perm_role,perm_type', concat(OLD.PERM_ROLE,',',OLD.PERM_TYPE), '', getTableSubSystem('rm_role_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_ROLE_HMI_INFO ON rm_role_hmi_info;
CREATE TRIGGER TDA_RM_ROLE_HMI_INFO AFTER DELETE ON rm_role_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_ROLE_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_ROLE_SPEF_REG() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_spef_reg', 'perm_role,perm_spefunc', '', concat(NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_role_spef_reg'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_ROLE_SPEF_REG ON rm_role_spef_reg;
CREATE TRIGGER TIA_RM_ROLE_SPEF_REG AFTER INSERT ON rm_role_spef_reg FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_ROLE_SPEF_REG();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_ROLE_SPEF_REG() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_spef_reg', 'perm_role,perm_spefunc', concat(OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), concat(NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_role_spef_reg'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_ROLE_SPEF_REG ON rm_role_spef_reg;
CREATE TRIGGER TUA_RM_ROLE_SPEF_REG AFTER UPDATE ON rm_role_spef_reg FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_ROLE_SPEF_REG();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_ROLE_SPEF_REG() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_spef_reg', 'perm_role,perm_spefunc', concat(OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), '', getTableSubSystem('rm_role_spef_reg'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_ROLE_SPEF_REG ON rm_role_spef_reg;
CREATE TRIGGER TDA_RM_ROLE_SPEF_REG AFTER DELETE ON rm_role_spef_reg FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_ROLE_SPEF_REG();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_SECURITY_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_security_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_security_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_SECURITY_DEF ON rm_security_def;
CREATE TRIGGER TIA_RM_SECURITY_DEF AFTER INSERT ON rm_security_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_SECURITY_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_SECURITY_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_security_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_security_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_SECURITY_DEF ON rm_security_def;
CREATE TRIGGER TUA_RM_SECURITY_DEF AFTER UPDATE ON rm_security_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_SECURITY_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_SECURITY_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_security_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_security_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_SECURITY_DEF ON rm_security_def;
CREATE TRIGGER TDA_RM_SECURITY_DEF AFTER DELETE ON rm_security_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_SECURITY_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_SPCL_FUNC_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_spcl_func_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_spcl_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_SPCL_FUNC_DEF ON rm_spcl_func_def;
CREATE TRIGGER TIA_RM_SPCL_FUNC_DEF AFTER INSERT ON rm_spcl_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_SPCL_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_SPCL_FUNC_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_spcl_func_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_spcl_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_SPCL_FUNC_DEF ON rm_spcl_func_def;
CREATE TRIGGER TUA_RM_SPCL_FUNC_DEF AFTER UPDATE ON rm_spcl_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_SPCL_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_SPCL_FUNC_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_spcl_func_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_spcl_func_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_SPCL_FUNC_DEF ON rm_spcl_func_def;
CREATE TRIGGER TDA_RM_SPCL_FUNC_DEF AFTER DELETE ON rm_spcl_func_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_SPCL_FUNC_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_USER_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_user_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_user_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_USER_DEF ON rm_user_def;
CREATE TRIGGER TIA_RM_USER_DEF AFTER INSERT ON rm_user_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_USER_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_USER_DEF() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_user_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_user_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_USER_DEF ON rm_user_def;
CREATE TRIGGER TUA_RM_USER_DEF AFTER UPDATE ON rm_user_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_USER_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_USER_DEF() RETURNS TRIGGER AS $$
BEGIN
delete from rm_user_finger_print_info where USER_ID = old.PERM_ID;
delete from rm_user_face_info where USER_ID = old.PERM_ID;
delete from rm_user_signature_info where USER_ID = old.PERM_ID;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_user_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_user_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_USER_DEF ON rm_user_def;
CREATE TRIGGER TDA_RM_USER_DEF AFTER DELETE ON rm_user_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_USER_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_USERG_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_db_info', 'perm_user_group,perm_table_name', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_userg_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_USERG_DB_INFO ON rm_userg_db_info;
CREATE TRIGGER TIA_RM_USERG_DB_INFO AFTER INSERT ON rm_userg_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_USERG_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_USERG_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_db_info', 'perm_user_group,perm_table_name', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TABLE_NAME), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_userg_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_USERG_DB_INFO ON rm_userg_db_info;
CREATE TRIGGER TUA_RM_USERG_DB_INFO AFTER UPDATE ON rm_userg_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_USERG_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_USERG_DB_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_db_info', 'perm_user_group,perm_table_name', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TABLE_NAME), '', getTableSubSystem('rm_userg_db_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_USERG_DB_INFO ON rm_userg_db_info;
CREATE TRIGGER TDA_RM_USERG_DB_INFO AFTER DELETE ON rm_userg_db_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_USERG_DB_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_USERG_DEF() RETURNS TRIGGER AS $$
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = NEW.PERM_ID;
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_userg_hmi_info, report_type_info
WHERE rm_userg_hmi_info.PERM_USER_GROUP = NEW.PERM_ID AND rm_userg_hmi_info.PERM_TYPE = '1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_role_hmi_info,report_type_info
WHERE
testNumber(elt( (DIV((PERM_ROLE-1),32)) +1, NEW.PERM_ROLE1,NEW.PERM_ROLE2,NEW.PERM_ROLE3,NEW.PERM_ROLE4,NEW.PERM_ROLE5,NEW.PERM_ROLE6,NEW.PERM_ROLE7,NEW.PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND rm_role_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
INSERT INTO rm_userg_hmi_info(PERM_USER_GROUP,PERM_TYPE,PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16,PERM_ATTRIBUTE)
VALUES(NEW.PERM_ID,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1)
;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_userg_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_USERG_DEF ON rm_userg_def;
CREATE TRIGGER TIA_RM_USERG_DEF AFTER INSERT ON rm_userg_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_USERG_DEF();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_USERG_DEF() RETURNS TRIGGER AS $$
BEGIN
IF NEW.PERM_ID <> OLD.PERM_ID OR NEW.PERM_ROLE1 <> OLD.PERM_ROLE1 OR NEW.PERM_ROLE2 <> OLD.PERM_ROLE2 OR NEW.PERM_ROLE3 <> OLD.PERM_ROLE3 OR
NEW.PERM_ROLE4 <> OLD.PERM_ROLE4 OR NEW.PERM_ROLE5 <> OLD.PERM_ROLE5 OR NEW.PERM_ROLE6 <> OLD.PERM_ROLE6 OR NEW.PERM_ROLE7 <> OLD.PERM_ROLE7 OR
NEW.PERM_ROLE8 <> OLD.PERM_ROLE8 THEN
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_ID;
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_userg_hmi_info, report_type_info
WHERE rm_userg_hmi_info.PERM_USER_GROUP = NEW.PERM_ID AND rm_userg_hmi_info.PERM_TYPE = '1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE
FROM rm_role_hmi_info,report_type_info
WHERE
testNumber(elt( (DIV((PERM_ROLE-1),32)) +1, NEW.PERM_ROLE1,NEW.PERM_ROLE2,NEW.PERM_ROLE3,NEW.PERM_ROLE4,NEW.PERM_ROLE5,NEW.PERM_ROLE6,NEW.PERM_ROLE7,NEW.PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND rm_role_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF NEW.PERM_LOCATION1 <> OLD.PERM_LOCATION1 OR NEW.PERM_LOCATION2 <> OLD.PERM_LOCATION2 OR NEW.PERM_LOCATION3 <> OLD.PERM_LOCATION3 OR
NEW.PERM_LOCATION4 <> OLD.PERM_LOCATION4 OR NEW.PERM_LOCATION5 <> OLD.PERM_LOCATION5 OR NEW.PERM_LOCATION6 <> OLD.PERM_LOCATION6 OR
NEW.PERM_LOCATION7 <> OLD.PERM_LOCATION7 OR NEW.PERM_LOCATION8 <> OLD.PERM_LOCATION8 THEN
BEGIN
UPDATE rm_userg_rsp_info SET PERM_LOCATION1 = NEW.PERM_LOCATION1,PERM_LOCATION2 = NEW.PERM_LOCATION2,PERM_LOCATION3 = NEW.PERM_LOCATION3,PERM_LOCATION4 = NEW.PERM_LOCATION4,
PERM_LOCATION5 = NEW.PERM_LOCATION5,PERM_LOCATION6 = NEW.PERM_LOCATION6,PERM_LOCATION7 = NEW.PERM_LOCATION7,PERM_LOCATION8 = NEW.PERM_LOCATION8 WHERE PERM_USER_GROUP = OLD.PERM_ID;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_userg_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_USERG_DEF ON rm_userg_def;
CREATE TRIGGER TUA_RM_USERG_DEF AFTER UPDATE ON rm_userg_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_USERG_DEF();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_USERG_DEF() RETURNS TRIGGER AS $$
DECLARE num int;
BEGIN
--
num = DIV((OLD.PERM_ID-1),32);
IF num = 0 THEN
UPDATE rm_user_def SET PERM_USER_GROUP1 = resetBit(PERM_USER_GROUP1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 1 THEN
UPDATE rm_user_def SET PERM_USER_GROUP2 = resetBit(PERM_USER_GROUP2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 2 THEN
UPDATE rm_user_def SET PERM_USER_GROUP3 = resetBit(PERM_USER_GROUP3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 3 THEN
UPDATE rm_user_def SET PERM_USER_GROUP4 = resetBit(PERM_USER_GROUP4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 4 THEN
UPDATE rm_user_def SET PERM_USER_GROUP5 = resetBit(PERM_USER_GROUP5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 5 THEN
UPDATE rm_user_def SET PERM_USER_GROUP6 = resetBit(PERM_USER_GROUP6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 6 THEN
UPDATE rm_user_def SET PERM_USER_GROUP7 = resetBit(PERM_USER_GROUP7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 7 THEN
UPDATE rm_user_def SET PERM_USER_GROUP8 = resetBit(PERM_USER_GROUP8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 8 THEN
UPDATE rm_user_def SET PERM_USER_GROUP9 = resetBit(PERM_USER_GROUP9,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP9,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 9 THEN
UPDATE rm_user_def SET PERM_USER_GROUP10 = resetBit(PERM_USER_GROUP10,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP10,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 10 THEN
UPDATE rm_user_def SET PERM_USER_GROUP11 = resetBit(PERM_USER_GROUP11,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP11,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 11 THEN
UPDATE rm_user_def SET PERM_USER_GROUP12 = resetBit(PERM_USER_GROUP12,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP12,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 12 THEN
UPDATE rm_user_def SET PERM_USER_GROUP13 = resetBit(PERM_USER_GROUP13,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP13,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 13 THEN
UPDATE rm_user_def SET PERM_USER_GROUP14 = resetBit(PERM_USER_GROUP14,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP14,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 14 THEN
UPDATE rm_user_def SET PERM_USER_GROUP15 = resetBit(PERM_USER_GROUP15,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP15,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
ELSEIF num = 15 THEN
UPDATE rm_user_def SET PERM_USER_GROUP16 = resetBit(PERM_USER_GROUP16,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP16,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32));
END IF;
--rm_userg_rsp_info
DELETE FROM rm_userg_rsp_info WHERE PERM_USER_GROUP = OLD.PERM_ID;
--rm_userg_db_info
DELETE FROM rm_userg_db_info WHERE PERM_USER_GROUP = OLD.PERM_ID;
--rm_userg_hmi_info
DELETE FROM rm_userg_hmi_info WHERE PERM_USER_GROUP = OLD.PERM_ID;
--rm_userg_report_info
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_ID;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_userg_def'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_USERG_DEF ON rm_userg_def;
CREATE TRIGGER TDA_RM_USERG_DEF AFTER DELETE ON rm_userg_def FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_USERG_DEF();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_USERG_HMI_INFO() RETURNS TRIGGER AS $$
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
IF NEW.PERM_TYPE = '1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = NEW.PERM_USER_GROUP;
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE
FROM report_type_info
WHERE testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
NEW.PERM_INFO1,NEW.PERM_INFO2,NEW.PERM_INFO3,NEW.PERM_INFO4,NEW.PERM_INFO5,NEW.PERM_INFO6,NEW.PERM_INFO7,NEW.PERM_INFO8,
NEW.PERM_INFO9,NEW.PERM_INFO10,NEW.PERM_INFO11,NEW.PERM_INFO12,NEW.PERM_INFO13,NEW.PERM_INFO14,NEW.PERM_INFO15,NEW.PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_role_hmi_info,report_type_info
WHERE rm_userg_def.PERM_ID = NEW.PERM_USER_GROUP
AND
testNumber(elt( (DIV((PERM_ROLE-1),32)) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND rm_role_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TYPE,',',NEW.PERM_ATTRIBUTE), getTableSubSystem('rm_userg_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_USERG_HMI_INFO ON rm_userg_hmi_info;
CREATE TRIGGER TIA_RM_USERG_HMI_INFO AFTER INSERT ON rm_userg_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_USERG_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_USERG_HMI_INFO() RETURNS TRIGGER AS $$
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
IF NEW.PERM_TYPE = '1' AND OLD.PERM_TYPE = '1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_USER_GROUP;
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE
FROM report_type_info
WHERE testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
NEW.PERM_INFO1,NEW.PERM_INFO2,NEW.PERM_INFO3,NEW.PERM_INFO4,NEW.PERM_INFO5,NEW.PERM_INFO6,NEW.PERM_INFO7,NEW.PERM_INFO8,
NEW.PERM_INFO9,NEW.PERM_INFO10,NEW.PERM_INFO11,NEW.PERM_INFO12,NEW.PERM_INFO13,NEW.PERM_INFO14,NEW.PERM_INFO15,NEW.PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32));
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_role_hmi_info,report_type_info
WHERE rm_userg_def.PERM_ID = NEW.PERM_USER_GROUP
AND
testNumber(elt( (DIV((PERM_ROLE-1),32)) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND rm_role_hmi_info.PERM_TYPE='1'
AND
testNumber(elt((DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TYPE,',',OLD.PERM_ATTRIBUTE), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TYPE,',',NEW.PERM_ATTRIBUTE), getTableSubSystem('rm_userg_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_USERG_HMI_INFO ON rm_userg_hmi_info;
CREATE TRIGGER TUA_RM_USERG_HMI_INFO AFTER UPDATE ON rm_userg_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_USERG_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_USERG_HMI_INFO() RETURNS TRIGGER AS $$
BEGIN
--PERM_TYPE = 1,0HMI画面
--,rm_userg_report_info
IF OLD.PERM_TYPE = '1' THEN
BEGIN
--rm_userg_report_info中的报表浏览权限
DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_USER_GROUP;
--
INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE)
SELECT OLD.PERM_USER_GROUP,report_type_info.REPORT_DEFINE
FROM rm_userg_def,rm_role_hmi_info,report_type_info
WHERE rm_userg_def.PERM_ID = OLD.PERM_USER_GROUP
AND
testNumber(elt( (DIV((PERM_ROLE-1),32)) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),
IF(PERM_ROLE%32=0,32,PERM_ROLE%32))
AND rm_role_hmi_info.PERM_TYPE='1'
AND
testNumber(elt( (DIV((REPORT_ID-1),32)) +1,
PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,
PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16)
,IF(REPORT_ID%32=0,32,REPORT_ID%32))
;
END;
END IF;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TYPE,',',OLD.PERM_ATTRIBUTE), '', getTableSubSystem('rm_userg_hmi_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_USERG_HMI_INFO ON rm_userg_hmi_info;
CREATE TRIGGER TDA_RM_USERG_HMI_INFO AFTER DELETE ON rm_userg_hmi_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_USERG_HMI_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_RM_USERG_RSP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_userg_rsp_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_RM_USERG_RSP_INFO ON rm_userg_rsp_info;
CREATE TRIGGER TIA_RM_USERG_RSP_INFO AFTER INSERT ON rm_userg_rsp_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_RM_USERG_RSP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_RM_USERG_RSP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_userg_rsp_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_RM_USERG_RSP_INFO ON rm_userg_rsp_info;
CREATE TRIGGER TUA_RM_USERG_RSP_INFO AFTER UPDATE ON rm_userg_rsp_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_RM_USERG_RSP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_RM_USERG_RSP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), '', getTableSubSystem('rm_userg_rsp_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_RM_USERG_RSP_INFO ON rm_userg_rsp_info;
CREATE TRIGGER TDA_RM_USERG_RSP_INFO AFTER DELETE ON rm_userg_rsp_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_RM_USERG_RSP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SAFETY_DAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'safety_day', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('safety_day'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SAFETY_DAY ON safety_day;
CREATE TRIGGER TIA_SAFETY_DAY AFTER INSERT ON safety_day FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SAFETY_DAY();
CREATE OR REPLACE FUNCTION FUNC_TUA_SAFETY_DAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'safety_day', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('safety_day'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SAFETY_DAY ON safety_day;
CREATE TRIGGER TUA_SAFETY_DAY AFTER UPDATE ON safety_day FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SAFETY_DAY();
CREATE OR REPLACE FUNCTION FUNC_TDA_SAFETY_DAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'safety_day', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('safety_day'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SAFETY_DAY ON safety_day;
CREATE TRIGGER TDA_SAFETY_DAY AFTER DELETE ON safety_day FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SAFETY_DAY();
CREATE OR REPLACE FUNCTION FUNC_TIA_SAMPLE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sample_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('sample_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SAMPLE_DEFINE ON sample_define;
CREATE TRIGGER TIA_SAMPLE_DEFINE AFTER INSERT ON sample_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SAMPLE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TUA_SAMPLE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sample_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('sample_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SAMPLE_DEFINE ON sample_define;
CREATE TRIGGER TUA_SAMPLE_DEFINE AFTER UPDATE ON sample_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SAMPLE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TDA_SAMPLE_DEFINE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sample_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('sample_define'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SAMPLE_DEFINE ON sample_define;
CREATE TRIGGER TDA_SAMPLE_DEFINE AFTER DELETE ON sample_define FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SAMPLE_DEFINE();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_APP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_app_info', 'app_id', '', NEW.APP_ID, getTableSubSystem('sys_model_app_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_APP_INFO ON sys_model_app_info;
CREATE TRIGGER TIA_SYS_MODEL_APP_INFO AFTER INSERT ON sys_model_app_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_APP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_APP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_app_info', 'app_id', OLD.APP_ID, NEW.APP_ID, getTableSubSystem('sys_model_app_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_APP_INFO ON sys_model_app_info;
CREATE TRIGGER TUA_SYS_MODEL_APP_INFO AFTER UPDATE ON sys_model_app_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_APP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_APP_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_app_info', 'app_id', OLD.APP_ID, '', getTableSubSystem('sys_model_app_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_APP_INFO ON sys_model_app_info;
CREATE TRIGGER TDA_SYS_MODEL_APP_INFO AFTER DELETE ON sys_model_app_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_APP_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_DBCONFIG_DOMAIN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_dbconfig_domain', 'domain_id', '', NEW.DOMAIN_ID, getTableSubSystem('sys_model_dbconfig_domain'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_DBCONFIG_DOMAIN ON sys_model_dbconfig_domain;
CREATE TRIGGER TIA_SYS_MODEL_DBCONFIG_DOMAIN AFTER INSERT ON sys_model_dbconfig_domain FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_DBCONFIG_DOMAIN();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_DBCONFIG_DOMAIN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_dbconfig_domain', 'domain_id', OLD.DOMAIN_ID, NEW.DOMAIN_ID, getTableSubSystem('sys_model_dbconfig_domain'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_DBCONFIG_DOMAIN ON sys_model_dbconfig_domain;
CREATE TRIGGER TUA_SYS_MODEL_DBCONFIG_DOMAIN AFTER UPDATE ON sys_model_dbconfig_domain FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_DBCONFIG_DOMAIN();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_DBCONFIG_DOMAIN() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_dbconfig_domain', 'domain_id', OLD.DOMAIN_ID, '', getTableSubSystem('sys_model_dbconfig_domain'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_DBCONFIG_DOMAIN ON sys_model_dbconfig_domain;
CREATE TRIGGER TDA_SYS_MODEL_DBCONFIG_DOMAIN AFTER DELETE ON sys_model_dbconfig_domain FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_DBCONFIG_DOMAIN();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_DBCONFIG_NODE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_dbconfig_node', 'node_name', '', NEW.NODE_NAME, getTableSubSystem('sys_model_dbconfig_node'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_DBCONFIG_NODE ON sys_model_dbconfig_node;
CREATE TRIGGER TIA_SYS_MODEL_DBCONFIG_NODE AFTER INSERT ON sys_model_dbconfig_node FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_DBCONFIG_NODE();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_DBCONFIG_NODE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_dbconfig_node', 'node_name', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('sys_model_dbconfig_node'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_DBCONFIG_NODE ON sys_model_dbconfig_node;
CREATE TRIGGER TUA_SYS_MODEL_DBCONFIG_NODE AFTER UPDATE ON sys_model_dbconfig_node FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_DBCONFIG_NODE();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_DBCONFIG_NODE() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_dbconfig_node', 'node_name', OLD.NODE_NAME, '', getTableSubSystem('sys_model_dbconfig_node'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_DBCONFIG_NODE ON sys_model_dbconfig_node;
CREATE TRIGGER TDA_SYS_MODEL_DBCONFIG_NODE AFTER DELETE ON sys_model_dbconfig_node FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_DBCONFIG_NODE();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_DEPLOY_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_deploy_info', 'domain_id,app_id', '', concat(NEW.DOMAIN_ID,',',NEW.APP_ID), getTableSubSystem('sys_model_deploy_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_DEPLOY_INFO ON sys_model_deploy_info;
CREATE TRIGGER TIA_SYS_MODEL_DEPLOY_INFO AFTER INSERT ON sys_model_deploy_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_DEPLOY_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_DEPLOY_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_deploy_info', 'domain_id,app_id', concat(OLD.DOMAIN_ID,',',OLD.APP_ID), concat(NEW.DOMAIN_ID,',',NEW.APP_ID), getTableSubSystem('sys_model_deploy_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_DEPLOY_INFO ON sys_model_deploy_info;
CREATE TRIGGER TUA_SYS_MODEL_DEPLOY_INFO AFTER UPDATE ON sys_model_deploy_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_DEPLOY_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_DEPLOY_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_deploy_info', 'domain_id,app_id', concat(OLD.DOMAIN_ID,',',OLD.APP_ID), '', getTableSubSystem('sys_model_deploy_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_DEPLOY_INFO ON sys_model_deploy_info;
CREATE TRIGGER TDA_SYS_MODEL_DEPLOY_INFO AFTER DELETE ON sys_model_deploy_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_DEPLOY_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_DOMAIN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_domain_info', 'domain_id', '', NEW.DOMAIN_ID, getTableSubSystem('sys_model_domain_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_DOMAIN_INFO ON sys_model_domain_info;
CREATE TRIGGER TIA_SYS_MODEL_DOMAIN_INFO AFTER INSERT ON sys_model_domain_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_DOMAIN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_DOMAIN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_domain_info', 'domain_id', OLD.DOMAIN_ID, NEW.DOMAIN_ID, getTableSubSystem('sys_model_domain_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_DOMAIN_INFO ON sys_model_domain_info;
CREATE TRIGGER TUA_SYS_MODEL_DOMAIN_INFO AFTER UPDATE ON sys_model_domain_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_DOMAIN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_DOMAIN_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_domain_info', 'domain_id', OLD.DOMAIN_ID, '', getTableSubSystem('sys_model_domain_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_DOMAIN_INFO ON sys_model_domain_info;
CREATE TRIGGER TDA_SYS_MODEL_DOMAIN_INFO AFTER DELETE ON sys_model_domain_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_DOMAIN_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_LOCATION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_location_info', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('sys_model_location_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_LOCATION_INFO ON sys_model_location_info;
CREATE TRIGGER TIA_SYS_MODEL_LOCATION_INFO AFTER INSERT ON sys_model_location_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_LOCATION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_LOCATION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_location_info', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('sys_model_location_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_LOCATION_INFO ON sys_model_location_info;
CREATE TRIGGER TUA_SYS_MODEL_LOCATION_INFO AFTER UPDATE ON sys_model_location_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_LOCATION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_LOCATION_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_location_info', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('sys_model_location_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_LOCATION_INFO ON sys_model_location_info;
CREATE TRIGGER TDA_SYS_MODEL_LOCATION_INFO AFTER DELETE ON sys_model_location_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_LOCATION_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_MSG_RELAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', '', concat(NEW.SRC_DOMAIN_ID,',',NEW.DST_DOMAIN_ID,',',NEW.SUB_APP_ID), getTableSubSystem('sys_model_msg_relay'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_MSG_RELAY ON sys_model_msg_relay;
CREATE TRIGGER TIA_SYS_MODEL_MSG_RELAY AFTER INSERT ON sys_model_msg_relay FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_MSG_RELAY();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_MSG_RELAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', concat(OLD.SRC_DOMAIN_ID,',',OLD.DST_DOMAIN_ID,',',OLD.SUB_APP_ID), concat(NEW.SRC_DOMAIN_ID,',',NEW.DST_DOMAIN_ID,',',NEW.SUB_APP_ID), getTableSubSystem('sys_model_msg_relay'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_MSG_RELAY ON sys_model_msg_relay;
CREATE TRIGGER TUA_SYS_MODEL_MSG_RELAY AFTER UPDATE ON sys_model_msg_relay FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_MSG_RELAY();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_MSG_RELAY() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', concat(OLD.SRC_DOMAIN_ID,',',OLD.DST_DOMAIN_ID,',',OLD.SUB_APP_ID), '', getTableSubSystem('sys_model_msg_relay'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_MSG_RELAY ON sys_model_msg_relay;
CREATE TRIGGER TDA_SYS_MODEL_MSG_RELAY AFTER DELETE ON sys_model_msg_relay FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_MSG_RELAY();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_NODE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_node_info', 'node_name', '', NEW.NODE_NAME, getTableSubSystem('sys_model_node_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_NODE_INFO ON sys_model_node_info;
CREATE TRIGGER TIA_SYS_MODEL_NODE_INFO AFTER INSERT ON sys_model_node_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_NODE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_NODE_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_node_info', 'node_name', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('sys_model_node_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_NODE_INFO ON sys_model_node_info;
CREATE TRIGGER TUA_SYS_MODEL_NODE_INFO AFTER UPDATE ON sys_model_node_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_NODE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_NODE_INFO() RETURNS TRIGGER AS $$
BEGIN
delete from acs_device_node_map where NODE_NAME = old.NODE_NAME;
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_node_info', 'node_name', OLD.NODE_NAME, '', getTableSubSystem('sys_model_node_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_NODE_INFO ON sys_model_node_info;
CREATE TRIGGER TDA_SYS_MODEL_NODE_INFO AFTER DELETE ON sys_model_node_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_NODE_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_PROCESS_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_process_info', 'proc_alias', '', NEW.PROC_ALIAS, getTableSubSystem('sys_model_process_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_PROCESS_INFO ON sys_model_process_info;
CREATE TRIGGER TIA_SYS_MODEL_PROCESS_INFO AFTER INSERT ON sys_model_process_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_PROCESS_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_PROCESS_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_process_info', 'proc_alias', OLD.PROC_ALIAS, NEW.PROC_ALIAS, getTableSubSystem('sys_model_process_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_PROCESS_INFO ON sys_model_process_info;
CREATE TRIGGER TUA_SYS_MODEL_PROCESS_INFO AFTER UPDATE ON sys_model_process_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_PROCESS_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_PROCESS_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_process_info', 'proc_alias', OLD.PROC_ALIAS, '', getTableSubSystem('sys_model_process_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_PROCESS_INFO ON sys_model_process_info;
CREATE TRIGGER TDA_SYS_MODEL_PROCESS_INFO AFTER DELETE ON sys_model_process_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_PROCESS_INFO();
CREATE OR REPLACE FUNCTION FUNC_TIA_SYS_MODEL_SUB_SYSTEM_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_sub_system_info', 'sub_system_id', '', NEW.SUB_SYSTEM_ID, getTableSubSystem('sys_model_sub_system_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TIA_SYS_MODEL_SUB_SYSTEM_INFO ON sys_model_sub_system_info;
CREATE TRIGGER TIA_SYS_MODEL_SUB_SYSTEM_INFO AFTER INSERT ON sys_model_sub_system_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TIA_SYS_MODEL_SUB_SYSTEM_INFO();
CREATE OR REPLACE FUNCTION FUNC_TUA_SYS_MODEL_SUB_SYSTEM_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_sub_system_info', 'sub_system_id', OLD.SUB_SYSTEM_ID, NEW.SUB_SYSTEM_ID, getTableSubSystem('sys_model_sub_system_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TUA_SYS_MODEL_SUB_SYSTEM_INFO ON sys_model_sub_system_info;
CREATE TRIGGER TUA_SYS_MODEL_SUB_SYSTEM_INFO AFTER UPDATE ON sys_model_sub_system_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TUA_SYS_MODEL_SUB_SYSTEM_INFO();
CREATE OR REPLACE FUNCTION FUNC_TDA_SYS_MODEL_SUB_SYSTEM_INFO() RETURNS TRIGGER AS $$
BEGIN
IF getTriggerFlag() = TRUE THEN
INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG)
VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_sub_system_info', 'sub_system_id', OLD.SUB_SYSTEM_ID, '', getTableSubSystem('sys_model_sub_system_info'));
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TDA_SYS_MODEL_SUB_SYSTEM_INFO ON sys_model_sub_system_info;
CREATE TRIGGER TDA_SYS_MODEL_SUB_SYSTEM_INFO AFTER DELETE ON sys_model_sub_system_info FOR EACH ROW
EXECUTE PROCEDURE FUNC_TDA_SYS_MODEL_SUB_SYSTEM_INFO();
CREATE OR REPLACE FUNCTION FUNC_TU_TEMP_PLUGIN() RETURNS TRIGGER AS $$
BEGIN
UPDATE temp_plugin_dev_map
SET PLUGIN_NAME = NEW.TAG_NAME
WHERE PLUGIN_NAME = OLD.TAG_NAME;
UPDATE temp_plugin_fes_dev_map
SET PLUGIN_NAME = NEW.TAG_NAME
WHERE PLUGIN_NAME = OLD.TAG_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_TEMP_PLUGIN ON TEMP_PLUGIN;
CREATE TRIGGER TU_TEMP_PLUGIN AFTER UPDATE ON TEMP_PLUGIN FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_TEMP_PLUGIN();
CREATE OR REPLACE FUNCTION FUNC_TD_TEMP_PLUGIN() RETURNS TRIGGER AS $$
BEGIN
DELETE FROM temp_plugin_dev_map WHERE PLUGIN_NAME = OLD.TAG_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_TEMP_PLUGIN ON TEMP_PLUGIN;
CREATE TRIGGER TD_TEMP_PLUGIN AFTER DELETE ON TEMP_PLUGIN FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_TEMP_PLUGIN();
CREATE OR REPLACE FUNCTION FUNC_TI_TEMP_PLUGIN_DEV_MAP() RETURNS TRIGGER AS $$
BEGIN
IF myTriggerIsDisable() = 1 THEN RETURN NEW;
END IF;
--
INSERT INTO temp_plugin_point_map_acc
(PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME)
SELECT
NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', ''
FROM accuml_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME;
INSERT INTO temp_plugin_point_map_ana
(PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME)
SELECT
NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', ''
FROM analog_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME;
INSERT INTO temp_plugin_point_map_dig
(PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME1, FES_TEMP_POINT_NAME2, FES_TEMP_POINT_NAME3, FES_TEMP_POINT_NAME4, FES_TEMP_POINT_NAME5, FES_TEMP_OUT_NAME1, FES_TEMP_OUT_NAME2, FES_TEMP_OUT_NAME3, FES_TEMP_OUT_NAME4, FES_TEMP_OUT_NAME5)
SELECT
NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', '', '', '', '', '', '', '', '', ''
FROM digital_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME;
INSERT INTO temp_plugin_point_map_mix
(PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME)
SELECT
NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', ''
FROM mix_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TI_TEMP_PLUGIN_DEV_MAP ON temp_plugin_dev_map;
CREATE TRIGGER TI_TEMP_PLUGIN_DEV_MAP AFTER INSERT ON temp_plugin_dev_map FOR EACH ROW
EXECUTE PROCEDURE FUNC_TI_TEMP_PLUGIN_DEV_MAP();
CREATE OR REPLACE FUNCTION FUNC_TD_TEMP_PLUGIN_DEV_MAP() RETURNS TRIGGER AS $$
BEGIN
DELETE FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
DELETE FROM temp_plugin_point_map_acc WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
DELETE FROM temp_plugin_point_map_ana WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
DELETE FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
DELETE FROM temp_plugin_point_map_mix WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_TEMP_PLUGIN_DEV_MAP ON temp_plugin_dev_map;
CREATE TRIGGER TD_TEMP_PLUGIN_DEV_MAP AFTER DELETE ON temp_plugin_dev_map FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_TEMP_PLUGIN_DEV_MAP();
CREATE OR REPLACE FUNCTION FUNC_TU_TEMP_PLUGIN_FES_DEV_MAP() RETURNS TRIGGER AS $$
BEGIN
--plugin_name和temp_name,fes_temp_name
--temp_plugin_point_map_acc为例,,FES_TEMP_NAME可能为空
IF OLD.PLUGIN_NAME != NEW.PLUGIN_NAME OR OLD.TEMP_NAME != NEW.TEMP_NAME THEN
BEGIN
UPDATE temp_plugin_point_map_acc
SET
PLUGIN_NAME = NEW.PLUGIN_NAME,
TEMP_NAME = NEW.TEMP_NAME
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
UPDATE temp_plugin_point_map_ana
SET
PLUGIN_NAME = NEW.PLUGIN_NAME,
TEMP_NAME = NEW.TEMP_NAME
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
UPDATE temp_plugin_point_map_dig
SET
PLUGIN_NAME = NEW.PLUGIN_NAME,
TEMP_NAME = NEW.TEMP_NAME
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
UPDATE temp_plugin_point_map_mix
SET
PLUGIN_NAME = NEW.PLUGIN_NAME,
TEMP_NAME = NEW.TEMP_NAME
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME;
END;
END IF;
--,使plugin_name和temp_name
IF OLD.FES_TEMP_NAME != NEW.FES_TEMP_NAME THEN
BEGIN
UPDATE temp_plugin_point_map_acc
SET
FES_TEMP_NAME = NEW.FES_TEMP_NAME
WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_ana
SET
FES_TEMP_NAME = NEW.FES_TEMP_NAME
WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_dig
SET
FES_TEMP_NAME = NEW.FES_TEMP_NAME
WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_mix
SET
FES_TEMP_NAME = NEW.FES_TEMP_NAME
WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
END;
END IF;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TU_TEMP_PLUGIN_FES_DEV_MAP ON TEMP_PLUGIN_FES_DEV_MAP;
CREATE TRIGGER TU_TEMP_PLUGIN_FES_DEV_MAP AFTER UPDATE ON TEMP_PLUGIN_FES_DEV_MAP FOR EACH ROW
EXECUTE PROCEDURE FUNC_TU_TEMP_PLUGIN_FES_DEV_MAP();
CREATE OR REPLACE FUNCTION FUNC_TD_TEMP_PLUGIN_FES_DEV_MAP() RETURNS TRIGGER AS $$
BEGIN
--
UPDATE temp_plugin_point_map_acc
SET
FES_TEMP_NAME = '',
FES_TEMP_POINT_NAME = ''
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_ana
SET
FES_TEMP_NAME = '',
FES_TEMP_POINT_NAME = '',
FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_dig
SET
FES_TEMP_NAME = '',
FES_TEMP_POINT_NAME1 = '',
FES_TEMP_POINT_NAME2 = '',
FES_TEMP_POINT_NAME3 = '',
FES_TEMP_POINT_NAME4 = '',
FES_TEMP_POINT_NAME5 = '',
FES_TEMP_OUT_NAME1 = '',
FES_TEMP_OUT_NAME2 = '',
FES_TEMP_OUT_NAME3 = '',
FES_TEMP_OUT_NAME4 = '',
FES_TEMP_OUT_NAME5 = ''
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
UPDATE temp_plugin_point_map_mix
SET
FES_TEMP_NAME = '',
FES_TEMP_POINT_NAME = '',
FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME;
RETURN NEW;
END;
$$LANGUAGE PLPGSQL;
DROP TRIGGER IF EXISTS TD_TEMP_PLUGIN_FES_DEV_MAP ON TEMP_PLUGIN_FES_DEV_MAP;
CREATE TRIGGER TD_TEMP_PLUGIN_FES_DEV_MAP AFTER DELETE ON TEMP_PLUGIN_FES_DEV_MAP FOR EACH ROW
EXECUTE PROCEDURE FUNC_TD_TEMP_PLUGIN_FES_DEV_MAP();
CREATE OR REPLACE FUNCTION findPsc3000Tag(pointDesc varchar(128),pointRemoteNo decimal(10,0), pointDevId decimal(10,0),tableName varchar(64)) RETURNS varchar(64)
AS $$
DECLARE tempVar varchar(64) DEFAULT '';
BEGIN
--PSC3000的测点表中查找对应测点的TAG
IF tableName='psc_acc' THEN
tempVar =(SELECT TAG_NAME FROM psc3000_acc WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID);
ELSEIF tableName='psc_ana' THEN
tempVar =(SELECT TAG_NAME FROM psc3000_ana WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID);
ELSEIF tableName='psc_dig' THEN
tempVar =(SELECT TAG_NAME FROM psc3000_dig WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID);
END IF;
IF tempVar IS NULL THEN SET tempVar = '';
END IF;
--
RETURN tempVar;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getAfterFirstDot( ds varchar(128)) RETURNS varchar(128)
AS $$
DECLARE tempVar varchar(128);
DECLARE countStr int;
DECLARE countFirstStr int;
BEGIN
/*
* .
*/
tempVar = ds;
IF strpos(ds,'.') = 0 THEN RETURN tempVar;
ELSE
BEGIN
tempVar = substring_index( ds, '.' , 1);
countStr = char_length(ds);
countFirstStr = char_length(tempVar);
countFirstStr = countFirstStr + 1;
tempVar = right(ds,countStr - countFirstStr);
RETURN tempVar;
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getAfterLastDot( ds varchar(128)) RETURNS varchar(128)
AS $$
DECLARE tempVar varchar(128);
BEGIN
/*
* .
*/
tempVar = '';
IF strpos(ds,'.') = 0 THEN RETURN tempVar;
ELSE RETURN substring_index( ds, '.' , -1);
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getBeforeFirstDot( ds varchar(128)) RETURNS varchar(128)
AS $$
BEGIN
/*
* .
*/
IF strpos(ds,'.') = 0 THEN RETURN '';
ELSE
BEGIN
RETURN substring_index( ds, '.' , 1);
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getBeforeLastDot( ds varchar(128)) RETURNS varchar(128)
AS $$
DECLARE tempVar varchar(128);
DECLARE countStr int;
DECLARE countLastStr int;
BEGIN
/*
* .
*/
tempVar = ds;
IF strpos(ds,'.') = 0 THEN RETURN tempVar;
ELSE
BEGIN
tempVar = substring_index( ds, '.' , -1);
countStr = char_length(ds);
countLastStr = char_length(tempVar);
countLastStr = countLastStr + 1;
tempVar = left(ds,countStr - countLastStr);
RETURN tempVar;
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getFesPointType( flag varchar(64)) RETURNS decimal(10,0)
AS $$
DECLARE tempVar decimal(10,0) DEFAULT 0;
BEGIN
/*
* flag指定的点类型
*
* FES_ACC:0
* FES_ANA:1
* FES_DIG:2
* FES_MIX:3
* FES_ANA_CTRL:4
* FES_DIG_CTRL:5
* FES_MIX_CTRL:6
*/
IF flag='FES_ACC' THEN tempVar =0;
END IF;
IF flag='FES_ANA' THEN tempVar =1;
END IF;
IF flag='FES_DIG' THEN tempVar =2;
END IF;
IF flag='FES_MIX' THEN tempVar =3;
END IF;
IF flag='FES_ANA_CTRL' THEN tempVar =4;
END IF;
IF flag='FES_DIG_CTRL' THEN tempVar =5;
END IF;
IF flag='FES_MIX_CTRL' THEN tempVar =6;
END IF;
IF flag='FES_CONST' THEN tempVar =7;
END IF;
RETURN tempVar;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getMaxDefaultDevSeqNo( defaultDevTagName varchar(64), dotType decimal(10,0)) RETURNS decimal(10,0)
AS $$
DECLARE tempVar decimal(10,0) DEFAULT 0;
BEGIN
/*
* defaultDevTagName的最大SeqNo
*/
IF dotType=getFesPointType('FES_ACC') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_accuml WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_ANA') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_analog WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_DIG') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_digital WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_MIX') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_mix WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_ANA_CTRL') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_analog_ctrl WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_DIG_CTRL') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_digital_ctrl WHERE DEV_TAG=defaultDevTagName);
END IF;
IF dotType=getFesPointType('FES_MIX_CTRL') THEN tempVar =(SELECT max(SEQ_NO) FROM fes_mix_ctrl WHERE DEV_TAG=defaultDevTagName);
END IF;
IF tempVar IS NULL THEN tempVar = 0;
END IF;
RETURN tempVar + 1;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getMaxRtuDotNo( rtuTagName varchar(64), dotType decimal(10,0)) RETURNS decimal(10,0)
AS $$
DECLARE tempVar decimal(10,0) DEFAULT 0;
BEGIN
/*
* rtuTagName的最大点号
* dotType可取三个值,0,1,2
* 0FES_ACC
* 1FES_ANA
* 2FES_DIG
* 3FES_MIX
*/
IF dotType=getFesPointType('FES_ACC') THEN tempVar =(SELECT max(DOT_NO) FROM fes_accuml WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_ANA') THEN tempVar =(SELECT max(DOT_NO) FROM fes_analog WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_DIG') THEN tempVar =(SELECT max(DOT_NO) FROM fes_digital WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_MIX') THEN tempVar =(SELECT max(DOT_NO) FROM fes_mix WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_ANA_CTRL') THEN tempVar =(SELECT max(DOT_NO) FROM fes_analog_ctrl WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_DIG_CTRL') THEN tempVar =(SELECT max(DOT_NO) FROM fes_digital_ctrl WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_MIX_CTRL') THEN tempVar =(SELECT max(DOT_NO) FROM fes_mix_ctrl WHERE RTU_TAG=rtuTagName);
END IF;
IF dotType=getFesPointType('FES_CONST') THEN tempVar =(SELECT max(DOT_NO) FROM fes_const WHERE RTU_TAG=rtuTagName);
END IF;
IF tempVar IS NULL THEN tempVar = -1;
END IF;
--
RETURN tempVar + 1;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getMaxSeq(devTag varchar(64), tableName varchar(64)) RETURNS decimal(10,0)
AS $$
DECLARE temp decimal(10) DEFAULT 0;
BEGIN
--
IF tableName = 'accuml' THEN
SELECT max(SEQ_NO) INTO temp FROM accuml WHERE DEVICE = devTag;
ELSEIF tableName = 'analog' THEN
SELECT max(SEQ_NO) INTO temp FROM analog WHERE DEVICE = devTag;
ELSEIF tableName = 'digital' THEN
SELECT max(SEQ_NO) INTO temp FROM digital WHERE DEVICE = devTag;
ELSEIF tableName = 'mix' THEN
SELECT max(SEQ_NO) INTO temp FROM mix WHERE DEVICE = devTag;
END IF;
RETURN COALESCE(temp,0);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getMaxTriggerId() RETURNS decimal(10,0)
AS $$
DECLARE maxId decimal(10,0) DEFAULT 0;
BEGIN
--,strCount个子串
SELECT (max(ACT_ID)) INTO maxId FROM sys_trigger_info;
IF COALESCE(maxId,0) = 0 THEN
maxId = 0;
END IF;
maxId = maxId + 1;
RETURN maxId;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getOpType(opName varchar(32)) RETURNS decimal(10,0)
AS $$
DECLARE flag decimal(10,0) DEFAULT -1;
BEGIN
--
IF opName = 'insert' THEN
flag = 0;
ELSEIF opName = 'delete' THEN
flag = 1;
ELSEIF opName = 'update' THEN
flag = 2;
ELSE
flag = -1;
END IF;
RETURN flag;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getTableSubSystem( tableName varchar(100)) RETURNS decimal(10,0)
AS $$
DECLARE subSystemFlag decimal(10,0) DEFAULT 0;
BEGIN
RETURN subSystemFlag;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION getTriggerFlag() RETURNS boolean
AS $$
DECLARE flag boolean DEFAULT FALSE;
BEGIN
--,strCount个子串
SELECT FLAG_ID INTO flag FROM sys_trigger_flag WHERE FLAG_ID = 1;
IF COALESCE(flag,FALSE) = FALSE THEN
flag = FALSE;
END IF;
RETURN flag;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION myTriggerIsDisable() RETURNS int
AS $$
DECLARE flag INT;
BEGIN
--,1
SELECT CURRENT_SETTING('disable.MyTrrigger') INTO flag;
IF flag = 0 THEN
RETURN 0;
ELSE
RETURN 1;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION resetBit( num int ,pos int) RETURNS int
AS $$
DECLARE strNum varchar(64);
BEGIN
--num的pos位为0,pos从1开始数
--Int范围的数
strNum = bin(num);
strNum = lpad(strNum,64,'0');
strNum = concat(left(strNum,64-pos),'0',right(strNum,pos-1));
strNum = right(strNum,32);
--Int,uint,
strNum = lpad(strNum,64,left(strNum,1));
RETURN CAST(CONV(CAST(strNum AS binary),2,10) AS signed);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION setBit( num int ,pos int) RETURNS int
AS $$
DECLARE strNum varchar(64);
BEGIN
--num的pos位为1,pos从1开始数
--Int范围的数
strNum = bin(num);
strNum = lpad(strNum,64,'0');
strNum = concat(left(strNum,64-pos),'1',right(strNum,pos-1));
strNum = right(strNum,32);
strNum = lpad(strNum,64,left(strNum,1));
RETURN CAST(CONV(CAST(strNum AS binary),2,10) AS signed);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION testNumber( num decimal(10,0), pos int) RETURNS tinyint
AS $$
DECLARE tempStr varchar(64) DEFAULT '';
BEGIN
--num的第pos位是否为1,pos从1开始数
tempStr = bin(num);
IF pos > length(tempStr) THEN RETURN FALSE;
END IF;
IF pos < 1 THEN RETURN FALSE;
END IF;
IF mid(tempStr,length(tempStr) - pos + 1,1)='1' THEN RETURN TRUE;
ELSE RETURN FALSE;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION autoRelationByPlugin(pluginName varchar(64))
RETURNS VOID
AS $$
BEGIN
--
--
UPDATE temp_plugin_point_map_acc SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = ''
WHERE PLUGIN_NAME = pluginName;
UPDATE temp_plugin_point_map_ana SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = pluginName;
UPDATE temp_plugin_point_map_dig SET
FES_TEMP_NAME = '',
FES_TEMP_OUT_NAME1 = '',
FES_TEMP_OUT_NAME2 = '',
FES_TEMP_OUT_NAME3 = '',
FES_TEMP_OUT_NAME4 = '',
FES_TEMP_OUT_NAME5 = '',
FES_TEMP_POINT_NAME1 = '',
FES_TEMP_POINT_NAME2 = '',
FES_TEMP_POINT_NAME3 = '',
FES_TEMP_POINT_NAME4 = '',
FES_TEMP_POINT_NAME5 = ''
WHERE PLUGIN_NAME = pluginName;
UPDATE temp_plugin_point_map_mix SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = pluginName;
--
--accuml
UPDATE temp_plugin_point_map_acc
SET temp_plugin_point_map_acc.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_acc.FES_TEMP_POINT_NAME = temp_plugin_point_map_acc.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_acc.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_acc.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_acc.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_ACC')
AND temp_plugin_point_map_acc.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
--analog
UPDATE temp_plugin_point_map_ana
SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_ana.FES_TEMP_POINT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_ana.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_ANA')
AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
--digital,
UPDATE temp_plugin_point_map_dig
SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_DIG')
AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
UPDATE temp_plugin_point_map_mix
SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_mix.FES_TEMP_POINT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_mix.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_MIX')
AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION autoRelationByPluginDev(pluginName varchar(64),devTag varchar(64))
RETURNS VOID
AS $$
BEGIN
/*
* devTag指定的设备
*/
--
UPDATE temp_plugin_point_map_acc SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = ''
WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag;
UPDATE temp_plugin_point_map_ana SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag;
UPDATE temp_plugin_point_map_dig SET
FES_TEMP_NAME = '',
FES_TEMP_OUT_NAME1 = '',
FES_TEMP_OUT_NAME2 = '',
FES_TEMP_OUT_NAME3 = '',
FES_TEMP_OUT_NAME4 = '',
FES_TEMP_OUT_NAME5 = '',
FES_TEMP_POINT_NAME1 = '',
FES_TEMP_POINT_NAME2 = '',
FES_TEMP_POINT_NAME3 = '',
FES_TEMP_POINT_NAME4 = '',
FES_TEMP_POINT_NAME5 = ''
WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag;
UPDATE temp_plugin_point_map_mix SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = ''
WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag;
--
--accuml
UPDATE temp_plugin_point_map_acc
SET temp_plugin_point_map_acc.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_acc.FES_TEMP_POINT_NAME = temp_plugin_point_map_acc.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_acc.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_acc.TEMP_NAME = devTag
AND temp_plugin_point_map_acc.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_acc.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_ACC')
AND temp_plugin_point_map_acc.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
--analog
UPDATE temp_plugin_point_map_ana
SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_ana.FES_TEMP_POINT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_ana.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_ana.TEMP_NAME = devTag
AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_ANA')
AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
--digital,
UPDATE temp_plugin_point_map_dig
SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_dig.TEMP_NAME = devTag
AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_DIG')
AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
UPDATE temp_plugin_point_map_mix
SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME,
temp_plugin_point_map_mix.FES_TEMP_POINT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME
FROM temp_plugin_fes_dev_map,fes_dev_pt_temp_def
WHERE temp_plugin_point_map_mix.PLUGIN_NAME = pluginName
AND temp_plugin_point_map_mix.TEMP_NAME = devTag
AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME
AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME
AND DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME
AND POINT_TYPE = getFesPointType('FES_MIX')
AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION bingRtu(devTagName varchar(64), rtuTagName varchar(64))
RETURNS VOID
AS $$
BEGIN
--RTU置空,使
UPDATE accuml SET RTU_TAG = '' WHERE DEVICE = devTagName;
UPDATE analog SET RTU_TAG = '' WHERE DEVICE = devTagName;
UPDATE digital SET RTU_TAG = '' WHERE DEVICE = devTagName;
UPDATE mix SET RTU_TAG = '' WHERE DEVICE = devTagName;
--
UPDATE accuml SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName;
UPDATE analog SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName;
UPDATE digital SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName;
UPDATE mix SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION closeMyTrigger(closeFlag int)
RETURNS VOID
AS $$
BEGIN
/*
* ,使myTriggerIsDisable
* TI_TEMP_PLUGIN_DEV_MAP
* 使
*/
IF closeFlag = 1 THEN
SET SESSION "disable.MyTrrigger" = 1;
ELSE
SET SESSION "disable.MyTrrigger" = 0;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION copyDevGroup(srcGroupName varchar(64),dstGroupName varchar(64),dstGroupDesc varchar(64))
RETURNS VOID
AS $$
DECLARE totalInst int DEFAULT 1;
BEGIN
/*
*
*/
IF COALESCE(srcGroupName,'') = '' OR COALESCE(dstGroupName,'')='' OR COALESCE(dstGroupDesc,'') = ''
THEN RETURN;
END IF;
IF EXISTS (SELECT * FROM dev_group WHERE TAG_NAME = dstGroupName)
THEN RETURN;
END IF;
--
INSERT INTO dev_group (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, REGION_ID, PGROUP_TAG_NAME, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, GROUP_TAG)
SELECT
dstGroupName, dstGroupDesc, LOCATION_ID, SUB_SYSTEM, REGION_ID, PGROUP_TAG_NAME, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, GROUP_TAG
FROM dev_group WHERE TAG_NAME = srcGroupName;
SELECT count(*) INTO totalInst FROM dev_info WHERE TAG_NAME LIKE '%Gcp%';
totalInst = totalInst + 1;
--
INSERT INTO dev_info(
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT
concat(TAG_NAME,'Gcp',totalInst), concat(DESCRIPTION,'Gcp'), LOCATION_ID, SUB_SYSTEM, dstGroupName, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME
FROM dev_info
WHERE
dev_info.GROUP_TAG_NAME = srcGroupName ;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION copyDevInst( srcDevTagName varchar(64), dstDevTagName varchar(64), dstDesc varchar(64),dstLocation decimal(10,0), dstGroupTagName varchar(64), dstLevelId decimal(10,0),dstRegionId decimal(10,0), dstOptHandoverGroup varchar(64), dstIfSummary decimal(10,0))
RETURNS VOID
AS $$
BEGIN
IF EXISTS (SELECT * FROM dev_info WHERE TAG_NAME=dstDevTagName) THEN RETURN;
END IF;
--,DEV表的触发器去插入点
INSERT INTO dev_info(
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT
dstDevTagName, dstDesc, dstLocation, SUB_SYSTEM, dstGroupTagName, dstLevelId, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, dstRegionId, dstOptHandoverGroup, dstIfSummary, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME
FROM dev_info WHERE TAG_NAME= srcDevTagName;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION copyDevTemp( srcTagName varchar(64), dstTagName varchar(64), dstDesc varchar(64))
RETURNS VOID
AS $$
BEGIN
IF EXISTS (SELECT * FROM dev_temp_def WHERE TAG_NAME=dstTagName) THEN RETURN;
END IF;
/*
*
*
*/
--
INSERT INTO dev_temp_def(
TAG_NAME, DEV_TYPE_ID, DEV_MODEL, DESCRIPTION, SUB_SYSTEM, PARA_STR1, PARA_STR2,DEV_TEMP_GRP ) SELECT
dstTagName, DEV_TYPE_ID,DEV_MODEL,dstDesc ,SUB_SYSTEM, PARA_STR1,PARA_STR2,DEV_TEMP_GRP
FROM dev_temp_def WHERE TAG_NAME= srcTagName;
--,TagName,DEV_TP_NAME需改变
INSERT INTO accuml_temp_define(
TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, SAMPLE_DEADBAND, SAMPLE_PERIOD, IS_STATISTICS, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, BASE, COEFF, RANGE_UP, RANGE_LOW, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO) SELECT
concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, SAMPLE_DEADBAND, SAMPLE_PERIOD, IS_STATISTICS, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, BASE, COEFF, RANGE_UP, RANGE_LOW, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO
FROM accuml_temp_define WHERE DEV_TP_NAME= srcTagName;
INSERT INTO analog_temp_define(
TAG_NAME, DESCRIPTION, SEQ_NO, DEV_TP_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO) SELECT
concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, SEQ_NO, dstTagName, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO
FROM analog_temp_define WHERE DEV_TP_NAME= srcTagName;
INSERT INTO digital_temp_define(
TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, STATE_TEXT_NAME, VALUE_NUM, ALARM_PRIORITY, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_SUMMARY, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, POLARITY, IS_CONTROL, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, OFFSET_NUM, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, IS_CHECK_PREVENTION, ALARM_FREQ_RANGE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO1, SEC_SEQ_NO2, SEC_SEQ_NO3, SEC_SEQ_NO4, SEC_SEQ_NO5, OUT_SEC_SEQ_NO1, OUT_SEC_SEQ_NO2, OUT_SEC_SEQ_NO3, OUT_SEC_SEQ_NO4, OUT_SEC_SEQ_NO5) SELECT
concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, STATE_TEXT_NAME, VALUE_NUM, ALARM_PRIORITY, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_SUMMARY, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, POLARITY, IS_CONTROL, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, OFFSET_NUM, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, IS_CHECK_PREVENTION, ALARM_FREQ_RANGE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO1, SEC_SEQ_NO2, SEC_SEQ_NO3, SEC_SEQ_NO4, SEC_SEQ_NO5, OUT_SEC_SEQ_NO1, OUT_SEC_SEQ_NO2, OUT_SEC_SEQ_NO3, OUT_SEC_SEQ_NO4, OUT_SEC_SEQ_NO5
FROM digital_temp_define WHERE DEV_TP_NAME= srcTagName;
INSERT INTO mix_temp_define(
TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, STATE_TEXT_NAME, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, CTRL_ACT_NAME, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO) SELECT
concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, STATE_TEXT_NAME, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, CTRL_ACT_NAME, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO
FROM mix_temp_define WHERE DEV_TP_NAME= srcTagName;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION copyFesTemp(srcFesTempTag varchar(64),dstFesTempTag varchar(64),dstDesc varchar(128))
RETURNS VOID
AS $$
BEGIN
/*
*
*/
IF EXISTS (SELECT * FROM fes_dev_temp_def WHERE TAG_NAME=dstFesTempTag) THEN RETURN;
END IF;
--
INSERT INTO fes_dev_temp_def(
TAG_NAME, DEV_TYPE_ID, DEV_MODEL, DESCRIPTION, SUB_SYSTEM, PARA_STR1, PARA_STR2 ) SELECT
dstFesTempTag, DEV_TYPE_ID, DEV_MODEL, dstDesc ,SUB_SYSTEM, PARA_STR1, PARA_STR2
FROM fes_dev_temp_def WHERE TAG_NAME= srcFesTempTag;
--,TagName,DEV_TP_NAME需改变
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850, POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME
) SELECT
concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), POINT_TYPE, dstFesTempTag,SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850, POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME
FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = srcFesTempTag;
INSERT INTO fes_data_block_temp(
TAG_NAME, BLOCK_ID, FUNC_CODE, STAR_ADDR, DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION, LD, CALL_MODE, DATA_SET, DATA_SET_TYPE, DATA_SET_CALL_TIME, REPORT_CTRL, DEV_TP_NAME
) SELECT
concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), BLOCK_ID, FUNC_CODE, STAR_ADDR, DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION, LD, CALL_MODE, DATA_SET, DATA_SET_TYPE, DATA_SET_CALL_TIME, REPORT_CTRL, dstFesTempTag
FROM fes_data_block_temp WHERE DEV_TP_NAME = srcFesTempTag;
INSERT INTO fes_const_temp(
TAG_NAME, DESCRIPTION, GROUP_NO, SEQ_NO, DEV_TP_NAME, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, PATH61850, POSITION61850
) SELECT
concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, GROUP_NO, SEQ_NO, dstFesTempTag, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, PATH61850, POSITION61850
FROM fes_const_temp WHERE DEV_TP_NAME = srcFesTempTag;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION copyPlugin( srcPluginName varchar(64),dstPluginName varchar(64),dstPluginDesc varchar(128))
RETURNS VOID
AS $$
BEGIN
/*
*
*/
INSERT INTO temp_plugin (TAG_NAME,DESCRIPTION)
VALUES (dstPluginName,dstPluginDesc);
--
CALL closeMyTrigger(1);
INSERT INTO temp_plugin_dev_map (PLUGIN_NAME,TEMP_NAME)
SELECT dstPluginName, TEMP_NAME
FROM temp_plugin_dev_map WHERE PLUGIN_NAME = srcPluginName;
INSERT INTO temp_plugin_fes_dev_map(PLUGIN_NAME,TEMP_NAME,FES_TEMP_NAME)
SELECT dstPluginName,TEMP_NAME,FES_TEMP_NAME
FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = srcPluginName;
INSERT INTO temp_plugin_point_map_acc (PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME)
SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME
FROM temp_plugin_point_map_acc WHERE PLUGIN_NAME = srcPluginName;
INSERT INTO temp_plugin_point_map_ana(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME)
SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME
FROM temp_plugin_point_map_ana WHERE PLUGIN_NAME = srcPluginName;
INSERT INTO temp_plugin_point_map_dig(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME1,FES_TEMP_POINT_NAME2
,FES_TEMP_POINT_NAME3,FES_TEMP_POINT_NAME4,FES_TEMP_POINT_NAME5,FES_TEMP_OUT_NAME1,FES_TEMP_OUT_NAME2,FES_TEMP_OUT_NAME3,FES_TEMP_OUT_NAME4
,FES_TEMP_OUT_NAME5)
SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME1,FES_TEMP_POINT_NAME2
,FES_TEMP_POINT_NAME3,FES_TEMP_POINT_NAME4,FES_TEMP_POINT_NAME5,FES_TEMP_OUT_NAME1,FES_TEMP_OUT_NAME2,FES_TEMP_OUT_NAME3,FES_TEMP_OUT_NAME4
,FES_TEMP_OUT_NAME5
FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = srcPluginName;
INSERT INTO temp_plugin_point_map_mix(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME)
SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME
FROM temp_plugin_point_map_mix WHERE PLUGIN_NAME = srcPluginName;
CALL closeMyTrigger(0);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION createOptLock(tableName varchar(64),pointTempTag varchar(64),funcTag varchar(64),argNum int)
RETURNS VOID
AS $$
DECLARE hasDone int DEFAULT 0;
DECLARE argTag varchar(64);
DECLARE argNo int;
DECLARE pointTempTagName varchar(64);
CURSOR cur_args FOR
SELECT DEV_TAG,NO FROM export_seq;
BEGIN
/*
* ,,,export_seq表中
* tableName:,pointTempTag是属于那张表的,analog,digital,mix
* pointTempTag:
* funcTag:
* argNum:
* export_seq表中保存了参数1-20
*/
IF COALESCE(tableName,'') = '' OR COALESCE(pointTempTag,'')=''
THEN RETURN;
END IF;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpCreateOptLockTbl(
POINT_TAG_NAME varchar(64) NOT NULL,
POINT_DESC varchar(128),
GROUP_TAG_NAME varchar(64) NOT NULL,
LOCATION_ID decimal(10,0),
SUBSYSTEM decimal(10,0),
ARGS_TAG_NAME varchar(64) DEFAULT ''
);
DELETE FROM tmpCreateOptLockTbl;
IF lower(tableName) = 'analog'
THEN
INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM)
SELECT analog.TAG_NAME,analog.DESCRIPTION, dev_info.GROUP_TAG_NAME,analog.LOCATION_ID,analog.SUB_SYSTEM
FROM analog,dev_info
WHERE analog.POINT_TP_NAME = pointTempTag AND analog.DEVICE = dev_info.TAG_NAME;
ELSEIF lower(tableName) = 'digital'
THEN
INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM)
SELECT digital.TAG_NAME,digital.DESCRIPTION, dev_info.GROUP_TAG_NAME,digital.LOCATION_ID,digital.SUB_SYSTEM
FROM digital,dev_info
WHERE digital.POINT_TP_NAME = pointTempTag AND digital.DEVICE = dev_info.TAG_NAME;
ELSEIF lower(tableName) = 'mix'
THEN
INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM)
SELECT mix.TAG_NAME,mix.DESCRIPTION, dev_info.GROUP_TAG_NAME,mix.LOCATION_ID,mix.SUB_SYSTEM
FROM mix,dev_info
WHERE mix.POINT_TP_NAME = pointTempTag AND mix.DEVICE = dev_info.TAG_NAME;
END IF;
INSERT INTO opt_interlock_para(TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, INTERLOCK_TAG, INTERLOCK_NUM,
INTERLOCK_IN_TAG1, INTERLOCK_IN_TAG2, INTERLOCK_IN_TAG3, INTERLOCK_IN_TAG4, INTERLOCK_IN_TAG5, INTERLOCK_IN_TAG6, INTERLOCK_IN_TAG7,
INTERLOCK_IN_TAG8, INTERLOCK_IN_TAG9, INTERLOCK_IN_TAG10, INTERLOCK_IN_TAG11, INTERLOCK_IN_TAG12, INTERLOCK_IN_TAG13,
INTERLOCK_IN_TAG14, INTERLOCK_IN_TAG15, INTERLOCK_IN_TAG16, INTERLOCK_IN_TAG17, INTERLOCK_IN_TAG18, INTERLOCK_IN_TAG19,
INTERLOCK_IN_TAG20)
SELECT POINT_TAG_NAME,POINT_DESC,LOCATION_ID,SUBSYSTEM,funcTag,argNum,
'','','','','','','','','','','','','','','','','','','',''
FROM tmpCreateOptLockTbl;
--export_seq表中的数据更新输入参数
--export_Seq中的数据,opt_interlock_para中
OPEN cur_args;
LOOP
FETCH cur_args INTO argTag,argNo;
EXIT WHEN cur_args%NOTFOUND;
--argTag中的格式是表名.
tableName = getBeforeFirstDot(argTag);
pointTempTagName = getAfterFirstDot(argTag);
IF tableName = 'analog' THEN
UPDATE tmpCreateOptLockTbl
SET tmpCreateOptLockTbl.ARGS_TAG_NAME = analog.TAG_NAME
FROM analog,dev_info
WHERE analog.POINT_TP_NAME = pointTempTagName
AND analog.DEVICE = dev_info.TAG_NAME
AND tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME;
ELSEIF tableName = 'digital' THEN
UPDATE tmpCreateOptLockTbl
SET tmpCreateOptLockTbl.ARGS_TAG_NAME = digital.TAG_NAME
FROM digital,dev_info
WHERE digital.POINT_TP_NAME = pointTempTagName
AND digital.DEVICE = dev_info.TAG_NAME
AND tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME;
ELSEIF tableName = 'mix' THEN
UPDATE tmpCreateOptLockTbl
SET tmpCreateOptLockTbl.ARGS_TAG_NAME = mix.TAG_NAME
FROM mix,dev_info
WHERE mix.POINT_TP_NAME = pointTempTagName
AND mix.DEVICE = dev_info.TAG_NAME
AND tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME;
END IF;
--
UPDATE opt_interlock_para
SET
INTERLOCK_IN_TAG1 = if(argNo = 1,ARGS_TAG_NAME,INTERLOCK_IN_TAG1),
INTERLOCK_IN_TAG2 = if(argNo = 2,ARGS_TAG_NAME,INTERLOCK_IN_TAG2),
INTERLOCK_IN_TAG3 = if(argNo = 3,ARGS_TAG_NAME,INTERLOCK_IN_TAG3),
INTERLOCK_IN_TAG4 = if(argNo = 4,ARGS_TAG_NAME,INTERLOCK_IN_TAG4),
INTERLOCK_IN_TAG5 = if(argNo = 5,ARGS_TAG_NAME,INTERLOCK_IN_TAG5),
INTERLOCK_IN_TAG6 = if(argNo = 6,ARGS_TAG_NAME,INTERLOCK_IN_TAG6),
INTERLOCK_IN_TAG7 = if(argNo = 7,ARGS_TAG_NAME,INTERLOCK_IN_TAG7),
INTERLOCK_IN_TAG8 = if(argNo = 8,ARGS_TAG_NAME,INTERLOCK_IN_TAG8),
INTERLOCK_IN_TAG9 = if(argNo = 9,ARGS_TAG_NAME,INTERLOCK_IN_TAG9),
INTERLOCK_IN_TAG10 = if(argNo = 10,ARGS_TAG_NAME,INTERLOCK_IN_TAG10),
INTERLOCK_IN_TAG11 = if(argNo = 11,ARGS_TAG_NAME,INTERLOCK_IN_TAG11),
INTERLOCK_IN_TAG12 = if(argNo = 12,ARGS_TAG_NAME,INTERLOCK_IN_TAG12),
INTERLOCK_IN_TAG13 = if(argNo = 13,ARGS_TAG_NAME,INTERLOCK_IN_TAG13),
INTERLOCK_IN_TAG14 = if(argNo = 14,ARGS_TAG_NAME,INTERLOCK_IN_TAG14),
INTERLOCK_IN_TAG15 = if(argNo = 15,ARGS_TAG_NAME,INTERLOCK_IN_TAG15),
INTERLOCK_IN_TAG16 = if(argNo = 16,ARGS_TAG_NAME,INTERLOCK_IN_TAG16),
INTERLOCK_IN_TAG17 = if(argNo = 17,ARGS_TAG_NAME,INTERLOCK_IN_TAG17),
INTERLOCK_IN_TAG18 = if(argNo = 18,ARGS_TAG_NAME,INTERLOCK_IN_TAG18),
INTERLOCK_IN_TAG19 = if(argNo = 19,ARGS_TAG_NAME,INTERLOCK_IN_TAG19),
INTERLOCK_IN_TAG20 = if(argNo = 20,ARGS_TAG_NAME,INTERLOCK_IN_TAG20)
FROM tmpCreateOptLockTbl
WHERE opt_interlock_para.TAG_NAME = tmpCreateOptLockTbl.POINT_TAG_NAME
;
END LOOP;
CLOSE cur_args;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION db_sync(in src_hostname varchar(255),in src_last_id bigint,in src_last_statement TEXT,in new_id bigint,in new_statement TEXT,out db_sync_return int)
RETURNS VOID
AS $$
declare local_last_id bigint default 0;
declare local_last_statement TEXT;
BEGIN
-- 数据库同步服务 db_sync_server 调用
db_sync_return = 1;
if lower(get_hostname()) = lower(src_hostname) then
-- 如果源主机就是本主机,则无需同步
db_sync_return = 10;
RETURN;
end if;
-- 存储过程中不支持锁表,程序在调用本存储过程前锁表
-- lock tables dbop_list write;
select max(id) into local_last_id from dbop_list;
select statement into local_last_statement from dbop_list where ID = local_last_id;
if local_last_id is null or local_last_statement is null then
-- 表为空
db_sync_return = 20;
RETURN;
end if;
if src_last_id < local_last_id then
-- 数据不一致
db_sync_return = 21;
RETURN;
end if;
if src_last_id > local_last_id then
-- 数据不一致
db_sync_return = 22;
RETURN;
end if;
if src_last_statement <> local_last_statement then
-- 数据不一致
db_sync_return = 23;
RETURN;
end if;
begin
-- 开启事务
start transaction;
-- 执行需要同步的语句
execute new_statement;
-- 插入同步语句到本地表
prepare stmt(bigint,text) as insert into dbop_list(ID, STATEMENT) values ($1,$2);
execute stmt(new_id,new_statement);
deallocate prepare stmt;
-- 提交事务
commit;
-- 执行成功
db_sync_return = 0;
exception
when QUERY_CANCELED then
db_sync_return = 100;
when OTHERS then
db_sync_return = 100;
end;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION exportBgXFes( )
RETURNS VOID
AS $$
BEGIN
--export_seq里保存了导出的设备的顺序
--background_x_fes_的表中
--
DELETE FROM background_x_fes_accuml;
DELETE FROM background_x_fes_ana_ctrl;
DELETE FROM background_x_fes_analog;
DELETE FROM background_x_fes_dig_ctrl;
DELETE FROM background_x_fes_digtal;
DELETE FROM background_x_fes_mix;
DELETE FROM background_x_fes_mix_ctrl;
--ACC后台点
INSERT INTO background_x_fes_accuml (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, accuml_map_to_fes.KEY_ID_TAG, '1', accuml_map_to_fes.DESCRIPTION, accuml_map_to_fes.RTU_TAG,accuml_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0
FROM export_seq , dev_info ,accuml, accuml_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = accuml.DEVICE AND accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.', accuml.TAG_NAME)
ORDER BY export_seq.NO ,accuml.SEQ_NO;
--,,
UPDATE background_x_fes_accuml
SET background_x_fes_accuml.RTU_DOT_DESC = fes_accuml.DESCRIPTION,
background_x_fes_accuml.RTU_DEV_TAG = fes_accuml.DEV_TAG,
background_x_fes_accuml.RTU_RES_PARA_INT1 = fes_accuml.RES_PARA_INT1,
background_x_fes_accuml.RTU_RES_PARA_INT2 = fes_accuml.RES_PARA_INT2,
background_x_fes_accuml.RTU_RES_PARA_INT3 = fes_accuml.RES_PARA_INT3,
background_x_fes_accuml.RTU_RES_PARA_INT4 = fes_accuml.RES_PARA_INT4
FROM fes_accuml
WHERE fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO);
--ANA后台点
INSERT INTO background_x_fes_analog (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, analog_map_to_fes.KEY_ID_TAG, '1', analog_map_to_fes.DESCRIPTION, analog_map_to_fes.RTU_TAG,analog_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0
FROM export_seq , dev_info ,analog, analog_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = analog.DEVICE AND analog_map_to_fes.KEY_ID_TAG = concat('analog','.', analog.TAG_NAME)
ORDER BY export_seq.NO,analog.SEQ_NO;
--,,
UPDATE background_x_fes_analog
SET background_x_fes_analog.RTU_DOT_DESC = fes_analog.DESCRIPTION,
background_x_fes_analog.RTU_DEV_TAG = fes_analog.DEV_TAG,
background_x_fes_analog.RTU_RES_PARA_INT1 = fes_analog.RES_PARA_INT1,
background_x_fes_analog.RTU_RES_PARA_INT2 = fes_analog.RES_PARA_INT2,
background_x_fes_analog.RTU_RES_PARA_INT3 = fes_analog.RES_PARA_INT3,
background_x_fes_analog.RTU_RES_PARA_INT4 = fes_analog.RES_PARA_INT4
FROM fes_analog
WHERE fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO);
--analog_Ctrl
INSERT INTO background_x_fes_ana_ctrl(
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, analog.TAG_NAME, '1', analog.DESCRIPTION, analog_control.RTU_TAG,analog_control.OFFSET_NO,'', '', 0, 0, 0, 0
FROM export_seq , dev_info , analog ,analog_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = analog.DEVICE AND analog.TAG_NAME = analog_control.TAG_NAME
ORDER BY export_seq.NO,analog.SEQ_NO;
--,,
UPDATE background_x_fes_ana_ctrl
SET background_x_fes_ana_ctrl.RTU_DOT_DESC = fes_analog_ctrl.DESCRIPTION,
background_x_fes_ana_ctrl.RTU_DEV_TAG = fes_analog_ctrl.DEV_TAG,
background_x_fes_ana_ctrl.RTU_RES_PARA_INT1 = fes_analog_ctrl.RES_PARA_INT1,
background_x_fes_ana_ctrl.RTU_RES_PARA_INT2 = fes_analog_ctrl.RES_PARA_INT2,
background_x_fes_ana_ctrl.RTU_RES_PARA_INT3 = fes_analog_ctrl.RES_PARA_INT3,
background_x_fes_ana_ctrl.RTU_RES_PARA_INT4 = fes_analog_ctrl.RES_PARA_INT4
FROM fes_analog_ctrl
WHERE fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO);
--digital,5
INSERT INTO background_x_fes_digtal (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT
export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 1, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO1,'', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq,dev_info, digital,digital_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)
AND digital_map_to_fes.VALUE_NUM >= 1;
INSERT INTO background_x_fes_digtal (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT
export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 2, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO2,'', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq,dev_info, digital,digital_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)
AND digital_map_to_fes.VALUE_NUM >= 2;
INSERT INTO background_x_fes_digtal (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT
export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 3, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO3,'', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq,dev_info, digital,digital_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)
AND digital_map_to_fes.VALUE_NUM >= 3;
INSERT INTO background_x_fes_digtal (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT
export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 4, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO4,'', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq,dev_info, digital,digital_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)
AND digital_map_to_fes.VALUE_NUM >= 4;
INSERT INTO background_x_fes_digtal (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT
export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 5, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO5,'', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq,dev_info, digital,digital_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)
AND digital_map_to_fes.VALUE_NUM >= 5;
--,,
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_DOT_DESC = fes_digital.DESCRIPTION,
background_x_fes_digtal.RTU_DEV_TAG = fes_digital.DEV_TAG,
background_x_fes_digtal.RTU_RES_PARA_INT1 = fes_digital.RES_PARA_INT1,
background_x_fes_digtal.RTU_RES_PARA_INT2 = fes_digital.RES_PARA_INT2,
background_x_fes_digtal.RTU_RES_PARA_INT3 = fes_digital.RES_PARA_INT3,
background_x_fes_digtal.RTU_RES_PARA_INT4 = fes_digital.RES_PARA_INT4
FROM fes_digital
WHERE fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO) ;
--digital_ctrl
INSERT INTO background_x_fes_dig_ctrl (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 1, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO1, '', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq , dev_info ,digital , digital_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME
AND digital_control.OFFSET_NUM >= 1;
INSERT INTO background_x_fes_dig_ctrl (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 2, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO2, '', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq , dev_info ,digital , digital_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME
AND digital_control.OFFSET_NUM >= 2;
INSERT INTO background_x_fes_dig_ctrl (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 3, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO3, '', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq , dev_info ,digital , digital_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME
AND digital_control.OFFSET_NUM >= 3;
INSERT INTO background_x_fes_dig_ctrl (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 4, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO4, '', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq , dev_info ,digital , digital_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME
AND digital_control.OFFSET_NUM >= 4;
INSERT INTO background_x_fes_dig_ctrl (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 5, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO5, '', '', 0, 0, 0, 0, export_seq.NO,digital.SEQ_NO
FROM export_seq , dev_info ,digital , digital_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME
AND digital_control.OFFSET_NUM >= 5;
--,,
UPDATE background_x_fes_dig_ctrl
SET background_x_fes_dig_ctrl.RTU_DOT_DESC = fes_digital_ctrl.DESCRIPTION,
background_x_fes_dig_ctrl.RTU_DEV_TAG = fes_digital_ctrl.DEV_TAG,
background_x_fes_dig_ctrl.RTU_RES_PARA_INT1 = fes_digital_ctrl.RES_PARA_INT1,
background_x_fes_dig_ctrl.RTU_RES_PARA_INT2 = fes_digital_ctrl.RES_PARA_INT2,
background_x_fes_dig_ctrl.RTU_RES_PARA_INT3 = fes_digital_ctrl.RES_PARA_INT3,
background_x_fes_dig_ctrl.RTU_RES_PARA_INT4 = fes_digital_ctrl.RES_PARA_INT4
FROM fes_digital_ctrl
WHERE fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) ;
--mix
INSERT INTO background_x_fes_mix (
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, mix_map_to_fes.KEY_ID_TAG, '1', mix_map_to_fes.DESCRIPTION, mix_map_to_fes.RTU_TAG,mix_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0
FROM export_seq , dev_info ,mix, mix_map_to_fes
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = mix.DEVICE AND mix_map_to_fes.KEY_ID_TAG = concat('mix','.',mix.TAG_NAME)
ORDER BY export_seq.NO,mix.SEQ_NO;
--,,
UPDATE background_x_fes_mix
SET background_x_fes_mix.RTU_DOT_DESC = fes_mix.DESCRIPTION,
background_x_fes_mix.RTU_DEV_TAG = fes_mix.DEV_TAG,
background_x_fes_mix.RTU_RES_PARA_INT1 = fes_mix.RES_PARA_INT1,
background_x_fes_mix.RTU_RES_PARA_INT2 = fes_mix.RES_PARA_INT2,
background_x_fes_mix.RTU_RES_PARA_INT3 = fes_mix.RES_PARA_INT3,
background_x_fes_mix.RTU_RES_PARA_INT4 = fes_mix.RES_PARA_INT4
FROM fes_mix
WHERE fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO);
--mix_Ctrl
INSERT INTO background_x_fes_mix_ctrl(
BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT
export_seq.DEV_TAG, dev_info.DESCRIPTION, mix_control.TAG_NAME, '1', mix.DESCRIPTION, mix_control.RTU_TAG,mix_control.OFFSET_NO,'', '', 0, 0, 0, 0
FROM export_seq , dev_info , mix ,mix_control
WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = mix.DEVICE AND mix.TAG_NAME = mix_control.TAG_NAME
ORDER BY export_seq.NO,mix.SEQ_NO;
--,,
UPDATE background_x_fes_mix_ctrl
SET background_x_fes_mix_ctrl.RTU_DOT_DESC = fes_mix_ctrl.DESCRIPTION,
background_x_fes_mix_ctrl.RTU_DEV_TAG = fes_mix_ctrl.DEV_TAG,
background_x_fes_mix_ctrl.RTU_RES_PARA_INT1 = fes_mix_ctrl.RES_PARA_INT1,
background_x_fes_mix_ctrl.RTU_RES_PARA_INT2 = fes_mix_ctrl.RES_PARA_INT2,
background_x_fes_mix_ctrl.RTU_RES_PARA_INT3 = fes_mix_ctrl.RES_PARA_INT3,
background_x_fes_mix_ctrl.RTU_RES_PARA_INT4 = fes_mix_ctrl.RES_PARA_INT4
FROM fes_mix_ctrl
WHERE fes_mix_ctrl.TAG_NAME=concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO);
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION generateBatchDev(devTagName varchar(64), batchNum decimal(10,0),batchStart decimal(10,0), formatTagName varchar(64),formatDesc varchar(128),fesRtuTagName varchar(64))
RETURNS VOID
AS $$
DECLARE stepNum int DEFAULT 0;
DECLARE fesDevTempTagName varchar(64) DEFAULT '';
DECLARE tempStr varchar(64) DEFAULT '';
DECLARE locationTagName varchar(64) DEFAULT '';
DECLARE tmpDevTag varchar(64) DEFAULT '';
DECLARE tmpFesDevTag varchar(64) DEFAULT '';
DECLARE accSize decimal(10,0) DEFAULT 0;
DECLARE anaSize decimal(10,0) DEFAULT 0;
DECLARE digSize decimal(10,0) DEFAULT 0;
DECLARE mixSize decimal(10,0) DEFAULT 0;
BEGIN
--,fesRtuTagName不为空时,
--devTagName
--batchNum
--batchStart
--formatTagName TagName字段的批量格式
--formatDesc
--fesRtuTagName RTU的标签名,
--BAT_TAG_NAME中存储着短名
CREATE TEMPORARY TABLE IF NOT EXISTS tmpGenerateBatchDevTbl(
BAT_TAG_NAME varchar(64) NOT NULL ,
BAT_DESC varchar(64) NOT NULL
);
DELETE FROM tmpGenerateBatchDevTbl;
locationTagName = getBeforeLastDot(devTagName);
--,
stepNum = batchStart;
WHILE stepNum < (batchStart + batchNum) LOOP
INSERT INTO tmpGenerateBatchDevTbl(BAT_TAG_NAME,BAT_DESC)
VALUES (replace(formatTagName,'%1',stepNum), replace(formatDesc,'%1',stepNum));
stepNum = stepNum + 1;
END LOOP;
--,
INSERT INTO dev_info(
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)SELECT
concat(locationTagName,'.',BAT_TAG_NAME) ,BAT_DESC, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME
FROM dev_info,tmpGenerateBatchDevTbl WHERE TAG_NAME=devTagName AND concat(locationTagName,'.',BAT_TAG_NAME) <> devTagName;
--
IF length(trim(fesRtuTagName)) THEN
BEGIN
--,,
SELECT '' INTO fesDevTempTagName FROM dev_info,dev_temp_def WHERE dev_info.TAG_NAME = devTagName AND dev_info.DEV_TP_NAME = dev_temp_def.TAG_NAME;
IF length(trim(fesDevTempTagName)) = 0 THEN RETURN;
END IF;
--
INSERT INTO fes_dev_info(
TAG_NAME, DEV_NAME, LOCATION_ID, SUB_SYSTEM, DEV_ID, DEV_TYPE_ID, RTU_TAG, RTU_NO, DEV_DESC, DEV_TP_NAME)SELECT
concat(fesRtuTagName,'.', BAT_TAG_NAME,'_fes'),concat(BAT_TAG_NAME,'_fes'),fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,-1, fes_dev_temp_def.DEV_TYPE_ID,fesRtuTagName,fes_rtu_para.RTU_NO,BAT_DESC,fesDevTempTagName
FROM fes_dev_temp_def,fes_rtu_para,tmpGenerateBatchDevTbl
WHERE fes_dev_temp_def.TAG_NAME = fesDevTempTagName
AND fes_rtu_para.TAG_NAME = fesRtuTagName;
--,
CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblAcc(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpFesTblAcc;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblAna(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpFesTblAna;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblDig(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpFesTblDig;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblMix(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpFesTblMix;
--,使while循环重新生成tagName
stepNum = batchStart;
WHILE stepNum < (batchStart + batchNum) LOOP
tempStr = replace(formatTagName,'%1',stepNum);
tmpDevTag = concat(locationTagName,'.',tempStr);
tmpFesDevTag = concat(fesRtuTagName,'.', tempStr,'_fes');
--,,,,
IF stepNum = batchStart THEN
BEGIN
--acc
INSERT INTO tmpFesTblAcc(KEY_ID_TAG , DOT_NO)
SELECT accuml_map_to_fes.KEY_ID_TAG, fes_accuml.DOT_NO FROM accuml_map_to_fes,accuml_temp_define,fes_dev_pt_temp_def,fes_accuml WHERE
getBeforeLastDot(getAfterFirstDot(accuml_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
accuml_map_to_fes.POINT_TP_NAME=accuml_temp_define.TAG_NAME AND
accuml_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_ACC') AND
fes_dev_pt_temp_def.SEQ_NO = accuml_temp_define.SEC_SEQ_NO AND
fes_accuml.DEV_TAG = tmpFesDevTag AND
fes_accuml.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
--ana
INSERT INTO tmpFesTblAna (KEY_ID_TAG , DOT_NO)
SELECT analog_map_to_fes.KEY_ID_TAG, fes_analog.DOT_NO FROM analog_map_to_fes,analog_temp_define,fes_dev_pt_temp_def,fes_analog WHERE
getBeforeLastDot(getAfterFirstDot(analog_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
analog_map_to_fes.POINT_TP_NAME=analog_temp_define.TAG_NAME AND
analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_ANA') AND
fes_dev_pt_temp_def.SEQ_NO = analog_temp_define.SEC_SEQ_NO AND
fes_analog.DEV_TAG = tmpFesDevTag AND
fes_analog.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
--digital
INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 1 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE
getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND
fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO1 AND
fes_digital.DEV_TAG = tmpFesDevTag AND
fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 2 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE
getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND
fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO2 AND
fes_digital.DEV_TAG = tmpFesDevTag AND
fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 3 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE
getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND
fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO3 AND
fes_digital.DEV_TAG = tmpFesDevTag AND
fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 4 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE
getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND
fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO4 AND
fes_digital.DEV_TAG = tmpFesDevTag AND
fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 5 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE
getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND
fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO5 AND
fes_digital.DEV_TAG = tmpFesDevTag AND
fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
--mix
INSERT INTO tmpFesTblMix (KEY_ID_TAG , DOT_NO)
SELECT mix_map_to_fes.KEY_ID_TAG, fes_mix.DOT_NO FROM mix_map_to_fes,mix_temp_define,fes_dev_pt_temp_def,fes_mix WHERE
getBeforeLastDot(getAfterFirstDot(mix_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND
mix_map_to_fes.POINT_TP_NAME=mix_temp_define.TAG_NAME AND
mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND
fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_MIX') AND
fes_dev_pt_temp_def.SEQ_NO = mix_temp_define.SEC_SEQ_NO AND
fes_mix.DEV_TAG = tmpFesDevTag AND
fes_mix.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME;
--
SELECT count(*) INTO accSize FROM fes_accuml WHERE DEV_TAG = tmpFesDevTag;
SELECT count(*) INTO anaSize FROM fes_analog WHERE DEV_TAG = tmpFesDevTag;
SELECT count(*) INTO digSize FROM fes_digital WHERE DEV_TAG = tmpFesDevTag;
SELECT count(*) INTO mixSize FROM fes_mix WHERE DEV_TAG = tmpFesDevTag;
IF COALESCE(accSize,0) = 0 THEN
accSize = 0;
END IF;
IF COALESCE(anaSize,0) = 0 THEN
anaSize = 0;
END IF;
IF COALESCE(digSize,0) = 0 THEN
digSize = 0;
END IF;
IF COALESCE(mixSize,0) = 0 THEN
mixSize = 0;
END IF;
END;
END IF;
--KEY_ID_TAG,DOT_NO直接替换字段
IF stepNum <> batchStart THEN
BEGIN
UPDATE tmpFesTblAcc SET
KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)),
DOT_NO = ( DOT_NO + accSize)
WHERE 1;
UPDATE tmpFesTblAna SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)),
DOT_NO = ( DOT_NO + anaSize)
WHERE 1;
UPDATE tmpFesTblDig SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)),
DOT_NO = ( DOT_NO + digSize)
WHERE 1;
UPDATE tmpFesTblMix SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)),
DOT_NO = ( DOT_NO + mixSize)
WHERE 1;
END;
END IF;
--acc
UPDATE accuml SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag;
UPDATE accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = tmpFesTblAcc.DOT_NO
FROM tmpFesTblAcc
WHERE accuml_map_to_fes.KEY_ID_TAG = tmpFesTblAcc.KEY_ID_TAG;
--ana
UPDATE analog SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag;
UPDATE analog_map_to_fes
SET analog_map_to_fes.DOT_NO = tmpFesTblAna.DOT_NO
FROM tmpFesTblAna
WHERE analog_map_to_fes.KEY_ID_TAG = tmpFesTblAna.KEY_ID_TAG;
--digital
UPDATE digital SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag;
UPDATE digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = tmpFesTblDig.DOT_NO
FROM tmpFesTblDig
WHERE digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG
AND tmpFesTblDig.OFFSET_NO = 1;
UPDATE digital_map_to_fes
SET digital_map_to_fes.DOT_NO2 = tmpFesTblDig.DOT_NO
FROM tmpFesTblDig
WHERE digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG
AND tmpFesTblDig.OFFSET_NO = 2;
UPDATE digital_map_to_fes
SET digital_map_to_fes.DOT_NO3 = tmpFesTblDig.DOT_NO
FROM tmpFesTblDig
WHERE digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG
AND tmpFesTblDig.OFFSET_NO = 3;
UPDATE digital_map_to_fes
SET digital_map_to_fes.DOT_NO4 = tmpFesTblDig.DOT_NO
FROM tmpFesTblDig
WHERE digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG
AND tmpFesTblDig.OFFSET_NO = 4;
UPDATE digital_map_to_fes
SET digital_map_to_fes.DOT_NO5 = tmpFesTblDig.DOT_NO
FROM tmpFesTblDig
WHERE digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG
AND tmpFesTblDig.OFFSET_NO = 5;
--mix
UPDATE mix
SET RTU_TAG = fesRtuTagName
WHERE DEVICE = tmpDevTag;
UPDATE mix_map_to_fes
SET mix_map_to_fes.DOT_NO = tmpFesTblMix.DOT_NO
FROM tmpFesTblMix
WHERE mix_map_to_fes.KEY_ID_TAG = tmpFesTblMix.KEY_ID_TAG;
--1
stepNum = stepNum + 1;
END LOOP;
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION generateFesDevTemp(devTagName varchar(64), fesDevTagName varchar(64))
RETURNS VOID
AS $$
BEGIN
--
--devTagName
--fesDevTagName ,,
IF EXISTS (SELECT TAG_NAME FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME= fesDevTagName )
THEN RETURN;
END IF;
--FES前置模板点
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_ACC'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM accuml_temp_define WHERE DEV_TP_NAME = devTagName;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_ANA'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM analog_temp_define WHERE DEV_TP_NAME = devTagName;
--dig要特殊处理,dig要分辨分量数
CREATE TEMPORARY TABLE IF NOT EXISTS tmpGenerateFesDevTempTbl(
FES_SEQ_NO serial,
DIG_TAG_NAME varchar(64) NOT NULL,
HouTai_SEQ_NO decimal(10,0) NOT NULL,
HouTai_OFF_SET decimal(10,0) NOT NULL,
PRIMARY KEY(FES_SEQ_NO)
);
DELETE FROM tmpGenerateFesDevTempTbl;
INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET)
SELECT TAG_NAME,SEQ_NO,1
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 1 <= VALUE_NUM ORDER BY SEQ_NO;
INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET)
SELECT TAG_NAME,SEQ_NO,2
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 2 <= VALUE_NUM ORDER BY SEQ_NO;
INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET)
SELECT TAG_NAME,SEQ_NO,3
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 3 <= VALUE_NUM ORDER BY SEQ_NO;
INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET)
SELECT TAG_NAME,SEQ_NO,4
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 4 <= VALUE_NUM ORDER BY SEQ_NO;
INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET)
SELECT TAG_NAME,SEQ_NO,5
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 5 <= VALUE_NUM ORDER BY SEQ_NO;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),HouTai_OFF_SET),getFesPointType('FES_DIG'), fesDevTagName,FES_SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', concat(DESCRIPTION,HouTai_OFF_SET)
FROM digital_temp_define,tmpGenerateFesDevTempTbl WHERE DEV_TP_NAME = devTagName AND TAG_NAME = DIG_TAG_NAME;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_MIX'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM mix_temp_define WHERE DEV_TP_NAME = devTagName;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_ANA_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM analog_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_DIG_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0;
INSERT INTO fes_dev_pt_temp_def(
TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT
concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_MIX_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION
FROM mix_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0;
--,acc,ana,dig,mix,
UPDATE dev_temp_def SET
SEC_DEVTP_NAME = fesDevTagName
WHERE TAG_NAME = devTagName;
--acc,ana,mix点序号后台和前置里一一对应
UPDATE accuml_temp_define SET
SEC_SEQ_NO = SEQ_NO
WHERE DEV_TP_NAME = devTagName;
UPDATE analog_temp_define SET
SEC_SEQ_NO = SEQ_NO
WHERE DEV_TP_NAME = devTagName;
UPDATE mix_temp_define SET
SEC_SEQ_NO = SEQ_NO
WHERE DEV_TP_NAME = devTagName;
--dig点序号和分量数有关
--
UPDATE digital_temp_define SET
SEC_SEQ_NO1 = -1,
SEC_SEQ_NO2 = -1,
SEC_SEQ_NO3 = -1,
SEC_SEQ_NO4 = -1,
SEC_SEQ_NO5 = -1
WHERE DEV_TP_NAME = devTagName;
UPDATE digital_temp_define
SET SEC_SEQ_NO1 = FES_SEQ_NO
FROM tmpGenerateFesDevTempTbl
WHERE TAG_NAME = DIG_TAG_NAME
AND DEV_TP_NAME = devTagName
AND HouTai_OFF_SET = 1;
UPDATE digital_temp_define
SET SEC_SEQ_NO2 = FES_SEQ_NO
FROM tmpGenerateFesDevTempTbl
WHERE TAG_NAME = DIG_TAG_NAME
AND DEV_TP_NAME = devTagName
AND HouTai_OFF_SET = 2;
UPDATE digital_temp_define
SET SEC_SEQ_NO3 = FES_SEQ_NO
FROM tmpGenerateFesDevTempTbl
WHERE TAG_NAME = DIG_TAG_NAME
AND DEV_TP_NAME = devTagName
AND HouTai_OFF_SET = 3;
UPDATE digital_temp_define
SET SEC_SEQ_NO4 = FES_SEQ_NO
FROM tmpGenerateFesDevTempTbl
WHERE TAG_NAME = DIG_TAG_NAME
AND DEV_TP_NAME = devTagName
AND HouTai_OFF_SET = 4;
UPDATE digital_temp_define
SET SEC_SEQ_NO5 = FES_SEQ_NO
FROM tmpGenerateFesDevTempTbl
WHERE TAG_NAME = DIG_TAG_NAME
AND DEV_TP_NAME = devTagName
AND HouTai_OFF_SET = 5;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION importbgxfes(openTriggerInfo decimal(10,0), importFesPointDesc decimal(10,0), fesDescToBG decimal(10,0) )
RETURNS VOID
AS $$
BEGIN
--background_x_fes表导入数据
--openTriggerInfo = 1 ,,
--importFesPointDesc = 1FES点描述,, ,
--fesDescToBG = 1FES的描述导入后台
--
IF openTriggerInfo <> 1 THEN
UPDATE sys_trigger_flag SET FLAG_ID = 0 WHERE FLAG_ID = 1;
END IF;
--
--background_x_fes表中提到的后台点与前置的映射关系取消掉,,,
--CALL kbdDebugInfo('begin 消除后台点的映射关系','');
update accuml
SET accuml.RTU_TAG = ''
from background_x_fes_accuml
WHERE concat('accuml','.',accuml.TAG_NAME) = background_x_fes_accuml.BG_POINT_TAG;
update analog
SET analog.RTU_TAG = ''
from background_x_fes_analog
WHERE concat('analog','.',analog.TAG_NAME) = background_x_fes_analog.BG_POINT_TAG;
update digital
SET digital.RTU_TAG = ''
from background_x_fes_digtal
WHERE concat('digital','.',digital.TAG_NAME) = background_x_fes_digtal.BG_POINT_TAG;
update mix
SET mix.RTU_TAG = ''
from background_x_fes_mix
WHERE concat('mix','.',mix.TAG_NAME) = background_x_fes_mix.BG_POINT_TAG;
--update完毕,,map_to_fes和Control表中的RTU
--CALL kbdDebugInfo('end 消除后台点的映射关系','');
--, acc,ana,dig,mix ,1:RTU_TAG和RTU_DOT_NO可以确定一个点
--2:RTU_DEV_TAG去前置模板和后台模板寻找实例的对应点,RTU_tag和RTU_DOT_NO
--RTU_TAG和RTU_DOT_NO确定前置点
--
--ana_ctrl,dig_ctrl,mix_ctrl只能用一种方法确定,rtu_tag, RTU_DOT_NO,RTU_DEV_TAG都需要填写, rtu_tag, RTU_DOT_NO,RTU_DEV_TAG都对得上的使用实例的设备,使
--,acc,ana,dig,mix,RTU_TAG或者RTU_DOT_NO为空, RTU_DEV_TAG不为空的记录,,RTU_TAG和RTU_DOT_NO信息
--CALL kbdDebugInfo('begin update RTU_TAG or dot_no NULL','');
--acc
UPDATE background_x_fes_accuml
SET background_x_fes_accuml.RTU_TAG = fes_accuml.RTU_TAG,
background_x_fes_accuml.RTU_DOT_NO = fes_accuml.DOT_NO
FROM accuml_map_to_fes,accuml_temp_define,fes_accuml
WHERE COALESCE(background_x_fes_accuml.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_accuml.RTU_TAG,'')='' OR COALESCE(background_x_fes_accuml.RTU_DOT_NO,'')='')
AND background_x_fes_accuml.BG_POINT_TAG = accuml_map_to_fes.KEY_ID_TAG
AND accuml_map_to_fes.POINT_TP_NAME = accuml_temp_define.TAG_NAME
AND fes_accuml.DEV_TAG = background_x_fes_accuml.RTU_DEV_TAG
AND fes_accuml.SEQ_NO = accuml_temp_define.SEC_SEQ_NO;
--ana
UPDATE background_x_fes_analog
SET background_x_fes_analog.RTU_TAG = fes_analog.RTU_TAG,
background_x_fes_analog.RTU_DOT_NO = fes_analog.DOT_NO
FROM analog_map_to_fes, analog_temp_define,fes_analog
WHERE COALESCE(background_x_fes_analog.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_analog.RTU_TAG,'')='' OR COALESCE(background_x_fes_analog.RTU_DOT_NO,'')='')
AND background_x_fes_analog.BG_POINT_TAG = analog_map_to_fes.KEY_ID_TAG
AND analog_map_to_fes.POINT_TP_NAME = analog_temp_define.TAG_NAME
AND fes_analog.DEV_TAG = background_x_fes_analog.RTU_DEV_TAG
AND fes_analog.SEQ_NO = analog_temp_define.SEC_SEQ_NO;
--dig的5个分量,,background_x_fes_digtal.OFFSET字段,,5,1,2,3,4,5
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG,
background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO
FROM digital_map_to_fes,digital_temp_define,fes_digital
WHERE COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='')
AND background_x_fes_digtal.BG_POINT_OFFSET = 1
AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG
AND digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO1;
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG,
background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO
FROM digital_map_to_fes,digital_temp_define,fes_digital
WHERE COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='')
AND background_x_fes_digtal.BG_POINT_OFFSET = 2
AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG
AND digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO2;
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG,
background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO
FROM digital_map_to_fes,digital_temp_define,fes_digital
WHERE COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='')
AND background_x_fes_digtal.BG_POINT_OFFSET = 3
AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG
AND digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO3;
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG,
background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO
FROM digital_map_to_fes,background_x_fes_digtal,fes_digital
WHERE COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='')
AND background_x_fes_digtal.BG_POINT_OFFSET = 4
AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG
AND digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO4;
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG,
background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO
FROM digital_map_to_fes,digital_temp_define,fes_digital
WHERE COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='')
AND background_x_fes_digtal.BG_POINT_OFFSET = 5
AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG
AND digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO5;
--mix
UPDATE background_x_fes_mix
SET background_x_fes_mix.RTU_TAG = fes_mix.RTU_TAG,
background_x_fes_mix.RTU_DOT_NO = fes_mix.DOT_NO
FROM mix_map_to_fes,mix_temp_define,fes_mix
WHERE COALESCE(background_x_fes_mix.RTU_DEV_TAG,'')<>''
AND (COALESCE(background_x_fes_mix.RTU_TAG,'')='' OR COALESCE(background_x_fes_mix.RTU_DOT_NO,'')='')
AND background_x_fes_mix.BG_POINT_TAG = mix_map_to_fes.KEY_ID_TAG
AND mix_map_to_fes.POINT_TP_NAME = mix_temp_define.TAG_NAME
AND fes_mix.DEV_TAG = background_x_fes_mix.RTU_DEV_TAG
AND fes_mix.SEQ_NO = mix_temp_define.SEC_SEQ_NO;
--CALL kbdDebugInfo('end update RTU_TAG or dot_no NULL','');
--RTU_TAG和DOT_NO仍为空的
--CALL kbdDebugInfo('begin delete RTU_TAG or dot_no NULL','');
DELETE FROM background_x_fes_accuml WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_analog WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_digtal WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_mix WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_ana_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_dig_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
DELETE FROM background_x_fes_mix_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ;
--CALL kbdDebugInfo('end delete RTU_TAG or dot_no NULL','');
--CALL kbdDebugInfo('begin reUpdate RTU_DEV_TAG','');
--,RTU_TAG,DOT_NO和RTU_DEV_TAG对不上的点归类到默认设备
UPDATE background_x_fes_accuml
SET background_x_fes_accuml.RTU_DEV_TAG = concat(background_x_fes_accuml.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_accuml
WHERE fes_accuml.TAG_NAME =concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO)
AND fes_accuml.DEV_TAG = background_x_fes_accuml.RTU_DEV_TAG
);
UPDATE background_x_fes_analog
SET background_x_fes_analog.RTU_DEV_TAG = concat(background_x_fes_analog.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_analog
WHERE fes_analog.TAG_NAME =concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO)
AND fes_analog.DEV_TAG = background_x_fes_analog.RTU_DEV_TAG
);
UPDATE background_x_fes_digtal
SET background_x_fes_digtal.RTU_DEV_TAG = concat(background_x_fes_digtal.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_digital
WHERE fes_digital.TAG_NAME =concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO)
AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG
);
UPDATE background_x_fes_mix
SET background_x_fes_mix.RTU_DEV_TAG = concat(background_x_fes_mix.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_mix
WHERE fes_mix.TAG_NAME =concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO)
AND fes_mix.DEV_TAG = background_x_fes_mix.RTU_DEV_TAG
);
UPDATE background_x_fes_ana_ctrl
SET background_x_fes_ana_ctrl.RTU_DEV_TAG = concat(background_x_fes_ana_ctrl.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_analog_ctrl
WHERE fes_analog_ctrl.TAG_NAME =concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO)
AND fes_analog_ctrl.DEV_TAG = background_x_fes_ana_ctrl.RTU_DEV_TAG
);
UPDATE background_x_fes_dig_ctrl
SET background_x_fes_dig_ctrl.RTU_DEV_TAG = concat(background_x_fes_dig_ctrl.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_digital_ctrl
WHERE fes_digital_ctrl.TAG_NAME =concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO)
AND fes_digital_ctrl.DEV_TAG = background_x_fes_dig_ctrl.RTU_DEV_TAG
);
UPDATE background_x_fes_mix_ctrl
SET background_x_fes_mix_ctrl.RTU_DEV_TAG = concat(background_x_fes_mix_ctrl.RTU_TAG, '.', 'defaultDev')
WHERE NOT EXISTS
(SELECT TAG_NAME FROM fes_mix_ctrl
WHERE fes_mix_ctrl.TAG_NAME =concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO)
AND fes_mix_ctrl.DEV_TAG = background_x_fes_mix_ctrl.RTU_DEV_TAG
);
--CALL kbdDebugInfo('end reUpdate RTU_DEV_TAG','');
--,background_x_fes表中的字段情况有以下几种情况.
--1:RTU_TAG,DOT_NO,RTU_DEV_TAG都对得上的(),
--2:RTU_TAG,DOT_NO与RTU_DEV_TAG可能对不上,
--
--CALL kbdDebugInfo('begin 删除默认设备点','');
DELETE FROM fes_accuml
USING fes_dev_info,background_x_fes_accuml
WHERE fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_accuml.RTU_TAG,'.', 'defaultDev')
AND fes_accuml.RTU_TAG = background_x_fes_accuml.RTU_TAG;
DELETE FROM fes_analog
USING fes_dev_info,background_x_fes_analog
WHERE fes_analog.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_analog.RTU_TAG,'.', 'defaultDev')
AND fes_analog.RTU_TAG = background_x_fes_analog.RTU_TAG;
DELETE FROM fes_digital
USING fes_dev_info,background_x_fes_digtal
WHERE fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_digital.RTU_TAG,'.', 'defaultDev')
AND fes_digital.RTU_TAG = background_x_fes_digtal.RTU_TAG;
DELETE FROM fes_mix
USING fes_dev_info,background_x_fes_mix
WHERE fes_mix.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_mix.RTU_TAG,'.', 'defaultDev')
AND fes_mix.RTU_TAG = background_x_fes_mix.RTU_TAG;
DELETE FROM fes_analog_ctrl
USING fes_dev_info,background_x_fes_ana_ctrl
WHERE fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_analog_ctrl.RTU_TAG,'.', 'defaultDev')
AND fes_analog_ctrl.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG;
DELETE FROM fes_digital_ctrl
USING fes_dev_info,background_x_fes_dig_ctrl
WHERE fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_digital_ctrl.RTU_TAG,'.', 'defaultDev')
AND fes_digital_ctrl.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
DELETE FROM fes_mix_ctrl
USING fes_dev_info,background_x_fes_mix_ctrl
WHERE fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
AND fes_dev_info.TAG_NAME = concat(fes_mix_ctrl.RTU_TAG,'.', 'defaultDev')
AND fes_mix_ctrl.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG;
--CALL kbdDebugInfo('end 删除默认设备点','');
--FES与后台的联系清除
--CALL kbdDebugInfo('begin 对于非默认设备将所有FES与后台的联系清除','');
update fes_accuml
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_accuml
where fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO);
update fes_analog
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_analog
where fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO);
update fes_digital
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_digtal
where fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO);
update fes_mix
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_mix
where fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO);
update fes_analog_ctrl
SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_ana_ctrl
where fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO);
update fes_digital_ctrl
SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_dig_ctrl
where fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO);
update fes_mix_ctrl
SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4
from background_x_fes_mix_ctrl
where fes_mix_ctrl.TAG_NAME = concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO);
--CALL kbdDebugInfo('end 对于非默认设备将所有FES与后台的联系清除','');
--ana_ctrl,dig_ctrl,mix_ctrl不用清除
--
--CALL kbdDebugInfo('begin 重新生成默认设备','');
INSERT INTO fes_accuml (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT
concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_accuml.RTU_DOT_NO, background_x_fes_accuml.RTU_TAG, fes_dev_info.TAG_NAME,background_x_fes_accuml.RTU_DOT_NO, '', '', '', '0', '1', fes_rtu_para.RTU_NO, background_x_fes_accuml.RTU_RES_PARA_INT1, background_x_fes_accuml.RTU_RES_PARA_INT2, background_x_fes_accuml.RTU_RES_PARA_INT3, background_x_fes_accuml.RTU_RES_PARA_INT4, background_x_fes_accuml.RTU_DOT_DESC, ''
FROM background_x_fes_accuml , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_accuml.RTU_DEV_TAG =concat(background_x_fes_accuml.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_accuml.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_accuml.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_accuml.RTU_TAG;
INSERT INTO fes_analog (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT
concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, fes_dev_info.TAG_NAME, background_x_fes_analog.RTU_DOT_NO,background_x_fes_analog.RTU_TAG,fes_rtu_para.RTU_NO, background_x_fes_analog.RTU_DOT_NO, '', '', '', '0', '0', '0', '0', '0', '0', '1', '65536', '0', background_x_fes_analog.RTU_RES_PARA_INT1, background_x_fes_analog.RTU_RES_PARA_INT2, background_x_fes_analog.RTU_RES_PARA_INT3, background_x_fes_analog.RTU_RES_PARA_INT4, background_x_fes_analog.RTU_DOT_DESC, ''
FROM background_x_fes_analog , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_analog.RTU_DEV_TAG =concat(background_x_fes_analog.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_analog.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_analog.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_analog.RTU_TAG;
INSERT INTO fes_digital (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT
concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, fes_dev_info.TAG_NAME, background_x_fes_digtal.RTU_DOT_NO,background_x_fes_digtal.RTU_TAG,background_x_fes_digtal.RTU_DOT_NO, '', '', '', '1', '1', '0', '0', fes_rtu_para.RTU_NO, background_x_fes_digtal.RTU_RES_PARA_INT1, background_x_fes_digtal.RTU_RES_PARA_INT2, background_x_fes_digtal.RTU_RES_PARA_INT3, background_x_fes_digtal.RTU_RES_PARA_INT4, background_x_fes_digtal.RTU_DOT_DESC, ''
FROM background_x_fes_digtal , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_digtal.RTU_DEV_TAG =concat(background_x_fes_digtal.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_digtal.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_digtal.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_digtal.RTU_TAG;
INSERT INTO fes_mix (
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, FES_POINT_TP_NAME) SELECT
concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO), background_x_fes_mix.RTU_DOT_DESC, fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_mix.RTU_TAG,fes_dev_info.RTU_NO,background_x_fes_mix.RTU_DOT_NO, fes_dev_info.TAG_NAME, background_x_fes_mix.RTU_DOT_NO,'', '', '', '0', '1', '65536', '0', background_x_fes_mix.RTU_RES_PARA_INT1, background_x_fes_mix.RTU_RES_PARA_INT2, background_x_fes_mix.RTU_RES_PARA_INT3, background_x_fes_mix.RTU_RES_PARA_INT4, ''
FROM background_x_fes_mix , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_mix.RTU_DEV_TAG =concat(background_x_fes_mix.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_mix.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_mix.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_mix.RTU_TAG;
INSERT INTO fes_analog_ctrl (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, BASE, COEFF, MAX_RANGE, MIN_RANGE, RTU_NO, DEV_TAG, DOT_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, SEQ_NO, RTU_TAG, DESCRIPTION, POINT_TP_NAME) SELECT
concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, '0', '1', '65536', '0', fes_rtu_para.RTU_NO,fes_dev_info.TAG_NAME,background_x_fes_ana_ctrl.RTU_DOT_NO, background_x_fes_ana_ctrl.RTU_RES_PARA_INT1,background_x_fes_ana_ctrl.RTU_RES_PARA_INT2,background_x_fes_ana_ctrl.RTU_RES_PARA_INT3,background_x_fes_ana_ctrl.RTU_RES_PARA_INT4,background_x_fes_ana_ctrl.RTU_DOT_NO,background_x_fes_ana_ctrl.RTU_TAG,background_x_fes_ana_ctrl.RTU_DOT_DESC,''
FROM background_x_fes_ana_ctrl , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_ana_ctrl.RTU_DEV_TAG =concat(background_x_fes_ana_ctrl.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_ana_ctrl.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_ana_ctrl.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG;
INSERT INTO fes_digital_ctrl (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4) SELECT
concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_dig_ctrl.RTU_TAG,fes_rtu_para.RTU_NO, background_x_fes_dig_ctrl.RTU_DOT_NO,fes_dev_info.TAG_NAME,background_x_fes_dig_ctrl.RTU_DOT_DESC,'0', '', background_x_fes_dig_ctrl.RTU_DOT_NO,background_x_fes_dig_ctrl.RTU_RES_PARA_INT1,background_x_fes_dig_ctrl.RTU_RES_PARA_INT2,background_x_fes_dig_ctrl.RTU_RES_PARA_INT3,background_x_fes_dig_ctrl.RTU_RES_PARA_INT4
FROM background_x_fes_dig_ctrl , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_dig_ctrl.RTU_DEV_TAG =concat(background_x_fes_dig_ctrl.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_dig_ctrl.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_dig_ctrl.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
INSERT INTO fes_mix_ctrl (
TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, BASE, DESCRIPTION, DOT_NO, COEFF, MIN_RANGE, MAX_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, SEQ_NO, POINT_TP_NAME, DEV_TAG) SELECT
concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_mix_ctrl.RTU_TAG,fes_rtu_para.RTU_NO,'0', background_x_fes_mix_ctrl.RTU_DOT_DESC, background_x_fes_mix_ctrl.RTU_DOT_NO,'1', '0', '65536', background_x_fes_mix_ctrl.RTU_RES_PARA_INT1,background_x_fes_mix_ctrl.RTU_RES_PARA_INT2,background_x_fes_mix_ctrl.RTU_RES_PARA_INT3,background_x_fes_mix_ctrl.RTU_RES_PARA_INT4, background_x_fes_mix_ctrl.RTU_DOT_NO,'', fes_dev_info.TAG_NAME
FROM background_x_fes_mix_ctrl , fes_rtu_para ,fes_dev_info WHERE
background_x_fes_mix_ctrl.RTU_DEV_TAG =concat(background_x_fes_mix_ctrl.RTU_TAG, '.', 'defaultDev' )
AND fes_rtu_para.TAG_NAME=background_x_fes_mix_ctrl.RTU_TAG
AND fes_dev_info.TAG_NAME = background_x_fes_mix_ctrl.RTU_DEV_TAG
AND fes_dev_info.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG;
--CALL kbdDebugInfo('end 重新生成默认设备','');
--NOTE:
--FES与后台的关系 map_to_fes表,
--,acc,ana,dig,map_to_fes,ctrl表
--CALL kbdDebugInfo('begin 重新写入 set RTU','');
update accuml
SET accuml.RTU_TAG = background_x_fes_accuml.RTU_TAG
from background_x_fes_accuml
WHERE concat('accuml','.',accuml.TAG_NAME) = background_x_fes_accuml.BG_POINT_TAG;
update analog
SET analog.RTU_TAG = background_x_fes_analog.RTU_TAG
from background_x_fes_analog
WHERE concat('analog','.',analog.TAG_NAME) = background_x_fes_analog.BG_POINT_TAG;
update digital
SET digital.RTU_TAG = background_x_fes_digtal.RTU_TAG
from background_x_fes_digtal
WHERE concat('digital','.',digital.TAG_NAME) = background_x_fes_digtal.BG_POINT_TAG;
update mix
SET mix.RTU_TAG = background_x_fes_mix.RTU_TAG
from background_x_fes_mix
WHERE concat('mix','.',mix.TAG_NAME) = background_x_fes_mix.BG_POINT_TAG;
update accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = background_x_fes_accuml.RTU_DOT_NO
from background_x_fes_accuml
WHERE accuml_map_to_fes.KEY_ID_TAG = background_x_fes_accuml.BG_POINT_TAG AND accuml_map_to_fes.RTU_TAG = background_x_fes_accuml.RTU_TAG;
update analog_map_to_fes
SET analog_map_to_fes.DOT_NO = background_x_fes_analog.RTU_DOT_NO
from background_x_fes_analog
WHERE analog_map_to_fes.KEY_ID_TAG = background_x_fes_analog.BG_POINT_TAG AND analog_map_to_fes.RTU_TAG = background_x_fes_analog.RTU_TAG;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = background_x_fes_digtal.RTU_DOT_NO
from background_x_fes_digtal
WHERE background_x_fes_digtal.BG_POINT_OFFSET = 1 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO2 = background_x_fes_digtal.RTU_DOT_NO
from background_x_fes_digtal
WHERE background_x_fes_digtal.BG_POINT_OFFSET = 2 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO3 = background_x_fes_digtal.RTU_DOT_NO
from background_x_fes_digtal
WHERE background_x_fes_digtal.BG_POINT_OFFSET = 3 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO4 = background_x_fes_digtal.RTU_DOT_NO
from background_x_fes_digtal
WHERE background_x_fes_digtal.BG_POINT_OFFSET = 4 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO5 = background_x_fes_digtal.RTU_DOT_NO
from background_x_fes_digtal
WHERE background_x_fes_digtal.BG_POINT_OFFSET = 5 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG;
update mix_map_to_fes
SET mix_map_to_fes.DOT_NO = background_x_fes_mix.RTU_DOT_NO
from background_x_fes_mix
WHERE mix_map_to_fes.KEY_ID_TAG = background_x_fes_mix.BG_POINT_TAG AND mix_map_to_fes.RTU_TAG = background_x_fes_mix.RTU_TAG;
--CALL kbdDebugInfo('end 重新写入 set RTU, DOT','');
--ctrl表,background_x_fes__ctrl中的RTU必须和analog_control中的RTU保持一致,RTU
--CALL kbdDebugInfo('begin 写入ctrl表','');
update analog_control
SET analog_control.OFFSET_NO = background_x_fes_ana_ctrl.RTU_DOT_NO
from background_x_fes_ana_ctrl
WHERE analog_control.TAG_NAME = background_x_fes_ana_ctrl.BG_POINT_TAG AND analog_control.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG;
update digital_control
SET digital_control.OFFSET_NO1 = background_x_fes_dig_ctrl.RTU_DOT_NO
from background_x_fes_dig_ctrl
WHERE digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 1 AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
update digital_control
SET digital_control.OFFSET_NO2 = background_x_fes_dig_ctrl.RTU_DOT_NO
from background_x_fes_dig_ctrl
WHERE digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 2 AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
update digital_control
SET digital_control.OFFSET_NO3 = background_x_fes_dig_ctrl.RTU_DOT_NO
from background_x_fes_dig_ctrl
WHERE digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 3 AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
update digital_control
SET digital_control.OFFSET_NO4 = background_x_fes_dig_ctrl.RTU_DOT_NO
from background_x_fes_dig_ctrl
WHERE digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 4 AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
update digital_control
SET digital_control.OFFSET_NO5 = background_x_fes_dig_ctrl.RTU_DOT_NO
from background_x_fes_dig_ctrl
WHERE digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 5 AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG;
update mix_control
SET mix_control.OFFSET_NO = background_x_fes_mix_ctrl.RTU_DOT_NO
from background_x_fes_mix_ctrl
WHERE mix_control.TAG_NAME = background_x_fes_mix_ctrl.BG_POINT_TAG AND mix_control.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG;
--CALL kbdDebugInfo('end 写入ctrl表','');
--,
--,()excel文件中的一致
IF importFesPointDesc = 1 THEN
BEGIN
update fes_accuml
SET fes_accuml.DESCRIPTION = background_x_fes_accuml.RTU_DOT_DESC
from background_x_fes_accuml
WHERE fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO) AND fes_accuml.DEV_TAG <> concat(fes_accuml.RTU_TAG,'.','defaultDev');
update fes_analog
SET fes_analog.DESCRIPTION = background_x_fes_analog.RTU_DOT_DESC
from background_x_fes_analog
WHERE fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO) AND fes_analog.DEV_TAG <> concat(fes_analog.RTU_TAG,'.','defaultDev');
update fes_digital
SET fes_digital.DESCRIPTION = background_x_fes_digtal.RTU_DOT_DESC
from background_x_fes_digtal
WHERE fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.', background_x_fes_digtal.RTU_DOT_NO) AND fes_digital.DEV_TAG <> concat(fes_digital.RTU_TAG,'.','defaultDev');
update fes_mix
SET fes_mix.DESCRIPTION = background_x_fes_mix.RTU_DOT_DESC
from background_x_fes_mix
WHERE fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.', background_x_fes_mix.RTU_DOT_NO) AND fes_mix.DEV_TAG <> concat(fes_mix.RTU_TAG,'.','defaultDev');
update fes_analog_ctrl
SET fes_analog_ctrl.DESCRIPTION = background_x_fes_ana_ctrl.RTU_DOT_DESC
from background_x_fes_ana_ctrl
WHERE fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.', background_x_fes_ana_ctrl.RTU_DOT_NO) AND fes_analog_ctrl.DEV_TAG <> concat(fes_analog_ctrl.RTU_TAG,'.','defaultDev');
update fes_digital_ctrl
SET fes_digital_ctrl.DESCRIPTION = background_x_fes_dig_ctrl.RTU_DOT_DESC
from background_x_fes_dig_ctrl
WHERE fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) AND fes_digital_ctrl.DEV_TAG <> concat(fes_digital_ctrl.RTU_TAG,'.','defaultDev');
update fes_mix_ctrl
SET fes_mix_ctrl.DESCRIPTION = background_x_fes_mix_ctrl.RTU_DOT_DESC
from background_x_fes_mix_ctrl
WHERE fes_mix_ctrl.TAG_NAME = concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO) AND fes_mix_ctrl.DEV_TAG <> concat(fes_mix_ctrl.RTU_TAG,'.','defaultDev');
END;
END IF;
--,map_to_fes表,
IF fesDescToBG = 1 THEN
BEGIN
UPDATE accuml
SET accuml.DESCRIPTION = fes_accuml.DESCRIPTION
FROM accuml_map_to_fes,fes_accuml
WHERE accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.',accuml.TAG_NAME)
AND COALESCE(accuml_map_to_fes.RTU_TAG,'')<>''
AND COALESCE(accuml_map_to_fes.DOT_NO,'')<>''
AND fes_accuml.TAG_NAME = concat( accuml_map_to_fes.RTU_TAG ,'.', accuml_map_to_fes.DOT_NO);
UPDATE analog
SET analog.DESCRIPTION = fes_analog.DESCRIPTION
FROM analog_map_to_fes,fes_analog
WHERE analog_map_to_fes.KEY_ID_TAG = concat('analog','.',analog.TAG_NAME)
AND COALESCE(analog_map_to_fes.RTU_TAG,'')<>''
AND COALESCE(analog_map_to_fes.DOT_NO,'')<>''
AND fes_analog.TAG_NAME = concat(analog_map_to_fes.RTU_TAG ,'.', analog_map_to_fes.DOT_NO);
--mix的
UPDATE mix
SET mix.DESCRIPTION = fes_mix.DESCRIPTION
FROM mix_map_to_fes,fes_mix
WHERE mix_map_to_fes.KEY_ID_TAG = concat('mix','.',mix.TAG_NAME)
AND COALESCE(mix_map_to_fes.RTU_TAG,'')<>''
AND COALESCE(mix_map_to_fes.DOT_NO,'')<>''
AND fes_mix.TAG_NAME = concat(mix_map_to_fes.RTU_TAG ,'.', mix_map_to_fes.DOT_NO) ;
--dig的,,
UPDATE digital
SET digital.DESCRIPTION = fes_digital.DESCRIPTION
FROM digital_map_to_fes,fes_digital
WHERE digital_map_to_fes.KEY_ID_TAG = concat('digtal','.',digital.TAG_NAME)
AND COALESCE(digital_map_to_fes.RTU_TAG,'')<>''
AND COALESCE(digital_map_to_fes.DOT_NO1,'')<>''
AND fes_digital.TAG_NAME = concat(digital_map_to_fes.RTU_TAG ,'.', digital_map_to_fes.DOT_NO1) ;
END;
END IF;
--
IF openTriggerInfo <> 1 THEN
UPDATE sys_trigger_flag SET FLAG_ID = 1;
END IF;
--CALL kbdDebugInfo('end all','');
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION importPsc3000(rtuTag varchar(64))
RETURNS VOID
AS $$
DECLARE count1 int DEFAULT 0;
DECLARE count2 int DEFAULT 0;
BEGIN
/*
* PSC3000的数据,excel表格中的数据存入PSC3000开头的表格中
* 1.,excel表中设备ID和设备模板为判断基准,
ID和模板一样的设备,
,excel表中不存在的设备,.
ID和模板与excel一样的设备,TAG_NAME和描述,
2.,ID和点名缩写为判断基准
,,
,,1,,,,()
* ,使
*/
IF COALESCE(rtuTag,'') = '' THEN RETURN;
END IF;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000Tbl(
TAG_NAME varchar(64),
DEV_ID decimal(10,0),
SHORT_NAME varchar(64),
SEQ_NO decimal(10,0)
);
DELETE FROM tmpImportPsc3000Tbl;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000ForAdd(
DEV_ID decimal(10,0),
SHORT_NAME varchar(64),
SEQ_NO decimal(10,0)
);
DELETE FROM tmpImportPsc3000ForAdd;
--
DELETE FROM fes_dev_info WHERE RTU_TAG = rtuTag AND NOT EXISTS
(
SELECT psc3000_dev.DEV_ID FROM psc3000_dev
WHERE psc3000_dev.DEV_ID = fes_dev_info.DEV_ID
AND psc3000_dev.DEV_MODEL = fes_dev_info.DEV_TP_NAME
);
--
update fes_dev_info
SET fes_dev_info.TAG_NAME = concat(rtuTag,'.',psc3000_dev.TAG_NAME), fes_dev_info.DEV_NAME = psc3000_dev.TAG_NAME, fes_dev_info.DEV_DESC = psc3000_dev.DESCRIPTION
from psc3000_dev
WHERE fes_dev_info.RTU_TAG = rtuTag AND fes_dev_info.DEV_ID = psc3000_dev.DEV_ID AND fes_dev_info.DEV_TP_NAME = psc3000_dev.DEV_MODEL;
--
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID)
SELECT psc3000_dev.DEV_MODEL,psc3000_dev.DEV_ID FROM psc3000_dev WHERE NOT EXISTS
(
SELECT fes_dev_info.TAG_NAME FROM fes_dev_info
WHERE fes_dev_info.RTU_TAG = rtuTag
AND fes_dev_info.DEV_ID = psc3000_dev.DEV_ID
AND fes_dev_info.DEV_TP_NAME = psc3000_dev.DEV_MODEL
);
INSERT INTO fes_dev_info
(TAG_NAME, DEV_NAME, LOCATION_ID, SUB_SYSTEM, DEV_ID, DEV_TYPE_ID, RTU_TAG,RTU_NO, DEV_DESC, DEV_TP_NAME ) SELECT
concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dev.TAG_NAME,fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,psc3000_dev.DEV_ID,fes_dev_temp_def.DEV_TYPE_ID,rtuTag, fes_rtu_para.RTU_NO,psc3000_dev.DESCRIPTION,psc3000_dev.DEV_MODEL
FROM tmpImportPsc3000Tbl,fes_dev_temp_def,psc3000_dev,fes_rtu_para
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_dev_temp_def.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_dev.DEV_ID
AND tmpImportPsc3000Tbl.TAG_NAME = psc3000_dev.DEV_MODEL
AND fes_rtu_para.TAG_NAME = rtuTag;
--
--,,,update语句中添加即可
--acc
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_accuml.TAG_NAME,psc3000_acc.DEV_ID, psc3000_acc.TAG_NAME
FROM fes_accuml,psc3000_dev,psc3000_acc
WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_accuml.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_acc.DEV_ID
AND fes_accuml.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_acc.TAG_NAME);
UPDATE fes_accuml
SET fes_accuml.DESCRIPTION = psc3000_acc.DESCRIPTION,
fes_accuml.RES_PARA_INT1 = psc3000_acc.REMOTE_NO,
fes_accuml.COEFF = psc3000_acc.RATIO
FROM tmpImportPsc3000Tbl,psc3000_acc
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_accuml.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_acc.DEV_ID
AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_acc.TAG_NAME;
--,,
SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl;
SELECT count(*) INTO count2 FROM psc3000_acc;
--,
IF count1 < count2 THEN
BEGIN
DELETE FROM tmpImportPsc3000ForAdd;
INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_acc.DEV_ID,psc3000_acc.TAG_NAME
FROM psc3000_acc LEFT JOIN tmpImportPsc3000Tbl
ON psc3000_acc.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_acc.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME
WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL;
INSERT INTO fes_accuml(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3,RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM ,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC')), rtuTag, concat(rtuTag,'.',psc3000_dev.TAG_NAME), getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_ACC')), '', '', '', '0', psc3000_acc.RATIO, fes_rtu_para.RTU_NO , psc3000_acc.REMOTE_NO, 0, 0, 0, psc3000_acc.DESCRIPTION , '', '', 0
FROM tmpImportPsc3000ForAdd,psc3000_acc,psc3000_dev, fes_rtu_para
WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_acc.DEV_ID
AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_acc.TAG_NAME
AND psc3000_acc.DEV_ID = psc3000_dev.DEV_ID
AND fes_rtu_para.TAG_NAME = rtuTag
;
END;
END IF;
--ana
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_analog.TAG_NAME,psc3000_ana.DEV_ID, psc3000_ana.TAG_NAME
FROM fes_analog,psc3000_dev,psc3000_ana
WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_analog.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_ana.DEV_ID
AND fes_analog.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_ana.TAG_NAME);
UPDATE fes_analog
SET fes_analog.DESCRIPTION = psc3000_ana.DESCRIPTION,
fes_analog.RES_PARA_INT1 = psc3000_ana.REMOTE_NO,
fes_analog.COEFF = psc3000_ana.RATIO
FROM tmpImportPsc3000Tbl,psc3000_ana
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_analog.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_ana.DEV_ID
AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_ana.TAG_NAME;
--,,
SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl;
SELECT count(*) INTO count2 FROM psc3000_ana;
--,
IF count1 < count2 THEN
BEGIN
DELETE FROM tmpImportPsc3000ForAdd;
INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_ana.DEV_ID,psc3000_ana.TAG_NAME
FROM psc3000_ana LEFT JOIN tmpImportPsc3000Tbl
ON psc3000_ana.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_ana.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME
WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL;
INSERT INTO fes_analog(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2,RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME , PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , concat(rtuTag,'.',psc3000_dev.TAG_NAME),getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_ANA') ), rtuTag, fes_rtu_para.RTU_NO,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA')),'', '', '', '0', '0', '0', '0', '0', '0', psc3000_ana.RATIO, '65536', '0', psc3000_ana.REMOTE_NO, 0, 0, 0, psc3000_ana.DESCRIPTION, '', '', 0
FROM tmpImportPsc3000ForAdd,psc3000_ana,psc3000_dev, fes_rtu_para
WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_ana.DEV_ID
AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_ana.TAG_NAME
AND psc3000_ana.DEV_ID = psc3000_dev.DEV_ID
AND fes_rtu_para.TAG_NAME = rtuTag
;
END;
END IF;
--dig
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_digital.TAG_NAME,psc3000_dig.DEV_ID, psc3000_dig.TAG_NAME
FROM fes_digital,psc3000_dev,psc3000_dig
WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_digital.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_dig.DEV_ID
AND fes_digital.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_dig.TAG_NAME);
UPDATE fes_digital
SET fes_digital.DESCRIPTION = psc3000_dig.DESCRIPTION,
fes_digital.RES_PARA_INT1 = psc3000_dig.REMOTE_NO
FROM tmpImportPsc3000Tbl,psc3000_dig
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_digital.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_dig.DEV_ID
AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_dig.TAG_NAME;
--,,
SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl;
SELECT count(*) INTO count2 FROM psc3000_dig;
--,
IF count1 < count2 THEN
BEGIN
DELETE FROM tmpImportPsc3000ForAdd;
INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_dig.DEV_ID,psc3000_dig.TAG_NAME
FROM psc3000_dig LEFT JOIN tmpImportPsc3000Tbl
ON psc3000_dig.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_dig.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME
WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL;
INSERT INTO fes_digital(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , concat(rtuTag,'.',psc3000_dev.TAG_NAME),getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_DIG') ), rtuTag, getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG')),'', '', '', '1', '1', '0', '0', fes_rtu_para.RTU_NO,psc3000_dig.REMOTE_NO, 0, 0, 0, psc3000_dig.DESCRIPTION,'', '', 0
FROM tmpImportPsc3000ForAdd,psc3000_dig,psc3000_dev, fes_rtu_para
WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_dig.DEV_ID
AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_dig.TAG_NAME
AND psc3000_dig.DEV_ID = psc3000_dev.DEV_ID
AND fes_rtu_para.TAG_NAME = rtuTag
;
END;
END IF;
--dig_ctrl,使
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_digital_ctrl.TAG_NAME,psc3000_dig_ctrl.DEV_ID, psc3000_dig_ctrl.DESCRIPTION
FROM fes_digital_ctrl,psc3000_dev,psc3000_dig_ctrl
WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_digital_ctrl.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION;
UPDATE fes_digital_ctrl
SET fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION,
fes_digital_ctrl.RES_PARA_INT1 = psc3000_dig_ctrl.REMOTE_NO
FROM tmpImportPsc3000Tbl,psc3000_dig_ctrl
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_digital_ctrl.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_dig_ctrl.DESCRIPTION;
--,,
SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl;
SELECT count(*) INTO count2 FROM psc3000_dig_ctrl;
--,
IF count1 < count2 THEN
BEGIN
DELETE FROM tmpImportPsc3000ForAdd;
INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_dig_ctrl.DEV_ID,psc3000_dig_ctrl.DESCRIPTION
FROM psc3000_dig_ctrl LEFT JOIN tmpImportPsc3000Tbl
ON psc3000_dig_ctrl.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_dig_ctrl.DESCRIPTION = tmpImportPsc3000Tbl.SHORT_NAME
WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL;
INSERT INTO fes_digital_ctrl(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850,POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME)SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , rtuTag, fes_rtu_para.RTU_NO,getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL')), concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,'0' , '', getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_DIG_CTRL') ), psc3000_dig_ctrl.REMOTE_NO, 0, 0, 0, '', 0, '', '', '', '', '', '', 0
FROM tmpImportPsc3000ForAdd,psc3000_dig_ctrl,psc3000_dev, fes_rtu_para
WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_dig_ctrl.DESCRIPTION
AND psc3000_dig_ctrl.DEV_ID = psc3000_dev.DEV_ID
AND fes_rtu_para.TAG_NAME = rtuTag
;
END;
END IF;
--DZ定值
DELETE FROM tmpImportPsc3000Tbl;
INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SEQ_NO)
SELECT fes_const.TAG_NAME,psc3000_const.DEV_ID, psc3000_const.SEQ_NO
FROM fes_const,psc3000_dev,psc3000_const
WHERE fes_const.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_const.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_const.DEV_ID
AND fes_const.SEQ_NO = psc3000_const.SEQ_NO;
UPDATE fes_const
SET fes_const.DESCRIPTION = psc3000_const.DESCRIPTION,
fes_const.VALUE_RATIO = psc3000_const.RATIO,
fes_const.VALUE_ADDED = psc3000_const.REVISE,
fes_const.VALUE_TEXT = psc3000_const.VALUE_TEXT
FROM tmpImportPsc3000Tbl,psc3000_const
WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_const.TAG_NAME
AND tmpImportPsc3000Tbl.DEV_ID = psc3000_const.DEV_ID
AND tmpImportPsc3000Tbl.SEQ_NO = psc3000_const.SEQ_NO;
--,,
SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl;
SELECT count(*) INTO count2 FROM psc3000_const;
--,
IF count1 < count2 THEN
BEGIN
DELETE FROM tmpImportPsc3000ForAdd;
INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SEQ_NO)
SELECT psc3000_const.DEV_ID,psc3000_const.SEQ_NO
FROM psc3000_const LEFT JOIN tmpImportPsc3000Tbl
ON psc3000_const.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_const.SEQ_NO = tmpImportPsc3000Tbl.SEQ_NO
WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL;
INSERT INTO fes_const(
TAG_NAME, DESCRIPTION, GROUP_NO, RTU_TAG, RTU_NO, DOT_NO, SEQ_NO, SUB_SYSTEM, LOCATION_ID, DEV_TAG, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, FES_POINT_TP_NAME, PATH61850, POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST'))), psc3000_const.DESCRIPTION ,0 , rtuTag, fes_rtu_para.RTU_NO, getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST')), getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_CONST') ),fes_rtu_para.SUB_SYSTEM,fes_rtu_para.LOCATION_ID, concat(rtuTag,'.',psc3000_dev.TAG_NAME), 0, 0, 0, psc3000_const.VALUE_TEXT,psc3000_const.RATIO,psc3000_const.REVISE, 0, 0, 0, 0, '', '', '', 0
FROM tmpImportPsc3000ForAdd,psc3000_const,psc3000_dev, fes_rtu_para
WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_const.DEV_ID
AND tmpImportPsc3000ForAdd.SEQ_NO = psc3000_const.SEQ_NO
AND psc3000_const.DEV_ID = psc3000_dev.DEV_ID
AND fes_rtu_para.TAG_NAME = rtuTag
;
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION relationByPlugin(pluginName varchar(64), devTag varchar(64),fesDevTag varchar(64))
RETURNS VOID
AS $$
DECLARE rtuTag varchar(64) DEFAULT '';
DECLARE tempName varchar(64) DEFAULT '';
DECLARE fesTempName varchar(64) DEFAULT '';
BEGIN
--使,,,,,RTU标签为空,,,
--pluginName
--devTag
--fesDevTag
SELECT DEV_TP_NAME INTO tempName FROM dev_info WHERE TAG_NAME = devTag;
SELECT RTU_TAG,DEV_TP_NAME INTO rtuTag,fesTempName FROM fes_dev_info WHERE TAG_NAME = fesDevTag;
IF COALESCE(tempName,'') = '' OR COALESCE(fesTempName,'') = '' OR COALESCE(rtuTag,'') = ''
THEN
RETURN;
END IF;
--
CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationByPluginTbl(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10) NOT NULL DEFAULT 0,
PRIMARY KEY(KEY_ID_TAG,OFFSET_NO)
);
--accuml为例,.accuml点,fes_accuml点的Key_ID_TAG和DOT_NO写入临时表
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO)
SELECT accuml_map_to_fes.KEY_ID_TAG,fes_accuml.DOT_NO
FROM (temp_plugin_point_map_acc INNER JOIN accuml_map_to_fes
ON temp_plugin_point_map_acc.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_acc.TEMP_NAME = tempName AND
temp_plugin_point_map_acc.FES_TEMP_NAME = fesTempName AND
accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.' ,devTag,'.',TEMP_POINT_NAME) )
INNER JOIN fes_accuml
ON fes_accuml.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_accuml.DEV_TAG = fesDevTag AND
fes_accuml.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME);
--,
update fes_accuml
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationbyplugintbl
where fes_accuml.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO);
--,RTU,
update accuml
set rtu_tag = rtutag
from tmprelationbyplugintbl
where tag_name = mid(key_id_tag,8,char_length(key_id_tag) - 7);
update accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE accuml_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG;
--analog
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO)
SELECT analog_map_to_fes.KEY_ID_TAG,fes_analog.DOT_NO
FROM (temp_plugin_point_map_ana INNER JOIN analog_map_to_fes
ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_ana.TEMP_NAME = tempName AND
temp_plugin_point_map_ana.FES_TEMP_NAME = fesTempName AND
analog_map_to_fes.KEY_ID_TAG = concat('analog','.' ,devTag,'.',TEMP_POINT_NAME) )
INNER JOIN fes_analog ON
fes_analog.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_analog.DEV_TAG = fesDevTag AND
fes_analog.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME);
--,
update fes_analog
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationbyplugintbl
where fes_analog.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO);
--,RTU,
update analog
set rtu_tag = rtutag
from tmprelationbyplugintbl
where tag_name = mid(key_id_tag,8,char_length(key_id_tag) - 7);
update analog_map_to_fes
SET analog_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE analog_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG;
--mix
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO)
SELECT mix_map_to_fes.KEY_ID_TAG,fes_mix.DOT_NO
FROM (temp_plugin_point_map_mix INNER JOIN mix_map_to_fes
ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_mix.TEMP_NAME = tempName AND
temp_plugin_point_map_mix.FES_TEMP_NAME = fesTempName AND
mix_map_to_fes.KEY_ID_TAG = concat('mix','.' ,devTag,'.',TEMP_POINT_NAME) )
INNER JOIN fes_mix ON
fes_mix.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_mix.DEV_TAG = fesDevTag AND
fes_mix.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME);
--,
update fes_mix
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationbyplugintbl
where fes_mix.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO);
--,RTU,
update mix
set rtu_tag = rtutag
from tmprelationbyplugintbl
where tag_name = mid(key_id_tag,5,char_length(key_id_tag) - 4);
update mix_map_to_fes
SET mix_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE mix_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG;
--dig
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,1
FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes
ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 <> '' AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME) )
INNER JOIN fes_digital ON
fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital.DEV_TAG = fesDevTag AND
fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME1);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,2
FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes
ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME2 <> '' AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME))
INNER JOIN fes_digital ON
fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital.DEV_TAG = fesDevTag AND
fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME2);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,3
FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes
ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME3 <> '' AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME))
INNER JOIN fes_digital ON
fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital.DEV_TAG = fesDevTag AND
fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME3);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,4
FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes
ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME4 <> '' AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME))
INNER JOIN fes_digital ON
fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital.DEV_TAG = fesDevTag AND
fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME4);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,5
FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes
ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_POINT_NAME5 <> '' AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME) )
INNER JOIN fes_digital ON
fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital.DEV_TAG = fesDevTag AND
fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME5);
--,
update fes_digital
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationbyplugintbl
where fes_digital.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO);
--,RTU,
update digital
set rtu_tag = rtutag
from tmprelationbyplugintbl
where tag_name = mid(key_id_tag,9,char_length(key_id_tag) - 8);
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 1;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO2 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 2;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO3 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 3;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO4 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 4;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO5 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 5;
--
--analog_ctrl
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO)
SELECT analog_control.TAG_NAME,fes_analog_ctrl.DOT_NO
FROM temp_plugin_point_map_ana,analog_control,fes_analog_ctrl
WHERE temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_ana.TEMP_NAME = tempName AND
temp_plugin_point_map_ana.FES_TEMP_NAME = fesTempName AND
analog_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_analog_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_analog_ctrl.DEV_TAG = fesDevTag AND
fes_analog_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME);
update analog_control
SET analog_control.OFFSET_NO = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE analog_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG;
--mix_ctrl
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO)
SELECT mix_control.TAG_NAME,fes_mix_ctrl.DOT_NO
FROM temp_plugin_point_map_mix,mix_control,fes_mix_ctrl
WHERE temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_mix.TEMP_NAME = tempName AND
temp_plugin_point_map_mix.FES_TEMP_NAME = fesTempName AND
mix_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_mix_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_mix_ctrl.DEV_TAG = fesDevTag AND
fes_mix_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME);
update mix_control
SET mix_control.OFFSET_NO = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE mix_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG;
--digital_ctrl
DELETE FROM tmpRelationByPluginTbl;
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 1
FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_OUT_NAME1 <> '' AND
digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital_ctrl.DEV_TAG = fesDevTag AND
fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME1);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 2
FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_OUT_NAME2 <> '' AND
digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital_ctrl.DEV_TAG = fesDevTag AND
fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME2);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 3
FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_OUT_NAME3 <> '' AND
digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital_ctrl.DEV_TAG = fesDevTag AND
fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME3);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 4
FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_OUT_NAME4 <> '' AND
digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital_ctrl.DEV_TAG = fesDevTag AND
fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME4);
INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO)
SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 5
FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl
WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND
temp_plugin_point_map_dig.TEMP_NAME = tempName AND
temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND
temp_plugin_point_map_dig.FES_TEMP_OUT_NAME5 <> '' AND
digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND
fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND
fes_digital_ctrl.DEV_TAG = fesDevTag AND
fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME5);
--
update digital
SET RTU_TAG = rtuTag
from tmprelationbyplugintbl
WHERE TAG_NAME = KEY_ID_TAG AND OFFSET_NO = 1;
update digital_control
SET digital_control.OFFSET_NO1 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 1;
update digital_control
SET digital_control.OFFSET_NO2 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 2;
update digital_control
SET digital_control.OFFSET_NO3 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 3;
update digital_control
SET digital_control.OFFSET_NO4 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 4;
update digital_control
SET digital_control.OFFSET_NO5 = tmpRelationByPluginTbl.DOT_NO
from tmprelationbyplugintbl
WHERE digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 5;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION importPsc3000ByPlugin(rtuTag varchar(64),regionId decimal(10,0))
RETURNS VOID
AS $$
DECLARE locationTag varchar(64) DEFAULT '';
DECLARE locationId decimal(10,0) DEFAULT 0;
DECLARE subsystemId decimal(10,0) DEFAULT 0;
DECLARE rtuNo decimal(10,0) DEFAULT 0;
DECLARE devGrpTag varchar(64) DEFAULT '';
DECLARE pluginName varchar(64) DEFAULT '';
DECLARE tempName varchar(64) DEFAULT '';
DECLARE fesTempName varchar(64) DEFAULT '';
DECLARE fesDevTag varchar(64) DEFAULT '';
DECLARE myDevTag varchar(64) DEFAULT '';
--,,4,,,,
CURSOR cur_1 FOR
SELECT DEV_GRP,temp_plugin_fes_dev_map.PLUGIN_NAME,TEMP_NAME,FES_TEMP_NAME
FROM tmpImportPsc3000PluginTbl,temp_plugin_fes_dev_map
WHERE tmpImportPsc3000PluginTbl.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME;
CURSOR cur_2 FOR
SELECT PLUGIN_NAME
FROM tmpImportPsc3000PluginTbl WHERE tmpImportPsc3000PluginTbl.DEV_GRP = '';
BEGIN
/*
* PSC3000数据通过构建套件的形式
* rtuTag RTU
* regionId ID
* PSC3000_plugin表中存着要导入的套件
* PSC3000_DEV
* PSC3000_acc,ana,dig,mix,dig_ctrl,const存着对应的测点数据
*/
SELECT fes_rtu_para.LOCATION_ID,SUB_SYSTEM,RTU_NO,sys_model_location_info.TAG_NAME INTO locationId,subsystemId,rtuNo,locationTag
FROM fes_rtu_para,sys_model_location_info
WHERE fes_rtu_para.TAG_NAME = rtuTag AND fes_rtu_para.LOCATION_ID = sys_model_location_info.LOCATION_ID;
--
--DELETE FROM fes_dev_info WHERE RTU_TAG = rtuTag;
--DELETE dev_group FROM dev_group,psc3000_plugin WHERE dev_group.TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG);
--,
CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000PluginTbl(
PLUGIN_NAME varchar(64) NOT NULL,
DEV_GRP varchar(64) NOT NULL
);
DELETE FROM tmpImportPsc3000PluginTbl;
--
CREATE TEMPORARY TABLE IF NOT EXISTS tmpPsc3000PluginFesTempTbl(
TAG_NAME varchar(64) NOT NULL,
FES_TEMP varchar(64) NOT NULL,
DEV_ID decimal(10,0)
);
DELETE FROM tmpPsc3000PluginFesTempTbl;
--,
INSERT INTO DEV_GROUP
(DESCRIPTION, GROUP_TAG,IS_SUMMARY,LOCATION_ID,PGROUP_TAG_NAME,REGION_ID,SUB_SYSTEM,SUMMARY_STATUS,SUMMARY_VALUE,TAG_NAME,RTU_NO)
SELECT
psc3000_plugin.DEV_GROUP_DESC,'', '0', locationId, '', regionId,subsystemId,'0', '0', concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG),rtuNo
FROM psc3000_plugin GROUP BY psc3000_plugin.DEV_GROUP_TAG;
-- ,
DELETE FROM tmpImportPsc3000PluginTbl;
--,
INSERT INTO tmpImportPsc3000PluginTbl (PLUGIN_NAME , DEV_GRP)
SELECT PLUGIN_NAME,DEV_GROUP_TAG
FROM psc3000_plugin GROUP BY PLUGIN_NAME,DEV_GROUP_TAG;
INSERT INTO DEV_INFO
(TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)
SELECT
concat(locationTag,'.',tblA.DEV_GRP,'_',TEMP_NAME),DESCRIPTION, '', locationId, subsystemId,concat(locationTag,'.',tblA.DEV_GRP), '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME
FROM tmpImportPsc3000PluginTbl AS tblA,temp_plugin_dev_map,dev_temp_def
WHERE tblA.PLUGIN_NAME = temp_plugin_dev_map.PLUGIN_NAME AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME;
--,psc3000_dev中指定的设备为基准,
INSERT INTO tmpPsc3000PluginFesTempTbl(TAG_NAME,FES_TEMP,DEV_ID)
SELECT TAG_NAME,DEV_MODEL,DEV_ID
FROM psc3000_dev;
UPDATE psc3000_dev
SET psc3000_dev.DEV_MODEL = IF(COALESCE(FES_TEMP_NAME,DEV_MODEL) != DEV_MODEL,COALESCE(FES_TEMP_NAME,DEV_MODEL), DEV_MODEL)
FROM psc3000_plugin
WHERE DEV_ID = FES_DEV_INST_ID;
delete from psc3000_dev where psc3000_dev.DEV_ID not in(select FES_DEV_INST_ID FROM psc3000_plugin);
delete from tmpPsc3000PluginFesTempTbl where tmpPsc3000PluginFesTempTbl.DEV_ID not in(select FES_DEV_INST_ID FROM psc3000_plugin);
INSERT INTO FES_DEV_INFO
(DEV_PORT,DEV_DESC, DEV_ID, DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME)
SELECT
psc3000_dev.DEV_PORT,psc3000_dev.DESCRIPTION, psc3000_dev.DEV_ID,psc3000_dev.TAG_NAME ,fes_dev_temp_def.TAG_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',psc3000_dev.TAG_NAME)
FROM psc3000_dev,fes_dev_temp_def
WHERE psc3000_dev.DEV_MODEL = fes_dev_temp_def.TAG_NAME;
--
DELETE FROM tmpImportPsc3000PluginTbl;
--,
INSERT INTO tmpImportPsc3000PluginTbl (PLUGIN_NAME , DEV_GRP)
SELECT PLUGIN_NAME,DEV_GROUP_TAG
FROM psc3000_plugin GROUP BY PLUGIN_NAME,DEV_GROUP_TAG;
--,
CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000Dev(
PLUGIN_NAME varchar(64) NOT NULL,
DEV_TAG varchar(64) NOT NULL,
FES_DEV_TAG varchar(64) NOT NULL
);
DELETE FROM tmpImportPsc3000Dev;
--
OPEN cur_1;
FETCH cur_1 INTO devGrpTag,pluginName,tempName,fesTempName;
LOOP
fesDevTag = (SELECT psc3000_dev.TAG_NAME FROM psc3000_plugin,psc3000_dev
WHERE DEV_GROUP_TAG = devGrpTag AND PLUGIN_NAME = pluginName AND FES_TEMP_NAME = fesTempName
AND FES_DEV_INST_ID = DEV_ID);
IF fesDevTag IS NOT NULL THEN
BEGIN
CALL relationByPlugin(pluginName,concat(locationTag,'.',devGrpTag,'_',tempName), concat(rtuTag,'.',fesDevTag));
INSERT INTO tmpImportPsc3000Dev(PLUGIN_NAME,DEV_TAG,FES_DEV_TAG)
VALUES (pluginName,concat(locationTag,'.',devGrpTag,'_',tempName), concat(rtuTag,'.',fesDevTag));
END;
END IF;
FETCH cur_1 INTO devGrpTag,pluginName,tempName,fesTempName;
EXIT WHEN cur_1%NOTFOUND;
END LOOP;
CLOSE cur_1;
--
UPDATE dev_group SET dev_group.DEV_GROUP_NO = psc3000_plugin.FES_DEV_INST_ID FROM psc3000_plugin WHERE dev_group.TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG);
-- ,,
CREATE TEMPORARY TABLE IF NOT EXISTS tblImportPsc3000Point(
TAG_NAME varchar(64),
DEV_ID decimal(10,0),
SHORT_NAME varchar(64),
SEQ_NO decimal(10,0)
);
CREATE TEMPORARY TABLE IF NOT EXISTS tblImportPsc3000PointForAdd(
DEV_ID decimal(10,0),
SHORT_NAME varchar(64),
SEQ_NO decimal(10,0)
);
--acc
DELETE FROM tblImportPsc3000Point;
INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_accuml.TAG_NAME,psc3000_acc.DEV_ID, psc3000_acc.TAG_NAME
FROM fes_accuml,psc3000_dev,psc3000_acc
WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_accuml.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_acc.DEV_ID
AND getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) = psc3000_acc.TAG_NAME;
--
UPDATE fes_accuml
SET fes_accuml.DESCRIPTION = psc3000_acc.DESCRIPTION,
fes_accuml.RES_PARA_INT1 = psc3000_acc.REMOTE_NO,
fes_accuml.SEQ_NO = psc3000_acc.REMOTE_NO,
fes_accuml.COEFF = psc3000_acc.RATIO,
fes_accuml.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_accuml.FES_POINT_TP_NAME),'.',psc3000_acc.TAG_NAME)
FROM tblImportPsc3000Point,psc3000_acc
WHERE tblImportPsc3000Point.TAG_NAME = fes_accuml.TAG_NAME
AND tblImportPsc3000Point.DEV_ID = psc3000_acc.DEV_ID
AND tblImportPsc3000Point.SHORT_NAME = psc3000_acc.TAG_NAME;
--CSV文件有的点
DELETE FROM tblImportPsc3000PointForAdd;
INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_acc.DEV_ID,psc3000_acc.TAG_NAME
FROM psc3000_acc LEFT JOIN tblImportPsc3000Point
ON psc3000_acc.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_acc.TAG_NAME = tblImportPsc3000Point.SHORT_NAME
WHERE tblImportPsc3000Point.DEV_ID IS NULL;
INSERT INTO fes_accuml(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3,RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC'))), locationId , subsystemId ,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC')), rtuTag, concat(rtuTag,'.',psc3000_dev.TAG_NAME), psc3000_acc.REMOTE_NO, '', '', '', '0', psc3000_acc.RATIO, rtuNo , psc3000_acc.REMOTE_NO, 0, 0, 0, psc3000_acc.DESCRIPTION , psc3000_acc.TAG_NAME, '', 0
FROM tblImportPsc3000PointForAdd,psc3000_acc,psc3000_dev
WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_acc.DEV_ID
AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_acc.TAG_NAME
AND psc3000_acc.DEV_ID = psc3000_dev.DEV_ID
;
--ana
DELETE FROM tblImportPsc3000Point;
INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_analog.TAG_NAME,psc3000_ana.DEV_ID, psc3000_ana.TAG_NAME
FROM fes_analog,psc3000_dev,psc3000_ana
WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_analog.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_ana.DEV_ID
AND getAfterLastDot(FES_POINT_TP_NAME) = psc3000_ana.TAG_NAME;
UPDATE fes_analog
SET fes_analog.DESCRIPTION = psc3000_ana.DESCRIPTION,
fes_analog.RES_PARA_INT1 = psc3000_ana.REMOTE_NO,
fes_analog.SEQ_NO = psc3000_ana.REMOTE_NO,
fes_analog.COEFF = psc3000_ana.RATIO,
fes_analog.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_analog.FES_POINT_TP_NAME),'.',psc3000_ana.TAG_NAME)
FROM tblImportPsc3000Point,psc3000_ana
WHERE tblImportPsc3000Point.TAG_NAME = fes_analog.TAG_NAME
AND tblImportPsc3000Point.DEV_ID = psc3000_ana.DEV_ID
AND tblImportPsc3000Point.SHORT_NAME = psc3000_ana.TAG_NAME;
--CSV文件有的点
DELETE FROM tblImportPsc3000PointForAdd;
INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_ana.DEV_ID,psc3000_ana.TAG_NAME
FROM psc3000_ana LEFT JOIN tblImportPsc3000Point
ON psc3000_ana.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_ana.TAG_NAME = tblImportPsc3000Point.SHORT_NAME
WHERE tblImportPsc3000Point.DEV_ID IS NULL;
INSERT INTO fes_analog(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2,RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME , PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA'))), locationId , subsystemId , concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_ana.REMOTE_NO, rtuTag, rtuNo, getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA')),'', '', '', '0', '0', '0', '0', '0', '0', psc3000_ana.RATIO, '65536', '0', psc3000_ana.REMOTE_NO, 0, 0, 0, psc3000_ana.DESCRIPTION, psc3000_ana.TAG_NAME, '', 0
FROM tblImportPsc3000PointForAdd,psc3000_ana,psc3000_dev
WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_ana.DEV_ID
AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_ana.TAG_NAME
AND psc3000_ana.DEV_ID = psc3000_dev.DEV_ID
;
--dig
DELETE FROM tblImportPsc3000Point;
INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_digital.TAG_NAME,psc3000_dig.DEV_ID, psc3000_dig.TAG_NAME
FROM fes_digital,psc3000_dev,psc3000_dig
WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_digital.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_dig.DEV_ID
AND getAfterLastDot(FES_POINT_TP_NAME) = psc3000_dig.TAG_NAME;
UPDATE fes_digital
SET fes_digital.DESCRIPTION = psc3000_dig.DESCRIPTION,
fes_digital.RES_PARA_INT1 = psc3000_dig.REMOTE_NO,
fes_digital.SEQ_NO = psc3000_dig.REMOTE_NO,
fes_digital.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_digital.FES_POINT_TP_NAME),'.',psc3000_dig.TAG_NAME)
FROM tblImportPsc3000Point,psc3000_dig
WHERE tblImportPsc3000Point.TAG_NAME = fes_digital.TAG_NAME
AND tblImportPsc3000Point.DEV_ID = psc3000_dig.DEV_ID
AND tblImportPsc3000Point.SHORT_NAME = psc3000_dig.TAG_NAME;
--CSV文件有的点
DELETE FROM tblImportPsc3000PointForAdd;
INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_dig.DEV_ID,psc3000_dig.TAG_NAME
FROM psc3000_dig LEFT JOIN tblImportPsc3000Point
ON psc3000_dig.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_dig.TAG_NAME = tblImportPsc3000Point.SHORT_NAME
WHERE tblImportPsc3000Point.DEV_ID IS NULL;
INSERT INTO fes_digital(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG'))), locationId , subsystemId , concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig.REMOTE_NO, rtuTag, getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG')),'', '', '', '1', '1', '0', '0', rtuNo, psc3000_dig.REMOTE_NO, 0, 0, 0, psc3000_dig.DESCRIPTION,psc3000_dig.TAG_NAME, '', 0
FROM tblImportPsc3000PointForAdd,psc3000_dig,psc3000_dev
WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_dig.DEV_ID
AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_dig.TAG_NAME
AND psc3000_dig.DEV_ID = psc3000_dev.DEV_ID
;
--dig_ctrl
DELETE FROM tblImportPsc3000Point;
INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME)
SELECT fes_digital_ctrl.TAG_NAME,psc3000_dig_ctrl.DEV_ID, psc3000_dig_ctrl.TAG_NAME
FROM fes_digital_ctrl,psc3000_dev,psc3000_dig_ctrl
WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'%')
AND fes_digital_ctrl.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME)
AND psc3000_dev.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND getAfterLastDot(fes_digital_ctrl.POINT_TP_NAME) = psc3000_dig_ctrl.TAG_NAME;
UPDATE fes_digital_ctrl
SET fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION,
fes_digital_ctrl.RES_PARA_INT1 = psc3000_dig_ctrl.REMOTE_NO,
fes_digital_ctrl.SEQ_NO = psc3000_dig_ctrl.REMOTE_NO,
fes_digital_ctrl.POINT_TP_NAME = concat(getBeforeFirstDot(fes_digital_ctrl.POINT_TP_NAME),'.',psc3000_dig_ctrl.TAG_NAME)
FROM tblImportPsc3000Point,psc3000_dig_ctrl
WHERE tblImportPsc3000Point.TAG_NAME = fes_digital_ctrl.TAG_NAME
AND tblImportPsc3000Point.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND tblImportPsc3000Point.SHORT_NAME = psc3000_dig_ctrl.TAG_NAME;
--CSV文件有的点
DELETE FROM tblImportPsc3000PointForAdd;
INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME)
SELECT psc3000_dig_ctrl.DEV_ID,psc3000_dig_ctrl.TAG_NAME
FROM psc3000_dig_ctrl LEFT JOIN tblImportPsc3000Point
ON psc3000_dig_ctrl.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_dig_ctrl.TAG_NAME = tblImportPsc3000Point.SHORT_NAME
WHERE tblImportPsc3000Point.DEV_ID IS NULL;
INSERT INTO fes_digital_ctrl(
TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850,POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME)SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL'))), locationId , subsystemId , rtuTag, rtuNo,getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL')), concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,'0' , psc3000_dig_ctrl.TAG_NAME,psc3000_dig_ctrl.REMOTE_NO, psc3000_dig_ctrl.REMOTE_NO, 0, 0, 0, '', 0, '', '', '', '', '', '', 0
FROM tblImportPsc3000PointForAdd,psc3000_dig_ctrl,psc3000_dev
WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_dig_ctrl.DEV_ID
AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_dig_ctrl.TAG_NAME
AND psc3000_dig_ctrl.DEV_ID = psc3000_dev.DEV_ID
;
--DZ定值
DELETE FROM fes_const WHERE fes_const.RTU_TAG = rtuTag AND fes_const.RES_PARA_INT1 = '-1';
--CSV文件有的点
DELETE FROM tblImportPsc3000PointForAdd;
INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SEQ_NO)
SELECT psc3000_const.DEV_ID,psc3000_const.SEQ_NO
FROM psc3000_const LEFT JOIN tblImportPsc3000Point
ON psc3000_const.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_const.SEQ_NO = tblImportPsc3000Point.SEQ_NO
WHERE tblImportPsc3000Point.DEV_ID IS NULL;
INSERT INTO fes_const(
TAG_NAME, DESCRIPTION, DZ_SEQ, GROUP_NO, RTU_TAG, RTU_NO, DOT_NO, SEQ_NO, SUB_SYSTEM, LOCATION_ID, DEV_TAG, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, FES_POINT_TP_NAME, PATH61850, POSITION61850) SELECT
concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST'))), psc3000_const.DESCRIPTION ,psc3000_const.DZ_SEQ ,psc3000_const.GROUP_NO , rtuTag, rtuNo, getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST')), psc3000_const.SEQ_NO,subsystemId,locationId, concat(rtuTag,'.',psc3000_dev.TAG_NAME), 0, 0, 0, psc3000_const.VALUE_TEXT,psc3000_const.RATIO,psc3000_const.REVISE, 0, 0, 0, 0, '', '', '', 0
FROM tblImportPsc3000PointForAdd,psc3000_const,psc3000_dev
WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_const.DEV_ID
AND tblImportPsc3000PointForAdd.SEQ_NO = psc3000_const.SEQ_NO
AND psc3000_const.DEV_ID = psc3000_dev.DEV_ID
;
--,, tmpImportPsc3000Dev
DELETE FROM tmpImportPsc3000Dev WHERE DEV_TAG NOT LIKE '%jgxh%';
CREATE TEMPORARY TABLE IF NOT EXISTS tblPsc3000PointToAdd(
DEV_TAG varchar(64),
TAG_NAME varchar(64),
FES_TAG_NAME varchar(64),
DOT_NO decimal(10,0),
DESCRIPTION varchar(128)
);
--acc,
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT tmpImportPsc3000Dev.DEV_TAG,
concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_accuml.DESCRIPTION,fes_accuml.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_acc'),getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) )) ,
fes_accuml.TAG_NAME,fes_accuml.DOT_NO,fes_accuml.DESCRIPTION
FROM tmpImportPsc3000Dev,fes_dev_info,fes_accuml
WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND
fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%') AND
fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME AND
fes_accuml.APP_TABLE_NAME = '' AND
fes_accuml.APP_TAG_NAME = '' AND
fes_accuml.APP_COLUMN_NAME = '';
INSERT INTO accuml(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY,POINT_SORT, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND,CAMERA_TAG, PRESET_ID)
SELECT
tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'accuml')+1, locationId, subsystemId, '', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR, '0', dev_info.VALUE, dev_info.STATUS, 0, 0, '1', '', '', '', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '3', '0', '0', '201', dev_info.DEV_TYPE, '', '0', '0', '5', '0.01', '', ''
FROM tblPsc3000PointToAdd,dev_info
WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ;
update accuml
SET accuml.RTU_TAG = rtuTag
from tblpsc3000pointtoadd
WHERE accuml.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
update accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO
from tblpsc3000pointtoadd
WHERE accuml_map_to_fes.KEY_ID_TAG = concat('accuml.',tblPsc3000PointToAdd.TAG_NAME);
--ana
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT tmpImportPsc3000Dev.DEV_TAG,
concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_analog.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_analog.DESCRIPTION,fes_analog.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_ana'),getAfterLastDot(fes_analog.FES_POINT_TP_NAME) )) ,
fes_analog.TAG_NAME,fes_analog.DOT_NO,fes_analog.DESCRIPTION
FROM tmpImportPsc3000Dev,fes_dev_info,fes_analog
WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND
fes_analog.TAG_NAME LIKE concat(rtuTag,'.%') AND
fes_analog.DEV_TAG = fes_dev_info.TAG_NAME AND
fes_analog.APP_TABLE_NAME = '' AND
fes_analog.APP_TAG_NAME = '' AND
fes_analog.APP_COLUMN_NAME = '' ;
INSERT INTO analog(
TAG_NAME, DESCRIPTION, RTU_TAG, DEV_TYPE, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, IS_CONTROL, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID)
SELECT
tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,'', dev_info.DEV_TYPE,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'analog')+1, locationId, subsystemId, '0', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, '1', '', '', '', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', '0', '1', '', '0', '0', '5', '0.01', '', ''
FROM tblPsc3000PointToAdd,dev_info
WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ;
update analog
SET analog.RTU_TAG = rtuTag
from tblpsc3000pointtoadd
WHERE analog.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
update analog_map_to_fes
SET analog_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO
from tblpsc3000pointtoadd
WHERE analog_map_to_fes.KEY_ID_TAG = concat('analog.',tblPsc3000PointToAdd.TAG_NAME);
--dig
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT tmpImportPsc3000Dev.DEV_TAG,
concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_digital.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_digital.DESCRIPTION,fes_digital.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_dig'),getAfterLastDot(fes_digital.FES_POINT_TP_NAME) )) ,
fes_digital.TAG_NAME,fes_digital.DOT_NO,fes_digital.DESCRIPTION
FROM tmpImportPsc3000Dev,fes_dev_info,fes_digital
WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND
fes_digital.TAG_NAME LIKE concat(rtuTag,'.%') AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME AND
fes_digital.APP_TABLE_NAME = '' AND
fes_digital.APP_TAG_NAME = '' AND
fes_digital.APP_COLUMN_NAME = '';
INSERT INTO digital(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID )
SELECT
tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'digital')+1, locationId, subsystemId, '', '0', 'PSCADA不告警', '1', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1', '', '', '', '', '5', '1', '0', '1', '0', '0', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', dev_info.DEV_TYPE, '', '1', '0', '5', '0', '10', '计次报警描述', '0', '5', '计时报警描述', '30', '', '1', '0', '0', '400', '', ''
FROM tblPsc3000PointToAdd,dev_info
WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ;
update digital
SET digital.RTU_TAG = rtuTag
from tblpsc3000pointtoadd
WHERE digital.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = tblPsc3000PointToAdd.DOT_NO
from tblpsc3000pointtoadd
WHERE digital_map_to_fes.KEY_ID_TAG = concat('digital.',tblPsc3000PointToAdd.TAG_NAME);
--mix psc3000中是没有的,
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT tmpImportPsc3000Dev.DEV_TAG,
concat(tmpImportPsc3000Dev.DEV_TAG,'.', getAfterLastDot(fes_mix.FES_POINT_TP_NAME)) ,
fes_mix.TAG_NAME,fes_mix.DOT_NO,fes_mix.DESCRIPTION
FROM tmpImportPsc3000Dev,fes_dev_info,fes_mix
WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND
fes_mix.TAG_NAME LIKE concat(rtuTag,'.%') AND
fes_mix.DEV_TAG = fes_dev_info.TAG_NAME AND
fes_mix.APP_TABLE_NAME = '' AND
fes_mix.APP_TAG_NAME = '' AND
fes_mix.APP_COLUMN_NAME = '';
INSERT INTO mix(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, METHOD, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID) SELECT
tblPsc3000PointToAdd.TAG_NAME,tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'mix')+1,locationId, subsystemId, '', '0', 'PSCADA中断/正常', GRAY, CONTRAST, QCOLOR, '0', VALUE, STATUS, '0', '0', '', '3', '', '', '', '', 0, 1, 0, 0, 0, regionId, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, '', 0, 0, 5, 2, 0, 0, 701, '', ''
FROM tblPsc3000PointToAdd,dev_info
WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ;
update mix
SET mix.RTU_TAG = rtuTag
from tblpsc3000pointtoadd
WHERE mix.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
update mix_map_to_fes
SET mix_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO
from tblpsc3000pointtoadd
WHERE mix_map_to_fes.KEY_ID_TAG = concat('mix.',tblPsc3000PointToAdd.TAG_NAME);
--,,,,csv文件的点删除
DELETE FROM tblPsc3000PointToAdd;
DELETE FROM tmpImportPsc3000PluginTbl;
--
--PLUGIN_NAME是设备TAG
INSERT INTO tmpImportPsc3000PluginTbl
(PLUGIN_NAME , DEV_GRP )
SELECT
dev_info.TAG_NAME,dev_info.GROUP_TAG_NAME
FROM psc3000_plugin INNER JOIN dev_info
ON dev_info.GROUP_TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG) GROUP BY dev_info.TAG_NAME;
DELETE FROM accuml
USING tmpImportPsc3000PluginTbl
WHERE accuml.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME
AND COALESCE(accuml.RTU_TAG,'') = '';
DELETE FROM analog
USING tmpImportPsc3000PluginTbl
WHERE analog.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME
AND COALESCE(analog.RTU_TAG,'') = '';
DELETE FROM digital
USING tmpImportPsc3000PluginTbl
WHERE digital.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME
AND COALESCE(digital.RTU_TAG,'') = '';
DELETE FROM mix
USING tmpImportPsc3000PluginTbl
WHERE mix.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME
AND COALESCE(mix.RTU_TAG,'') = '';
--,,,
--acc
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '', fes_accuml.APP_TAG_NAME,fes_accuml.TAG_NAME,0,fes_accuml.DESCRIPTION
FROM fes_accuml WHERE fes_accuml.RTU_TAG = rtuTag AND fes_accuml.RES_PARA_INT1 = '-1';
DELETE FROM accuml
USING tblPsc3000PointToAdd
WHERE accuml.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
DELETE FROM fes_accuml
USING tblPsc3000PointToAdd
WHERE fes_accuml.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME;
--ana
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '', fes_analog.APP_TAG_NAME,fes_analog.TAG_NAME,0,fes_analog.DESCRIPTION
FROM fes_analog WHERE fes_analog.RTU_TAG = rtuTag AND fes_analog.RES_PARA_INT1 = '-1';
DELETE FROM analog
USING tblPsc3000PointToAdd
WHERE analog.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
DELETE FROM fes_analog
USING tblPsc3000PointToAdd
WHERE fes_analog.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME;
--dig ,,
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT fes_digital.APP_COLUMN_NAME, fes_digital.APP_TAG_NAME, fes_digital.TAG_NAME, 0, fes_digital.DESCRIPTION
FROM fes_digital WHERE fes_digital.RTU_TAG = rtuTag AND fes_digital.RES_PARA_INT1 = '-1';
--,使map_to_fes表置-1
DELETE FROM fes_digital
USING tblPsc3000PointToAdd
WHERE fes_digital.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME;
--
update tblpsc3000pointtoadd
SET tblPsc3000PointToAdd.DOT_NO = -1
from digital_map_to_fes
WHERE concat('digital.',tblPsc3000PointToAdd.TAG_NAME) = digital_map_to_fes.KEY_ID_TAG AND digital_map_to_fes.DOT_NO1 = '-1' AND digital_map_to_fes.DOT_NO2 = '-1' AND digital_map_to_fes.DOT_NO3 = '-1' AND digital_map_to_fes.DOT_NO4 = '-1' AND digital_map_to_fes.DOT_NO5 = '-1';
DELETE FROM digital
USING tblPsc3000PointToAdd
WHERE digital.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME
AND tblPsc3000PointToAdd.DOT_NO = -1;
--mix
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '', fes_mix.APP_TAG_NAME,fes_mix.TAG_NAME,0,fes_mix.DESCRIPTION
FROM fes_mix WHERE fes_mix.RTU_TAG = rtuTag AND fes_mix.RES_PARA_INT1 = '-1';
DELETE FROM mix
USING tblPsc3000PointToAdd
WHERE mix.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
DELETE FROM fes_mix
USING tblPsc3000PointToAdd
WHERE fes_mix.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME;
--ana_ctrl
DELETE FROM tblPsc3000PointToAdd;
DELETE FROM fes_analog_ctrl WHERE fes_analog_ctrl.RTU_TAG = rtuTag AND fes_analog_ctrl.RES_PARA_INT1 = '-1';
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO FROM analog_control INNER JOIN tmpImportPsc3000PluginTbl
ON analog_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_analog_ctrl ON fes_analog_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO)
WHERE fes_analog_ctrl.TAG_NAME IS NULL;
DELETE FROM analog_control
USING tblPsc3000PointToAdd
WHERE analog_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--dig_ctrl
DELETE FROM tblPsc3000PointToAdd;
DELETE FROM fes_digital_ctrl WHERE fes_digital_ctrl.RTU_TAG = rtuTag AND fes_digital_ctrl.RES_PARA_INT1 = '-1';
--
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO1 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO1)
WHERE fes_digital_ctrl.TAG_NAME IS NULL;
update digital_control
SET digital_control.OFFSET_NO1 = -1
from tblpsc3000pointtoadd
WHERE digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO2 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO2)
WHERE fes_digital_ctrl.TAG_NAME IS NULL;
update digital_control
SET digital_control.OFFSET_NO2 = -1
from tblpsc3000pointtoadd
WHERE digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO3 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO3)
WHERE fes_digital_ctrl.TAG_NAME IS NULL;
update digital_control
SET digital_control.OFFSET_NO3 = -1
from tblpsc3000pointtoadd
WHERE digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO4 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO4)
WHERE fes_digital_ctrl.TAG_NAME IS NULL;
update digital_control
SET digital_control.OFFSET_NO4 = -1
from tblpsc3000pointtoadd
WHERE digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO5 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO5)
WHERE fes_digital_ctrl.TAG_NAME IS NULL;
update digital_control
SET digital_control.OFFSET_NO5 = -1
from tblpsc3000pointtoadd
WHERE digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--digital控制属性为否
CREATE TEMPORARY TABLE IF NOT EXISTS tmpDelete(
TAG_NAME varchar(64) NOT NULL
);
DELETE FROM tmpDelete;
INSERT INTO tmpDelete(TAG_NAME)
SELECT TAG_NAME FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%')
AND digital_control.OFFSET_NO1 = '-1'
AND digital_control.OFFSET_NO2 = '-1'
AND digital_control.OFFSET_NO3 = '-1'
AND digital_control.OFFSET_NO4 = '-1'
AND digital_control.OFFSET_NO5 = '-1'
;
UPDATE digital set IS_CONTROL = 0 WHERE TAG_NAME IN
(SELECT TAG_NAME FROM tmpDelete)
;
--mix_ctrl
DELETE FROM tblPsc3000PointToAdd;
DELETE FROM fes_mix_ctrl WHERE fes_mix_ctrl.RTU_TAG = rtuTag AND fes_mix_ctrl.RES_PARA_INT1 = '-1';
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',A.TAG_NAME,'','0',''
FROM
(SELECT TAG_NAME,RTU_TAG,OFFSET_NO FROM mix_control INNER JOIN tmpImportPsc3000PluginTbl
ON mix_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A
LEFT JOIN fes_mix_ctrl ON fes_mix_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO)
WHERE fes_mix_ctrl.TAG_NAME IS NULL;
DELETE FROM mix_control
USING tblPsc3000PointToAdd
WHERE mix_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME;
--,
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',digital_map_to_fes.KEY_ID_TAG,'','0',''
FROM digital_map_to_fes INNER JOIN tmpImportPsc3000PluginTbl
ON DOT_NO1 != '-1' AND DOT_NO2 = '-1' AND DOT_NO3 = '-1' AND DOT_NO4 = '-1' AND DOT_NO5 = '-1'
AND digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.', tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%')
;
update digital
SET digital.VALUE_NUM = 1, digital.STATE_TEXT_NAME = IF(position('(' IN STATE_TEXT_NAME) = 0,STATE_TEXT_NAME,left(STATE_TEXT_NAME,position('(' IN STATE_TEXT_NAME) - 1))
from tblpsc3000pointtoadd
where concat('digital.',digital.tag_name) = tblpsc3000pointtoadd.tag_name;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',digital_map_to_fes.KEY_ID_TAG,'','0',''
FROM digital_map_to_fes INNER JOIN tmpImportPsc3000PluginTbl
ON DOT_NO1 != '-1' AND DOT_NO2 != '-1' AND DOT_NO3 = '-1' AND DOT_NO4 = '-1' AND DOT_NO5 = '-1'
AND digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.', tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%')
;
update digital
SET digital.VALUE_NUM = 2
from tblpsc3000pointtoadd
where concat('digital.',digital.tag_name) = tblpsc3000pointtoadd.tag_name;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',digital_control.TAG_NAME,'','0',''
FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON OFFSET_NO1 != '-1' AND OFFSET_NO2 = '-1' AND OFFSET_NO3 = '-1' AND OFFSET_NO4 = '-1' AND OFFSET_NO5 = '-1'
AND digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%')
;
update digital_control
SET digital_control.OFFSET_NUM = 1
from tblpsc3000pointtoadd
where digital_control.tag_name = tblpsc3000pointtoadd.tag_name;
--
DELETE FROM tblPsc3000PointToAdd;
INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION)
SELECT '',digital_control.TAG_NAME,'','0',''
FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl
ON OFFSET_NO1 != '-1' AND OFFSET_NO2 != '-1' AND OFFSET_NO3 = '-1' AND OFFSET_NO4 = '-1' AND OFFSET_NO5 = '-1'
AND digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%')
;
update digital_control
SET digital_control.OFFSET_NUM = 2
from tblpsc3000pointtoadd
where digital_control.tag_name = tblpsc3000pointtoadd.tag_name;
--*****************************()******************************
-- 1:23, 4:
CREATE TABLE IF NOT EXISTS tmpRelationControlTbl(
FES_TAG_NAME varchar(64),
DOT_NO decimal(10,0),
TAG_NAME varchar(64),
DESCRIPTION varchar(128),
DEVICE varchar(64)
);
DELETE FROM tmpRelationControlTbl;
--digital_control digital中添加点,digital_control中的点
INSERT INTO tmpRelationControlTbl(FES_TAG_NAME,DOT_NO,TAG_NAME,DESCRIPTION,DEVICE)
SELECT FES_DIGITAL_CTRL.TAG_NAME,FES_DIGITAL_CTRL.DOT_NO,CONCAT(locationTag,'.',DEV_GROUP_TAG,'_jgxh','.',psc3000_dig_ctrl.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,CONCAT(locationTag,'.',DEV_GROUP_TAG,'_jgxh') FROM FES_DIGITAL_CTRL
LEFT JOIN psc3000_dig_ctrl on RES_PARA_INT1 = REMOTE_NO
LEFT JOIN psc3000_plugin on psc3000_dig_ctrl.DEV_ID = FES_DEV_INST_ID
WHERE fes_digital_ctrl.RTU_TAG = rtuTag
and fes_digital_ctrl.DOT_NO not in
(SELECT OFFSET_NO1 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO1 <> -1)
and fes_digital_ctrl.DOT_NO not in
(SELECT OFFSET_NO2 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO2 <> -1)
and fes_digital_ctrl.DOT_NO not in
(SELECT OFFSET_NO3 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO3 <> -1)
and fes_digital_ctrl.DOT_NO not in
(SELECT OFFSET_NO4 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO4 <> -1)
and fes_digital_ctrl.DOT_NO not in
(SELECT OFFSET_NO5 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO5 <> -1)
;
--
INSERT INTO digital(
TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID )
SELECT
tmpRelationControlTbl.TAG_NAME, tmpRelationControlTbl.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'digital')+1, locationId, subsystemId, rtuTag, '1', 'PSCADA中断/正常', '1', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1', '', '', '', '', '5', '1', '0', '1', '0', '0', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', dev_info.DEV_TYPE, '', '0', '0', '5', '0', '10', '计次报警描述', '0', '5', '计时报警描述', '30', '', '1', '0', '0', '300', '', ''
FROM tmpRelationControlTbl,dev_info
WHERE tmpRelationControlTbl.DEVICE = dev_info.TAG_NAME ;
--digital_control
update digital_control
SET digital_control.OFFSET_NUM = 1,OFFSET_NO1 = tmpRelationControlTbl.DOT_NO
from tmprelationcontroltbl
where digital_control.tag_name = tmprelationcontroltbl.tag_name;
--analog_control
--*********************************************************************************************************
--,,tmpImportPsc3000PluginTbl中存储设备信息
update tmpimportpsc3000plugintbl
SET tmpImportPsc3000PluginTbl.DEV_GRP = ''
from digital
where tmpimportpsc3000plugintbl.plugin_name = digital.device;
update tmpimportpsc3000plugintbl
SET tmpImportPsc3000PluginTbl.DEV_GRP = ''
from accuml
where tmpimportpsc3000plugintbl.plugin_name = accuml.device;
update tmpimportpsc3000plugintbl
SET tmpImportPsc3000PluginTbl.DEV_GRP = ''
from analog
where tmpimportpsc3000plugintbl.plugin_name = analog.device;
update tmpimportpsc3000plugintbl
SET tmpImportPsc3000PluginTbl.DEV_GRP = ''
from mix
where tmpimportpsc3000plugintbl.plugin_name = mix.device;
--DEV_GRP不为空,
DELETE FROM dev_info
USING tmpImportPsc3000PluginTbl
WHERE dev_info.TAG_NAME = tmpImportPsc3000PluginTbl.PLUGIN_NAME
AND tmpImportPsc3000PluginTbl.DEV_GRP != '';
--,
/*SET hasDone = 0;
OPEN cur_2;
FETCH cur_2 INTO myDevTag;
LOOP
IF myDevTag IS NOT NULL THEN
BEGIN
CALL updateDescByFes(myDevTag);
END;
END IF;
FETCH cur_2 INTO myDevTag;
EXIT WHEN cur_2%NOTFOUND;
END LOOP;
CLOSE cur_2;*/
--,tmpPsc3000PluginFesTempTbl表中是导入的前置设备
DELETE FROM fes_data_block
USING tmpPsc3000PluginFesTempTbl
WHERE fes_data_block.DEV_TAG = concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME);
INSERT INTO fes_data_block(
TAG_NAME, BLOCK_ID,RTU_TAG,RTU_NO, FUNC_CODE,STAR_ADDR,DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION,LOCATION_ID, SUB_SYSTEM, LD, CALL_MODE, DATA_SET,DATA_SET_TYPE,DATA_SET_CALL_TIME,REPORT_CTRL,FES_POINT_TP_NAME, DEV_TAG) SELECT
concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME,'.',getAfterLastDot(fes_data_block_temp.TAG_NAME)), BLOCK_ID,rtuTag, rtuNo, FUNC_CODE,STAR_ADDR,DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION,locationId, subsystemId,LD, CALL_MODE, DATA_SET,DATA_SET_TYPE,DATA_SET_CALL_TIME,REPORT_CTRL,'', concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME)
FROM tmpPsc3000PluginFesTempTbl INNER JOIN fes_data_block_temp ON tmpPsc3000PluginFesTempTbl.FES_TEMP = fes_data_block_temp.DEV_TP_NAME;
--,PLC的设备ID,
UPDATE fes_dev_info SET DEV_ID = IF(DIV(DEV_ID,10000) = 0,DEV_ID,DIV(DEV_ID,10000)) WHERE RTU_TAG = rtuTag;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION InsertForwardAcc(rtuTagName varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
DECLARE countNum int DEFAULT 0;
BEGIN
--使,,EXPORT_SEQ表中
--,
--rtuTagName RTU
--startNum ,startNum等于指定rtuTagName的最大ID时,
SELECT count(*) INTO countNum FROM export_seq;
--
UPDATE fes_forwarding_accuml
SET ID = ID + countNum
WHERE RTU_TAG = rtuTagName AND ID > startNum;
INSERT INTO fes_forwarding_accuml
(RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, COEFF, BASE, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING)
SELECT
rtuTagName,export_seq.NO,export_seq.NO,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', '0', ''
FROM export_seq,fes_accuml WHERE export_seq.DEV_TAG = fes_accuml.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION InsertForwardAna(rtuTagName varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
DECLARE countNum int DEFAULT 0;
BEGIN
--使,,EXPORT_SEQ表中
--,
--rtuTagName RTU
--startNum ,startNum等于指定rtuTagName的最大ID时,
SELECT count(*) INTO countNum FROM export_seq;
--
UPDATE fes_forwarding_anaolg
SET ID = ID + countNum
WHERE RTU_TAG = rtuTagName AND ID > startNum;
INSERT INTO fes_forwarding_anaolg
(RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, COEFF, BASE, DEADBAND, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING)
SELECT
rtuTagName,export_seq.NO,export_seq.NO,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', '0', '0', ''
FROM export_seq,fes_analog WHERE export_seq.DEV_TAG = fes_analog.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION InsertForwardAnaCtrl(rtuTagName varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
DECLARE countNum int DEFAULT 0;
BEGIN
--使,,EXPORT_SEQ表中
--,
--rtuTagName RTU
--startNum ,startNum等于指定rtuTagName的最大ID时,
SELECT count(*) INTO countNum FROM export_seq;
--
UPDATE fes_forwarding_anaolg_ctrl
SET ID = ID + countNum
WHERE RTU_TAG = rtuTagName AND ID > startNum;
INSERT INTO fes_forwarding_anaolg_ctrl
(RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING)
SELECT
rtuTagName,export_seq.NO,export_seq.NO,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', ''
FROM export_seq,fes_analog_ctrl WHERE export_seq.DEV_TAG = fes_analog_ctrl.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION InsertForwardDig(rtuTagName varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
DECLARE countNum int DEFAULT 0;
BEGIN
--使,,EXPORT_SEQ表中
--,
--rtuTagName RTU
--startNum ,startNum等于指定rtuTagName的最大ID时,
SELECT count(*) INTO countNum FROM export_seq;
--
UPDATE fes_forwarding_digital
SET ID = ID + countNum
WHERE RTU_TAG = rtuTagName AND ID > startNum;
INSERT INTO fes_forwarding_digital
(RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, REVERT, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING)
SELECT
rtuTagName,export_seq.NO,export_seq.NO,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', ''
FROM export_seq,fes_digital WHERE export_seq.DEV_TAG = fes_digital.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION InsertForwardDigCtrl(rtuTagName varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
DECLARE countNum int DEFAULT 0;
BEGIN
--使,,EXPORT_SEQ表中
--,
--rtuTagName RTU
--startNum ,startNum等于指定rtuTagName的最大ID时,
SELECT count(*) INTO countNum FROM export_seq;
--
UPDATE fes_forwarding_digital_ctrl
SET ID = ID + countNum
WHERE RTU_TAG = rtuTagName AND ID > startNum;
INSERT INTO fes_forwarding_digital_ctrl
(RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING)
SELECT
rtuTagName,export_seq.NO,export_seq.NO,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', ''
FROM export_seq,fes_digital_ctrl WHERE export_seq.DEV_TAG = fes_digital_ctrl.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION instDevTempGroup(srcTempGroupName varchar(64), dstDevGroupName varchar(64))
RETURNS VOID
AS $$
DECLARE locationTagName varchar(64) DEFAULT '';
-- DECLARE totalInst int DEFAULT 1;
BEGIN
/*
*
*/
IF COALESCE(srcTempGroupName,'') = '' OR COALESCE(dstDevGroupName,'')=''
THEN RETURN;
END IF;
SELECT sys_model_location_info.TAG_NAME INTO locationTagName
FROM dev_group,sys_model_location_info
WHERE
dev_group.TAG_NAME = dstDevGroupName AND
dev_group.LOCATION_ID = sys_model_location_info.LOCATION_ID;
IF COALESCE(locationTagName,'') = ''
THEN RETURN;
END IF;
/*
SELECT count(*) INTO totalInst FROM dev_info WHERE TAG_NAME LIKE '%Xinst%';
SET totalInst = totalInst + 1;
*/
INSERT INTO dev_info(
TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT
concat(locationTagName,'.',getAfterLastDot(dstDevGroupName), dev_temp_def.TAG_NAME), dev_temp_def.DESCRIPTION, dev_group.LOCATION_ID, dev_group.SUB_SYSTEM, dstDevGroupName,'0', DEV_TYPE_ID, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', REGION_ID, '', '0', '0', '0', dev_temp_def.TAG_NAME
FROM dev_group,dev_temp_group,dev_temp_def
WHERE
dev_group.TAG_NAME = dstDevGroupName AND
dev_temp_group.TAG_NAME = srcTempGroupName AND
dev_temp_group.TAG_NAME = dev_temp_def.DEV_TEMP_GRP;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION instPlugin(pluginName varchar(64),rtuTag varchar(64),devGroupName varchar(64), isBatchInGrp int,startNo int,countNo int)
RETURNS VOID
AS $$
DECLARE locationId decimal(10,0) DEFAULT 0;
DECLARE subsystemId decimal(10,0) DEFAULT 0;
DECLARE rtuNo decimal(10,0) DEFAULT 0;
DECLARE regionId decimal(10,0) DEFAULT 0;
DECLARE devGrpDesc varchar(128) DEFAULT '';
DECLARE tempName varchar(64) DEFAULT '';
DECLARE fesTempName varchar(64) DEFAULT '';
DECLARE sampleGrpName varchar(64) DEFAULT '';
DECLARE stepCount int DEFAULT 0;
DECLARE fesDevCount int DEFAULT 0;
CURSOR cur_relation FOR
SELECT TEMP_NAME,FES_TEMP_NAME FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = pluginName;
BEGIN
--,
--pluginName
--rtuTag rtu名
--devGroupName
--isBatchInGrp
--startNo
--countNo
--,,
--_模板名+
--_模板+
SELECT LOCATION_ID,SUB_SYSTEM,RTU_NO INTO locationId,subsystemId,rtuNo FROM fes_rtu_para WHERE TAG_NAME = rtuTag;
SELECT REGION_ID,DESCRIPTION INTO regionId,devGrpDesc FROM dev_group WHERE TAG_NAME = devGroupName;
sampleGrpName = getAfterLastDot(devGroupName);
fesDevCount = (SELECT COUNT(*) FROM fes_dev_info WHERE RTU_NO = rtuNo);
--
IF isBatchInGrp <> 1 THEN
BEGIN
--,TAG_NAME的命名规则
INSERT INTO DEV_INFO
(TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)
SELECT
concat(devGroupName,'_',TEMP_NAME),DESCRIPTION,'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME
FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME;
--
INSERT INTO FES_DEV_INFO
(DEV_DESC, DEV_ID,DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME)
SELECT
concat(devGrpDesc,'_',DESCRIPTION), fesDevCount, concat(sampleGrpName,'_',FES_TEMP_NAME) ,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',sampleGrpName,'_',FES_TEMP_NAME)
FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME
GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME;
--
OPEN cur_relation;
FETCH cur_relation INTO tempName,fesTempName;
LOOP
CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName), concat(rtuTag,'.',sampleGrpName,'_',fesTempName));
FETCH cur_relation INTO tempName,fesTempName;
EXIT WHEN cur_relation%NOTFOUND;
END LOOP;
CLOSE cur_relation;
END;
ELSE
BEGIN
--,
--,TAG_NAME的命名规则
stepCount = startNo;
WHILE stepCount < (startNo + countNo) LOOP
INSERT INTO DEV_INFO
(TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)
SELECT
concat(devGroupName,'_',TEMP_NAME,stepCount),concat(DESCRIPTION,stepCount),'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME
FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME;
--
INSERT INTO FES_DEV_INFO
(DEV_DESC, DEV_ID,DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME)
SELECT
concat(devGrpDesc,'_',DESCRIPTION,stepCount),fesDevCount, concat(sampleGrpName,'_',FES_TEMP_NAME,stepCount) ,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',sampleGrpName,'_',FES_TEMP_NAME,stepCount)
FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME
GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME;
--
OPEN cur_relation;
FETCH cur_relation INTO tempName,fesTempName;
LOOP
CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName,stepCount), concat(rtuTag,'.',sampleGrpName,'_',fesTempName,stepCount));
FETCH cur_relation INTO tempName,fesTempName;
EXIT WHEN cur_relation%NOTFOUND;
END LOOP;
CLOSE cur_relation;
stepCount = stepCount + 1;
END LOOP;
END;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION instPluginByFesDev(pluginName varchar(64),rtuTag varchar(64),devGroupName varchar(64), fesDevTag varchar(64),fesDevDes varchar(64))
RETURNS VOID
AS $$
DECLARE locationId decimal(10,0) DEFAULT 0;
DECLARE subsystemId decimal(10,0) DEFAULT 0;
DECLARE rtuNo decimal(10,0) DEFAULT 0;
DECLARE regionId decimal(10,0) DEFAULT 0;
DECLARE devGrpDesc varchar(128) DEFAULT '';
DECLARE tempName varchar(64) DEFAULT '';
DECLARE sampleGrpName varchar(64) DEFAULT '';
DECLARE fesDevCount int DEFAULT 0;
CURSOR cur_relation FOR
SELECT TEMP_NAME FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = pluginName;
BEGIN
--,
--pluginName
--rtuTag rtu名
--devGroupName
--fesDevTag
--fesDevDes
SELECT LOCATION_ID,SUB_SYSTEM,RTU_NO INTO locationId,subsystemId,rtuNo FROM fes_rtu_para WHERE TAG_NAME = rtuTag;
SELECT REGION_ID,DESCRIPTION INTO regionId,devGrpDesc FROM dev_group WHERE TAG_NAME = devGroupName;
sampleGrpName = getAfterLastDot(devGroupName);
fesDevCount = (SELECT COUNT(*) FROM fes_dev_info WHERE RTU_NO = rtuNo);
BEGIN
--,TAG_NAME的命名规则
INSERT INTO DEV_INFO
(TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)
SELECT
concat(devGroupName,'_',TEMP_NAME),DESCRIPTION,'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME
FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME;
--
INSERT INTO FES_DEV_INFO
(DEV_DESC, DEV_ID, DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME)
SELECT
fesDevDes, fesDevCount, fesDevTag,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',fesDevTag)
FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME
GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME;
--
OPEN cur_relation;
FETCH cur_relation INTO tempName;
LOOP
CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName), concat(rtuTag,'.',fesDevTag));
FETCH cur_relation INTO tempName;
EXIT WHEN cur_relation%NOTFOUND;
END LOOP;
CLOSE cur_relation;
END;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION relationByDevGroup(groupName varchar(64))
RETURNS VOID
AS $$
BEGIN
/*
*
*/
--,map_to_fes的Key_ID_TAG,RTU_TAG,DOT_NO, OFFSET_NO对应的是digital有5个分量的情况
CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationGroupTbl(
KEY_ID_TAG varchar(128) NOT NULL,
RTU_TAG varchar(64) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpRelationGroupTbl;
--accuml为例,.accuml点,fes_accuml点的Key_ID_TAG和DOT_NO写入临时表
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO
FROM
(SELECT accuml_map_to_fes.KEY_ID_TAG,accuml_temp_define.SEC_DEVTP_NAME,accuml_temp_define.SEC_DEV_IN_GRP,accuml_temp_define.SEC_SEQ_NO
FROM dev_info, accuml, accuml_map_to_fes,accuml_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
accuml.DEVICE = dev_info.TAG_NAME AND
accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.' ,accuml.TAG_NAME) AND
accuml_map_to_fes.POINT_TP_NAME = accuml_temp_define.TAG_NAME AND
COALESCE(accuml_temp_define.SEC_SEQ_NO,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_accuml.RTU_TAG,fes_accuml.DOT_NO,fes_accuml.FES_POINT_TP_NAME,fes_accuml.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_accuml
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_accuml
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationgrouptbl
where fes_accuml.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO);
--
update accuml
SET RTU_TAG = ''
from dev_info
WHERE dev_info.GROUP_TAG_NAME = groupName AND accuml.DEVICE = dev_info.TAG_NAME;
--,RTU,
update accuml
SET accuml.RTU_TAG = tmpRelationGroupTbl.RTU_TAG
from tmprelationgrouptbl
WHERE accuml.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG);
update accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE accuml_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG;
--analog
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO
FROM
(SELECT analog_map_to_fes.KEY_ID_TAG,analog_temp_define.SEC_DEVTP_NAME,analog_temp_define.SEC_DEV_IN_GRP,analog_temp_define.SEC_SEQ_NO
FROM dev_info,analog, analog_map_to_fes,analog_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
analog.DEVICE = dev_info.TAG_NAME AND
analog_map_to_fes.KEY_ID_TAG = concat('analog','.' ,analog.TAG_NAME) AND
analog_map_to_fes.POINT_TP_NAME = analog_temp_define.TAG_NAME AND
COALESCE(analog_temp_define.SEC_SEQ_NO,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_analog.RTU_TAG,fes_analog.DOT_NO,fes_analog.FES_POINT_TP_NAME,fes_analog.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_analog
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_analog.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_analog
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationgrouptbl
where fes_analog.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO);
--
update analog
SET RTU_TAG = ''
from dev_info
WHERE dev_info.GROUP_TAG_NAME = groupName AND analog.DEVICE = dev_info.TAG_NAME;
update analog
SET analog.RTU_TAG = tmpRelationGroupTbl.RTU_TAG
from tmprelationgrouptbl
WHERE analog.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG);
update analog_map_to_fes
SET analog_map_to_fes.DOT_NO = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE analog_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG;
--DIGITAL
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,1
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO1
FROM dev_info,digital, digital_map_to_fes,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND
digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.SEC_SEQ_NO1,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_digital
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO1 = tb2.SEQ_NO;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,2
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO2
FROM dev_info,digital, digital_map_to_fes,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND
digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.SEC_SEQ_NO2,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_digital
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO2 = tb2.SEQ_NO;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,3
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO3
FROM dev_info,digital, digital_map_to_fes,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND
digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.SEC_SEQ_NO3,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_digital
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO3 = tb2.SEQ_NO;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,4
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO4
FROM dev_info,digital, digital_map_to_fes,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND
digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.SEC_SEQ_NO4,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_digital
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO4 = tb2.SEQ_NO;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,5
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO5
FROM dev_info,digital, digital_map_to_fes,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND
digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.SEC_SEQ_NO5,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_digital
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO5 = tb2.SEQ_NO;
--,
update fes_digital
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationgrouptbl
where fes_digital.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO);
--
update digital
SET RTU_TAG = ''
from dev_info
WHERE dev_info.GROUP_TAG_NAME = groupName AND digital.DEVICE = dev_info.TAG_NAME;
update digital
SET digital.RTU_TAG = tmpRelationGroupTbl.RTU_TAG
from tmprelationgrouptbl
WHERE digital.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG);
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 1;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO2 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 2;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO3 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 3;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO4 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 4;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO5 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 5;
--mix
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO)
SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO
FROM
(SELECT mix_map_to_fes.KEY_ID_TAG,mix_temp_define.SEC_DEVTP_NAME,mix_temp_define.SEC_DEV_IN_GRP,mix_temp_define.SEC_SEQ_NO
FROM dev_info,mix, mix_map_to_fes,mix_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
mix.DEVICE = dev_info.TAG_NAME AND
mix_map_to_fes.KEY_ID_TAG = concat('mix','.' ,mix.TAG_NAME) AND
mix_map_to_fes.POINT_TP_NAME = mix_temp_define.TAG_NAME AND
COALESCE(mix_temp_define.SEC_SEQ_NO,-1) >= 0
)tb1 INNER JOIN
(SELECT fes_mix.RTU_TAG,fes_mix.DOT_NO,fes_mix.FES_POINT_TP_NAME,fes_mix.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info, fes_mix
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_mix.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_mix
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationgrouptbl
where fes_mix.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO);
--
update mix
SET RTU_TAG = ''
from dev_info
WHERE dev_info.GROUP_TAG_NAME = groupName AND mix.DEVICE = dev_info.TAG_NAME;
update mix
SET mix.RTU_TAG = tmpRelationGroupTbl.RTU_TAG
from tmprelationgrouptbl
WHERE mix.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG);
update mix_map_to_fes
SET mix_map_to_fes.DOT_NO = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE mix_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG;
--,,,Ctrl中的RTU在上面已经填入了,
--analog_ctrl
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO )
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO
FROM
(SELECT analog_control.TAG_NAME,analog_temp_define.OUT_SEC_SEQ_NO ,analog_temp_define.SEC_DEVTP_NAME,analog_temp_define.SEC_DEV_IN_GRP
FROM dev_info,analog, analog_control,analog_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
analog.DEVICE = dev_info.TAG_NAME AND
analog_control.TAG_NAME = analog.TAG_NAME AND
analog_control.POINT_TP_NAME= analog_temp_define.TAG_NAME AND
COALESCE(analog_temp_define.OUT_SEC_SEQ_NO,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_analog_ctrl.DOT_NO,fes_analog_ctrl.RTU_TAG , fes_analog_ctrl.SEQ_NO ,fes_analog_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_analog_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
update analog_control
SET analog_control.OFFSET_NO = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE analog_control.TAG_NAME = t1.KEY_ID_TAG;
--digital_Ctrl
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,1
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO1 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP
FROM dev_info,digital, digital_control,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_control.TAG_NAME = digital.TAG_NAME AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO1,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_digital_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO1 = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,2
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO2 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP
FROM dev_info,digital, digital_control,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_control.TAG_NAME = digital.TAG_NAME AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO2,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.RTU_TAG,fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_digital_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO2 = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,3
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO3 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP
FROM dev_info,digital, digital_control,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_control.TAG_NAME = digital.TAG_NAME AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO3,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_digital_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO3 = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,4
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO4 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP
FROM dev_info,digital,digital_control,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_control.TAG_NAME = digital.TAG_NAME AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO4,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_digital_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO4 = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,5
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO5 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP
FROM dev_info,digital,digital_control,digital_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
digital.DEVICE = dev_info.TAG_NAME AND
digital_control.TAG_NAME = digital.TAG_NAME AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO5,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_digital_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO5 = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
update digital_control
SET digital_control.OFFSET_NO1 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 1;
update digital_control
SET digital_control.OFFSET_NO2 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 2;
update digital_control
SET digital_control.OFFSET_NO3 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 3;
update digital_control
SET digital_control.OFFSET_NO4 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 4;
update digital_control
SET digital_control.OFFSET_NO5 = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 5;
--mix_ctrl
DELETE FROM tmpRelationGroupTbl;
INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO )
SELECT tb1.TAG_NAME, tb2.RTU_TAG,tb2.DOT_NO
FROM
(SELECT mix_control.TAG_NAME,mix_temp_define.OUT_SEC_SEQ_NO ,mix_temp_define.SEC_DEVTP_NAME,mix_temp_define.SEC_DEV_IN_GRP
FROM dev_info,mix, mix_control,mix_temp_define
WHERE
dev_info.GROUP_TAG_NAME = groupName AND
mix.DEVICE = dev_info.TAG_NAME AND
mix_control.TAG_NAME = mix.TAG_NAME AND
mix_control.POINT_TP_NAME= mix_temp_define.TAG_NAME AND
COALESCE(mix_temp_define.OUT_SEC_SEQ_NO,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_mix_ctrl.DOT_NO,fes_mix_ctrl.RTU_TAG, fes_mix_ctrl.SEQ_NO ,fes_mix_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP
FROM fes_dev_info,fes_mix_ctrl
WHERE
fes_dev_info.DEV_GROUP = groupName AND
fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
)tb2
ON
tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND
tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO AND
tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP;
update mix_control
SET mix_control.OFFSET_NO = t1.DOT_NO
from (SELECT KEY_ID_TAG,DOT_NO FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1
WHERE mix_control.TAG_NAME = t1.KEY_ID_TAG;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION relationFesByName(devTag varchar(64),fesDevTag varchar(64))
RETURNS VOID
AS $$
DECLARE rtuTag varchar(64);
BEGIN
/*
* FES的两个设备之间名称相同的测点做关联
*/
IF COALESCE(devTag,'') = '' OR COALESCE(fesDevTag,'')=''
THEN RETURN;
END IF;
SELECT RTU_TAG INTO rtuTag FROM fes_dev_info WHERE TAG_NAME = fesDevTag;
IF COALESCE(rtuTag,'') = ''
THEN RETURN;
END IF;
--
CALL bingRtu(devTag,'');
UPDATE fes_accuml SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag;
UPDATE fes_analog SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag;
UPDATE fes_digital SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag;
UPDATE fes_mix SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag;
--acc
UPDATE accuml SET RTU_TAG = rtuTag WHERE DEVICE = devTag;
UPDATE analog SET RTU_TAG = rtuTag WHERE DEVICE = devTag;
UPDATE digital SET RTU_TAG = rtuTag WHERE DEVICE = devTag;
UPDATE mix SET RTU_TAG = rtuTag WHERE DEVICE = devTag;
--
CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationFesByNameTbl(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL
);
--acc
DELETE FROM tmpRelationFesByNameTbl;
INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO)
SELECT accuml_map_to_fes.KEY_ID_TAG,fes_accuml.DOT_NO
FROM accuml_map_to_fes INNER JOIN fes_accuml
ON accuml_map_to_fes.KEY_ID_TAG LIKE concat('accuml.',devTag,'.%')
AND fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%')
AND fes_accuml.DEV_TAG = fesDevTag
AND getAfterLastDot(accuml_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_accuml.FES_POINT_TP_NAME);
update accuml_map_to_fes
SET accuml_map_to_fes.RTU_TAG = rtuTag,accuml_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO
from tmprelationfesbynametbl
WHERE accuml_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG;
--ana
DELETE FROM tmpRelationFesByNameTbl;
INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO)
SELECT analog_map_to_fes.KEY_ID_TAG,fes_analog.DOT_NO
FROM analog_map_to_fes INNER JOIN fes_analog
ON analog_map_to_fes.KEY_ID_TAG LIKE concat('analog.',devTag,'.%')
AND fes_analog.TAG_NAME LIKE concat(rtuTag,'.%')
AND fes_analog.DEV_TAG = fesDevTag
AND getAfterLastDot(analog_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_analog.FES_POINT_TP_NAME);
update analog_map_to_fes
SET analog_map_to_fes.RTU_TAG = rtuTag,analog_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO
from tmprelationfesbynametbl
WHERE analog_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG;
--dig
DELETE FROM tmpRelationFesByNameTbl;
INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO)
SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO
FROM digital_map_to_fes INNER JOIN fes_digital
ON digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.',devTag,'.%')
AND fes_digital.TAG_NAME LIKE concat(rtuTag,'.%')
AND fes_digital.DEV_TAG = fesDevTag
AND getAfterLastDot(digital_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_digital.FES_POINT_TP_NAME);
update digital_map_to_fes
SET digital_map_to_fes.RTU_TAG = rtuTag,digital_map_to_fes.DOT_NO1 = tmpRelationFesByNameTbl.DOT_NO
from tmprelationfesbynametbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG;
--mix
DELETE FROM tmpRelationFesByNameTbl;
INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO)
SELECT mix_map_to_fes.KEY_ID_TAG,fes_mix.DOT_NO
FROM mix_map_to_fes INNER JOIN fes_mix
ON mix_map_to_fes.KEY_ID_TAG LIKE concat('mix.',devTag,'.%')
AND fes_mix.TAG_NAME LIKE concat(rtuTag,'.%')
AND fes_mix.DEV_TAG = fesDevTag
AND getAfterLastDot(mix_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_mix.FES_POINT_TP_NAME);
update mix_map_to_fes
SET mix_map_to_fes.RTU_TAG = rtuTag,mix_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO
from tmprelationfesbynametbl
WHERE mix_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION relationToFes(devTagName varchar(64), fesDevTagName varchar(64))
RETURNS VOID
AS $$
DECLARE rtuTagName varchar(64);
DECLARE fesDevTempTagName varchar(64);
BEGIN
/*
* FES的两个设备之间做关联,使,,,,
*/
IF COALESCE(devTagName,'') = '' OR COALESCE(fesDevTagName,'')=''
THEN RETURN;
END IF;
SELECT RTU_TAG,DEV_TP_NAME INTO rtuTagName,fesDevTempTagName FROM fes_dev_info WHERE TAG_NAME = fesDevTagName;
IF COALESCE(rtuTagName,'') = '' OR COALESCE(fesDevTempTagName,'')=''
THEN RETURN;
END IF;
--
CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationToFesTbl(
KEY_ID_TAG varchar(128) NOT NULL,
DOT_NO varchar(48) NOT NULL,
OFFSET_NO decimal(10)
);
DELETE FROM tmpRelationToFesTbl;
--accuml为例,.accuml点,fes_accuml点的Key_ID_TAG和DOT_NO写入临时表
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO
FROM
(SELECT accuml_map_to_fes.KEY_ID_TAG,accuml_temp_define.SEC_SEQ_NO
FROM accuml_map_to_fes,accuml_temp_define
WHERE
accuml_map_to_fes.KEY_ID_TAG like concat('accuml','.' ,devTagName,'.','%') AND
accuml_map_to_fes.POINT_TP_NAME= accuml_temp_define.TAG_NAME AND
accuml_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(accuml_temp_define.SEC_SEQ_NO,-1) >= 0
) tb1
INNER JOIN
(SELECT fes_accuml.DOT_NO, fes_accuml.SEQ_NO
FROM fes_accuml
WHERE
fes_accuml.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_accuml.FES_POINT_TP_NAME) = fesDevTempTagName
) tb2
ON
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_accuml
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationtofestbl
where fes_accuml.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO);
--
update accuml
set rtu_tag = ''
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
--,RTU,
update accuml
set rtu_tag = rtutagname
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update accuml_map_to_fes
SET accuml_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE accuml_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG;
--analog
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO
FROM
(SELECT analog_map_to_fes.KEY_ID_TAG,analog_temp_define.SEC_SEQ_NO
FROM analog_map_to_fes,analog_temp_define
WHERE
analog_map_to_fes.KEY_ID_TAG like concat('analog','.' ,devTagName,'.','%') AND
analog_map_to_fes.POINT_TP_NAME= analog_temp_define.TAG_NAME AND
analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(analog_temp_define.SEC_SEQ_NO,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_analog.DOT_NO, fes_analog.SEQ_NO
FROM fes_analog
WHERE
fes_analog.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_analog.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_analog
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationtofestbl
where fes_analog.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO);
--
update analog
set rtu_tag = ''
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update analog
set rtu_tag = rtutagname
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update analog_map_to_fes
SET analog_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE analog_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG;
--digital有五个分量,
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,1
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO1
FROM digital_map_to_fes,digital_temp_define
WHERE
digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND
digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(digital_temp_define.SEC_SEQ_NO1,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO
FROM fes_digital
WHERE
fes_digital.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO1 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,2
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO2
FROM digital_map_to_fes,digital_temp_define
WHERE
digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND
digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(digital_temp_define.SEC_SEQ_NO2,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO
FROM fes_digital
WHERE
fes_digital.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO2 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,3
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO3
FROM digital_map_to_fes,digital_temp_define
WHERE
digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND
digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(digital_temp_define.SEC_SEQ_NO3,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO
FROM fes_digital
WHERE
fes_digital.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO3 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,4
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO4
FROM digital_map_to_fes,digital_temp_define
WHERE
digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND
digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(digital_temp_define.SEC_SEQ_NO4,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO
FROM fes_digital
WHERE
fes_digital.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO4 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,5
FROM
(SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO5
FROM digital_map_to_fes,digital_temp_define
WHERE
digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND
digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND
COALESCE(digital_temp_define.SEC_SEQ_NO5,-1) >= 0
)tb1
INNER JOIN
(SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO
FROM fes_digital
WHERE
fes_digital.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO5 = tb2.SEQ_NO;
--,
update fes_digital
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationtofestbl
where fes_digital.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO);
--
update digital
set rtu_tag = ''
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update digital
set rtu_tag = rtutagname
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO1 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 1;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO2 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 2;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO3 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 3;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO4 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 4;
update digital_map_to_fes
SET digital_map_to_fes.DOT_NO5 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 5;
--mix
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO )
SELECT tb1.KEY_ID_TAG, tb2.DOT_NO
FROM
(SELECT mix_map_to_fes.KEY_ID_TAG,mix_temp_define.SEC_SEQ_NO
FROM mix_map_to_fes,mix_temp_define
WHERE
mix_map_to_fes.KEY_ID_TAG like concat('mix','.' ,devTagName,'.','%') AND
mix_map_to_fes.POINT_TP_NAME= mix_temp_define.TAG_NAME AND
mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_mix.DOT_NO, fes_mix.SEQ_NO
FROM fes_mix
WHERE
fes_mix.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_mix.FES_POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.SEC_SEQ_NO = tb2.SEQ_NO;
--,
update fes_mix
SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''
from tmprelationtofestbl
where fes_mix.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO);
--
update mix
set rtu_tag = ''
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update mix
set rtu_tag = rtutagname
from tmprelationtofestbl
where tag_name = getafterfirstdot(tmprelationtofestbl.key_id_tag);
update mix_map_to_fes
SET mix_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE mix_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG;
--,
--analog_ctrl
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO )
SELECT tb1.TAG_NAME, tb2.DOT_NO
FROM
(SELECT analog_control.TAG_NAME,analog_temp_define.OUT_SEC_SEQ_NO
FROM analog_control,analog_temp_define
WHERE
analog_control.TAG_NAME like concat(devTagName,'.','%') AND
analog_control.POINT_TP_NAME= analog_temp_define.TAG_NAME AND
COALESCE(analog_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 AND
analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_analog_ctrl.DOT_NO, fes_analog_ctrl.SEQ_NO
FROM fes_analog_ctrl
WHERE
fes_analog_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_analog_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO;
update analog_control
SET analog_control.RTU_TAG = rtuTagName, analog_control.OFFSET_NO = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE analog_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG;
--digital_Ctrl
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME, tb2.DOT_NO ,1
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO1
FROM digital_control,digital_temp_define
WHERE
digital_control.TAG_NAME like concat(devTagName,'.','%') AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO1,-1) >= 0 AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO
FROM fes_digital_ctrl
WHERE
fes_digital_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO1 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME, tb2.DOT_NO ,2
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO2
FROM digital_control,digital_temp_define
WHERE
digital_control.TAG_NAME like concat(devTagName,'.','%') AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO2,-1) >= 0 AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO
FROM fes_digital_ctrl
WHERE
fes_digital_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO2 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME, tb2.DOT_NO ,3
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO3
FROM digital_control,digital_temp_define
WHERE
digital_control.TAG_NAME like concat(devTagName,'.','%') AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO3,-1) >= 0 AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO
FROM fes_digital_ctrl
WHERE
fes_digital_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO3 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME, tb2.DOT_NO ,4
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO4
FROM digital_control,digital_temp_define
WHERE
digital_control.TAG_NAME like concat(devTagName,'.','%') AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO4,-1) >= 0 AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO
FROM fes_digital_ctrl
WHERE
fes_digital_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO4 = tb2.SEQ_NO;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO)
SELECT tb1.TAG_NAME, tb2.DOT_NO ,5
FROM
(SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO5
FROM digital_control,digital_temp_define
WHERE
digital_control.TAG_NAME like concat(devTagName,'.','%') AND
digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND
COALESCE(digital_temp_define.OUT_SEC_SEQ_NO5,-1) >= 0 AND
digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO
FROM fes_digital_ctrl
WHERE
fes_digital_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO5 = tb2.SEQ_NO;
update digital_control
SET digital_control.RTU_TAG = rtuTagName, digital_control.OFFSET_NO1 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 1;
update digital_control
SET digital_control.RTU_TAG = rtuTagName, digital_control.OFFSET_NO2 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 2;
update digital_control
SET digital_control.RTU_TAG = rtuTagName, digital_control.OFFSET_NO3 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 3;
update digital_control
SET digital_control.RTU_TAG = rtuTagName, digital_control.OFFSET_NO4 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 4;
update digital_control
SET digital_control.RTU_TAG = rtuTagName, digital_control.OFFSET_NO5 = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 5;
--mix_ctrl
DELETE FROM tmpRelationToFesTbl;
INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO )
SELECT tb1.TAG_NAME, tb2.DOT_NO
FROM
(SELECT mix_control.TAG_NAME,mix_temp_define.OUT_SEC_SEQ_NO
FROM mix_control,mix_temp_define
WHERE
mix_control.TAG_NAME like concat(devTagName,'.','%') AND
mix_control.POINT_TP_NAME= mix_temp_define.TAG_NAME AND
COALESCE(mix_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 AND
mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName
)tb1
INNER JOIN
(SELECT fes_mix_ctrl.DOT_NO, fes_mix_ctrl.SEQ_NO
FROM fes_mix_ctrl
WHERE
fes_mix_ctrl.DEV_TAG = fesDevTagName AND
getBeforeLastDot(fes_mix_ctrl.POINT_TP_NAME) = fesDevTempTagName
)tb2
ON
tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO;
update mix_control
SET mix_control.RTU_TAG = rtuTagName, mix_control.OFFSET_NO = tmpRelationToFesTbl.DOT_NO
from tmprelationtofestbl
WHERE mix_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION sortResPara1(rtuTag varchar(64), startNum decimal(10,0))
RETURNS VOID
AS $$
BEGIN
-- 依据设备ID重排规约参数1
--acc
UPDATE fes_accuml
set fes_accuml.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_accuml.TAG_NAME,fes_accuml.DESCRIPTION,fes_dev_info.DEV_DESC, fes_accuml.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_accuml.SEQ_NO ) AS seqno
FROM fes_accuml LEFT JOIN fes_dev_info on fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%')) AS temp
WHERE fes_accuml.TAG_NAME = temp.TAG_NAME;
--ana
UPDATE fes_analog
set fes_analog.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_analog.TAG_NAME,fes_analog.DESCRIPTION,fes_dev_info.DEV_DESC, fes_analog.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_analog.SEQ_NO ) AS seqno
FROM fes_analog LEFT JOIN fes_dev_info on fes_analog.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'.%')) AS temp
WHERE fes_analog.TAG_NAME = temp.TAG_NAME;
--dig
UPDATE fes_digital
set fes_digital.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_digital.TAG_NAME,fes_digital.DESCRIPTION,fes_dev_info.DEV_DESC, fes_digital.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_digital.SEQ_NO ) AS seqno
FROM fes_digital LEFT JOIN fes_dev_info on fes_digital.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'.%')) AS temp
WHERE fes_digital.TAG_NAME = temp.TAG_NAME;
--mix
UPDATE fes_mix
set fes_mix.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_mix.TAG_NAME,fes_mix.DESCRIPTION,fes_dev_info.DEV_DESC, fes_mix.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_mix.SEQ_NO ) AS seqno
FROM fes_mix LEFT JOIN fes_dev_info on fes_mix.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_mix.TAG_NAME LIKE concat(rtuTag,'.%')) temp
WHERE fes_mix.TAG_NAME = temp.TAG_NAME;
--anaCtrl
UPDATE fes_analog_ctrl
set fes_analog_ctrl.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_analog_ctrl.TAG_NAME,fes_analog_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_analog_ctrl.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_analog_ctrl.SEQ_NO ) AS seqno
FROM fes_analog_ctrl LEFT JOIN fes_dev_info on fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_analog_ctrl.TAG_NAME LIKE concat(rtuTag,'.%')) temp
WHERE fes_analog_ctrl.TAG_NAME = temp.TAG_NAME;
--digCtrl
UPDATE fes_digital_ctrl
set fes_digital_ctrl.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_digital_ctrl.TAG_NAME,fes_digital_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_digital_ctrl.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_digital_ctrl.SEQ_NO ) AS seqno
FROM fes_digital_ctrl LEFT JOIN fes_dev_info on fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.%')) temp
WHERE fes_digital_ctrl.TAG_NAME = temp.TAG_NAME;
--mixCtrl
UPDATE fes_mix_ctrl
set fes_mix_ctrl.RES_PARA_INT1 = seqno + startNum FROM
(SELECT fes_mix_ctrl.TAG_NAME,fes_mix_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_mix_ctrl.RES_PARA_INT1,
row_number() over (order by fes_dev_info.DEV_ID,fes_mix_ctrl.SEQ_NO ) AS seqno
FROM fes_mix_ctrl LEFT JOIN fes_dev_info on fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME
WHERE fes_mix_ctrl.TAG_NAME LIKE concat(rtuTag,'.%')) temp
WHERE fes_mix_ctrl.TAG_NAME = temp.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION updateDescByFes(devTagName varchar(64))
RETURNS VOID
AS $$
BEGIN
--使,
--使
CREATE TEMPORARY TABLE IF NOT EXISTS tmpUpdateDescByFesTbl(
TAG_NAME varchar(64),
DESCRIPTION varchar(128)
);
--acc
DELETE FROM tmpUpdateDescByFesTbl;
INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION)
SELECT accuml.TAG_NAME,fes_accuml.DESCRIPTION
FROM (accuml INNER JOIN accuml_map_to_fes ON accuml.DEVICE = devTagName AND accuml_map_to_fes.KEY_ID_TAG = concat('accuml.',accuml.TAG_NAME))
INNER JOIN fes_accuml ON fes_accuml.TAG_NAME = concat(accuml_map_to_fes.RTU_TAG,'.',accuml_map_to_fes.DOT_NO);
update accuml
SET accuml.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION
from tmpupdatedescbyfestbl
WHERE accuml.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME;
--ana
DELETE FROM tmpUpdateDescByFesTbl;
INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION)
SELECT analog.TAG_NAME,fes_analog.DESCRIPTION
FROM (analog INNER JOIN analog_map_to_fes ON analog.DEVICE = devTagName AND analog_map_to_fes.KEY_ID_TAG = concat('analog.',analog.TAG_NAME))
INNER JOIN fes_analog ON fes_analog.TAG_NAME = concat(analog_map_to_fes.RTU_TAG,'.',analog_map_to_fes.DOT_NO);
update analog
SET analog.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION
from tmpupdatedescbyfestbl
WHERE analog.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME;
--dig
DELETE FROM tmpUpdateDescByFesTbl;
INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION)
SELECT digital.TAG_NAME,fes_digital.DESCRIPTION
FROM (digital INNER JOIN digital_map_to_fes ON digital.DEVICE = devTagName AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME))
INNER JOIN fes_digital ON fes_digital.TAG_NAME = concat(digital_map_to_fes.RTU_TAG,'.',digital_map_to_fes.DOT_NO1);
update digital
SET digital.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION
from tmpupdatedescbyfestbl
WHERE digital.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME;
--mix
DELETE FROM tmpUpdateDescByFesTbl;
INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION)
SELECT mix.TAG_NAME,fes_mix.DESCRIPTION
FROM (mix INNER JOIN mix_map_to_fes ON mix.DEVICE = devTagName AND mix_map_to_fes.KEY_ID_TAG = concat('mix.',mix.TAG_NAME))
INNER JOIN fes_mix ON fes_mix.TAG_NAME = concat(mix_map_to_fes.RTU_TAG,'.',mix_map_to_fes.DOT_NO);
update mix
SET mix.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION
from tmpupdatedescbyfestbl
WHERE mix.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION updateForwardBase(tableName varchar(64), rtuTagName varchar(64), bs decimal(22,6))
RETURNS VOID
AS $$
BEGIN
/*
*
*/
IF lower(tableName) = 'fes_forwarding_accuml' THEN
UPDATE fes_forwarding_accuml SET BASE = bs WHERE RTU_TAG = rtuTagName ;
ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN
UPDATE fes_forwarding_anaolg SET BASE = bs WHERE RTU_TAG = rtuTagName ;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION updateForwardCoeff( tableName varchar(64), rtuTagName varchar(64), coe decimal(22,6))
RETURNS VOID
AS $$
BEGIN
--
IF lower(tableName) = 'fes_forwarding_accuml' THEN
UPDATE fes_forwarding_accuml SET COEFF = coe WHERE RTU_TAG = rtuTagName ;
ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN
UPDATE fes_forwarding_anaolg SET COEFF = coe WHERE RTU_TAG = rtuTagName ;
END IF;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION updateUsergRegion(roleId decimal(10,0))
RETURNS VOID
AS $$
BEGIN
--
--rm_userg_rsp_info表
CREATE TEMPORARY TABLE IF NOT EXISTS tmpUserGroupTbl(
PERM_USER_GROUP decimal(10,0)
);
DELETE FROM tmpUserGroupTbl;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpUURegion(
PERM_USER_GROUP decimal(10,0),
PERM_ROLE decimal(10,0),
PERM_SPEFUNC decimal(10,0),
PERM_REGION1 decimal(10,0),
PERM_REGION2 decimal(10,0),
PERM_REGION3 decimal(10,0),
PERM_REGION4 decimal(10,0),
PERM_LOCATION1 decimal(10,0),
PERM_LOCATION2 decimal(10,0),
PERM_LOCATION3 decimal(10,0),
PERM_LOCATION4 decimal(10,0),
PERM_LOCATION5 decimal(10,0),
PERM_LOCATION6 decimal(10,0),
PERM_LOCATION7 decimal(10,0),
PERM_LOCATION8 decimal(10,0)
);
DELETE FROM tmpUURegion;
INSERT INTO tmpUserGroupTbl(PERM_USER_GROUP)
SELECT PERM_USER_GROUP FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId GROUP BY PERM_USER_GROUP;
INSERT INTO tmpUURegion (PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8)
SELECT PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8
FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId;
--
DELETE FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId;
INSERT INTO rm_userg_rsp_info(PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8)
SELECT tmpUserGroupTbl.PERM_USER_GROUP,roleId,rm_role_spef_reg.PERM_SPEFUNC,rm_role_spef_reg.PERM_REGION1,rm_role_spef_reg.PERM_REGION2,rm_role_spef_reg.PERM_REGION3,rm_role_spef_reg.PERM_REGION4,0,0,0,0,0,0,0,0
FROM rm_role_spef_reg ,tmpUserGroupTbl WHERE rm_role_spef_reg.PERM_ROLE=roleId;
update rm_userg_rsp_info
SET rm_userg_rsp_info.PERM_LOCATION1 = tmpUURegion.PERM_LOCATION1, rm_userg_rsp_info.PERM_LOCATION2 = tmpUURegion.PERM_LOCATION2, rm_userg_rsp_info.PERM_LOCATION3 = tmpUURegion.PERM_LOCATION3, rm_userg_rsp_info.PERM_LOCATION4 = tmpUURegion.PERM_LOCATION4, rm_userg_rsp_info.PERM_LOCATION5 = tmpUURegion.PERM_LOCATION5, rm_userg_rsp_info.PERM_LOCATION6 = tmpUURegion.PERM_LOCATION6, rm_userg_rsp_info.PERM_LOCATION7 = tmpUURegion.PERM_LOCATION7, rm_userg_rsp_info.PERM_LOCATION8 = tmpUURegion.PERM_LOCATION8
from tmpuuregion
WHERE rm_userg_rsp_info.PERM_USER_GROUP = tmpUURegion.PERM_USER_GROUP AND rm_userg_rsp_info.PERM_ROLE = roleId AND tmpUURegion.PERM_ROLE = roleId AND rm_userg_rsp_info.PERM_SPEFUNC = tmpUURegion.PERM_SPEFUNC;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION updateUsergRsp(userGId decimal(10,0))
RETURNS VOID
AS $$
BEGIN
--rm_userg_rsp_info表
update rm_userg_rsp_info
SET rm_userg_rsp_info.PERM_REGION1 = rm_role_spef_reg.PERM_REGION1, rm_userg_rsp_info.PERM_REGION2 = rm_role_spef_reg.PERM_REGION2, rm_userg_rsp_info.PERM_REGION3 = rm_role_spef_reg.PERM_REGION3, rm_userg_rsp_info.PERM_REGION4 = rm_role_spef_reg.PERM_REGION4
from rm_role_spef_reg
WHERE rm_userg_rsp_info.PERM_ROLE = rm_role_spef_reg.PERM_ROLE AND rm_userg_rsp_info.PERM_SPEFUNC = rm_role_spef_reg.PERM_SPEFUNC AND rm_userg_rsp_info.PERM_USER_GROUP = userGId;
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION userGRoleModify(userGroupId decimal(10,0), roleIdList varchar(100))
RETURNS VOID
AS $$
BEGIN
--
--userGroupId ID,
--roleIdList ID号列表,
--roleIdList表中的角色
DELETE FROM rm_userg_rsp_info WHERE PERM_USER_GROUP = userGroupId AND find_in_set(PERM_ROLE,roleIdList) = 0;
END;
$$LANGUAGE PLPGSQL;
/*******************************************/
/*rule 用于适配 MySQL 的 insert ignore 语法*/
create or replace rule rule_rm_userg_report_info as on
insert to rm_userg_report_info where exists
(select 1 from rm_userg_report_info where PERM_USER_GROUP = new.PERM_USER_GROUP and REPORT_CODE = new.REPORT_CODE )
do instead nothing;
create or replace rule rule_accuml as on
insert to accuml where exists
(select 1 from accuml where tag_name = new.tag_name)
do instead nothing;
create or replace rule rule_analog as on
insert to analog where exists
(select 1 from analog where tag_name = new.tag_name)
do instead nothing;
create or replace rule rule_digital as on
insert to digital where exists
(select 1 from digital where tag_name = new.tag_name)
do instead nothing;
create or replace rule rule_mix as on
insert to mix where exists
(select 1 from mix where tag_name = new.tag_name)
do instead nothing;
/*******************************************/