springboot+flowable第三节(动态设置审批人)

1. 创建流程

创建一个3个节点的流程:
开始—>审核—>结束。
xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:flowable="http://flowable.org/bpmn"
targetNamespace="http://www.flowable.org/processdef">

  <process id="process_audit2" name="审核流程">

    <startEvent id="startNode1" name="开始">
      <outgoing>Flow_0ksehsm</outgoing>
    </startEvent>

    <endEvent id="Event_08rzeth" name="结束">
      <incoming>Flow_18upiqx</incoming>
    </endEvent>

    <sequenceFlow id="Flow_0ksehsm" sourceRef="startNode1" targetRef="Activity_0ipmowu" />
    <sequenceFlow id="Flow_18upiqx" sourceRef="Activity_0ipmowu" targetRef="Event_08rzeth" />

    <!--用户任务:需要指定用户来执行
    flowable:assignee:任务受理人,动态设置受理人为流程参数中的approval
    -->
    <userTask id="Activity_0ipmowu" name="审核" flowable:assignee="${approval}">
      <incoming>Flow_1huwgzm</incoming>
      <outgoing>Flow_18upiqx</outgoing>
    </userTask>

  </process>

</definitions>

将xml文件保存在src/main/resources/processes下
在这里插入图片描述
启动项目,等流程自动部署到数据库。
在这里插入图片描述

2. 启动流程

设置审批人,启动流程。
下面填写的的approval参数即为xml文件中的${approval},参数名称要保持一致

    @PostMapping("/start")
    @Transactional(rollbackFor = Exception.class)
    public String start(@RequestParam String key) {
        try {
            // 构建流程启动需要的流程参数信息
            Map<String, Object> variables = new HashMap<String, Object>();
            variables.put("approval", 2);

            // 设置流程启动用户
            identityService.setAuthenticatedUserId("1");
            // 根据key启动,返回流程实例
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key,variables);
            // 返回流程实例ID
            return processInstance.getProcessInstanceId();
        } catch (Exception e) {
            e.printStackTrace();
            return "启动失败!";
        }
    }

启动:
在这里插入图片描述
启动成功。
因为代码里是把审核节点的审批人设为了"2",现在我们去查询一下用户2的待办任务:

    /**获取指定用户的待办的任务列表
     * 代办
     * */
    @GetMapping("/getNeedDoTasks/{userId}")
    @Transactional(rollbackFor = Exception.class)
    public String getNeedDoTasks(@PathVariable String userId) {
        List<Task> tasks = taskService.createTaskQuery()
                .taskCandidateOrAssigned(userId)
                .list();

        if (!tasks.isEmpty()) {
            List<Map<String, Object>> list = new ArrayList<>();
            for (Task task : tasks) {
                Map<String, Object> map = new HashMap<>();
                //代办id
                String taskId = task.getId();
                //代办节点名称
                String taskName = task.getName();
                //创建时间
                Date createTime = task.getCreateTime();
                map.put("taskId", taskId);
                map.put("taskName", taskName);
                map.put("createTime", createTime);
                list.add(map);
            }
            return listToString(list,',');
        }

        return "当前用户在当前流程实例中并无待办!";
    }

结果:
在这里插入图片描述
查询其他用户,比如用户"1"的待办列表:
在这里插入图片描述

可以看到,任务成功分配给了用户"2"处理。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Spring Boot是一个基于Spring框架的快速开发框架,可以帮助开发者快速搭建基于Spring的应用程序。Flowable是一个流程引擎,可以帮助开发者快速实现业务流程的自动化管理。Spring Boot和Flowable的结合可以让开发者更加方便地实现业务流程的自动化管理,提高开发效率和业务效率。 ### 回答2: SpringBoot Flowable是一款基于SpringBootFlowable和RESTful风格的Web应用程序开发框架。SpringBoot框架是一个独立的、基于Spring框架的应用程序开发框架,它简化了Spring应用程序的配置和部署,并提供快速的开发、测试和部署功能。Flowable框架是基于BPMN2.0标准的一个开源的流程引擎框架,它提供了丰富的流程定义、任务管理、历史记录、事件跟踪等功能,便于企业进行复杂业务流程的管理和优化。 SpringBoot Flowable框架的主要特点包括: 1.高效简便:SpringBoot Flowable采用SpringBoot框架简化了Spring应用程序的配置和部署,同时结合Flowable框架,使流程定义和任务管理更加简便高效。 2.易于扩展:SpringBoot Flowable框架采用RESTful风格的接口设计,与其它系统集成更加简单方便,同时也支持二次开发和自定义扩展。 3.丰富的功能:SpringBoot Flowable框架集成了Flowable框架所提供的全部功能,包括流程定义、任务管理、历史记录、事件跟踪等,支持企业复杂业务流程的管理和优化。 4.支持多平台:SpringBoot Flowable框架可以部署在不同系统平台上,如Windows、Linux等,实现跨平台共享和应用。 在使用SpringBoot Flowable框架的过程中,需要掌握SpringBoot框架和Flowable框架的相关知识,同时注意提升系统的安全性和稳定性。可以参考SpringBootFlowable的官方文档进行学习和参考,也可以借助其它资料和开发者社区进行交流和分享。 ### 回答3: Spring Boot是一个开源的Java开发框架,可以快速地开发基于Java的Web应用程序。它提供了许多内置的功能和自动配置,使开发者能够轻松地构建可扩展的、高度可用的应用程序。而Flowable是一个开源的工作流引擎,它基于BPMN(Business Process Model and Notation)标准,可以帮助企业完成复杂的业务流程,实现业务可视化、自动化流转和智能化控制。 Spring Boot和Flowable的结合使得开发者能够轻松地使用Flowable来构建业务流程。使用Spring Boot与Flowable编写代码可以快速地实现流程引擎的集成和管理,同时也方便了开发人员使用Spring Boot框架进行Web开发。 Spring Boot可以使用简便的方式来配置Flowable,使用它提供的自动配置和starter等模块来进行流程引擎的集成和管理。同时,Spring Boot还提供了丰富的开发工具和插件,使得开发者能够轻松地进行代码调试和测试。 在使用Spring Boot和Flowable进行业务流程开发时,开发者可以使用Flowable提供的任务列表、流程修改等功能,可以轻松地修改业务流程,使得业务流程变得更加智能化和高效化。同时,Spring Boot与Flowable的结合也使得业务流程的开发变得更加简单和可靠。 总之,Spring Boot和Flowable的结合可以使开发者轻松地构建高可用、高效率、智能化的业务流程,并且简化了开发和管理流程引擎的过程,帮助企业实现业务的自动化和智能化管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悢七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值