Activiti技术获取流程节点任务

登录用户获取流程节点任务基本方法:

/**
* @see   is Acitiviti
* 根据用户id 获取该用户能够接受的任务列表
* @param userId
* @param pageParams
* @return 
*/
public List<Task> findTaskByCandidateOrAssigned(String userId){
    TaskQuery taskQuery = taskService.createTaskQuery()
            .taskCandidateOrAssigned(userId).orderByTaskCreateTime().asc()
            .active();
    //List<Task> resultTask = taskQuery.list();
    return taskQuery.list();
}

/**
 * 获取所有运行中的任务
 * @param pageParams == null
 * @return
 */
public List<Task> getAllTask(int[] pageParams){
    TaskQuery taskQuery = taskService.createTaskQuery().orderByTaskCreateTime().desc().active();
    List<Task> resultTask = null;
    if (pageParams == null) {
        resultTask = taskQuery.list();
    } else {
        resultTask = taskQuery.listPage(pageParams[0], pageParams[1]);
    }
    return resultTask;
}

/**
 * @see   is Acitiviti
 * 根据用户id 获取该用户在某个流程实例的能够接受的任务列表
 * @param userId
 * @param pageParams
 * @return 
 */
public List<Task> findTaskByProcessAndCandidate(String userId,String processId){
    TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(processId).taskCandidateOrAssigned(userId).active();
    List<Task> resultTask = taskQuery.list();
    return resultTask;
}

/**
 * @see   is Acitiviti
 * 根据流程id 获取某个流程实例的任务列表
 * @param processId
 * @return 
 */
public List<Task> getTaskByProcessId(String processId){
    List<Task> resultTask = taskService.createTaskQuery().processInstanceId(processId).orderByTaskCreateTime().desc().list();
    return resultTask;
}

/**
 * @see   is Acitiviti
 * 根据组Id 获取该组的候选任务
 * @param groupId
 * @param pageParams
 * @return
 */
public List<Task> findTaskByGroup(String groupId, int[] pageParams) {
    TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateGroup(groupId).active();
    List<Task> resultTask = null;
      if(pageParams == null) {
          resultTask =  taskQuery.list();
      }else {
          resultTask =  taskQuery.listPage(pageParams[0], pageParams[1]);
      }
      return resultTask;
}

/**
 * @see   is Acitiviti
 * 根据用户集合组Id 获取属于该组里面的任务列表
 * @param groupList
 * @param pageParams
 */
public void findTaskByGroupList(List<String> groupList,int[] pageParams) {
    TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateGroupIn(groupList).active();
    List<Task> resultTask = null;
      if(pageParams == null) {
          resultTask =  taskQuery.list();
      }else {
          resultTask =  taskQuery.listPage(pageParams[0], pageParams[1]);
      }
}
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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值