# workflow **Repository Path**: 896934834/workflow ## Basic Information - **Project Name**: workflow - **Description**: 本项目为springboot3+vue3的activiti7工作流 项目特点: 1.前后端分离 2.简单的rabc思想,按钮级权限 * 3.流程自定义,动态表单自定义 4.审批流和业务解耦 5.完整项目,容易二次开发 关键词:工作流,springboot3+activiti7+springSecurity+jwt,vue3+elementui-plus+ts - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/896934834 - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2025-03-11 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # workflow ### 一、项目简介 本项目为springboot3+vue3的activiti7工作流项目 项目特点: * 1.前后端分离 * 2.完整简单的rabc思想,权限精确到按钮 * 3.流程自定义,动态表单自定义 * 4.审批流和业务解耦 * 5.简单完整项目,特别容易二次开发 关键词:工作流, springboot3+activiti7+springSecurity+jwt, vue3 + elementui-plus+ ts #### 二、后端技术栈 * 1.springboot3 * 2.activiti7 * 3.druid * 4.springSecurity * 5.redis * 6.knife4j * 7.jwt * jdk版本: 17 ### 三、前端技术和特色 * vue3 + elementui-plus+ ts * 动态路由 * 动态菜单 * 自定义v-permission精确按钮权限 ### 四、相关文档 * 1.[本地部署文档](workflow-java/doc/readme/deploy.md) * 2.[流程定义表单和流程流转](workflow-java/doc/readme/bpmn.md) * 3.[Activiti 7.X(工作流引擎)](workflow-java/doc/readme/activiti7.md) ### 五、主要功能 - [x] 登录 - [x] 部门管理 - [x] 用户管理 - [x] 角色管理 - [x] 菜单管理 - [x] 流程定义 - [x] 流程表单 - [x] 流程启动 - [x] 任务列表 - [x] 历史列表 - [x] 流程图历史节点高亮 - [x] 集成动态表单 - [x] 主表单集成与展示 - [x] 节点表单整合bpmn与展示 - [x] 集成bpmn.js - [x] 用户节点 选择用户 - [x] 整合流程变量 - [x] 整合执行监听器 - [x] 验证流程规则是否合法 - [x] 流程默认名称 - [x] 表单绑定数据库表 - [x] 适配数据库-支持的数据库[MySQL] #### 六、预览 * 1.审批流程 | ![](workflow-java/doc/readme/images/1.png) | ![](workflow-java/doc/readme/images/2.png) | | ---------------------------------------------- | ----------------------------------------------- | | ![](workflow-java/doc/readme/images/3.png) | ![](workflow-java/doc/readme/images/4.png) | | ![](workflow-java/doc/readme/images/5.png) | ![](workflow-java/doc/readme/images/6.png) | | ![](workflow-java/doc/readme/images/7.png) | ![](workflow-java/doc/readme/images/8.png) | | ![](workflow-java/doc/readme/images/9.png) | ![](workflow-java/doc/readme/images/10.png) | | ![](workflow-java/doc/readme/images/11.png) | ![](workflow-java/doc/readme/images/12.png) | | ![](workflow-java/doc/readme/images/13.png) | ![](workflow-java/doc/readme/images/14.png) | | ![](workflow-java/doc/readme/images/15.png) | ![](workflow-java/doc/readme/images/16.png) | | ![](workflow-java/doc/readme/images/17.png) | ![](workflow-java/doc/readme/images/18.png) | | ![](workflow-java/doc/readme/images/19.png) | ![](workflow-java/doc/readme/images/20.png) | * 2.权限部分 | ![](workflow-java/doc/readme/images/21.png) | ![](workflow-java/doc/readme/images/22.png) | | ---------------------------------------------- | ----------------------------------------------- | | ![](workflow-java/doc/readme/images/23.png) | ![](workflow-java/doc/readme/images/24.png) | | ![](workflow-java/doc/readme/images/25.png) | ![](workflow-java/doc/readme/images/26.png) | | ![](workflow-java/doc/readme/images/27.png) | ![] | ### 七、启动报错 * 1.mybatis报错 ``` Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 68; 外部 DTD: 无法读取外部 DTD 'mbeans-descriptors.dtd', 因为 accessExternalDTD 属性设置的限制导致不允许 'http' 访问。 at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:262) at org.apache.ibatis.parsing.XPathParser.(XPathParser.java:127) at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.(MybatisXMLMapperBuilder.java:87) at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:677) ... 68 common frames omitted Caused by: org.xml.sax.SAXParseException: 外部 DTD: 无法读取外部 DTD 'mbeans-descriptors.dtd', 因为 accessExternalDTD 属性设置的限制导致不允许 'http' 访问。 at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1148) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:260) ... 71 common frames omitted ``` 解决办法: 用的是jdk17,解决方案是在%JAVA_HOME%\conf 目录下,新建一个文件jaxp.properties,内容: ``` javax.xml.accessExternalSchema=all javax.xml.accessExternalDTD=all ``` * 2.Knife4j报错 ``` jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.(java.lang.Object)' ``` 解决办法: 方法一: (1).在配置文件中先把增强模式关掉 ``` knife4j: enable: false ``` (2).不使用knife4j的高级功能而只是想用它UI ``` org.springdoc springdoc-openapi-starter-webmvc-ui ${springdoc.version} ``` 方法二:把Spring Boot版本降低到3.4.0以下