当前位置:网站首页>Activiti directory (V) reject, restart and cancel process

Activiti directory (V) reject, restart and cancel process

2022-07-06 17:00:00 Motorcycle loving program ape

Catalog

Activiti( One ) Getting started

Activiti( Two ) Integrate

Activiti( 3、 ... and ) Deploy 、 Publishing process

Activiti( Four ) Inquiry agent / Have done 、 to examine

Activiti Fragmented pits

One 、 The reviewer rejected the process

Ideas
According to the process example ID And the current user ID Query whether the process task exists
1. Set the rejection node status according to the current personnel
There is 2. Reject the node status and return the approval task to the initiator
non-existent Return the unsuccessful status code
/** *  Reject the application  * @param userId  user ID * @param processInstanceId  Process instance ID * @return */
    public Task rejectTest(String userId,String processInstanceId) {
    
        //  Query the current approval node 
        Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskInvolvedUser(userId).singleResult();
        if(null != task){
    
            //  Set process parameters 
            Map<String, Object> args = new HashMap<>();
            String assignee = task.getName();
            args.put("applyState", Constants.EPIDEMIC_APPLY_STATE_BH);//  Rejection status 
            args.put("applyExamine", assignee);//  Reject task node 
            //  Complete the approval task 
            taskService.complete(task.getId(), args);
        }
        //  Return the modified business information 
        return task;
    }

Two 、 Re initiate the process

Ideas
According to the process example ID And the current user ID Query whether the process task exists
1. Re apply node status according to current personnel settings
There is 2. Get the rejected person information
3. Through node status 、 Reject the application for personnel information and return to the reviewer to continue the review
1. Return to the approval node status
non-existent 2. Re apply with the original business logic
 /** * *  Reapply  * @param userId  user Id * @param processInstanceId  Process instance Id * @return  The status value  */
    public String backProcessTest(String userId,String processInstanceId){
    
        // Set process parameters : The examination and approval ID
        Map<String, Object> args = new HashMap<>();
        String applyExamine = runtimeService.getVariable(processInstanceId, "applyExamine")+""; // see variable Often scale 
        args.put("applyState", "6");
        args.put("applyExamine", applyExamine);
        // Query the current approval node 
        Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).taskAssignee(userId).singleResult();
        // Complete the approval task 
        if(null != task) {
    
            taskService.complete(task.getId(), args);
            return applyExamine;
        }
        return "";
    }

3、 ... and 、 Cancel the process

Ideas
According to the process example ID Get whether the process instance is still executing
1. Get the status of the audit node ( Whether it is under review or approved )
There is 2. Judge the midway cancellation according to the status of the approval node 、 Approved and cancelled
3. End process instance
1. Return to the approval node status
non-existent 2. Business code processing process business table
 /** *  withdraw  * @param userId  user ID * @param processInstanceId  Process instance Id * @return  The status value  */
    public Integer withdrawTest(String userId,String processInstanceId){
    
        //  Whether the process instance is executing 
        Execution execution = runtimeService.createExecutionQuery().parentId(processInstanceId).singleResult();
        // see variable Often scale 
        int applyState = Integer.parseInt(runtimeService.getVariable(processInstanceId, "applyState")+"");
        //  Judge halfway 、 Approved and revoked 
        applyState = applyState < 3 ? Constants.EPIDEMIC_APPLY_STATE_ZTCX : Constants.EPIDEMIC_APPLY_STATE_CX;
        if(!Objects.isNull(execution)){
    
            // Students cancel , End the process 
            runtimeService.deleteProcessInstance(execution.getProcessInstanceId(), " Student "+userId+" withdraw ");
        }
        return applyState;
    }

3、 ... and 、 The sample code

  • The reviewer inquires about the delegated tasks :
     Insert picture description here
     Insert picture description here

  • Reviewers reject the process :
     Insert picture description here
     Insert picture description here

  • The process returns to the originator
     Insert picture description here
     Insert picture description here

  • Reissue the application
     Insert picture description here

  • Reject personnel to view the agent
     Insert picture description here
     Insert picture description here

  • Cancel the process application

Query the agent task :
 Insert picture description here
Cancel the process :

 Insert picture description here There is no process information when canceling the personnel query task
 Insert picture description here

Workflow drawing 、 Deploy 、 Start process 、 Inquiry agent / Have done / Passed 、 to examine 、 rejected 、 Relaunch 、 Cancel the application and explain the importance of workflow

Colored eggs :

1. Integrate Bpmnjs drawing tools .
2. When the task arrives at the node, it is marked in red and the picture is displayed .
Looking forward to

原网站

版权声明
本文为[Motorcycle loving program ape]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060928026832.html