IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[order_90_855_wrklink_after]') AND type = 'P')
DROP PROCEDURE [dbo].[order_90_855_wrklink_after]
GO

-- 生成时间:2018-05-02 17:22:34 by ebs-core  
CREATE  procedure order_90_855_wrklink_after(
     @cmpid int, 
     @useruid int,
     @bizid int, 
     @ordid bigint, 
     @wrkid int, 
     @jbid bigint, 
     @wsid int, 
     @wsstatus nvarchar(50) 
  ) 
as  
begin  
set nocount on  
declare @nonedate datetime 
set @nonedate = CONVERT(datetime,'1910-1-1')
declare @ord2group2 nvarchar(50) 
set @ord2group2 = '' 
declare @sys_recid bigint 
set @sys_recid = 0 
  
 --- 以下是预处理事件中的临时表
 
exec drop_temp_table '#detail2' 
select *,null recid into #detail2 from order_90_2 where ord2_ordid=@ordid  

 alter table #detail2 add default 0 for ord2_fbizid   alter table #detail2 add default 0 for ord2_ford2tag   alter table #detail2 add default 0 for ord2_order   alter table #detail2 add default 0 for ord2_rbizid   alter table #detail2 add default 0 for ord2_rord2tag   alter table #detail2 add default 0 for ord2_tag   alter table #detail2 add default '1900-1-1' for ord2_date   alter table #detail2 add default '1900-1-1' for ord2_jssj   alter table #detail2 add default '1900-1-1' for ord2_kssj   alter table #detail2 add default '1900-1-1' for ord2_updated   alter table #detail2 add default 0 for ord2_fatherord2id   alter table #detail2 add default 0 for ord2_ford2id   alter table #detail2 add default 0 for ord2_fordid   alter table #detail2 add default 0 for ord2_ordid   alter table #detail2 add default 0 for ord2_rord2id   alter table #detail2 add default 0 for ord2_rordid   alter table #detail2 add default '' for ord2_code   alter table #detail2 add default '' for ord2_ftype   alter table #detail2 add default '' for ord2_key   alter table #detail2 add default '' for ord2_rtype   alter table #detail2 add default '' for ord2_tags   alter table #detail2 add default '' for ord2_bz   alter table #detail2 add default '' for ord2_caption   alter table #detail2 add default '' for ord2_group   alter table #detail2 add default '' for ord2_status   alter table #detail2 add default '' for ord2_xclx   alter table #detail2 add default '' for ord2_xcmdd   alter table #detail2 add default '' for ord2_xcms   alter table #detail2 add default '' for ord2_dpbh 
update #detail2 set recid=ord2_id 
declare @detail2_old  table (ord2_id bigint) 
insert  into @detail2_old (ord2_id) select ord2_id from #detail2

exec drop_temp_table '#detail3' 
select *,null recid into #detail3 from order_90_3 where ord2_ordid=@ordid  

 alter table #detail3 add default 0 for ord2_fbizid   alter table #detail3 add default 0 for ord2_ford2tag   alter table #detail3 add default 0 for ord2_order   alter table #detail3 add default 0 for ord2_rbizid   alter table #detail3 add default 0 for ord2_rord2tag   alter table #detail3 add default 0 for ord2_tag   alter table #detail3 add default '1900-1-1' for ord2_date   alter table #detail3 add default '1900-1-1' for ord2_jssj   alter table #detail3 add default '1900-1-1' for ord2_kssj   alter table #detail3 add default '1900-1-1' for ord2_updated   alter table #detail3 add default 0 for ord2_fatherord2id   alter table #detail3 add default 0 for ord2_ford2id   alter table #detail3 add default 0 for ord2_fordid   alter table #detail3 add default 0 for ord2_ordid   alter table #detail3 add default 0 for ord2_rord2id   alter table #detail3 add default 0 for ord2_rordid   alter table #detail3 add default 0 for ord2_mdordid   alter table #detail3 add default 0 for ord2_xdordid   alter table #detail3 add default 0 for ord2_mdid   alter table #detail3 add default '' for ord2_code   alter table #detail3 add default '' for ord2_ftype   alter table #detail3 add default '' for ord2_key   alter table #detail3 add default '' for ord2_rtype   alter table #detail3 add default '' for ord2_tags   alter table #detail3 add default '' for ord2_bz   alter table #detail3 add default '' for ord2_caption   alter table #detail3 add default '' for ord2_group   alter table #detail3 add default '' for ord2_status   alter table #detail3 add default '' for ord2_xclx   alter table #detail3 add default '' for ord2_xcmdd   alter table #detail3 add default '' for ord2_xcms   alter table #detail3 add default '' for ord2_dpbh 
update #detail3 set recid=ord2_id 
declare @detail3_old  table (ord2_id bigint) 
insert  into @detail3_old (ord2_id) select ord2_id from #detail3

 ---- 以下是开发人员写的 before link job 事件 --------------
 /*将变更后的行程明细反写到行程计划中*/
/*更新*/
update tar  with(rowlock)
set tar.ord2_xclx=src.ord2_xclx,
    tar.ord2_xcmdd =src.ord2_xcmdd,
    tar.ord2_xcms = src.ord2_xcms,
    tar.ord2_kssj = src.ord2_kssj,
    tar.ord2_jssj = src.ord2_jssj,
    tar.ord2_bz = src.ord2_bz,
    tar.ord2_mdid = src.ord2_mdid,
    tar.ord2_dpbh = src.ord2_dpbh,
    tar.ord2_status = src.ord2_status
from order_89_2 tar,#detail3 src
where 
    tar.ord2_ordid=src.ord2_fordid
and tar.ord2_id=src.ord2_ford2id

/*将数据反写到行程计划明细中*/
/*对删除的数据的处理*/
/*delete order_89_2 from #detail3 n where order_89_2.ord2_id=n.ord2_ford2id and n.ord2_cz='删除'*/
update src
        set src.ord2_status = n.ord2_status 
from order_89_2 src,#detail2 n
where   src.ord2_id = n.ord2_ford2id        


/*将新增的数据反写到行程计划明细中*/
insert into order_89_2 (ord2_ordid,ord2_xclx,ord2_xcmdd,ord2_xcms,ord2_kssj,ord2_jssj,ord2_bz,ord2_tag,ord2_dpbh,ord2_mdid)
select distinct thisorder.ord2_fordid,thisorder.ord2_xclx,thisorder.ord2_xcmdd,thisorder.ord2_xcms,thisorder.ord2_kssj,thisorder.ord2_jssj,
thisorder.ord2_bz,2,thisorder.ord2_dpbh,thisorder.ord2_mdid
from #detail3 thisorder with(nolock),order_89_2 b
where  b.ord2_ordid=thisorder.ord2_fordid
and thisorder.ord2_ford2id=0





 ---- 以上是开发人员写的 before libk job 事件 --------------
 
  
 
 set @ord2group2='' 
 select top 1 @ord2group2=ord2_group from #detail2 where ord2_group>'' 
 set @ord2group2 = isnull(@ord2group2 , '') 

 insert into order_90_2(ord2_date,ord2_updated,ord2_tag,ord2_group,ord2_ordid,ord2_fbizid,ord2_ford2tag,ord2_order,ord2_rbizid,ord2_rord2tag,ord2_jssj,ord2_kssj,ord2_fatherord2id,ord2_ford2id,ord2_fordid,ord2_rord2id,ord2_rordid,ord2_code,ord2_ftype,ord2_key,ord2_rtype,ord2_tags,ord2_bz,ord2_caption,ord2_status,ord2_xclx,ord2_xcmdd,ord2_xcms,ord2_dpbh) 
 select case when new.ord2_date>getdate()-40000 then new.ord2_date else getdate() end ,getdate(),2,
    case when new.ord2_group>'' then new.ord2_group else @ord2group2 end , @ordid,new.ord2_fbizid,new.ord2_ford2tag,new.ord2_order,new.ord2_rbizid,new.ord2_rord2tag,new.ord2_jssj,new.ord2_kssj,new.ord2_fatherord2id,new.ord2_ford2id,new.ord2_fordid,new.ord2_rord2id,new.ord2_rordid,new.ord2_code,new.ord2_ftype,new.ord2_key,new.ord2_rtype,new.ord2_tags,new.ord2_bz,new.ord2_caption,new.ord2_status,new.ord2_xclx,new.ord2_xcmdd,new.ord2_xcms,new.ord2_dpbh
 from #detail2 new where recid is null 

update old set 
ord2_fbizid=case when new.ord2_fbizid is null or new.ord2_fbizid = -999999999  then old.ord2_fbizid else new.ord2_fbizid end,ord2_ford2tag=case when new.ord2_ford2tag is null or new.ord2_ford2tag = -999999999  then old.ord2_ford2tag else new.ord2_ford2tag end,ord2_order=case when new.ord2_order is null or new.ord2_order = -999999999  then old.ord2_order else new.ord2_order end,ord2_rbizid=case when new.ord2_rbizid is null or new.ord2_rbizid = -999999999  then old.ord2_rbizid else new.ord2_rbizid end,ord2_rord2tag=case when new.ord2_rord2tag is null or new.ord2_rord2tag = -999999999  then old.ord2_rord2tag else new.ord2_rord2tag end,ord2_jssj=case when new.ord2_jssj is null or new.ord2_jssj = @nonedate then old.ord2_jssj else new.ord2_jssj end,ord2_kssj=case when new.ord2_kssj is null or new.ord2_kssj = @nonedate then old.ord2_kssj else new.ord2_kssj end,ord2_fatherord2id=case when new.ord2_fatherord2id is null or new.ord2_fatherord2id = -999999999  then old.ord2_fatherord2id else new.ord2_fatherord2id end,ord2_ford2id=case when new.ord2_ford2id is null or new.ord2_ford2id = -999999999  then old.ord2_ford2id else new.ord2_ford2id end,ord2_fordid=case when new.ord2_fordid is null or new.ord2_fordid = -999999999  then old.ord2_fordid else new.ord2_fordid end,ord2_rord2id=case when new.ord2_rord2id is null or new.ord2_rord2id = -999999999  then old.ord2_rord2id else new.ord2_rord2id end,ord2_rordid=case when new.ord2_rordid is null or new.ord2_rordid = -999999999  then old.ord2_rordid else new.ord2_rordid end,ord2_code=case when new.ord2_code is null or new.ord2_code = '_none_'  then old.ord2_code else new.ord2_code end,ord2_ftype=case when new.ord2_ftype is null or new.ord2_ftype = '_none_'  then old.ord2_ftype else new.ord2_ftype end,ord2_key=case when new.ord2_key is null or new.ord2_key = '_none_'  then old.ord2_key else new.ord2_key end,ord2_rtype=case when new.ord2_rtype is null or new.ord2_rtype = '_none_'  then old.ord2_rtype else new.ord2_rtype end,ord2_tags=case when new.ord2_tags is null or new.ord2_tags = '_none_'  then old.ord2_tags else new.ord2_tags end,ord2_bz=case when new.ord2_bz is null or new.ord2_bz = '_none_'  then old.ord2_bz else new.ord2_bz end,ord2_caption=case when new.ord2_caption is null or new.ord2_caption = '_none_'  then old.ord2_caption else new.ord2_caption end,ord2_group=case when new.ord2_group is null or new.ord2_group = '_none_'  then old.ord2_group else new.ord2_group end,ord2_status=case when new.ord2_status is null or new.ord2_status = '_none_'  then old.ord2_status else new.ord2_status end,ord2_xclx=case when new.ord2_xclx is null or new.ord2_xclx = '_none_'  then old.ord2_xclx else new.ord2_xclx end,ord2_xcmdd=case when new.ord2_xcmdd is null or new.ord2_xcmdd = '_none_'  then old.ord2_xcmdd else new.ord2_xcmdd end,ord2_xcms=case when new.ord2_xcms is null or new.ord2_xcms = '_none_'  then old.ord2_xcms else new.ord2_xcms end,ord2_dpbh=case when new.ord2_dpbh is null or new.ord2_dpbh = '_none_'  then old.ord2_dpbh else new.ord2_dpbh end
from order_90_2 old , #detail2 new  
where old.ord2_id=new.ord2_id and (new.recid is not null)   

delete order_90_2
from  (select ord2_id from @detail2_old  where ord2_id not in ( 
select recid from #detail2)) a where order_90_2.ord2_id=a.ord2_id 

 set @ord2group2='' 
 select top 1 @ord2group2=ord2_group from #detail3 where ord2_group>'' 
 set @ord2group2 = isnull(@ord2group2 , '') 

 insert into order_90_3(ord2_date,ord2_updated,ord2_tag,ord2_group,ord2_ordid,ord2_fbizid,ord2_ford2tag,ord2_order,ord2_rbizid,ord2_rord2tag,ord2_jssj,ord2_kssj,ord2_fatherord2id,ord2_ford2id,ord2_fordid,ord2_rord2id,ord2_rordid,ord2_mdordid,ord2_xdordid,ord2_mdid,ord2_code,ord2_ftype,ord2_key,ord2_rtype,ord2_tags,ord2_bz,ord2_caption,ord2_status,ord2_xclx,ord2_xcmdd,ord2_xcms,ord2_dpbh) 
 select case when new.ord2_date>getdate()-40000 then new.ord2_date else getdate() end ,getdate(),3,
    case when new.ord2_group>'' then new.ord2_group else @ord2group2 end , @ordid,new.ord2_fbizid,new.ord2_ford2tag,new.ord2_order,new.ord2_rbizid,new.ord2_rord2tag,new.ord2_jssj,new.ord2_kssj,new.ord2_fatherord2id,new.ord2_ford2id,new.ord2_fordid,new.ord2_rord2id,new.ord2_rordid,new.ord2_mdordid,new.ord2_xdordid,new.ord2_mdid,new.ord2_code,new.ord2_ftype,new.ord2_key,new.ord2_rtype,new.ord2_tags,new.ord2_bz,new.ord2_caption,new.ord2_status,new.ord2_xclx,new.ord2_xcmdd,new.ord2_xcms,new.ord2_dpbh
 from #detail3 new where recid is null 

update old set 
ord2_fbizid=case when new.ord2_fbizid is null or new.ord2_fbizid = -999999999  then old.ord2_fbizid else new.ord2_fbizid end,ord2_ford2tag=case when new.ord2_ford2tag is null or new.ord2_ford2tag = -999999999  then old.ord2_ford2tag else new.ord2_ford2tag end,ord2_order=case when new.ord2_order is null or new.ord2_order = -999999999  then old.ord2_order else new.ord2_order end,ord2_rbizid=case when new.ord2_rbizid is null or new.ord2_rbizid = -999999999  then old.ord2_rbizid else new.ord2_rbizid end,ord2_rord2tag=case when new.ord2_rord2tag is null or new.ord2_rord2tag = -999999999  then old.ord2_rord2tag else new.ord2_rord2tag end,ord2_jssj=case when new.ord2_jssj is null or new.ord2_jssj = @nonedate then old.ord2_jssj else new.ord2_jssj end,ord2_kssj=case when new.ord2_kssj is null or new.ord2_kssj = @nonedate then old.ord2_kssj else new.ord2_kssj end,ord2_fatherord2id=case when new.ord2_fatherord2id is null or new.ord2_fatherord2id = -999999999  then old.ord2_fatherord2id else new.ord2_fatherord2id end,ord2_ford2id=case when new.ord2_ford2id is null or new.ord2_ford2id = -999999999  then old.ord2_ford2id else new.ord2_ford2id end,ord2_fordid=case when new.ord2_fordid is null or new.ord2_fordid = -999999999  then old.ord2_fordid else new.ord2_fordid end,ord2_rord2id=case when new.ord2_rord2id is null or new.ord2_rord2id = -999999999  then old.ord2_rord2id else new.ord2_rord2id end,ord2_rordid=case when new.ord2_rordid is null or new.ord2_rordid = -999999999  then old.ord2_rordid else new.ord2_rordid end,ord2_mdordid=case when new.ord2_mdordid is null or new.ord2_mdordid = -999999999  then old.ord2_mdordid else new.ord2_mdordid end,ord2_xdordid=case when new.ord2_xdordid is null or new.ord2_xdordid = -999999999  then old.ord2_xdordid else new.ord2_xdordid end,ord2_mdid=case when new.ord2_mdid is null or new.ord2_mdid = -999999999  then old.ord2_mdid else new.ord2_mdid end,ord2_code=case when new.ord2_code is null or new.ord2_code = '_none_'  then old.ord2_code else new.ord2_code end,ord2_ftype=case when new.ord2_ftype is null or new.ord2_ftype = '_none_'  then old.ord2_ftype else new.ord2_ftype end,ord2_key=case when new.ord2_key is null or new.ord2_key = '_none_'  then old.ord2_key else new.ord2_key end,ord2_rtype=case when new.ord2_rtype is null or new.ord2_rtype = '_none_'  then old.ord2_rtype else new.ord2_rtype end,ord2_tags=case when new.ord2_tags is null or new.ord2_tags = '_none_'  then old.ord2_tags else new.ord2_tags end,ord2_bz=case when new.ord2_bz is null or new.ord2_bz = '_none_'  then old.ord2_bz else new.ord2_bz end,ord2_caption=case when new.ord2_caption is null or new.ord2_caption = '_none_'  then old.ord2_caption else new.ord2_caption end,ord2_group=case when new.ord2_group is null or new.ord2_group = '_none_'  then old.ord2_group else new.ord2_group end,ord2_status=case when new.ord2_status is null or new.ord2_status = '_none_'  then old.ord2_status else new.ord2_status end,ord2_xclx=case when new.ord2_xclx is null or new.ord2_xclx = '_none_'  then old.ord2_xclx else new.ord2_xclx end,ord2_xcmdd=case when new.ord2_xcmdd is null or new.ord2_xcmdd = '_none_'  then old.ord2_xcmdd else new.ord2_xcmdd end,ord2_xcms=case when new.ord2_xcms is null or new.ord2_xcms = '_none_'  then old.ord2_xcms else new.ord2_xcms end,ord2_dpbh=case when new.ord2_dpbh is null or new.ord2_dpbh = '_none_'  then old.ord2_dpbh else new.ord2_dpbh end
from order_90_3 old , #detail3 new  
where old.ord2_id=new.ord2_id and (new.recid is not null)   

delete order_90_3
from  (select ord2_id from @detail3_old  where ord2_id not in ( 
select recid from #detail3)) a where order_90_3.ord2_id=a.ord2_id 

 
--- 清除临时表 
exec drop_temp_table '#detail2'
exec drop_temp_table '#detail3'

set nocount off 
end