SpringBoot整合activiti7学生请假示例

SpringBoot整合activiti7学生请假示例Java 版本 1 8SpringBoot 版本 version 2 4 4 version dependency groupId org springframew boot groupId artifactId spring boot starter artifactId dependency

参考博客:https://blog.csdn.net/weixin_44096448/article/details/103613377?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.baidujsUnder6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.baidujsUnder6

Java版本:1.8

SpringBoot版本

2.4.4
(SpringBoot和Activit7最好都用最新版本)

 
   
   
     org.springframework.boot 
    
   
     spring-boot-starter 
    
   
   
   
     org.springframework.boot 
    
   
     spring-boot-starter-web 
    
   
   
   
     org.projectlombok 
    
   
     lombok 
    
   
   
   
     com.github.xiaoymin 
    
   
     knife4j-spring-boot-starter 
    
   
     2.0.2 
    
   
   
   
     com.baomidou 
    
   
     mybatis-plus-boot-starter 
    
   
     3.4.3.1 
    
   
   
   
     p6spy 
    
   
     p6spy 
    
   
     3.9.1 
    
   
   
   
     com.alibaba 
    
   
     druid 
    
   
     1.1.20 
    
   
   
   
     mysql 
    
   
     mysql-connector-java 
    
   
     5.1.47 
    
   
   
   
     org.activiti 
    
   
     activiti-spring-boot-starter 
    
   
     7.0.0.Beta3 
    
  

配置文件

server: port: 8080 spring: #Activiti property configuration activiti: database-schema-update: true history-level: full db-history-used: true datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:mysql://localhost:3306/activiti?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: root type: com.alibaba.druid.pool.DruidDataSource 

安装actibpm插件SpringBoot整合activiti7学生请假示例

把编码设置成UTF8SpringBoot整合activiti7学生请假示例 SpringBoot整合activiti7学生请假示例

SpringBoot整合activiti7学生请假示例

-Dfile.encoding=UTF-8

SpringBoot整合activiti7学生请假示例

构建流程文件

SpringBoot整合activiti7学生请假示例

 SpringBoot整合activiti7学生请假示例

 SpringBoot整合activiti7学生请假示例

SpringBoot整合activiti7学生请假示例

 复制一份刚刚构建的流程文件,并将后缀名改为bpmn20.xml,打开后将报错的xmlns加上文件顶部的xmln约束

SpringBoot整合activiti7学生请假示例

SpringBoot整合activiti7学生请假示例

生成png文件,保存下来放到一起

SpringBoot整合activiti7学生请假示例

接口

package com.example.mindsa.controller; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @Slf4j public class TestController { @Autowired private RepositoryService repositoryService; @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; / * 项目启动部署请假流程引擎。 */ @PostConstruct public void prepare() { // 创建一个部署对象 Deployment deployment = repositoryService.createDeployment() .name("请假流程") .addClasspathResource("qbhs_bpmn20.xml") .addClasspathResource("qbhs.png") .deploy(); log.info("部署ID:" + deployment.getId()); log.info("部署名称:" + deployment.getName()); } @ApiOperation("发起流程") @PostMapping("startProcess") public void startProcess(@RequestParam String student, @RequestParam String teacher) { String processDefinitionKey = "test01"; Map 
  
    map = new HashMap<>(); //使用UEL 表达式设置 // 学生填写申请单 Assignee:${student} map.put("student", student); // 班主任审批 Assignee:${teacher} map.put("teacher", teacher); ProcessInstance instance = runtimeService.startProcessInstanceByKey(processDefinitionKey, map); log.info("流程实例ID:" + instance.getId()); log.info("流程定义ID:" + instance.getProcessDefinitionId()); } @ApiOperation("任务查询") @PostMapping("searchTask") public List 
   
     searchTask() { //流程启动后,各各任务的负责人就可以查询自己当前需要处理的任务,查询出来的任务都是该用户的待办任务。 List 
    
      list = taskService.createTaskQuery() //流程实例key .processDefinitionKey("test01") //查询谁的任务 //.taskAssignee("") .list(); List 
     
       idList = new ArrayList 
      
        (); for (Task task : list) { idList.add(task.getId()); log.info("任务ID:" + task.getId()); log.info("任务名称:" + task.getName()); log.info("任务的创建时间:" + task.getCreateTime()); log.info("任务的办理人:" + task.getAssignee()); log.info("流程实例ID:" + task.getProcessInstanceId()); log.info("执行对象ID:" + task.getExecutionId()); log.info("流程定义ID:" + task.getProcessDefinitionId()); } return idList; } @ApiOperation("任务处理") @PostMapping("disposeTask") public void disposeTask(List 
       
         list) { for (String id : list) { // 任务id taskService.complete(id); System.out.println("处理任务id:" + id); } } } 
        
       
      
     
    
  

如果启动报错找不到act_ge_property表的话就在数据库连接加上

&nullCatalogMeansCurrent=true

例如

jdbc:mysql://localhost:3306/activiti?characterEncoding=UTF-8&nullCatalogMeansCurrent=true&serverTimezone=GMT&useSSL=fals

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178102.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:01
下一篇 2026年3月26日 下午6:01


相关推荐

  • CFileDialog类应用详解

    CFileDialog类应用详解原文地址 http blog csdn net bxwang1 article details 构造函数原型 CFileDialog BOOLbOpenFil nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp LPCTSTRlpszD NULL nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp LPCTSTRlpszF NULL nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp D

    2025年11月9日
    9
  • Linux SIGTERM 捕获

    Linux SIGTERM 捕获test c include amp amp lt stdio h amp amp gt include amp amp lt signal h amp amp gt voidhandler intmain intargc charargv sigset SIGTERM handler printf amp q

    2026年3月19日
    1
  • goland调试go代码_debug运行

    goland调试go代码_debug运行如何使用dlv结合Goland进行程序debug调试相信很多Golang的初级玩家不会进行程序的Debug定位问题单纯的靠脑子,或者效率很低的不断的添加日志打印,别问我为什么知道的因为我就是这样的,最好最快捷的问题定位方式一定是使用Debug打断点调试,这时就引出了本文的主角dlv。实际上,delve才是全称,dlv只是启动命令,如果VScode,Goland,默认使用的调试器就是基于delve的。安装dlv参考官方的安装方法,把dlv命令安装在go.

    2025年6月14日
    6
  • navicat连接mysql时出现2003(10060)错误

    navicat连接mysql时出现2003(10060)错误

    2021年6月16日
    179
  • 2026笔记本电脑详细选购指南,3月高性价比笔记本电脑推荐

    2026笔记本电脑详细选购指南,3月高性价比笔记本电脑推荐

    2026年3月12日
    2
  • 超详细的 Python 方法、函数总结

    超详细的 Python 方法、函数总结目录阅读前必读 不看会错过一个亿 一 字符串操作 1 1capitalize 方法 字符串首字母转换为大写 1 2casefold 方法 所有大写字符转换为小写 1 3center 方法 字符串居中填充 1 4count 方法 统计字符串出现次数 1 5encode 方法 编码字符串 1 6decode 方法 解码字符串 1 7endswith 方法 是否以指定子字符串结尾 startswith 方法 1 8find 方法 字符串首次出现的索引位置 rfi

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号