CREATE OR REPLACE TRIGGER "SYNC_USERDEPTMENT_COPY"
|
before insert or update or delete on platformlt_deptperson
|
for each row
|
/*************************************************************
|
author: liucq
|
create time: 2015.06.01
|
description: Á´½ÓÀàÐÍ ²¿ÃÅÈËÔ±£¨deptperson£©ÉϵÄǰÖô¥·¢Æ÷
|
µ±Á´½ÓÀàÐÍ ²¿ÃÅÈËÔ±£¨deptperson£©±í·¢ÉúÌí¼Ó¡¢Ð޸ġ¢É¾³ýÊý¾Ýʱ£¬
|
ͬ²½¸üе½Óë½ÇÉ«¶ÔÓ¦µÄÁ´½ÓÀàÐÍ ²¿ÃÅÓû§£¨deptuser£©
|
|
logic rules:
|
ÈËÔ± £¨person£© ÓжÔÓ¦µÄ Óû§£¨user£© ´æÔÚʱ£¬
|
Ôò½« ²¿ÃÅÓëÈËÔ±µÄÁ´½Ó¹ØÏµ£¨deptperson£© ¸´ÖÆÒ»Ìõµ½ ²¿ÃÅÓëÓû§µÄÁ´½Ó¹ØÏµ £¨deptuser£©ÖÐ
|
last modifyer: 2017.06.07
|
last modify time: 2017.06.07
|
change history:
|
2017.06.07 xchao Ìí¼Ó×¢ÊÍ
|
*************************************************************/
|
declare
|
deptUserTabCount number;
|
userName varchar2(128);
|
userCount number;
|
useroid varchar2(36);
|
userRevisionOid varchar2(36);
|
userNameOid varchar2(36);
|
userBtmname varchar2(36);
|
begin
|
select count(*) into deptUserTabCount from user_tables where lower(table_name) = 'platformlt_deptuser';
|
if deptUserTabCount = 0 then
|
return;
|
else
|
if inserting then
|
select p.id into userName from platformbtm_person p where p.oid = :new.t_oid;
|
select count(*) into userCount from platformbtm_user u where u.id = userName;
|
if userCount = 0 then
|
return;
|
else
|
select p.oid, p.revisionoid, p.nameoid, p.btmname into useroid, userRevisionOid, userNameOid, userBtmname from platformbtm_user p where p.id = userName;
|
insert into platformlt_deptuser
|
values
|
(get_uuid,
|
'',
|
'',
|
'',
|
'',
|
:new.f_oid,
|
:new.f_revisionoid,
|
:new.f_nameoid,
|
:new.f_btwname,
|
useroid,
|
userRevisionOid,
|
userNameOid,
|
userBtmname,
|
'',
|
:new.isparttime,
|
:new.refpost
|
);
|
end if;
|
end if;
|
if deleting then
|
-- Ö±½Ó¸ù¾Ýf_oid¡¢t_oidÔÚ deptuserÁ´½Ó±íÖг¢ÊÔɾ³ý
|
delete from platformlt_deptuser dp
|
where dp.f_oid = :old.f_oid and dp.t_oid = :old.t_oid;
|
end if;
|
end if;
|
end;
|
/
|