轻松实现activiti会签(多人处理完成才进入下一节点)

activiti会签 提示:此为在bpmn流程图中设置会签


提示:此为在bpmn流程图中设置会签


前言

会签就是多人处理完成过后才进入下一节点,下一级节点处理人仅处理一次任务


一、bpmn设置

在这里插入图片描述

示例:${nrOfCompletedInstances/nrOfInstances==1} ==1表示所有任务实例完成才可以进入下一个节点 (==0.75则需要完成3/4) 以此类推

二、代码实现

 
 @RequestMapping("confirmNodeProcessEmployee")
    public void confirmNodeProcessEmployee() {

        //根据bpmn文件部署流程    
        repositoryService.createDeployment().addClasspathResource("processes/test.bpmn").deploy();
        // 设置多个处理人变量 这里设置了三个人
        Map<String, Object> map= new HashMap<>();
        List<String> manageList= new ArrayList<>();
        manageList.add("zhangsan");
        manageList .add("lisi");
        manageList.add("wangwu");
        map.put("manageList", manageList); //map中的key为流程图中的Collection设置的值
        //采用key来启动流程定义并设置流程变量,返回流程实例
        ProcessInstance pi = runtimeService.startProcessInstanceByKey("test", map);
        String processId = pi.getId();
        System.out.println("流程创建成功,当前流程实例ID:"+processId);
        // 查看zhangsan的任务
        List<Task> list = taskService.createTaskQuery().taskAssignee("zhangsan").list();
        if(list!=null && list.size()>0){
            for(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());
            }
        }
        // 查看lisi的任务
        List<Task> list2 = taskService.createTaskQuery().taskAssignee("lisi").list();
        if(list2!=null && list2.size()>0){
            for(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());
            }
        }
        // 查看wangwu的任务
        List<Task> list3 = taskService.createTaskQuery().taskAssignee("wangwu").list();
        if(list3!=null && list3.size()>0){
            for(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());
            }
        }
        
    }
    /**
     *  查询全部流程任务
     * @date 2020/9/10 11:22
     **/
    @GetMapping("/query")
    public WebResult findAllProcessTask() {
          List<Task> taskList = taskService.createTaskQuery().list();
        List<ActRuTask> actRuTaskList = taskList.stream().map(task -> {
            ActRuTask ruTask = new ActRuTask();
            BeanUtils.copyProperties(task,ruTask);
            return ruTask;
        }).collect(Collectors.toList());
        for (ActRuTask task : allProcessTask) {
            System.out.println("流程实例ID:" + task.getProcessInstanceId());
            System.out.println("任务ID:" + task.getId());  //5002
            System.out.println("任务负责人:" + task.getAssignee());
            System.out.println("任务名称:" + task.getName());
        }
        return WebResult.success().withData(allProcessTask);
    }
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值