組織同步的解決方案Ultimus之權限同步

CREATE OR REPLACE PACKAGE BODY GROUPSYNC_RIGHT is
PROCEDURE MyProcedure(Param1 IN NUMBER) is
a varchar2(100);
begin
a:='ddd';
end MyProcedure;

PROCEDURE GROUPSYNC_GPEMP(P_EMP_ID IN VARCHAR2,P_EMP_GROUP IN VARCHAR2,P_GROUP_TYPE IN NUMBER,P_CREATE_USER IN VARCHAR2,ERRMSG OUT VARCHAR2)
IS
H_EMP_ID NUMBER;
H_EMP_TYPE NUMBER;
H_GROUP_ID NUMBER;
BEGIN
IF P_EMP_ID IS NULL OR P_EMP_GROUP IS NULL OR P_GROUP_TYPE IS NULL OR P_CREATE_USER IS NULL THEN
ERRMSG:=0;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
RETURN;
END IF;
IF P_GROUP_TYPE>1 OR P_GROUP_TYPE<0 THEN
ERRMSG:=1;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
RETURN;
END IF;
SELECT COUNT(*) INTO H_GROUP_ID FROM RF_GROUP WHERE TRIM(GP_ID)=P_EMP_GROUP;
IF H_GROUP_ID=1 THEN
 IF P_GROUP_TYPE=1 THEN
  SELECT COUNT(*) INTO H_EMP_ID FROM RF_EMPLOYEE WHERE TRIM(EMP_NTACCNT)=LOWER(P_EMP_ID);
  IF H_EMP_ID=0 THEN
   ERRMSG:=3;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
   RETURN;
  ELSE
   SELECT COUNT(*) INTO H_EMP_TYPE FROM RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
   IF H_EMP_TYPE>0 THEN
      ERRMSG:=4;
   ELSE
    INSERT INTO RF_GP_EMP(GP_ID,EMP_ID,MEMBER_TYPE,TYPE,EMP_NTACCNT)VALUES(P_EMP_GROUP,P_EMP_ID,4,4,P_EMP_ID);
    ERRMSG:=10;
   END IF;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
   RETURN;
  END IF;
 END IF;
 IF P_GROUP_TYPE=0 THEN
    SELECT COUNT(*) INTO H_EMP_TYPE FROM RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
  IF H_EMP_TYPE<1 THEN
   ERRMSG:=5;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,ERRMSG);
   RETURN;
  ELSE
   DELETE RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
   ERRMSG:=10;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,ERRMSG);
   RETURN;
  END IF;
 END IF;
ELSE
 ERRMSG:=2;
 INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
 RETURN;
END IF;
EXCEPTION WHEN OTHERS THEN
ERRMSG:=6;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
END GROUPSYNC_GPEMP;
end;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13538095/viewspace-211695/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13538095/viewspace-211695/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值