activiti6获取流程中所有的用户任务节点

记录一下

UserTaskNodeVO
	String taskId;
    String taskName;
   String  assignee;  
    private List candidateUsers;
    private List candidateGroups;
Controller
@GetMapping("/getUserTaskNode")
    @ApiOperation(value = "1、获取流程中所有的用户任务节点", httpMethod = "GET", notes = "流程处理完成待办")
    public ResponseVo<List<UserTaskNodeVO>> getUserTaskNodeByProcessKey(String processKey) {
        if (StringUtils.isEmpty(processKey)) {
            throw new BaseException(CoreErrorCode.REQUIRED_PARAM_EMPTY.getCode());
        }
        return new ResponseVo<>(jbpmProcessinstanceService.getUserTaskNodeByProcessKey(processKey));
    }
Service
 public List<UserTaskNodeVO> getUserTaskNodeByProcessKey(String processKey) {
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .processDefinitionKey(processKey)
                .singleResult();

        BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
        Process process = bpmnModel.getProcesses().get(0);
        List<UserTask> list = process.findFlowElementsOfType(UserTask.class);
        List<UserTaskNodeVO> userTaskList = list.stream()
                .map(obj-> new UserTaskNodeVO(obj.getId(),obj.getName(),obj.getAssignee(),obj.getCandidateUsers(),obj.getCandidateGroups()))
                .filter(userTask -> !Constants.NODE_ADJUST.equals(userTask.getTaskId())).collect(Collectors.toList());
        return userTaskList;
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Activiti 7 获取上一个任务节点任务可以通过历史任务查询实现。可以通过以下步骤来获取上一个任务节点任务: 1. 首先,获取当前任务的 ID。可以使用以下代码获取当前任务的 ID: ```java String currentTaskId = runtimeService.createProcessInstanceQuery() .processInstanceId(processInstanceId) .singleResult() .getId(); ``` 其,`processInstanceId` 是当前流程实例的 ID。 2. 然后,使用当前任务 ID 查询历史任务。可以使用以下代码查询历史任务: ```java List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery() .processInstanceId(processInstanceId) .orderByHistoricTaskInstanceEndTime() .desc() .list(); ``` 其,`processInstanceId` 是当前流程实例的 ID。使用 `orderByHistoricTaskInstanceEndTime().desc()` 可以按照任务结束时间倒序排列历史任务。 3. 最后,找到上一个任务节点任务。可以遍历历史任务列表,找到上一个任务节点任务。可以使用以下代码实现: ```java String previousTaskId = null; for (HistoricTaskInstance historicTask : historicTasks) { if (!historicTask.getId().equals(currentTaskId)) { previousTaskId = historicTask.getId(); break; } } ``` 在循环,判断当前任务的 ID 是否与当前任务 ID 相等,如果不相等,则认为是上一个任务节点任务。 通过上述步骤,你可以获取上一个任务节点任务 ID(`previousTaskId`),然后可以根据需要进行进一步的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高空二踢脚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值