activiti复盘重推的一种简单实现方式:
设置流程的每一步让用户选择,比如一共有6步完成,用户选择从第4步开始复盘重推,那么把原来的推演oldId和4传到后台,
首先,后台生成一个新的推演id newDiscussId,根据 oldDIscussId,查询到所有推演过程中的非activiti数据(我们自定义应用中的数据),复制一份,用 newDiscussId存起来。
可以用执行sql的方式复制:Insert into Table1 (select replace(uuid(),'_',' '),t.colum2,t.colum3 from Table1 t where discussId = oldDIscussId)
复制完数据,就开始处理工作流:
工作流直接用 for循环,将4步之前的所有步骤都获取任务并完成即可。
for(int i=1;i<4;i++){
t = xxservice.getTask();
xxservice.completeTask(t);
}