activiti6+springboot2 的第三个简单demo 动态设置任务节点处理人(多人并行 无序)

Posted woshuaile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activiti6+springboot2 的第三个简单demo 动态设置任务节点处理人(多人并行 无序)相关的知识,希望对你有一定的参考价值。

技术图片

 

 

 

 

技术图片

 

 

 ${nrOfCompletedInstances/nrOfInstances==1}   ==1表示所有任务实力完成才可以进入下一个节点;  ==0.75 表示 3/4的完成可进入下一节点;以此类推

 

 

 

    @RequestMapping("multi_assignee")
    public void setMultiAssignee() {
        //根据bpmn文件部署流程
        repositoryService.createDeployment().addClasspathResource("processes/multi_assignee.bpmn").deploy();
        // 设置多个处理人变量 这里设置了三个人
        Map<String, Object> variables = new HashMap<>();
        List<String> userList = new ArrayList<>();
        userList.add("user1");
        userList.add("user2");
        userList.add("user3");
        variables.put("userList", userList);
        //采用key来启动流程定义并设置流程变量,返回流程实例
        ProcessInstance pi = runtimeService.startProcessInstanceByKey("multi_assignee", variables);
        String processId = pi.getId();
        System.out.println("流程创建成功,当前流程实例ID:"+processId);
        // 查看user1的任务
        List<Task> list = taskService.createTaskQuery().taskAssignee("user1").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("#######################################");
            }
        }
        // 查看user2的任务
        List<Task> list2 = taskService.createTaskQuery().taskAssignee("user2").list();
        if(list2!=null && list2.size()>0){
            for(org.activiti.engine.task.Task task:list2){
                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("#######################################");
            }
        }
        // 查看user3的任务
        List<Task> list3 = taskService.createTaskQuery().taskAssignee("user3").list();
        if(list3!=null && list3.size()>0){
            for(org.activiti.engine.task.Task task:list3){
                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("#######################################");
            }
        }
    }

 

以上是关于activiti6+springboot2 的第三个简单demo 动态设置任务节点处理人(多人并行 无序)的主要内容,如果未能解决你的问题,请参考以下文章

关于springboot2.0与activiti6.0.0集成的问题

springboot2.1.6整合activiti6.0

深入剖析与实战Activiti6工作流引擎顶级教程

Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限

activiti7与springboot2整合

SpringBoot2开发实用篇-整合第三方技术(任务邮件)