前提
使用activiti的流程设计器指派任务时候,因为显示的时候要显示中文,存储要是用户的id,所以在这里进行了改造,在选择的时候,{nane:"",value:""}的格式存储指派信息。
问题
指派任务成功,并且成功让对应指派的人查到属于它们自己的任务。但是有一个问题,发起人希望看到自己发起的流程,如果是正在运行中的流程,希望能看到当前节点的办理人是谁。
效果
思路
- 正常分页查询历史流程,遍历历史流程中仍然在运行的流程
- 获取当前流程中需要做的任务节点
- 获取当前流程定义对应的流程model,遍历任务节点与当前待做的任务节点进行匹配
- 获取节点,遍历候选人,候选组将其作为当前审批人返回
实现
@Transactional(readOnly = true)
@Override
public PageDto<XKHistoryProcessInstanceDto> pageProcessHistory(PageQueryDto<XKHistoryProcessInstanceDto> pageQueryDto) {
XKHistoryProcessInstanceDto xkHistoryProcessInstanceDto = pageQueryDto.genQueryObject(XKHistoryProcessInstanceDto.class);
// 判断是否有发起人的信息
if (xkHistoryProcessInstanceDto == null || StringUtils.isEmpty(xkHistoryProcessInstanceDto.getStartUserId())) {
return null;
}
//查询
List<HistoricProcessInstance> list =
historyService.createHistoricProcessInstanceQuery()
.startedBy(xkHistoryProcessInstanceDto.getStartUserId())
.orderByProcessInstanceEndTime().asc()
.orderByProcessInstanceStartTime().asc()
.listPage(pageQueryDto.getPageSize