activiti工作流

remyyoung 发布于 2017/06/21 15:02
阅读 94
收藏 0

业务描述:

        假设有不同的审批流程,如请假审批流程、线下汇款审批流程。填写申请后提交,在请假数据表和汇款表里保存流程实例ID(processInstanceId )来和流程关联。

        当用户登录系统查询个人任务时,查询到的任务是所有的任务(包括请假和汇款),以前就一个请假流程的时候,我是通过拿到task对应的流程实例ID来检索 请假表中的数据记录来对记录操作的。现在业务表多了,在这么查询效率上肯定不行了,记录中的select * from businessTable where processInstanceId in (processInstanceIds );毕竟processInstanceIds 里包含了所有task(请假,汇款)对应的流程实例id。

        得到 processInstanceIds 的思路是,查询办理人的task,得到list<task>,然后得到每个task的processInstanceId ,最后得到的是processInstanceId 的list集合(processInstanceIds

加载中
0
remyyoung
remyyoung

act_ru_task表中有一列proc_def_id,通过这个和办理人可以查询到只和某个业务有关的task

这个id可以通过

import org.activiti.engine.RepositoryService;

public class ActivitiDemo{

        @Autowired
        private RepositoryService repositoryService;

        public viod getXXX(){

                ProcessDefinition pd =repositoryService.createProcessDefinitionQuery()

                                                                .latestVersion().processDefinitionKey(key).singleResult();
                String processDefinitionId = pd.getId();

        }

}

根据办理人和proc_def_id可以查到只和某个任务相关的task

 

返回顶部
顶部