create or replace trigger "SYNC_USERORG_COPY"
|
before insert or update or delete on pluserdept
|
for each row
|
/*************************************************************
|
author: liucq
|
create time: 2015.06.01
|
description: Ôʼ²¿ÃÅÓû§±í£¨pluserdept£©ÉϵÄǰÖô¥·¢Æ÷£¬
|
µ±²¿ÃÅÓû§±í·¢ÉúÌí¼Ó¡¢Ð޸ġ¢É¾³ýÊý¾Ýʱ£¬
|
ͬ²½¸üе½Ó벿ÃÅÓû§¶ÔÓ¦µÄ Á´½ÓÀàÐÍ Èº×éÓû§(orguser)±í
|
logic rules:
|
last modifyer: 2017.06.07
|
last modify time: 2017.06.07
|
change history:
|
2017.06.07 xchao Ìí¼Ó×¢ÊÍ
|
*************************************************************/
|
declare
|
userorgTabCount number;
|
userOid varchar2(64);
|
userCount number;
|
userName varchar2(128);
|
deptCount varchar2(64);
|
orgCount number;
|
begin
|
select count(*) into userorgTabCount from user_tables where lower(table_name) = 'platformlt_orguser';
|
if userorgTabCount = 0 then
|
return;
|
else
|
-- Åжϲ¿ÃÅoidÔÚ²¿ÃűíÖÐÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬Ôò²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into deptCount from pldept d where d.pluid = :new.pldeptuid;
|
if deptCount = 0 then
|
return;
|
end if;
|
|
-- Åжϲ¿ÃŶÔÓ¦µÄoidÔÚ ÒµÎñÀàÐÍȺ×飨organization£©ÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚʱ£¬²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into orgCount from platformbtm_organization org where org.oid = :new.pldeptuid;
|
if orgCount = 0 then
|
return;
|
end if;
|
|
-- Óû§²¿ÃŹØÏµÖУ¬ÐÂÓû§oidÔÚuser±íÖв»´æÔÚʱ£¬²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into userCount from pluser u where u.pluid = :new.pluseruid;
|
if userCount = 0 then
|
return;
|
end if;
|
|
-- È¡¸ù¾Ýoid´ÓÓû§±í£¨pluser£©±íÖÐÈ¡³öÓû§Ãû
|
select u.plusername into userName from pluser u where u.pluid = :new.pluseruid;
|
-- Èç¹ûÓû§Ãû¶ÔÓ¦µÄÊý¾ÝÔÚÒµÎñÀàÐÍÓû§£¨user£©Öв»´æÔÚʱ£¬Ò²²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into userCount from platformbtm_user u where u.id = userName;
|
if userCount = 0 then
|
return;
|
end if;
|
|
-- н¨µÄÊý¾ÝÓû§oidÔÚÒµÎñÀàÐÍ Óû§£¨user£©ÖдæÔÚ×Å
|
-- È¡³ö ÒµÎñÀàÐÍÓû§£¨user£©µÄoid
|
select u.oid into userOid from platformbtm_user u where u.id = userName;
|
|
if inserting then
|
-- ²åÈëÊý¾Ýµ½ Á´½ÓÀàÐÍ orguser£¨Ô²¿ÃÅÓëÓû§¹ØÏµ£©
|
insert into platformlt_orguser
|
values
|
(get_uuid,
|
'',
|
'',
|
'',
|
'',
|
:new.pldeptuid,
|
'',
|
'',
|
'organization',
|
userOid,
|
'',
|
'',
|
'user',
|
''
|
);
|
end if;
|
|
if deleting then
|
-- ´Ó Á´½ÓÀàÐÍ orguser£¨Ô²¿ÃÅÓëÓû§¹ØÏµ£©ÖÐɾ³ýÊý¾Ý
|
delete from platformlt_orguser ou
|
where ou.f_oid = :old.pldeptuid and ou.t_oid = :old.pluseruid;
|
end if;
|
|
end if;
|
|
end;
|
/
|
create or replace trigger "SYNC_USERORG_COPY"
|
before insert or update or delete on pluserdept
|
for each row
|
/*************************************************************
|
author: liucq
|
create time: 2015.06.01
|
description: Ôʼ²¿ÃÅÓû§±í£¨pluserdept£©ÉϵÄǰÖô¥·¢Æ÷£¬
|
µ±²¿ÃÅÓû§±í·¢ÉúÌí¼Ó¡¢Ð޸ġ¢É¾³ýÊý¾Ýʱ£¬
|
ͬ²½¸üе½Ó벿ÃÅÓû§¶ÔÓ¦µÄ Á´½ÓÀàÐÍ Èº×éÓû§(orguser)±í
|
logic rules:
|
last modifyer: 2017.06.07
|
last modify time: 2017.06.07
|
change history:
|
2017.06.07 xchao Ìí¼Ó×¢ÊÍ
|
*************************************************************/
|
declare
|
userorgTabCount number;
|
userOid varchar2(64);
|
userCount number;
|
userName varchar2(128);
|
deptCount varchar2(64);
|
orgCount number;
|
begin
|
select count(*) into userorgTabCount from user_tables where lower(table_name) = 'platformlt_orguser';
|
if userorgTabCount = 0 then
|
return;
|
else
|
if inserting then
|
-- Åжϲ¿ÃÅoidÔÚ²¿ÃűíÖÐÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬Ôò²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into deptCount from pldept d where d.pluid = :new.pldeptuid;
|
if deptCount = 0 then
|
return;
|
end if;
|
|
-- Åжϲ¿ÃŶÔÓ¦µÄoidÔÚ ÒµÎñÀàÐÍȺ×飨organization£©ÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚʱ£¬²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into orgCount from platformbtm_organization org where org.oid = :new.pldeptuid;
|
if orgCount = 0 then
|
return;
|
end if;
|
|
-- Óû§²¿ÃŹØÏµÖУ¬ÐÂÓû§oidÔÚuser±íÖв»´æÔÚʱ£¬²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into userCount from pluser u where u.pluid = :new.pluseruid;
|
if userCount = 0 then
|
return;
|
end if;
|
|
-- È¡¸ù¾Ýoid´ÓÓû§±í£¨pluser£©±íÖÐÈ¡³öÓû§Ãû
|
select u.plusername into userName from pluser u where u.pluid = :new.pluseruid;
|
-- Èç¹ûÓû§Ãû¶ÔÓ¦µÄÊý¾ÝÔÚÒµÎñÀàÐÍÓû§£¨user£©Öв»´æÔÚʱ£¬Ò²²»½øÐÐÈκδ¦Àí£¬Ö±½Ó·µ»Ø
|
select count(*) into userCount from platformbtm_user u where u.id = userName;
|
if userCount = 0 then
|
return;
|
end if;
|
|
-- н¨µÄÊý¾ÝÓû§oidÔÚÒµÎñÀàÐÍ Óû§£¨user£©ÖдæÔÚ×Å
|
-- È¡³ö ÒµÎñÀàÐÍÓû§£¨user£©µÄoid
|
select u.oid into userOid from platformbtm_user u where u.id = userName;
|
|
-- ²åÈëÊý¾Ýµ½ Á´½ÓÀàÐÍ orguser£¨Ô²¿ÃÅÓëÓû§¹ØÏµ£©
|
insert into platformlt_orguser
|
values
|
(get_uuid,
|
'',
|
'',
|
'',
|
'',
|
:new.pldeptuid,
|
'',
|
'',
|
'organization',
|
userOid,
|
'',
|
'',
|
'user',
|
''
|
);
|
end if;
|
|
if deleting then
|
-- ´Ó Á´½ÓÀàÐÍ orguser£¨Ô²¿ÃÅÓëÓû§¹ØÏµ£©ÖÐɾ³ýÊý¾Ý
|
delete from platformlt_orguser ou
|
where ou.f_oid = :old.pldeptuid and ou.t_oid = :old.pluseruid;
|
end if;
|
|
end if;
|
|
end;
|
/
|