/*
临时表同步到业务表的触发器
INF_EMPLOYEE_INTF 用户临时表
INF_EMPLOYEE 业务线表
*/
CREATE OR REPLACE TRIGGER INF_EMPLOYEE_INTF_BI
BEFORE INSERT ON PADINFODATA.INF_EMPLOYEE_INTF
FOR EACH ROW
when (NEW.PAIC_UM_NUM IS NOT NULL)
DECLARE
V_UMCOUNT NUMBER(10);
V_EMPCOUNT NUMBER(10);
V_SQLCODE VARCHAR2(6);
V_SQLERRM VARCHAR2(200);
V_ERROR_COMMENT VARCHAR2(300);
V_EMPLOYEE_ID PADINFODATA.INF_EMPLOYEE_INTF.EMPLOYEE_ID%TYPE;
BEGIN
--如果此次新增ID在业务表有则update 否则 insert
SELECT COUNT(0) INTO V_UMCOUNT FROM PADINFODATA.INF_EMPLOYEE E WHERE E.PAIC_UM_NUM = :NEW.PAIC_UM_NUM;
IF V_UMCOUNT > 0 THEN
UPDATE INF_EMPLOYEE A
SET A.PAIC_EMPNO = :NEW.PAIC_EMPNO,
A.ID_CARD_TYPE_CODE = :NEW.ID_CARD_TYPE_CODE,
A.PAIC_UM_NUM = :NEW.PAIC_UM_NUM,
A.ID_CARD = :NEW.ID_CARD,
A.NAME = :NEW.NAME,
A.PERSON_STATUS_CODE = :NEW.PERSON_STATUS_CODE,
A.ORG_ID = :NEW.ORG_ID,
A.ORG_NAME = :NEW.ORG_NAME,
A.LOT_NUM = :NEW.LOT_NUM,
A.ONBOARD_DATE = :NEW.ONBOARD_DATE,
A.BIRTH_DATE = :NEW.BIRTH_DATE,
A.IS_REHIRE = :NEW.IS_REHIRE,
A.LAST_ON_BOARD_DATE = :NEW.LAST_ON_BOARD_DATE,
A.ADDRESS = :NEW.ADDRESS,
A.PHONE = :NEW.PHONE,
A.PARTY = :NEW.PARTY,
A.BIRTH_PLACE = :NEW.BIRTH_PLACE,
A.SCHOOL = :NEW.SCHOOL,
A.MAJOR = :NEW.MAJOR,
A.EDUCATION_LEVEL_CODE = :NEW.EDUCATION_LEVEL_CODE,
A.HAS_CHILD = :NEW.HAS_CHILD,
A.TEAM_LEADER_ID = :NEW.TEAM_LEADER_ID,
A.TEAM_LEADER_EMPNO = :NEW.TEAM_LEADER_EMPNO,
A.TEAM_LEADER_UM = :NEW.TEAM_LEADER_UM,
A.TEAM_LEADER_NAME = :NEW.TEAM_LEADER_NAME,
A.MANAGER_ID = :NEW.MANAGER_ID,
A.MANAGER_EMPNO = :NEW.MANAGER_EMPNO,
A.MANAGER_UM = :NEW.MANAGER_UM,
A.MANAGER_NAME = :NEW.MANAGER_NAME,
A.SERIES_CODE = :NEW.SERIES_CODE,
A.CATEGORY_CODE = :NEW.CATEGORY_CODE,
A.POSITION_TYPE_ID = :NEW.POSITION_TYPE_ID,
A.POSITION_TYPE_DESC = :NEW.POSITION_TYPE_DESC,
A.POSITION_ID = :NEW.POSITION_ID,
A.POSITION_DESC = :NEW.POSITION_DESC,
A.EMPL_CLASS = :NEW.EMPL_CLASS,
A.EMPL_CLASS_DESC = :NEW.EMPL_CLASS_DESC,
A.NW_DESC = :NEW.NW_DESC,
A.MAR_STATUS = :NEW.MAR_STATUS,
A.PAIC_MARISTS_DESC = :NEW.PAIC_MARISTS_DESC,
A.SEX_CODE = :NEW.SEX_CODE,
A.RECRUIT_CHANNEL_DESC = :NEW.RECRUIT_CHANNEL_DESC,
A.RECRUIT_SOURCE_DESC = :NEW.RECRUIT_SOURCE_DESC,
A.PAIC_NW_SW = :NEW.PAIC_NW_SW,
A.XLATSHORTNAME = :NEW.XLATSHORTNAME,
A.PLACE_CODE = :NEW.PLACE_CODE,
A.TMR_BUSINESS_MODE_CODE = :NEW.TMR_BUSINESS_MODE_CODE,
A.TMR_BUSINESS_MODE_DESC = :NEW.TMR_BUSINESS_MODE_DESC,
A.TH_PRODUCT_TYPE_CODE = :NEW.TH_PRODUCT_TYPE_CODE,
A.HY_BUSINESS_CATEGORY_CODE = :NEW.HY_BUSINESS_CATEGORY_CODE,
A.HY_BUSINESS_SUBCATE_CODE = :NEW.HY_BUSINESS_SUBCATE_CODE,
A.PC_ITEM_CODE = :NEW.PC_ITEM_CODE,
A.PC_ITEM_DESC = :NEW.PC_ITEM_DESC,
A.TMR_CATEGORY_CODE = :NEW.TMR_CATEGORY_CODE,
A.TMR_CATEGORY_DESC = :NEW.TMR_BUSINESS_MODE_DESC,
A.EDUCATION_LEVEL_DESC = :NEW.EDUCATION_LEVEL_CODE,
A.ONLINE_DATE = :NEW.ONLINE_DATE,
A.PARTY_ROLE_CODE = :NEW.PARTY_ROLE_CODE,
A.PARTY_ROLE_DESC = :NEW.PARTY_ROLE_DESC,
A.CREATED_BY = :NEW.CREATED_BY,
A.CREATED_DATE = :NEW.CREATED_DATE,
A.UPDATED_BY = :NEW.UPDATED_BY,
A.UPDATED_DATE = :NEW.UPDATED_DATE,
A.PLACE_DESC = :NEW.PLACE_DESC,
A.TH_PRODUCT_TYPE_DESC = :NEW.TH_PRODUCT_TYPE_DESC,
A.HY_BUSINESS_CATEGORY_DESC = :NEW.HY_BUSINESS_CATEGORY_DESC,
A.HY_BUSINESS_SUBCATE_DESC = :NEW.HY_BUSINESS_SUBCATE_DESC,
A.CTI_CODE = :NEW.CTI_CODE,
A.TEL_NO = :NEW.TEL_NO,
A.PLATFORM_CODE = :NEW.PLATFORM_CODE,
A.STAFF_NO = :NEW.STAFF_NO,
A.SERIES_DESC = :NEW.SERIES_DESC,
A.CATEGORY_DESC = :NEW.CATEGORY_DESC,
A.B_CREATED_DATE = :NEW.B_CREATED_DATE,
A.B_UPDATED_DATE = :NEW.B_UPDATED_DATE,
A.TMR_SKILL_LV_LIFE = :NEW.TMR_SKILL_LV_LIFE,
A.AGENT_CERTIFI_NUM = :NEW.AGENT_CERTIFI_NUM,
A.DATE_CERTIFI_VALID = :NEW.DATE_CERTIFI_VALID,
A.XB_TMR_BIZ_MODE_CODE = :NEW.XB_TMR_BIZ_MODE_CODE,
A.XB_WORK_PLACE_CODE = :NEW.XB_WORK_PLACE_CODE,
A.CALL_DISPLAY_NUMBER = :NEW.CALL_DISPLAY_NUMBER,
A.ZONE_MANAGER_ID = :NEW.ZONE_MANAGER_ID,
A.ZONE_MANAGER_EMP = :NEW.ZONE_MANAGER_EMP,
A.ZONE_MANAGER_UM = :NEW.ZONE_MANAGER_UM,
A.ZONE_MANAGER_NAME = :NEW.ZONE_MANAGER_NAME,
A.UCP_CODE = :NEW.UCP_CODE,
A.CTS_PRODUCT_CODE = :NEW.CTS_PRODUCT_CODE,
A.CTS_TMR_FUNCTION_CODE = :NEW.CTS_TMR_FUNCTION_CODE,
A.OPERATION_TYPE = :NEW.OPERATION_TYPE,
A.TFZX_ID = :NEW.TFZX_ID,
A.TFZX_NAME = :NEW.TFZX_NAME,
A.TFQY_ID = :NEW.TFQY_ID,
A.TFQY_NAME = :NEW.TFQY_NAME,
A.TCQY_ID = :NEW.TCQY_ID,
A.TCQY_NAME = :NEW.TCQY_NAME,
A.TDEP_ID = :NEW.TDEP_ID,
A.TDEP_NAME = :NEW.TDEP_NAME,
A.EGRP_ID = :NEW.EGRP_ID,
A.EGRP_NAME = :NEW.EGRP_NAME,
A.ACCOUNT_MANAGER = :NEW.ACCOUNT_MANAGER,
A.ACCOUNT_MANAGER_LEVEL = :NEW.ACCOUNT_MANAGER_LEVEL,
A.DISA_RECOVERY_PLATFORM_CODE = :NEW.DISA_RECOVERY_PLATFORM_CODE,
A.DISA_RECOVERY_CTI_CODE = :NEW.DISA_RECOVERY_CTI_CODE,
A.SOURCE_FROM = 'TJS'
WHERE A.PAIC_UM_NUM = :NEW.PAIC_UM_NUM;
ELSE
SELECT COUNT(0) INTO V_EMPCOUNT FROM PADINFODATA.INF_EMPLOYEE E WHERE E.EMPLOYEE_ID = :NEW.EMPLOYEE_ID;
V_EMPLOYEE_ID := :NEW.EMPLOYEE_ID;
IF V_EMPCOUNT > 0 THEN
V_EMPLOYEE_ID := -1 * V_EMPLOYEE_ID;
END IF;
INSERT INTO INF_EMPLOYEE
(EMPLOYEE_ID,
PAIC_EMPNO,
PAIC_UM_NUM,
ID_CARD_TYPE_CODE,
ID_CARD,
NAME,
PERSON_STATUS_CODE,
ORG_ID,
ORG_NAME,
LOT_NUM,
ONBOARD_DATE,
BIRTH_DATE,
IS_REHIRE,
LAST_ON_BOARD_DATE,
ADDRESS,
PHONE,
PARTY,
BIRTH_PLACE,
SCHOOL,
MAJOR,
EDUCATION_LEVEL_CODE,
HAS_CHILD,
TEAM_LEADER_ID,
TEAM_LEADER_EMPNO,
TEAM_LEADER_UM,
TEAM_LEADER_NAME,
MANAGER_ID,
MANAGER_EMPNO,
MANAGER_UM,
MANAGER_NAME,
SERIES_CODE,
CATEGORY_CODE,
POSITION_TYPE_ID,
POSITION_TYPE_DESC,
POSITION_ID,
POSITION_DESC,
EMPL_CLASS,
EMPL_CLASS_DESC,
NW_DESC,
MAR_STATUS,
PAIC_MARISTS_DESC,
SEX_CODE,
RECRUIT_CHANNEL_DESC,
RECRUIT_SOURCE_DESC,
PAIC_NW_SW,
XLATSHORTNAME,
PLACE_CODE,
TMR_BUSINESS_MODE_CODE,
TMR_BUSINESS_MODE_DESC,
TH_PRODUCT_TYPE_CODE,
HY_BUSINESS_CATEGORY_CODE,
HY_BUSINESS_SUBCATE_CODE,
PC_ITEM_CODE,
PC_ITEM_DESC,
TMR_CATEGORY_CODE,
TMR_CATEGORY_DESC,
EDUCATION_LEVEL_DESC,
ONLINE_DATE,
PARTY_ROLE_CODE,
PARTY_ROLE_DESC,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
PLACE_DESC,
TH_PRODUCT_TYPE_DESC,
HY_BUSINESS_CATEGORY_DESC,
HY_BUSINESS_SUBCATE_DESC,
CTI_CODE,
TEL_NO,
PLATFORM_CODE,
STAFF_NO,
SERIES_DESC,
CATEGORY_DESC,
B_CREATED_DATE,
B_UPDATED_DATE,
TMR_SKILL_LV_LIFE,
AGENT_CERTIFI_NUM,
DATE_CERTIFI_VALID,
XB_TMR_BIZ_MODE_CODE,
XB_WORK_PLACE_CODE,
CALL_DISPLAY_NUMBER,
ZONE_MANAGER_ID,
ZONE_MANAGER_EMP,
ZONE_MANAGER_UM,
ZONE_MANAGER_NAME,
UCP_CODE,
CTS_PRODUCT_CODE,
CTS_TMR_FUNCTION_CODE,
OPERATION_TYPE,
TFZX_ID,
TFZX_NAME,
TFQY_ID,
TFQY_NAME,
TCQY_ID,
TCQY_NAME,
TDEP_ID,
TDEP_NAME,
EGRP_ID,
EGRP_NAME,
ACCOUNT_MANAGER,
ACCOUNT_MANAGER_LEVEL,
DISA_RECOVERY_PLATFORM_CODE,
DISA_RECOVERY_CTI_CODE,
SOURCE_FROM)
VALUES
(V_EMPLOYEE_ID,
:NEW.PAIC_EMPNO,
:NEW.PAIC_UM_NUM,
:NEW.ID_CARD_TYPE_CODE,
:NEW.ID_CARD,
:NEW.NAME,
:NEW.PERSON_STATUS_CODE,
:NEW.ORG_ID,
:NEW.ORG_NAME,
:NEW.LOT_NUM,
:NEW.ONBOARD_DATE,
:NEW.BIRTH_DATE,
:NEW.IS_REHIRE,
:NEW.LAST_ON_BOARD_DATE,
:NEW.ADDRESS,
:NEW.PHONE,
:NEW.PARTY,
:NEW.BIRTH_PLACE,
:NEW.SCHOOL,
:NEW.MAJOR,
:NEW.EDUCATION_LEVEL_CODE,
:NEW.HAS_CHILD,
:NEW.TEAM_LEADER_ID,
:NEW.TEAM_LEADER_EMPNO,
:NEW.TEAM_LEADER_UM,
:NEW.TEAM_LEADER_NAME,
:NEW.MANAGER_ID,
:NEW.MANAGER_EMPNO,
:NEW.MANAGER_UM,
:NEW.MANAGER_NAME,
:NEW.SERIES_CODE,
:NEW.CATEGORY_CODE,
:NEW.POSITION_TYPE_ID,
:NEW.POSITION_TYPE_DESC,
:NEW.POSITION_ID,
:NEW.POSITION_DESC,
:NEW.EMPL_CLASS,
:NEW.EMPL_CLASS_DESC,
:NEW.NW_DESC,
:NEW.MAR_STATUS,
:NEW.PAIC_MARISTS_DESC,
:NEW.SEX_CODE,
:NEW.RECRUIT_CHANNEL_DESC,
:NEW.RECRUIT_SOURCE_DESC,
:NEW.PAIC_NW_SW,
:NEW.XLATSHORTNAME,
:NEW.PLACE_CODE,
:NEW.TMR_BUSINESS_MODE_CODE,
:NEW.TMR_BUSINESS_MODE_DESC,
:NEW.TH_PRODUCT_TYPE_CODE,
:NEW.HY_BUSINESS_CATEGORY_CODE,
:NEW.HY_BUSINESS_SUBCATE_CODE,
:NEW.PC_ITEM_CODE,
:NEW.PC_ITEM_DESC,
:NEW.TMR_CATEGORY_CODE,
:NEW.TMR_BUSINESS_MODE_DESC,
:NEW.EDUCATION_LEVEL_CODE,
:NEW.ONLINE_DATE,
:NEW.PARTY_ROLE_CODE,
:NEW.PARTY_ROLE_DESC,
:NEW.CREATED_BY,
:NEW.CREATED_DATE,
:NEW.UPDATED_BY,
:NEW.UPDATED_DATE,
:NEW.PLACE_DESC,
:NEW.TH_PRODUCT_TYPE_DESC,
:NEW.HY_BUSINESS_CATEGORY_DESC,
:NEW.HY_BUSINESS_SUBCATE_DESC,
:NEW.CTI_CODE,
:NEW.TEL_NO,
:NEW.PLATFORM_CODE,
:NEW.STAFF_NO,
:NEW.SERIES_DESC,
:NEW.CATEGORY_DESC,
:NEW.B_CREATED_DATE,
:NEW.B_UPDATED_DATE,
:NEW.TMR_SKILL_LV_LIFE,
:NEW.AGENT_CERTIFI_NUM,
:NEW.DATE_CERTIFI_VALID,
:NEW.XB_TMR_BIZ_MODE_CODE,
:NEW.XB_WORK_PLACE_CODE,
:NEW.CALL_DISPLAY_NUMBER,
:NEW.ZONE_MANAGER_ID,
:NEW.ZONE_MANAGER_EMP,
:NEW.ZONE_MANAGER_UM,
:NEW.ZONE_MANAGER_NAME,
:NEW.UCP_CODE,
:NEW.CTS_PRODUCT_CODE,
:NEW.CTS_TMR_FUNCTION_CODE,
:NEW.OPERATION_TYPE,
:NEW.TFZX_ID,
:NEW.TFZX_NAME,
:NEW.TFQY_ID,
:NEW.TFQY_NAME,
:NEW.TCQY_ID,
:NEW.TCQY_NAME,
:NEW.TDEP_ID,
:NEW.TDEP_NAME,
:NEW.EGRP_ID,
:NEW.EGRP_NAME,
:NEW.ACCOUNT_MANAGER,
:NEW.ACCOUNT_MANAGER_LEVEL,
:NEW.DISA_RECOVERY_PLATFORM_CODE,
:NEW.DISA_RECOVERY_CTI_CODE,
'TJS');
END IF;
EXCEPTION
WHEN OTHERS THEN
V_SQLCODE := SQLCODE;
V_SQLERRM := SUBSTR(SQLERRM, 1, 200);
V_ERROR_COMMENT := 'Merge inf_employee umId:' || :NEW.paic_um_num;
INSERT INTO PADINFODATA.TR_ERROR_LOG
(ERROR_NO, --系统错误代码
ERROR_MESSAGE, --系统错误信息
TRIGGER_NAME, --出错的trigger
TRIGGER_USER, --出错的用户
TRIGGER_DATE, --出错的时间
ERROR_COMMENT --出错详细信息
)
VALUES
(V_SQLCODE,
V_SQLERRM,
'INF_EMPLOYEE_INTF_BI',
'PADINFODATA',
SYSDATE,
V_ERROR_COMMENT);
END;