activiti数据还原到首节点

数据还原整理:


删除表记录:
删除办理人员,历史变量,流程变量表
DELETE FROM  act_ru_identitylink  
DELETE FROM  act_hi_varinst 
DELETE FROM  act_ru_variable 

更新表记录:
1.更新流程实例表到首节点
UPDATE act_ru_execution set ACT_ID_=#{首节点id} WHERE BUSINESS_KEY_=#{单据id}

2.更新任务表到首节点
UPDATE act_ru_task INNER JOIN act_ru_execution on act_ru_task.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  set act_ru_task.TASK_DEF_KEY_='首节点id' WHERE act_ru_execution.BUSINESS_KEY_='单据id'

3.更新任务表人物办理人
UPDATE act_ru_task INNER JOIN act_ru_execution on act_ru_task.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  
set act_ru_task.ASSIGNEE_=#{单据提交人} WHERE act_ru_execution.BUSINESS_KEY_=#{单据id}

4.删除历史活动表多余记录
delete from act_hi_actinst where id_ not in (select * from(select id_ from act_hi_actinst where PROC_INST_ID_=#{流程id(processInstanceId)}  ORDER BY START_TIME_  asc LIMIT 0,2)as foo )

5.删除历史人物表多余记录
delete from act_hi_taskinst where id_  not in (select * from(select id_ from act_hi_taskinst where PROC_INST_ID_=#{流程id(processInstanceId)}  ORDER BY START_TIME_  asc LIMIT 0,1)as foo )


6.更新历史任务表得endtime和duration
UPDATE act_hi_taskinst INNER JOIN act_ru_execution on act_hi_taskinst.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  
set act_hi_taskinst.END_TIME_=null,act_hi_taskinst.DURATION_=null WHERE act_ru_execution.BUSINESS_KEY_=#{单据id}

7.更新历史活动表得endtime和duration
UPDATE act_hi_actinst INNER JOIN act_ru_execution on act_hi_actinst.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  
set act_hi_actinst.END_TIME_=null,act_hi_actinst.DURATION_=null WHERE ACT_TYPE_='userTask' and act_ru_execution.BUSINESS_KEY_=#{单据id}





UPDATE act_hi_taskinst INNER JOIN act_ru_execution on act_hi_taskinst.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  
set act_hi_taskinst.ASSIGNEE_='lsc' WHERE act_ru_execution.BUSINESS_KEY_='单据id'

UPDATE act_hi_actinst INNER JOIN act_ru_execution on act_hi_actinst.PROC_INST_ID_=act_ru_execution.PROC_INST_ID_  
set act_hi_actinst.ASSIGNEE_='单据提交人' WHERE act_ru_execution.BUSINESS_KEY_='单据id'

猜你喜欢

转载自blog.csdn.net/weixin_38441551/article/details/86619751