Activiti(工作流)如何关联业务表

 注(version:5.15.1)

1.部署流程(定义流程)

复制代码
1 InputStream in = new FileInputStream(file);
2 ZipInputStream zipInputStream = new ZipInputStream(in);
3 processEngine.this.getRepositoryService()
4              .createDeployment()
5              .name(processName)
6              .addZipInputStream(zipInputStream)
7              .deploy();
复制代码

 

2.启动流程(所定义流程的一个实例)

1 processEngine().getRuntimeService()
2          /**第二个参数是businesskey:业务工单的主键,作为区分,一般流程名+id,当然如果id为uuid则无所谓 */
3          .startProcessInstanceByKey("leave", "leaveBill", variables);

这样,业务表就与activiti的表关联起来了(一般为了方便,业务表里也会存一个processId)

其内部表之间关联如下

 

3.查看某人的任务

复制代码
 1 /**
 2      * 当前登录人登录系统以后要执行的任务(包含个人任务+组任务)
 3      */
 4     public List<Task> getTasksByAssignee(String userId){
 5         List<Task> assigneeTasks =  this.getTaskService()
 6                 .createTaskQuery()
 7                 .taskAssignee(userId)//参与者,个人任务查询 
 8                 .orderByTaskCreateTime()
 9                 .desc()
10                 .list();
11         List<Task> candidateTasks = this.getTaskService() 
12                 .createTaskQuery()  
13                 .taskCandidateUser(userId)//参与者,组任务查询  
14                 .orderByTaskCreateTime()
15                 .desc()
16                 .list();
17         assigneeTasks.addAll(candidateTasks);
18         return assigneeTasks;
19     }
复制代码

 

4.根据task -》 processInstance  -》 businessKey -》 业务表

复制代码
 1     /**
 2      * 根据taskId查找businessKey
 3      */
 4     public String getBusinessKeyByTaskId(String taskId){
 5         Task task = this.processEngine
 6                 .getTaskService()
 7                 .createTaskQuery()
 8                 .taskId(taskId)
 9                 .singleResult();
10         ProcessInstance pi = this.getRuntimeService()
11                 .createProcessInstanceQuery()
12                 .processInstanceId(task.getProcessInstanceId())
13                 .singleResult();
14         return pi.getBusinessKey();
15     }
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值