IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[mps_sys_calc_cstpower]') AND type = 'P')
DROP PROCEDURE [dbo].[mps_sys_calc_cstpower]
GO
CREATE procedure [dbo].[mps_sys_calc_cstpower](
@cmpid int ,
@bizid int 
) as
begin
-- 计算新建人有哪些
 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
  exec drop_temp_table '#permittion' 
  create table #permittion(ptype varchar(30), ctgid int , pid int , pobjid1 int , pobjid2 int) 
  
create table #myuser(pptype varchar(30),cuid int, grp int) 
exec mps_gen_powerusers @cmpid,0,0,0,0,0,0,0,0,
'cst',@bizid,0,0,@bizid,'cstnew,cstshow,cstaudit,cstview,cstabolish,cstdelete,cstedit,cstdn,cstup' 
declare @users table(pptype varchar(30), ppgroup int , useruid int) 
insert into @users( pptype ,ppgroup,useruid) 
select distinct  case when pptype='cstshow' then 'cstview' else pptype end,grp , cuid from #myuser 


drop table #myuser
exec drop_temp_table '#permittion' 

  
  -- 首先要判断一下，当前用户是否可以新建  
  
  delete mps_csttype_users 
  where cp_ctid=@bizid and (not exists (select 1 from @users where pptype=cp_type and cp_cuid=useruid)) 
  
  insert into mps_csttype_users(cp_type,cp_ctid,cp_cuid)
  select distinct pptype,@bizid,useruid
  from @users  
  where (not exists (select 1 from mps_csttype_users where cp_ctid=@bizid and pptype=cp_type and cp_cuid=useruid)) 
  
  
  
end