esflow
1.概述
1.1 后端技术栈
spring boot、mybatis、saToken(身份鉴权)、anyLine(表管理) 后端身份鉴权用的是 SaToken,表实体管理用的是 anyLine。在此特别感谢两位作者。
1.2 前端技术栈
Vite + Typescript + Vue3 + Element Plus + Pure Admin 开源版。 前端是基于 Pure-Admin-Thin 开源版开发的。在此特别感谢其作者的无私奉献,让我出发时已经站在了巨人的肩膀上。
1.3 技术交流
添加作者个人微信进群 13548691375 备注:esflow, 或者直接加入 QQ 交流群:1038848064
2. 安装部署
2.1 前端
2.1.1 环境准备
- 确认 Windows 操作系统版本 在开始安装之前,请确认你的 Windows 操作系统版本,以便下载适合的安装包。虽然大多数 Node.js 安装包都支持多种 Windows 版本,但确认版本可以帮助你避免潜在的兼容性问题。
- 前往 Node.js 官网下载对应版本的 Node.js 安装包 访问 Node.js 官方网站,在首页上你会看到“Downloads”按钮,点击后会跳转到下载页面。根据你的 Windows 操作系统版本(如 Windows 10、Windows 7 等),选择适合的 Node.js 安装包进行下载。建议下载 20.0+。
- 运行下载的安装包,按照提示完成 Node.js 和 npm 的安装 双击下载的安装包(如 node-vXX.XX.X-x64.msi),打开安装向导。 按照向导的指示进行安装。在安装过程中,你可以选择安装 Node.js 和 npm 的路径,以及其他一些选项。如果你不确定,可以选择默认设置。 安装完成后,点击“Finish”按钮退出安装向导。
- 打开命令提示符或 PowerShell,输入 npm -v 验证 npm 是否安装成功 按下 Win + R 键,打开“运行”对话框。 输入 cmd 或 powershell,然后按 Enter 键打开命令提示符或 PowerShell。 在命令行中输入 npm -v,然后按 Enter 键。如果 npm 已成功安装,你将看到 npm 的版本号输出到命令行中。
- 根据需要,配置 npm 的全局安装路径和缓存路径
- 安装 pnpm
执行命令 npm install pnpm -g
2.1.2 安装部署
- git clone https://gitee.com/yang-jiong/esflow-ui.git
- 命令行下进入目录
- pnpm install
- pnpm run dev
- 浏览器地址栏输入 http://localhost:16000
2.2 后端
2.2.1 环境准备
- 安装 JDK17
- 安装 IDE
- 安装 Maven
2.2.2 安装准备
- git clone
- 创建 MYSQL 数据库 CREATE DATABASE esflow DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci (mysql 版本要求 8.0+);
2.2.3 开源版运行
配置 maven 的 setting.xml,加入 nexus 私服配置(参考根目录下 setting.xml)。
安装非开源依赖 jar 到本地 maven 仓库(可选,如果完成了第 3 步就不需要完成此步骤。参考如下命令)。
系统事件工程
mvn install:install-file -Dfile=lib/easy-platform-base-app-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-app -Dversion=7.0.1-RELEASE -Dpackaging=jar文件及内容发布相关工程
mvn install:install-file -Dfile=lib/easy-platform-base-cms-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-cms -Dversion=7.0.1-RELEASE -Dpackaging=jar基础核心工程
mvn install:install-file -Dfile=lib/easy-platform-base-core-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-core -Dversion=7.0.1-RELEASE -Dpackaging=jar组织相关工程
mvn install:install-file -Dfile=lib/easy-platform-base-org-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-org -Dversion=7.0.1-RELEASE -Dpackaging=jar 权限相关工程
mvn install:install-file -Dfile=lib/easy-platform-base-security-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-security -Dversion=7.0.1-RELEASE -Dpackaging=jar 系统管理相关
mvn install:install-file -Dfile=lib/easy-platform-base-system-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-system -Dversion=7.0.1-RELEASE -Dpackaging=jar系统用户相关
mvn install:install-file -Dfile=lib/easy-platform-base-sysuser-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-sysuser -Dversion=7.0.1-RELEASE -Dpackaging=jar常用工具工程
mvn install:install-file -Dfile=lib/easy-platform-base-util-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-util -Dversion=7.0.1-RELEASE -Dpackaging=jar验证码相关工程
mvn install:install-file -Dfile=lib/easy-platform-base-validate-7.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-base-validate -Dversion=7.0.1-RELEASE -Dpackaging=jar流程核心工程
mvn install:install-file -Dfile=lib/easy-platform-flow-core-1.0.1-RELEASE.jar -DgroupId=com.hnbits -DartifactId=easy-platform-flow-core -Dversion=1.0.1-RELEASE -Dpackaging=jar- 订阅 pro 商业版后,将提供上述工程源代码。
参数配置
- 修改 esflow-base-api/src/main/resources/application-dev.yml 中 mysql 数据库的 url、username、password 参数和 redis 的 host、port、password 参数。
编译
- 通过 maven 命令 maven clean compile、maven install 分别编译打包 esflow-pro 工程。
启动项目
- 运行 esflow 工程下 esflow-base-api/src/main/java 下的 EsflowApiApplication 启动项目。
- 如果 esflow 工程下 esflow-base-api/src/main/resources/application.yml 中 spring:flyway:enable 为 true。 启动后系统将通过 flyway 将 classpath://db/migration 下的 V1.0.0__init_*.sql 脚本初始化到之前新建的 esflow 数据库。
- 如果 esflow 工程下 esflow-base-api/src/main/resources/application.yml 中 spring:flyway:enable 为 false, 则需要手工将 classpath://db/migration 下的 sql 脚本同步到之前新建的 esflow 数据库。
登录
- 管理员登录用户名: admin
- 管理员登录密码: Super@2023
2.2.3 pro 版运行
- 参数配置
- 修改 esflow-pro-base-api/src/main/resources/application-dev.yml 中 mysql 数据库的 url、username、password 参数和 redis 的 host、port、password 参数。
- 编译打包
- 通过 maven 命令 maven clean compile、maven install 分别编译打包 easy-platform、easy-platform-flow、easy-platform-lowcode、esflow-pro 工程。
- 启动项目
- 运行 esflow-pro 工程下 esflow-pro-base-api/src/main/java 下的 EsflowProApiApplication 启动项目。
- 如果 esflow-pro 工程下 esflow-pro-base-api/src/main/resources/application.yml 中 spring:flyway:enable 为 true。 启动后系统将通过 flyway 将 classpath://db/migration 下的 V1.0.0__init_*.sql 脚本初始化到之前新建的 esflow 数据库。
- 如果 esflow-pro 工程下 esflow-pro-base-api/src/main/resources/application.yml 中 spring:flyway:enable 为 false, 则需要手工将 classpath://db/migration 下的 sql 脚本同步到之前新建的 esflow 数据库。
- 登录
- 管理员登录用户名: admin
- 管理员登录密码: Super@2023
3.后端工程目录介绍
easy-platform
-- easy-platform-base-util 框架基础
-- easy-platform-base-core 框架核心
-- easy-platform-base-app 系统事件
-- easy-platform-base-cms 内容管理
-- easy-platform-base-org 组织管理
-- easy-platform-base-security 身份鉴权
-- easy-platform-base-system 系统管理
-- easy-platform-base-sysuser 系统用户
-- easy-platform-base-validate 验证码相关
easy-platform-flow
-- easy-platform-flow-core 流程引擎
easy-platform-lowcode
-- easy-platform-lowcode-base 低代码基础
-- easy-platform-lowcode-core 应用相关
esflow/esflow-pro
-- esflow-**-base
-- esflow-**-base-api 启动工程
4. 数据库表结构说明
表名 | 说明 |
---|---|
ef_def_flow | 流程定义 |
ef_def_node | 流程节点 |
ef_def_job | 流程任务 |
ef_def_node_rel | 流程节点关联关系 |
ef_def_rule | 流程条件组 |
ef_def_rule_item | 流程条件组明细 |
ef_def_event | 流程事件 |
ef_def_form_perm | 流程节点表单权限配置 |
4. 第三方系统集成说明
esflow 默认有的一套组织部门、用户、角色、岗位表。但是与其它系统集成并不复杂,反而很简单。实现 AuditorService 这个接口就可以了。这个接口中包含的方法如下:
方法名 | 作用 |
---|---|
validateUser | 判断是否为用户ID |
listUsersByIds | 通过ID批量获取用户信息 |
getUserById | 通过ID获取用户信息 |
listUsersByRoleId | 通过角色ID获取成员用户信息 |
getRoleById | 通过角色ID获取角色信息 |
listRolesByRoleIds | 过角色ID批量获取角色信息 |
listUsersByDeptId | 通过部门id批量获取用户信息 |
listUserDeptLeader | 获取用户所在部门领导的用户ID |
listDeptLeader | 通过部门id获取部门领导的用户ID |
listDeptListByIds | 通过部门id批量获取部门信息 |
getDeptById | 通过部门id获取部门信息 |