activiti6+springboot2 的第二个简单demo

上一节提到动态设置流程中的用户,请看流程图所示:

 

 这里设置的就是 ${user1} ,第一个用户

 

 

 

演示代码:

 

 

 @RequestMapping("single_assignee")
    public void setSingleAssignee() {
        //根据bpmn文件部署流程
        repositoryService.createDeployment().addClasspathResource("processes/single_assignee.bpmn").deploy();
        // 设置User Task1受理人变量
        Map<String, Object> variables = new HashMap<>(8);
        variables.put("user1", "007");
        //采用key来启动流程定义并设置流程变量,返回流程实例
        ProcessInstance pi = runtimeService.startProcessInstanceByKey("single_assignee", variables);
        String processId = pi.getId();
        System.out.println("流程创建成功,当前流程实例ID:"+processId);
        // 注意 这里需要拿007来查询,key-value需要拿value来获取任务
        List<Task> list = taskService.createTaskQuery().taskAssignee("007").list();
        if(list!=null && list.size()>0){
            for(org.activiti.engine.task.Task task:list){
                System.out.println("任务ID:"+task.getId());
                System.out.println("任务的办理人:"+task.getAssignee());
                System.out.println("任务名称:"+task.getName());
                System.out.println("任务的创建时间:"+task.getCreateTime());
                System.out.println("流程实例ID:"+task.getProcessInstanceId());
                System.out.println("##################################");
            }
        }
        // 设置User Task2的受理人变量
        Map<String, Object> variables1 = new HashMap<>(8);
        variables1.put("user2", "Kevin");
        // 因为007只有一个代办的任务,直接完成任务,并赋值下一个节点的受理人user2为Kevin办理
        taskService.complete(list.get(0).getId(), variables1);
        System.out.println("User Task1被完成了,此时流程已流转到User Task2");
}

 

访问:http://localhost:8080/activti/single_assignee

 

 

 

posted @ 2019-11-20 16:04  夏风中的Young_Uncle  阅读(592)  评论(0编辑  收藏  举报