数据还原整理:
删除表记录:
删除办理人员,历史变量,流程变量表
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'
activiti数据还原到首节点
最新推荐文章于 2024-07-31 10:17:32 发布