flowable 并行节点跳转以及驳回

bpmn流程图


  
    并行网关测试
    
    
    
    
      
        
      
    
    
    
      
        
      
    
    
    
      
        
      
    
    
    
    
    
    
    
      
        
      
    
    
    
    
  
  
    
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
      
      
        
        
      
      
        
        
      
      
        
        
      
      
        
        
      
      
        
        
        
      
      
        
        
        
      
      
        
        
      
      
        
        
      
      
        
        
      
    
  







/**
 * 并行节点跳转  
 * 当前并行有几个节点就放入几个节点
 * @param processId      部署id
 * @param taskNames      当前节点任务key
 * @param targetNodeName 下一节点任务key
 */
public void taskJumpCmd(String processId, List taskNames, String targetNodeName) {
    runtimeService.createChangeActivityStateBuilder()
            .processInstanceId(processId)
            .moveActivityIdsToSingleActivityId(taskNames, targetNodeName)
            .changeState();

}

/**
 * 并行节点驳回  
 * 当前并行有几个节点就放入几个节点
 * @param processId      部署id
 * @param taskNames      当前节点任务id
 * @param targetNodeName 下一节点任务id
 */
public void taskJumpCmd(String processId, String taskNames, List targetNodeName) {
    runtimeService.createChangeActivityStateBuilder()
            .processInstanceId(processId)
            .moveSingleActivityIdToActivityIds(taskNames, targetNodeName)
            .changeState();

}
/**
 * 并行网关跳转
 * @param processId 流程id
 */
@GetMapping("parallelTaskJumpCmd/{processId}")
@ResponseBody
public void parallelTaskJumpCmd(@PathVariable("processId") String processId) {
    List taskNames = new ArrayList<>();
    taskNames.add("sid-71C4C1CE-19C3-48E6-BFDC-BD1CE66C771C");
    taskNames.add("sid-39F5686C-74BC-4082-ACAE-5F0158ED4E0F");
    taskNames.add("sid-26229EF7-76C7-414A-85A4-72A921B0B564");
    flowableUtil.taskJumpCmd(processId, taskNames, "sid-94DEBBD9-DA1C-41E7-B6D1-3D3DBB11AFF4");
}

/**
 * 并行网关驳回
 * @param processId 流程id
 */
@GetMapping("rejectTaskJumpCmd/{processId}")
@ResponseBody
public void rejectTaskJumpCmd(@PathVariable("processId") String processId) {
    List taskNames = new ArrayList<>();
    taskNames.add("sid-71C4C1CE-19C3-48E6-BFDC-BD1CE66C771C");
    taskNames.add("sid-39F5686C-74BC-4082-ACAE-5F0158ED4E0F");
    taskNames.add("sid-26229EF7-76C7-414A-85A4-72A921B0B564");
    flowableUtil.taskJumpCmd(processId,"sid-94DEBBD9-DA1C-41E7-B6D1-3D3DBB11AFF4" , taskNames);
}
 跳转之后代理人信息会丢失需要重新设置,可以在ACT_HI_TASKINST找到历史节点走向信息,找到跳转节点的代理人并设置。

 

你可能感兴趣的:(flowable)