// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
identityService.setAuthenticatedUserId(userId);
taskService.createTaskQuery().taskCandidateOrAssigned(userId).list();
TaskListener 这个接口 和这个JavaDelegate 有啥区别啊。监听器不是分为流程监听器和任务监听器 JavaDelegate 这个接口是做什么的呢?
@ for (HistoricProcessInstance histTask : historicProcessInstanceList) {
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery().taskAssignee(histTask.get).
蓝色的烟(51140145) 15:51:18
在这个下边怎么取这个历史
?<[email protected]> 15:57:46
你是需要根据办理人查询呢 还是需要根据其他的进行查询, List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery().taskAssignee(histTask.get).
时根据办理人 查询办理过的 Task
蓝色的烟(51140145) 16:00:20
是提交人
?<[email protected]> 16:01:04
提交人不是办理人么
蓝色的烟(51140145) 16:02:48
不是办理人啊,就是他提交的单据,看看都是审批到哪里了
?<[email protected]> 16:03:06
发起人啊
蓝色的烟(51140145) 16:03:40
List<HistoricProcessInstance> historicProcessInstanceList =
historyService.createHistoricProcessInstanceQuery().startedBy(userName)
.orderByProcessInstanceStartTime().desc().listPage((int)params.get("offset"), (int)params.get("limit"));
List<StartTaskVO> startTaskVOS = new ArrayList<>();
for (HistoricProcessInstance histTask : historicProcessInstanceList) {
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery().processInstanceId(histTask.getProcessDefinitionId()).list();
蓝色的烟(51140145) 16:03:48
对,这个取出来全是空
蓝色的烟(51140145) 16:04:03
list 是空
?<[email protected]> 16:04:37
按我理解 你们业务上每个单据应该都存储一个流程实例ID吧。使用流程实例id 查
蓝色的烟(51140145) 16:05:16
哪个
蓝色的烟(51140145) 16:05:18
histTask.getBusinessKey() == 7853930F259329F9E050007F01002619
histTask.getProcessDefinitionId() == project:14:370011
histTask.getProcessDefinitionKey() == project
histTask.getProcessDefinitionName() == 项目审批流程V3
蓝色的烟(51140145) 16:07:32
流程实例ID好像拿不到
List<HistoricProcessInstance> historicProcessInstanceList =
historyService.createHistoricProcessInstanceQuery().startedBy(userName)
.orderByProcessInstanceStartTime().desc().listPage((int)params.get("offset"), (int)params.get("limit"));
蓝色的烟(51140145) 14:54:59
这个方法可以取到当前登录人所提交的所有单据
List<HistoricProcessInstance> historicProcessInstanceList =
historyService.createHistoricProcessInstanceQuery().startedBy(userName)
.orderByProcessInstanceStartTime().desc().listPage((int)params.get("offset"), (int)params.get("limit"));
List<StartTaskVO> startTaskVOS = new ArrayList<>();
for (HistoricProcessInstance histTask : historicProcessInstanceList) {
StartTaskVO startVO = new StartTaskVO(histTask);
startVO.setBusinessKey(histTask.getBusinessKey());
startVO.setProcDefName(histTask.getProcessDefinitionName());
startVO.setStartTime(histTask.getStartTime());
startVO.setEndTime(histTask.getEndTime());
UserDO user = userService.findByUserName(histTask.getStartUserId());
startVO.setApplyUser(user!=null?user.getName():histTask.getStartUserId());
startVO.setStatus("finish");
startTaskVOS.add(startVO);
}
return startTaskVOS;

安全感(515590808) 18:07:28
这个是查询待办任务的时候用的
安全感(515590808) 18:07:37
createTaskQuery().taskCandidateUser(userId)
.orderByTaskPriority().desc()
.orderByTaskCreateTime().asc()
.listPage(start, limit);
Phoenix(1241012434) 18:08:08
感觉listPage这个有bug
安全感(515590808) 18:08:25
候选用户 候选组 代理人 还有candidateorAssignee 按照顺序查找
hoss--龚楼(783286653) 18:09:35
有啥bug
hoss--龚楼(783286653) 18:10:16
我自己没用过listPage都是自己查询act表,用自己公司的page对象的
Phoenix(1241012434) 18:10:40
和limit offset
Phoenix(1241012434) 18:10:47
顺序感觉有点反了
Phoenix(1241012434) 18:10:54
可能没bug
Phoenix(1241012434) 18:10:58
我再试试
腔.调(291541567) 18:11:05
有bug的
安全感(515590808) 18:11:08
start limit 有啥问题 第一个从哪里开始 第二个获取的长度
安全感(515590808) 18:11:09
??
安全感(515590808) 18:11:25
啥bug说啊、
Phoenix(1241012434) 18:11:55
A6的
Phoenix(1241012434) 18:11:59
你自己试一下嘛
腔.调(291541567) 18:12:00
候选任务和已经认领了的和直接指定人的不能一起查出来
哪位大侠指点一下啊
深海荧光(1143715138) 11:40:10
@分享牛 老师麻烦帮忙看下,其实我的目的是把 调用子流程的流程实例中的businesskey和外部流程保持一致,这样我就可以用businesskey来查询所有的流程不管是外部还是内部的
**processEngine.getRuntimeService().updateBusinessKey 这个方法可以给流程实例更新businesskey**