EsflowEsflow
首页
指南
Pro商业版
开源地址
联系我们
更新日志
首页
指南
Pro商业版
开源地址
联系我们
更新日志
  • esflow

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 环境准备

  1. 确认 Windows 操作系统版本 在开始安装之前,请确认你的 Windows 操作系统版本,以便下载适合的安装包。虽然大多数 Node.js 安装包都支持多种 Windows 版本,但确认版本可以帮助你避免潜在的兼容性问题。
  2. 前往 Node.js 官网下载对应版本的 Node.js 安装包 访问 Node.js 官方网站,在首页上你会看到“Downloads”按钮,点击后会跳转到下载页面。根据你的 Windows 操作系统版本(如 Windows 10、Windows 7 等),选择适合的 Node.js 安装包进行下载。建议下载 20.0+。
  3. 运行下载的安装包,按照提示完成 Node.js 和 npm 的安装 双击下载的安装包(如 node-vXX.XX.X-x64.msi),打开安装向导。 按照向导的指示进行安装。在安装过程中,你可以选择安装 Node.js 和 npm 的路径,以及其他一些选项。如果你不确定,可以选择默认设置。 安装完成后,点击“Finish”按钮退出安装向导。
  4. 打开命令提示符或 PowerShell,输入 npm -v 验证 npm 是否安装成功 按下 Win + R 键,打开“运行”对话框。 输入 cmd 或 powershell,然后按 Enter 键打开命令提示符或 PowerShell。 在命令行中输入 npm -v,然后按 Enter 键。如果 npm 已成功安装,你将看到 npm 的版本号输出到命令行中。
  5. 根据需要,配置 npm 的全局安装路径和缓存路径
  6. 安装 pnpm
    执行命令 npm install pnpm -g

2.1.2 安装部署

  1. git clone https://gitee.com/yang-jiong/esflow-ui.git
  2. 命令行下进入目录
  3. pnpm install
  4. pnpm run dev
  5. 浏览器地址栏输入 http://localhost:16000

2.2 后端

2.2.1 环境准备

  1. 安装 JDK17
  2. 安装 IDE
  3. 安装 Maven

2.2.2 安装准备

  1. git clone
  2. 创建 MYSQL 数据库 CREATE DATABASE esflow DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci (mysql 版本要求 8.0+);

2.2.3 开源版运行

  1. 配置 maven 的 setting.xml,加入 nexus 私服配置(参考根目录下 setting.xml)。

  2. 安装非开源依赖 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 商业版后,将提供上述工程源代码。
  3. 参数配置

    • 修改 esflow-base-api/src/main/resources/application-dev.yml 中 mysql 数据库的 url、username、password 参数和 redis 的 host、port、password 参数。
  4. 编译

    • 通过 maven 命令 maven clean compile、maven install 分别编译打包 esflow-pro 工程。
  5. 启动项目

    • 运行 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 数据库。
  6. 登录

    • 管理员登录用户名: admin
    • 管理员登录密码: Super@2023

2.2.3 pro 版运行

  1. 参数配置
    • 修改 esflow-pro-base-api/src/main/resources/application-dev.yml 中 mysql 数据库的 url、username、password 参数和 redis 的 host、port、password 参数。
  2. 编译打包
    • 通过 maven 命令 maven clean compile、maven install 分别编译打包 easy-platform、easy-platform-flow、easy-platform-lowcode、esflow-pro 工程。
  3. 启动项目
    • 运行 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 数据库。
  4. 登录
    • 管理员登录用户名: 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获取部门信息