Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/wechat-mp

# Conflicts:
#	pom.xml
#	sql/mysql/ruoyi-vue-pro.sql
#	yudao-dependencies/pom.xml
#	yudao-framework/yudao-spring-boot-starter-biz-weixin/pom.xml
#	yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java
#	yudao-server/pom.xml
#	yudao-server/src/main/resources/admin-ui/static/js/4.js
#	yudao-server/src/main/resources/admin-ui/static/js/chunk-vendors.js
#	yudao-server/src/main/resources/application-local.yaml
#	yudao-ui-admin/yarn.lock
This commit is contained in:
YunaiV 2023-01-01 18:11:23 +08:00
commit 48520a456b
3136 changed files with 176418 additions and 57631 deletions

4
.gitignore vendored
View File

@ -45,3 +45,7 @@ nbdist/
### JRebel ### ### JRebel ###
rebel.xml rebel.xml
application-my.yaml
/yudao-ui-app/unpackage/

247
README.md
View File

@ -1,6 +1,4 @@
**严肃声明:现在、未来都不会有商业版本,所有功能全部开源!** **严肃声明:现在、未来都不会有商业版本,所有代码全部开源!**
**拒绝虚假开源,售卖商业版,程序员不骗程序员!!**
**「我喜欢写代码,乐此不疲」** **「我喜欢写代码,乐此不疲」**
**「我喜欢做开源,以此为乐」** **「我喜欢做开源,以此为乐」**
@ -9,6 +7,12 @@
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
## 🐶 新手必读
* 演示地址:<http://dashboard.yudao.iocoder.cn>
* 启动文档:<https://doc.iocoder.cn/quick-start/>
* 视频教程:<https://doc.iocoder.cn/video/>
## 🐯 平台简介 ## 🐯 平台简介
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 **芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
@ -17,41 +21,53 @@
> >
> 😜 给项目点点 Star 吧,这对我们真的很重要! > 😜 给项目点点 Star 吧,这对我们真的很重要!
* 前端采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) ,正在支持 Vue 3 + ElementUI Plus 最新方案。 ![架构图](https://static.iocoder.cn/ruoyi-vue-pro-architecture.png)
* 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
* 权限认证使用 Spring Security & Token & Redis支持多终端、多种用户的认证系统。
* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能。
* 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装。
* 工作流使用 Activiti + Flowable支持动态表单、在线设计流程、多种任务分配方式。
* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验。
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款。
* 集成阿里云、腾讯云、云片等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务。
| 项目名 | 说明 | 传说门 | * 管理后台的 Vue3 版本采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) Vue2 版本采用 [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
|--------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------| * 管理后台的移动端采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5
* 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
* 权限认证使用 Spring Security & Token & Redis支持多终端、多种用户的认证系统支持 SSO 单点登录
* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能
* 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装
* 工作流使用 Flowable支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
* 集成报表设计器,支持数据报表、图形报表、打印设计等
| 项目名 | 说明 | 传送门 |
|----------------------|------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| `ruoyi-vue-pro` | Spring Boot 多模块 | **[Gitee](https://gitee.com/zhijiantianya/ruoyi-vue-pro)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/ruoyi-vue-pro) | | `ruoyi-vue-pro` | Spring Boot 多模块 | **[Gitee](https://gitee.com/zhijiantianya/ruoyi-vue-pro)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/ruoyi-vue-pro) |
| `yudao-cloud` | Spring Cloud 微服务 | **[Gitee](https://gitee.com/zhijiantianya/yudao-cloud)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/yudao-cloud) | | `yudao-cloud` | Spring Cloud 微服务 | **[Gitee](https://gitee.com/zhijiantianya/yudao-cloud)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/yudao-cloud) |
| `Spring-Boot-Labs` | Spring Boot & Cloud 入门 | **[Gitee](https://gitee.com/zhijiantianya/SpringBoot-Labs)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/SpringBoot-Labs) | | `Spring-Boot-Labs` | Spring Boot & Cloud 入门 | **[Gitee](https://gitee.com/zhijiantianya/SpringBoot-Labs)** &nbsp;&nbsp;&nbsp; [Github](https://github.com/YunaiV/SpringBoot-Labs) |
| `ruoyi-vue-pro-mini` | 精简版:移除工作流、支付等模块 | **[Gitee](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/mini)** |
## 🐶 在线体验 ## 😎 开源协议
演示地址:<http://dashboard.yudao.iocoder.cn> **为什么推荐使用本项目?**
* 账号密码admin/admin123
文档地址:<http://www.iocoder.cn/categories/Yudao/> ① 本项目采用比 Apache 2.0 更宽松的 [MIT License](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE) 开源协议,个人与企业可 100% 免费使用不用保留类作者、Copyright 信息。
* [《如何搭建环境》](http://www.iocoder.cn/categories/Yudao/?yudao)
> 未来会补充文档和视频,方便胖友冲冲冲! ② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn)
![开源项目对比](https://static.iocoder.cn/project-vs.png?imageView2/2/format/webp/w/1280)
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范代码注释详细57000 行 Java 代码22000 行代码注释。
## 🐼 内置功能 ## 🐼 内置功能
分成多种内置功能: 系统内置多种多种业务功能,可以用于快速你的业务系统:
![功能分层](https://static.iocoder.cn/ruoyi-vue-pro-biz.png)
* 系统功能 * 系统功能
* 基础设施
* 工作流程 * 工作流程
* 支付系统 * 支付系统
* 会员中心
* 数据报表
* 商城系统 * 商城系统
* 基础设施
> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 > 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
> >
@ -73,11 +89,14 @@
| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 | | 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 | | 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | | | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云等主流短信平台 | | 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | | 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 | | ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 |
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 | | 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
| | 通知公告 | 系统通知公告信息发布维护 | | | 通知公告 | 系统通知公告信息发布维护 |
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
### 工作流程 ### 工作流程
@ -102,17 +121,6 @@
ps核心功能已经实现正在对接微信小程序中... ps核心功能已经实现正在对接微信小程序中...
### 商城系统
正在开发中,大体计划如下:
* 2022 Q2 => 完成对 <https://github.com/YunaiV/onemall> 的迁移,作为 onemall 的 Spring Boot 单体版本。
* 2022 Q4 => 完成对 <https://github.com/YunaiV/onemall>> 的重构,作为 onemall 的 Spring Cloud 微服务版本。
### 会员中心
正在开发中,大体计划如下:
* 2021 Q1 =》完成对 <https://github.com/YunaiV/onemall> 的迁移
### 基础设施 ### 基础设施
| | 功能 | 描述 | | | 功能 | 描述 |
@ -137,97 +145,154 @@ ps核心功能已经实现正在对接微信小程序中...
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | | 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | | 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
### 数据报表
| | 功能 | 描述 |
|-----|----------|----------------------------------------------|
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
| 🚀 | 大屏设计器 | 建设中... 拖拽式实现可视化数据大屏 |
### 商城系统
建设中...
![功能图](http://static.iocoder.cn/mall%20%E5%8A%9F%E8%83%BD%E5%9B%BE-min.png)
![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif)
![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif)
### 会员中心
和「商城系统」一起开发
## 🐨 技术栈 ## 🐨 技术栈
| 项目 | 说明 | | 项目 | 说明 |
|-----------------------|--------------------| |------------------------------|--------------------|
| `yudao-dependencies` | Maven 依赖版本管理 | | `yudao-dependencies` | Maven 依赖版本管理 |
| `yudao-framework` | Java 框架拓展 | | `yudao-framework` | Java 框架拓展 |
| `yudao-server` | 管理后台 + 用户 APP 的服务端 | | `yudao-server` | 管理后台 + 用户 APP 的服务端 |
| `yudao-admin-ui` | 管理后台的 UI 界面 | | `yudao-ui-admin` | 管理后台的 Vue2 前端项目 |
| `yudao-user-ui` | 用户 APP 的 UI 界面 | | `yudao-ui-admin-vue3` | 管理后台的 Vue3 前端项目 |
| `yudao-ui-admin-uniapp` | 管理后台的 uni-app 多端项目 |
| `yudao-ui-app` | 用户 APP 的 UI 界面 |
| `yudao-module-system` | 系统功能的 Module 模块 | | `yudao-module-system` | 系统功能的 Module 模块 |
| `yudao-module-member` | 会员中心的 Module 模块 | | `yudao-module-member` | 会员中心的 Module 模块 |
| `yudao-module-infra` | 基础设施的 Module 模块 | | `yudao-module-infra` | 基础设施的 Module 模块 |
| `yudao-module-tool` | 研发工具的 Module 模块 |
| `yudao-module-bpm` | 工作流程的 Module 模块 | | `yudao-module-bpm` | 工作流程的 Module 模块 |
| `yudao-module-pay` | 支付系统的 Module 模块 | | `yudao-module-pay` | 支付系统的 Module 模块 |
| `yudao-module-visualization` | 大屏报表 Module 模块 |
### 后端 ### 后端
| 框架 | 说明 | 版本 | 学习指南 | | 框架 | 说明 | 版本 | 学习指南 |
|---------------------------------------------------------------------------------------------|------------------|----------|----------------------------------------------------------------| |---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------|
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.5.12 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | | [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.6 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 | | | [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.8 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.15 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | | [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.2 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 | | | [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | |
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.16.8 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) | | [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.16 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) | | [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.5.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) | | [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.2 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) | | [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
| [Activiti](https://github.com/Activiti/Activiti) | 工作流引擎 | 7.1.0.M6 | [文档](TODO) | | [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.7.2 | [文档](https://doc.iocoder.cn/bpm/) |
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) | | [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.2 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) | | [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 3.0.3 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.0 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) | | [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) |
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) | | [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.4.2 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) | | [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.9 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.12.6 | | | [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.4.1 | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | | [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.3.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.14 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) | | [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.24 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.7.2 | - | | [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 3.9.0 | - | | [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - |
### 前端 ### [管理后台 Vue2 前端](./yudao-ui-admin)
| 框架 | 说明 | 版本 | | 框架 | 说明 | 版本 |
|------------------------------------------------------------------------------|---------------|--------| |------------------------------------------------------------------------------|---------------|--------|
| [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.6.12 | | [Vue](https://cn.vuejs.org/index.html) | JavaScript 框架 | 2.7.14 |
| [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - | | [Vue Element Admin](https://panjiachen.github.io/vue-element-admin-site/zh/) | 后台前端解决方案 | - |
### [管理后台 Vue3 前端](./yudao-ui-admin-vue3)
| 框架 | 说明 | 版本 |
|----------------------------------------------------------------------|:------------:|:------:|
| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.2.45 |
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3 |
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.27 |
| [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 |
| [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 |
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 |
| [vxe-table](https://vxetable.cn/) | vue最强表单 | 4.3.7 |
### [管理后台 uni-app 跨端](./yudao-ui-admin-uniapp)
| 框架 | 说明 | 版本 |
|-------------------------------------------------|--------------------|--------|
| [uni-app](hhttps://github.com/dcloudio/uni-app) | 跨平台框架 | 2.0.0 |
| [uni-ui](https://github.com/dcloudio/uni-ui) | 基于 uni-app 的 UI 框架 | 1.4.20 |
## 🐷 演示图 ## 🐷 演示图
### 系统功能 ### 系统功能
| 模块 | biu | biu | biu | | 模块 | biu | biu | biu |
|----------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------| |------------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------|
| 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg) | | 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg?imageView2/2/format/webp/w/1280) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg?imageView2/2/format/webp/w/1280) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg?imageView2/2/format/webp/w/1280) |
| 用户 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg) | ![在线用户](https://static.iocoder.cn/images/ruoyi-vue-pro/在线用户.jpg) | - | | 用户 & 应用 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg?imageView2/2/format/webp/w/1280) | ![令牌管理](https://static.iocoder.cn/images/ruoyi-vue-pro/令牌管理.jpg?imageView2/2/format/webp/w/1280) | ![应用管理](https://static.iocoder.cn/images/ruoyi-vue-pro/应用管理.jpg?imageView2/2/format/webp/w/1280) |
| 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.png) | - | | 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg?imageView2/2/format/webp/w/1280) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.png) | - |
| 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg) | - | | 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg?imageView2/2/format/webp/w/1280) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg?imageView2/2/format/webp/w/1280) | - |
| 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg) | - | | 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg?imageView2/2/format/webp/w/1280) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg?imageView2/2/format/webp/w/1280) | - |
| 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg) | - | | 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg?imageView2/2/format/webp/w/1280) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg?imageView2/2/format/webp/w/1280) | - |
| 短信 | ![短信渠道](https://static.iocoder.cn/images/ruoyi-vue-pro/短信渠道.jpg) | ![短信模板](https://static.iocoder.cn/images/ruoyi-vue-pro/短信模板.jpg) | ![短信日志](https://static.iocoder.cn/images/ruoyi-vue-pro/短信日志.jpg) | | 短信 | ![短信渠道](https://static.iocoder.cn/images/ruoyi-vue-pro/短信渠道.jpg?imageView2/2/format/webp/w/1280) | ![短信模板](https://static.iocoder.cn/images/ruoyi-vue-pro/短信模板.jpg?imageView2/2/format/webp/w/1280) | ![短信日志](https://static.iocoder.cn/images/ruoyi-vue-pro/短信日志.jpg?imageView2/2/format/webp/w/1280) |
| 字典 | ![字典类型](https://static.iocoder.cn/images/ruoyi-vue-pro/字典类型.jpg) | ![字典数据](https://static.iocoder.cn/images/ruoyi-vue-pro/字典数据.jpg) | - | | 字典 & 敏感词 | ![字典类型](https://static.iocoder.cn/images/ruoyi-vue-pro/字典类型.jpg?imageView2/2/format/webp/w/1280) | ![字典数据](https://static.iocoder.cn/images/ruoyi-vue-pro/字典数据.jpg?imageView2/2/format/webp/w/1280) | ![敏感词](https://static.iocoder.cn/images/ruoyi-vue-pro/敏感词.jpg?imageView2/2/format/webp/w/1280) |
| 错误码 & 通知 | ![错误码管理](https://static.iocoder.cn/images/ruoyi-vue-pro/错误码管理.jpg) | ![通知公告](https://static.iocoder.cn/images/ruoyi-vue-pro/通知公告.jpg) | - | | 错误码 & 通知 | ![错误码管理](https://static.iocoder.cn/images/ruoyi-vue-pro/错误码管理.jpg?imageView2/2/format/webp/w/1280) | ![通知公告](https://static.iocoder.cn/images/ruoyi-vue-pro/通知公告.jpg?imageView2/2/format/webp/w/1280) | - |
### 工作流程 ### 工作流程
| 模块 | biu | biu | biu | | 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| |---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 流程模型 | ![流程模型-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-列表.jpg) | ![流程模型-设计](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-设计.jpg) | ![流程模型-定义](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-定义.jpg) | | 流程模型 | ![流程模型-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-列表.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-设计](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-设计.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-定义](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-定义.jpg?imageView2/2/format/webp/w/1280) |
| 表单 & 分组 | ![流程表单](https://static.iocoder.cn/images/ruoyi-vue-pro/流程表单.jpg) | ![用户分组](https://static.iocoder.cn/images/ruoyi-vue-pro/用户分组.jpg) | - | | 表单 & 分组 | ![流程表单](https://static.iocoder.cn/images/ruoyi-vue-pro/流程表单.jpg?imageView2/2/format/webp/w/1280) | ![用户分组](https://static.iocoder.cn/images/ruoyi-vue-pro/用户分组.jpg?imageView2/2/format/webp/w/1280) | - |
| 我的流程 | ![我的流程-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-列表.jpg) | ![我的流程-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-发起.jpg) | ![我的流程-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-详情.jpg) | | 我的流程 | ![我的流程-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-列表.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-发起.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-详情.jpg?imageView2/2/format/webp/w/1280) |
| 待办 & 已办 | ![任务列表-审批](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-审批.jpg) | ![任务列表-待办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-待办.jpg) | ![任务列表-已办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-已办.jpg) | | 待办 & 已办 | ![任务列表-审批](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-审批.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-待办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-待办.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-已办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-已办.jpg?imageView2/2/format/webp/w/1280) |
| OA 请假 | ![OA请假-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-列表.jpg) | ![OA请假-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-发起.jpg) | ![OA请假-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-详情.jpg) | | OA 请假 | ![OA请假-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-列表.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-发起.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-详情.jpg?imageView2/2/format/webp/w/1280) |
### 支付系统
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 商家 & 应用 | ![商户信息](https://static.iocoder.cn/images/ruoyi-vue-pro/商户信息.jpg) | ![应用信息-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-列表.jpg) | ![应用信息-编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-编辑.jpg) |
| 支付 & 退款 | ![支付订单](https://static.iocoder.cn/images/ruoyi-vue-pro/支付订单.jpg) | ![退款订单](https://static.iocoder.cn/images/ruoyi-vue-pro/退款订单.jpg) | --- |
### 基础设施 ### 基础设施
| 模块 | biu | biu | biu | | 模块 | biu | biu | biu |
|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------| |---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------|
| 代码生成 | ![代码生成](https://static.iocoder.cn/images/ruoyi-vue-pro/代码生成.jpg) | ![生成效果](https://static.iocoder.cn/images/ruoyi-vue-pro/生成效果.jpg) | - | | 代码生成 | ![代码生成](https://static.iocoder.cn/images/ruoyi-vue-pro/代码生成.jpg?imageView2/2/format/webp/w/1280) | ![生成效果](https://static.iocoder.cn/images/ruoyi-vue-pro/生成效果.jpg?imageView2/2/format/webp/w/1280) | - |
| 文档 | ![系统接口](https://static.iocoder.cn/images/ruoyi-vue-pro/系统接口.jpg) | ![数据库文档](https://static.iocoder.cn/images/ruoyi-vue-pro/数据库文档.jpg) | - | | 文档 | ![系统接口](https://static.iocoder.cn/images/ruoyi-vue-pro/系统接口.jpg?imageView2/2/format/webp/w/1280) | ![数据库文档](https://static.iocoder.cn/images/ruoyi-vue-pro/数据库文档.jpg?imageView2/2/format/webp/w/1280) | - |
| 文件 & 配置 | ![文件配置](https://static.iocoder.cn/images/ruoyi-vue-pro/文件配置.jpg) | ![文件管理](https://static.iocoder.cn/images/ruoyi-vue-pro/文件管理2.jpg) | ![配置管理](https://static.iocoder.cn/images/ruoyi-vue-pro/配置管理.jpg) | | 文件 & 配置 | ![文件配置](https://static.iocoder.cn/images/ruoyi-vue-pro/文件配置.jpg?imageView2/2/format/webp/w/1280) | ![文件管理](https://static.iocoder.cn/images/ruoyi-vue-pro/文件管理2.jpg?imageView2/2/format/webp/w/1280) | ![配置管理](https://static.iocoder.cn/images/ruoyi-vue-pro/配置管理.jpg?imageView2/2/format/webp/w/1280) |
| 定时任务 | ![定时任务](https://static.iocoder.cn/images/ruoyi-vue-pro/定时任务.jpg) | ![任务日志](https://static.iocoder.cn/images/ruoyi-vue-pro/任务日志.jpg) | - | | 定时任务 | ![定时任务](https://static.iocoder.cn/images/ruoyi-vue-pro/定时任务.jpg?imageView2/2/format/webp/w/1280) | ![任务日志](https://static.iocoder.cn/images/ruoyi-vue-pro/任务日志.jpg?imageView2/2/format/webp/w/1280) | - |
| API 日志 | ![访问日志](https://static.iocoder.cn/images/ruoyi-vue-pro/访问日志.jpg) | ![错误日志](https://static.iocoder.cn/images/ruoyi-vue-pro/错误日志.jpg) | - | | API 日志 | ![访问日志](https://static.iocoder.cn/images/ruoyi-vue-pro/访问日志.jpg?imageView2/2/format/webp/w/1280) | ![错误日志](https://static.iocoder.cn/images/ruoyi-vue-pro/错误日志.jpg?imageView2/2/format/webp/w/1280) | - |
| MySQL & Redis | ![MySQL](https://static.iocoder.cn/images/ruoyi-vue-pro/MySQL.jpg) | ![Redis](https://static.iocoder.cn/images/ruoyi-vue-pro/Redis.jpg) | - | | MySQL & Redis | ![MySQL](https://static.iocoder.cn/images/ruoyi-vue-pro/MySQL.jpg?imageView2/2/format/webp/w/1280) | ![Redis](https://static.iocoder.cn/images/ruoyi-vue-pro/Redis.jpg?imageView2/2/format/webp/w/1280) | - |
| 监控平台 | ![Java监控](https://static.iocoder.cn/images/ruoyi-vue-pro/Java监控.jpg) | ![链路追踪](https://static.iocoder.cn/images/ruoyi-vue-pro/链路追踪.jpg) | ![日志中心](https://static.iocoder.cn/images/ruoyi-vue-pro/日志中心.jpg) | | 监控平台 | ![Java监控](https://static.iocoder.cn/images/ruoyi-vue-pro/Java监控.jpg?imageView2/2/format/webp/w/1280) | ![链路追踪](https://static.iocoder.cn/images/ruoyi-vue-pro/链路追踪.jpg?imageView2/2/format/webp/w/1280) | ![日志中心](https://static.iocoder.cn/images/ruoyi-vue-pro/日志中心.jpg?imageView2/2/format/webp/w/1280) |
### 支付系统
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 商家 & 应用 | ![商户信息](https://static.iocoder.cn/images/ruoyi-vue-pro/商户信息.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-列表.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-编辑.jpg?imageView2/2/format/webp/w/1280) |
| 支付 & 退款 | ![支付订单](https://static.iocoder.cn/images/ruoyi-vue-pro/支付订单.jpg?imageView2/2/format/webp/w/1280) | ![退款订单](https://static.iocoder.cn/images/ruoyi-vue-pro/退款订单.jpg?imageView2/2/format/webp/w/1280) | --- |
### 数据报表
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 报表设计器 | ![数据报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-数据报表.jpg?imageView2/2/format/webp/w/1280) | ![图形报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-图形报表.jpg?imageView2/2/format/webp/w/1280) | ![报表设计器-打印设计](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-打印设计.jpg?imageView2/2/format/webp/w/1280) |
### 移动端(管理后台)
| biu | biu | biu |
|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/01.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/02.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/03.png?imageView2/2/format/webp) |
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/04.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/05.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/06.png?imageView2/2/format/webp) |
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/07.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/08.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/09.png?imageView2/2/format/webp) |
目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。

View File

@ -5,6 +5,15 @@
"appTenantId": "1", "appTenantId": "1",
"appApi": "http://127.0.0.1:48080/app-api", "appApi": "http://127.0.0.1:48080/app-api",
"appToken": "test247",
"appTenentId": "1"
},
"gateway": {
"baseUrl": "http://127.0.0.1:8888/admin-api",
"token": "test1",
"adminTenentId": "1",
"appApi": "http://127.0.0.1:8888/app-api",
"appToken": "test1", "appToken": "test1",
"appTenantId": "1" "appTenantId": "1"
} }

12
pom.xml
View File

@ -14,11 +14,15 @@
<module>yudao-server</module> <module>yudao-server</module>
<!-- 各种 module 拓展 --> <!-- 各种 module 拓展 -->
<module>yudao-module-member</module> <module>yudao-module-member</module>
<module>yudao-module-bpm</module>
<module>yudao-module-system</module> <module>yudao-module-system</module>
<module>yudao-module-infra</module> <module>yudao-module-infra</module>
<module>yudao-module-pay</module> <module>yudao-module-pay</module>
<!-- <module>yudao-module-bpm</module>-->
<module>yudao-module-visualization</module>
<module>yudao-module-mp</module> <module>yudao-module-mp</module>
<!-- <module>yudao-module-mall</module>-->
<!-- 示例项目 -->
<module>yudao-example</module>
</modules> </modules>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
@ -26,7 +30,7 @@
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties> <properties>
<revision>1.6.2-snapshot</revision> <revision>1.6.5-snapshot</revision>
<!-- Maven 相关 --> <!-- Maven 相关 -->
<java.version>1.8</java.version> <java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.source>${java.version}</maven.compiler.source>
@ -34,8 +38,8 @@
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<!-- 看看咋放到 bom 里 --> <!-- 看看咋放到 bom 里 -->
<lombok.version>1.18.20</lombok.version> <lombok.version>1.18.24</lombok.version>
<mapstruct.version>1.4.1.Final</mapstruct.version> <mapstruct.version>1.5.3.Final</mapstruct.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>

View File

@ -0,0 +1,266 @@
-- ----------------------------
-- Table structure for system_menu
-- icon 不兼容
-- 注意只有在使用 yudao-ui-admin-vue3 才进行导入
-- 注意只有在使用 yudao-ui-admin-vue3 才进行导入
-- 注意只有在使用 yudao-ui-admin-vue3 才进行导入
-- ----------------------------
DROP TABLE IF EXISTS `system_menu`;
CREATE TABLE `system_menu` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单名称',
`permission` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '权限标识',
`type` tinyint NOT NULL COMMENT '菜单类型',
`sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父菜单ID',
`path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '路由地址',
`icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '#' COMMENT '菜单图标',
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组件路径',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '菜单状态',
`visible` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否可见',
`keep_alive` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否缓存',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1268 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of system_menu
-- ----------------------------
INSERT INTO `system_menu` VALUES (1, '系统管理', '', 1, 10, 0, '/system', 'ep:tools', NULL, 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:10:54', b'0');
INSERT INTO `system_menu` VALUES (2, '基础设施', '', 1, 20, 0, '/infra', 'ep:brush-filled', NULL, 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:11:55', b'0');
INSERT INTO `system_menu` VALUES (5, 'OA 示例', '', 1, 40, 1185, 'oa', 'ep:guide', NULL, 0, b'1', b'1', 'admin', '2021-09-20 16:26:19', '1', '2022-07-20 14:51:03', b'0');
INSERT INTO `system_menu` VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'ep:avatar', 'system/user/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:17', b'0');
INSERT INTO `system_menu` VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'ep:user-filled', 'system/role/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:41', b'0');
INSERT INTO `system_menu` VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'ep:grid', 'system/menu/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 13:13:54', b'0');
INSERT INTO `system_menu` VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'ep:office-building', 'system/dept/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:51:31', b'0');
INSERT INTO `system_menu` VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'ep:briefcase', 'system/post/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:41:47', b'0');
INSERT INTO `system_menu` VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'ep:list', 'system/dict/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:18', b'0');
INSERT INTO `system_menu` VALUES (106, '配置管理', '', 2, 6, 2, 'config', 'ep:edit', 'infra/config/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:48:29', b'0');
INSERT INTO `system_menu` VALUES (107, '通知公告', '', 2, 8, 1, 'notice', 'ep:bell-filled', 'system/notice/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:30', b'0');
INSERT INTO `system_menu` VALUES (108, '审计日志', '', 1, 9, 1, 'log', 'ep:document-checked', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:42:52', b'0');
INSERT INTO `system_menu` VALUES (109, '令牌管理', '', 2, 2, 1261, 'token', 'online', 'system/oauth2/token/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-11 23:31:42', b'0');
INSERT INTO `system_menu` VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'ep:alarm-clock', 'infra/job/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:09', b'0');
INSERT INTO `system_menu` VALUES (111, 'MySQL 监控', '', 2, 9, 2, 'druid', 'ep:wind-power', 'infra/druid/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:50:06', b'0');
INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'ep:opportunity', 'infra/server/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:42', b'0');
INSERT INTO `system_menu` VALUES (113, 'Redis 监控', '', 2, 10, 2, 'redis', 'ep:set-up', 'infra/redis/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:49:52', b'0');
INSERT INTO `system_menu` VALUES (114, '表单构建', 'infra:build:list', 2, 2, 2, 'build', 'ep:calendar', 'infra/build/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:47:29', b'0');
INSERT INTO `system_menu` VALUES (115, '代码生成', 'infra:codegen:query', 2, 1, 2, 'codegen', 'ep:connection', 'infra/codegen/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:46:41', b'0');
INSERT INTO `system_menu` VALUES (116, '系统接口', 'infra:swagger:list', 2, 3, 2, 'swagger', 'ep:operation', 'infra/swagger/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-07-20 14:47:41', b'0');
INSERT INTO `system_menu` VALUES (500, '操作日志', '', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (501, '登录日志', '', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1002, '用户新增', 'system:user:create', 3, 2, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1003, '用户修改', 'system:user:update', 3, 3, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1004, '用户删除', 'system:user:delete', 3, 4, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1007, '重置密码', 'system:user:update-password', 3, 7, 100, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1009, '角色新增', 'system:role:create', 3, 2, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1010, '角色修改', 'system:role:update', 3, 3, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1011, '角色删除', 'system:role:delete', 3, 4, 101, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1014, '菜单新增', 'system:menu:create', 3, 2, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1015, '菜单修改', 'system:menu:update', 3, 3, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1016, '菜单删除', 'system:menu:delete', 3, 4, 102, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1018, '部门新增', 'system:dept:create', 3, 2, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1019, '部门修改', 'system:dept:update', 3, 3, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1020, '部门删除', 'system:dept:delete', 3, 4, 103, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1022, '岗位新增', 'system:post:create', 3, 2, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1023, '岗位修改', 'system:post:update', 3, 3, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1024, '岗位删除', 'system:post:delete', 3, 4, 104, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1027, '字典新增', 'system:dict:create', 3, 2, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1028, '字典修改', 'system:dict:update', 3, 3, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1029, '字典删除', 'system:dict:delete', 3, 4, 105, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1031, '配置查询', 'infra:config:query', 3, 1, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1032, '配置新增', 'infra:config:create', 3, 2, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1033, '配置修改', 'infra:config:update', 3, 3, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1034, '配置删除', 'infra:config:delete', 3, 4, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1035, '配置导出', 'infra:config:export', 3, 5, 106, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1037, '公告新增', 'system:notice:create', 3, 2, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1038, '公告修改', 'system:notice:update', 3, 3, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1039, '公告删除', 'system:notice:delete', 3, 4, 107, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1040, '操作查询', 'system:operate-log:query', 3, 1, 500, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1042, '日志导出', 'system:operate-log:export', 3, 2, 500, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1043, '登录查询', 'system:login-log:query', 3, 1, 501, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1045, '日志导出', 'system:login-log:export', 3, 3, 501, '#', '#', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1046, '令牌列表', 'system:oauth2-token:page', 3, 1, 109, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:42', b'0');
INSERT INTO `system_menu` VALUES (1048, '令牌删除', 'system:oauth2-token:delete', 3, 2, 109, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:53', b'0');
INSERT INTO `system_menu` VALUES (1050, '任务新增', 'infra:job:create', 3, 2, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1051, '任务修改', 'infra:job:update', 3, 3, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1052, '任务删除', 'infra:job:delete', 3, 4, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1053, '状态修改', 'infra:job:update', 3, 5, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1054, '任务导出', 'infra:job:export', 3, 7, 110, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1056, '生成修改', 'infra:codegen:update', 3, 2, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1057, '生成删除', 'infra:codegen:delete', 3, 3, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1058, '导入代码', 'infra:codegen:create', 3, 2, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1059, '预览代码', 'infra:codegen:preview', 3, 4, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1060, '生成代码', 'infra:codegen:download', 3, 5, 115, '', '', '', 0, b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', 0, b'1', b'1', '', '2021-01-06 17:53:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', 0, b'1', b'1', '', '2021-01-06 17:56:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1065, '设置用户角色', 'system:permission:assign-user-role', 3, 8, 101, '', '', '', 0, b'1', b'1', '', '2021-01-07 10:23:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1066, '获得 Redis 监控信息', 'infra:redis:get-monitor-info', 3, 1, 113, '', '', '', 0, b'1', b'1', '', '2021-01-26 01:02:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1067, '获得 Redis Key 列表', 'infra:redis:get-key-list', 3, 2, 113, '', '', '', 0, b'1', b'1', '', '2021-01-26 01:02:52', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1070, '代码生成示例', 'infra:test-demo:query', 2, 1, 2, 'test-demo', 'ep:baseball', 'infra/testDemo/index', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-07-20 14:46:53', b'0');
INSERT INTO `system_menu` VALUES (1071, '测试示例表创建', 'infra:test-demo:create', 3, 1, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1072, '测试示例表更新', 'infra:test-demo:update', 3, 2, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1073, '测试示例表删除', 'infra:test-demo:delete', 3, 3, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1074, '测试示例表导出', 'infra:test-demo:export', 3, 4, 1070, '', '', '', 0, b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', 0, b'1', b'1', '', '2021-02-07 13:03:10', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'ep:grid', 'infra/dbDoc/index', 0, b'1', b'1', '', '2021-02-08 01:41:47', '1', '2022-07-20 14:47:56', b'0');
INSERT INTO `system_menu` VALUES (1077, '监控平台', '', 2, 13, 2, 'skywalking', 'ep:aim', 'infra/skywalking/index', 0, b'1', b'1', '', '2021-02-08 20:41:31', '1', '2022-07-20 14:49:15', b'0');
INSERT INTO `system_menu` VALUES (1078, '访问日志', '', 2, 1, 1083, 'api-access-log', 'log', 'infra/apiAccessLog/index', 0, b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1082, '日志导出', 'infra:api-access-log:export', 3, 2, 1078, '', '', '', 0, b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1083, 'API 日志', '', 2, 8, 2, 'log', 'ep:bell', NULL, 0, b'1', b'1', '', '2021-02-26 02:18:24', '1', '2022-07-20 14:48:36', b'0');
INSERT INTO `system_menu` VALUES (1084, '错误日志', 'infra:api-error-log:query', 2, 2, 1083, 'api-error-log', 'log', 'infra/apiErrorLog/index', 0, b'1', b'1', '', '2021-02-26 07:53:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1085, '日志处理', 'infra:api-error-log:update-status', 3, 2, 1084, '', '', '', 0, b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1086, '日志导出', 'infra:api-error-log:export', 3, 3, 1084, '', '', '', 0, b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1087, '任务查询', 'infra:job:query', 3, 1, 110, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:26:19', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1088, '日志查询', 'infra:api-access-log:query', 3, 1, 1078, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:28:04', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1089, '日志查询', 'infra:api-error-log:query', 3, 1, 1084, '', '', '', 0, b'1', b'1', '1', '2021-03-10 01:29:09', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1090, '文件列表', '', 2, 5, 1243, 'file-list', 'upload', 'infra/fileList/index', 0, b'1', b'1', '', '2021-03-12 20:16:20', '1', '2022-07-20 12:10:47', b'0');
INSERT INTO `system_menu` VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', 0, b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1092, '文件删除', 'infra:file:delete', 3, 4, 1090, '', '', '', 0, b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1093, '短信管理', '', 1, 11, 1, 'sms', 'ep:chat-dot-square', NULL, 0, b'1', b'1', '1', '2021-04-05 01:10:16', '1', '2022-07-20 14:43:32', b'0');
INSERT INTO `system_menu` VALUES (1094, '短信渠道', '', 2, 0, 1093, 'sms-channel', 'phone', 'system/sms/smsChannel', 0, b'1', b'1', '', '2021-04-01 11:07:15', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1095, '短信渠道查询', 'system:sms-channel:query', 3, 1, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1096, '短信渠道创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1097, '短信渠道更新', 'system:sms-channel:update', 3, 3, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1098, '短信渠道删除', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', 0, b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1100, '短信模板', '', 2, 1, 1093, 'sms-template', 'phone', 'system/sms/smsTemplate', 0, b'1', b'1', '', '2021-04-01 17:35:17', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1101, '短信模板查询', 'system:sms-template:query', 3, 1, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1102, '短信模板创建', 'system:sms-template:create', 3, 2, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1103, '短信模板更新', 'system:sms-template:update', 3, 3, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1104, '短信模板删除', 'system:sms-template:delete', 3, 4, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1105, '短信模板导出', 'system:sms-template:export', 3, 5, 1100, '', '', '', 0, b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1106, '发送测试短信', 'system:sms-template:send-sms', 3, 6, 1100, '', '', '', 0, b'1', b'1', '1', '2021-04-11 00:26:40', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1107, '短信日志', '', 2, 2, 1093, 'sms-log', 'phone', 'system/sms/smsLog', 0, b'1', b'1', '', '2021-04-11 08:37:05', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1108, '短信日志查询', 'system:sms-log:query', 3, 1, 1107, '', '', '', 0, b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1109, '短信日志导出', 'system:sms-log:export', 3, 5, 1107, '', '', '', 0, b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1110, '错误码管理', '', 2, 12, 1, 'error-code', 'ep:document-delete', 'system/errorCode/index', 0, b'1', b'1', '', '2021-04-13 21:46:42', '1', '2022-07-20 14:43:42', b'0');
INSERT INTO `system_menu` VALUES (1111, '错误码查询', 'system:error-code:query', 3, 1, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1112, '错误码创建', 'system:error-code:create', 3, 2, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1113, '错误码更新', 'system:error-code:update', 3, 3, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1114, '错误码删除', 'system:error-code:delete', 3, 4, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1115, '错误码导出', 'system:error-code:export', 3, 5, 1110, '', '', '', 0, b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1117, '支付管理', '', 1, 11, 0, '/pay', 'ep:goods-filled', NULL, 0, b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2022-07-20 13:11:45', b'0');
INSERT INTO `system_menu` VALUES (1118, '请假查询', '', 2, 0, 5, 'leave', 'user', 'bpm/oa/leave/index', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1119, '请假申请查询', 'bpm:oa-leave:query', 3, 1, 1118, '', '', '', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1120, '请假申请创建', 'bpm:oa-leave:create', 3, 2, 1118, '', '', '', 0, b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1126, '应用信息', '', 2, 1, 1117, 'app', 'ep:cellphone', 'pay/app/index', 0, b'1', b'1', '', '2021-11-10 01:13:30', '1', '2022-07-20 14:44:17', b'0');
INSERT INTO `system_menu` VALUES (1127, '支付应用信息查询', 'pay:app:query', 3, 1, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1128, '支付应用信息创建', 'pay:app:create', 3, 2, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1129, '支付应用信息更新', 'pay:app:update', 3, 3, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1130, '支付应用信息删除', 'pay:app:delete', 3, 4, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1131, '支付应用信息导出', 'pay:app:export', 3, 5, 1126, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1132, '秘钥解析', 'pay:channel:parsing', 3, 6, 1129, '', '', '', 0, b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1133, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1134, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1135, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1136, '支付商户信息删除', 'pay:merchant:delete', 3, 4, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1137, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1132, '', '', '', 0, b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1138, '租户列表', '', 2, 0, 1224, 'list', 'peoples', 'system/tenant/index', 0, b'1', b'1', '', '2021-12-14 12:31:43', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1139, '租户查询', 'system:tenant:query', 3, 1, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1140, '租户创建', 'system:tenant:create', 3, 2, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1141, '租户更新', 'system:tenant:update', 3, 3, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1142, '租户删除', 'system:tenant:delete', 3, 4, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1143, '租户导出', 'system:tenant:export', 3, 5, 1138, '', '', '', 0, b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1150, '秘钥解析', '', 3, 6, 1129, '', '', '', 0, b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1161, '退款订单', '', 2, 3, 1117, 'refund', 'ep:message-box', 'pay/refund/index', 0, b'1', b'1', '', '2021-12-25 08:29:07', '1', '2022-07-20 14:45:23', b'0');
INSERT INTO `system_menu` VALUES (1162, '退款订单查询', 'pay:refund:query', 3, 1, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1163, '退款订单创建', 'pay:refund:create', 3, 2, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1164, '退款订单更新', 'pay:refund:update', 3, 3, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1165, '退款订单删除', 'pay:refund:delete', 3, 4, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1166, '退款订单导出', 'pay:refund:export', 3, 5, 1161, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1173, '支付订单', '', 2, 2, 1117, 'order', 'ep:histogram', 'pay/order/index', 0, b'1', b'1', '', '2021-12-25 08:49:43', '1', '2022-07-20 14:44:36', b'0');
INSERT INTO `system_menu` VALUES (1174, '支付订单查询', 'pay:order:query', 3, 1, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1175, '支付订单创建', 'pay:order:create', 3, 2, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1176, '支付订单更新', 'pay:order:update', 3, 3, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1177, '支付订单删除', 'pay:order:delete', 3, 4, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', 0, b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1179, '商户信息', '', 2, 0, 1117, 'merchant', 'ep:goods', 'pay/merchant/index', 0, b'1', b'1', '', '2021-12-25 09:01:44', '1', '2022-07-20 14:44:58', b'0');
INSERT INTO `system_menu` VALUES (1180, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1181, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1182, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1183, '支付商户信息删除', '', 3, 4, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1184, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1179, '', '', '', 0, b'1', b'1', '', '2021-12-25 09:01:44', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'ep:checked', NULL, 0, b'1', b'1', '1', '2021-12-30 20:26:36', '1', '2022-07-20 13:12:35', b'0');
INSERT INTO `system_menu` VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'ep:collection-tag', NULL, 0, b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2022-07-20 14:50:31', b'0');
INSERT INTO `system_menu` VALUES (1187, '流程表单', '', 2, 0, 1186, 'form', 'form', 'bpm/form/index', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', 0, b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'guide', 'bpm/model/index', 0, b'1', b'1', '1', '2021-12-31 23:24:58', '103', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1200, '任务管理', '', 1, 20, 1185, 'task', 'ep:calendar', NULL, 0, b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2022-07-20 14:50:40', b'0');
INSERT INTO `system_menu` VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'people', 'bpm/processInstance/index', 0, b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', 0, b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'eye-open', 'bpm/task/todo', 0, b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'eye', 'bpm/task/done', 0, b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'people', 'bpm/group/index', 0, b'1', b'1', '', '2022-01-14 02:14:20', '103', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1213, '用户组删除', 'bpm:user-group:delete', 3, 4, 1209, '', '', '', 0, b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1215, '流程定义查询', 'bpm:process-definition:query', 3, 10, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:21:43', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1216, '流程任务分配规则查询', 'bpm:task-assign-rule:query', 3, 20, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:26:53', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1217, '流程任务分配规则创建', 'bpm:task-assign-rule:create', 3, 21, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:28:15', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1218, '流程任务分配规则更新', 'bpm:task-assign-rule:update', 3, 22, 1193, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:28:41', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1219, '流程实例的创建', 'bpm:process-instance:create', 3, 2, 1201, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:36:15', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1220, '流程实例的取消', 'bpm:process-instance:cancel', 3, 3, 1201, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:36:33', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1221, '流程任务的查询', 'bpm:task:query', 3, 1, 1207, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:38:52', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1222, '流程任务的更新', 'bpm:task:update', 3, 2, 1207, '', '', '', 0, b'1', b'1', '1', '2022-01-23 00:39:24', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1224, '租户管理', '', 2, 0, 1, 'tenant', 'ep:cherry', NULL, 0, b'1', b'1', '1', '2022-02-20 01:41:13', '1', '2022-07-20 14:51:46', b'0');
INSERT INTO `system_menu` VALUES (1225, '租户套餐', '', 2, 0, 1224, 'package', 'eye', 'system/tenantPackage/index', 0, b'1', b'1', '', '2022-02-19 17:44:06', '1', '2022-04-21 01:21:25', b'0');
INSERT INTO `system_menu` VALUES (1226, '租户套餐查询', 'system:tenant-package:query', 3, 1, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1227, '租户套餐创建', 'system:tenant-package:create', 3, 2, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1228, '租户套餐更新', 'system:tenant-package:update', 3, 3, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1229, '租户套餐删除', 'system:tenant-package:delete', 3, 4, 1225, '', '', '', 0, b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1237, '文件配置', '', 2, 0, 1243, 'file-config', 'config', 'infra/fileConfig/index', 0, b'1', b'1', '', '2022-03-15 14:35:28', '1', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1238, '文件配置查询', 'infra:file-config:query', 3, 1, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1239, '文件配置创建', 'infra:file-config:create', 3, 2, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1240, '文件配置更新', 'infra:file-config:update', 3, 3, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', 0, b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1243, '文件管理', '', 2, 5, 2, 'file', 'ep:folder-opened', NULL, 0, b'1', b'1', '1', '2022-03-16 23:47:40', '1', '2022-07-20 14:48:19', b'0');
INSERT INTO `system_menu` VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'ep:document-copy', 'system/sensitiveWord/index', 0, b'1', b'1', '', '2022-04-07 16:55:03', '1', '2022-07-20 14:43:53', b'0');
INSERT INTO `system_menu` VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', 0, b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0');
INSERT INTO `system_menu` VALUES (1254, '作者动态', '', 1, 0, 0, 'https://www.iocoder.cn', 'ep:bell-filled', NULL, 0, b'1', b'1', '1', '2022-04-23 01:03:15', '1', '2022-07-20 13:12:43', b'0');
INSERT INTO `system_menu` VALUES (1255, '数据源配置', '', 2, 1, 2, 'data-source-config', 'ep:coin', 'infra/dataSourceConfig/index', 0, b'1', b'1', '', '2022-04-27 14:37:32', '1', '2022-07-20 14:49:01', b'0');
INSERT INTO `system_menu` VALUES (1256, '数据源配置查询', 'infra:data-source-config:query', 3, 1, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
INSERT INTO `system_menu` VALUES (1257, '数据源配置创建', 'infra:data-source-config:create', 3, 2, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
INSERT INTO `system_menu` VALUES (1258, '数据源配置更新', 'infra:data-source-config:update', 3, 3, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
INSERT INTO `system_menu` VALUES (1259, '数据源配置删除', 'infra:data-source-config:delete', 3, 4, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
INSERT INTO `system_menu` VALUES (1260, '数据源配置导出', 'infra:data-source-config:export', 3, 5, 1255, '', '', '', 0, b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0');
INSERT INTO `system_menu` VALUES (1261, '授权管理', '', 1, 10, 1, 'oauth2', 'ep:connection', NULL, 0, b'1', b'1', '1', '2022-05-09 23:38:17', '1', '2022-07-20 14:43:23', b'0');
INSERT INTO `system_menu` VALUES (1263, '应用管理', '', 2, 0, 1261, 'oauth2/application', 'tool', 'system/oauth2/client/index', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 23:31:36', b'0');
INSERT INTO `system_menu` VALUES (1264, '客户端查询', 'system:oauth2-client:query', 3, 1, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:06', b'0');
INSERT INTO `system_menu` VALUES (1265, '客户端创建', 'system:oauth2-client:create', 3, 2, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:23', b'0');
INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client:update', 3, 3, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:28', b'0');
INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0');
INSERT INTO `system_menu` VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'ep:histogram', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0');
INSERT INTO `system_menu` VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'ep:histogram', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0');
SET FOREIGN_KEY_CHECKS = 1;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
DROP TABLE IF EXISTS `coupon`;
CREATE TABLE `coupon`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券类型 reward-满减 discount-折扣 random-随机',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券名称',
`coupon_type_id` bigint UNSIGNED DEFAULT 0 COMMENT '优惠券类型id',
`coupon_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券编码',
`member_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '领用人',
`use_order_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券使用订单id',
`goods_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '适用商品类型1-全部商品可用2-指定商品可用3-指定商品不可用',
`goods_ids` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '适用商品id',
`at_least` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最小金额',
`money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '面额',
`discount` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '1 =< 折扣 <= 9.9 当type为discount时需要添加',
`discount_limit` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最多折扣金额 当type为discount时可选择性添加',
`whether_forbid_preference` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠叠加 0-不限制 1- 优惠券仅原价购买商品时可用',
`whether_expire_notice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否开启过期提醒0-不开启 1-开启',
`expire_notice_fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期前N天提醒',
`whether_noticed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否已提醒',
`state` tinyint(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券状态 1已领用未使用 2已使用 3已过期',
`get_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '获取方式1订单2.直接领取3.活动领取 4转赠 5分享获取',
`fetch_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '领取时间',
`use_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '使用时间',
`start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '可使用的开始时间',
`end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '有效期结束时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 119
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券';
DROP TABLE IF EXISTS `coupon_templete`;
CREATE TABLE `coupon_templete`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券类型 reward-满减 discount-折扣 random-随机',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '优惠券名称',
`coupon_name_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '名称备注',
`image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '优惠券图片',
`count` int(11) NOT NULL DEFAULT 0 COMMENT '发放数量',
`lead_count` int(11) NOT NULL DEFAULT 0 COMMENT '已领取数量',
`used_count` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '已使用数量',
`goods_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '适用商品类型1-全部商品可用2-指定商品可用3-指定商品不可用',
`product_ids` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '适用商品id',
`has_use_limit` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用门槛0-无门槛 1-有门槛',
`at_least` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '满多少元使用 0代表无限制',
`money` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '发放面额 当type为reward时需要添加',
`discount` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '1 =< 折扣 <= 9.9 当type为discount时需要添加',
`discount_limit` decimal(10, 2) NOT NULL DEFAULT 0 COMMENT '最多折扣金额 当type为discount时可选择性添加',
`min_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最低金额 当type为radom时需要添加',
`max_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大金额 当type为radom时需要添加',
`validity_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期类型1-时间范围过期 2-领取之日固定日期后过期 3-领取次日固定日期后过期',
`start_use_time` datetime COMMENT '使用开始日期 过期类型1时必填',
`end_use_time` datetime COMMENT '使用结束日期 过期类型1时必填',
`fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '当validity_type为2或者3时需要添加 领取之日起或者次日N天内有效',
`whether_limitless` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否无限制0- 1是',
`max_fetch` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '每人最大领取个数',
`whether_expire_notice` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否开启过期提醒0-不开启 1-开启',
`expire_notice_fixed_term` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '过期前N天提醒',
`whether_forbid_preference` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠叠加 0-不限制 1- 优惠券仅原价购买商品时可用',
`whether_show` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否显示',
`discount_order_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单的优惠总金额',
`order_money` decimal(10, 2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用券总成交额',
`whether_forbidden` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否禁止发放0- 1-',
`order_goods_num` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用优惠券购买的商品数量',
`status` tinyint(11) NOT NULL DEFAULT 0 COMMENT '状态1进行中2已结束-1已关闭',
`end_time` datetime COMMENT '有效日期结束时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 119
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券模板';

315
sql/optional/mall/mall.sql Normal file
View File

@ -0,0 +1,315 @@
/*
Navicat Premium Data Transfer
Source Server : 127.0.0.1 MySQL
Source Server Type : MySQL
Source Server Version : 80026
Source Host : localhost:3306
Source Schema : ruoyi-vue-pro
Target Server Type : MySQL
Target Server Version : 80026
File Encoding : 65001
Date: 01/08/2022 23:01:36
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for market_activity
-- ----------------------------
DROP TABLE IF EXISTS `market_activity`;
CREATE TABLE `market_activity` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '活动编号',
`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '活动标题',
`activity_type` tinyint NOT NULL COMMENT '活动类型',
`status` tinyint NOT NULL DEFAULT -1 COMMENT '活动状态',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`invalid_time` datetime NULL DEFAULT NULL COMMENT '失效时间',
`delete_time` datetime NULL DEFAULT NULL COMMENT '删除时间',
`time_limited_discount` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '限制折扣字符串使用 JSON 序列化成字符串存储',
`full_privilege` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '限制折扣字符串使用 JSON 序列化成字符串存储',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '促销活动';
-- ----------------------------
-- Records of market_activity
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for market_banner
-- ----------------------------
DROP TABLE IF EXISTS `market_banner`;
CREATE TABLE `market_banner` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'Banner编号',
`title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Banner标题',
`pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '图片URL',
`status` tinyint NOT NULL DEFAULT -1 COMMENT '活动状态',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跳转地址',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`sort` tinyint NULL DEFAULT NULL COMMENT '排序',
`memo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Banner管理';
-- ----------------------------
-- Records of market_banner
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for member_address
-- ----------------------------
DROP TABLE IF EXISTS `member_address`;
CREATE TABLE `member_address` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '收件地址编号',
`user_id` bigint NOT NULL COMMENT '用户编号',
`name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收件人名称',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号',
`area_id` bigint NOT NULL COMMENT '地区编码',
`post_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮编',
`detail_address` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收件详细地址',
`defaulted` bit(1) NOT NULL COMMENT '是否默认',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_userId`(`user_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户收件地址';
-- ----------------------------
-- Records of member_address
-- ----------------------------
BEGIN;
INSERT INTO `member_address` (`id`, `user_id`, `name`, `mobile`, `area_id`, `post_code`, `detail_address`, `defaulted`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (21, 1, 'yunai', '15601691300', 610632, '200000', '芋道源码 233 666 ', b'1', '1', '2022-08-01 22:46:35', '1', '2022-08-01 22:46:35', b'0', 1);
COMMIT;
-- ----------------------------
-- Table structure for product_brand
-- ----------------------------
DROP TABLE IF EXISTS `product_brand`;
CREATE TABLE `product_brand` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌编号',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌名称',
`pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '品牌图片',
`sort` int NULL DEFAULT 0 COMMENT '品牌排序',
`description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '品牌描述',
`status` tinyint NOT NULL COMMENT '状态',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商品品牌';
-- ----------------------------
-- Records of product_brand
-- ----------------------------
BEGIN;
INSERT INTO `product_brand` (`id`, `name`, `pic_url`, `sort`, `description`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '苹果', 'http://test.yudao.iocoder.cn/e3726713fa56db5717c78c011762fcc7a251db12735c3581470638b8e1fa17e2.jpeg', 0, '是上市', 0, '1', '2022-07-30 22:12:18', '1', '2022-07-30 22:13:55', b'0', 1);
COMMIT;
-- ----------------------------
-- Table structure for product_category
-- ----------------------------
DROP TABLE IF EXISTS `product_category`;
CREATE TABLE `product_category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号',
`parent_id` bigint NOT NULL COMMENT '父分类编号',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称',
`pic_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类图片',
`sort` int NULL DEFAULT 0 COMMENT '分类排序',
`description` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分类描述',
`status` tinyint NOT NULL COMMENT '开启状态',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商品分类';
-- ----------------------------
-- Records of product_category
-- ----------------------------
BEGIN;
INSERT INTO `product_category` (`id`, `parent_id`, `name`, `pic_url`, `sort`, `description`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 0, '电脑办公', 'http://test.yudao.iocoder.cn/122d548e1b3cd5dec72fe8075c6977a70f9cc13541a684ab3685f1b5df42f6bd.jpeg', 1, '1234', 0, '1', '2022-07-30 16:36:35', '1', '2022-07-30 20:27:16', b'0', 1), (2, 1, '笔记本', 'http://test.yudao.iocoder.cn/72713ac7b947600a019a18786ed0e6562e8692e253dbd35110a0a85c2469bbec.jpg', 1, '<p>测试一下</p>', 0, '1', '2022-07-30 16:38:09', '1', '2022-07-30 16:38:09', b'0', 1), (3, 1, '游戏本', 'http://test.yudao.iocoder.cn/287c50dd9f5f575f57329a0c57b2095be6d1aeba83867b905fe549f54a296feb.jpg', 2, '<p>测试一下</p>', 0, '1', '2022-07-30 16:39:09', '1', '2022-07-30 20:26:59', b'0', 1), (4, 0, '手机', 'http://test.yudao.iocoder.cn/e1b63900c78dbb661b3e383960cee5cfea7e1dd2fb22cff2e317ff025faaf8b2.jpeg', 2, '<p>123</p>', 0, '1', '2022-07-30 16:40:00', '1', '2022-07-30 16:40:09', b'0', 1), (5, 4, '5G手机', 'http://test.yudao.iocoder.cn/3af6557ac7def6423f046f5b2e920b644793420b466959aaa996a2e19068bbde.jpeg', 1, '<p><br></p>', 0, '1', '2022-07-30 16:43:00', '1', '2022-07-30 16:43:00', b'0', 1), (6, 4, '游戏手机', 'http://test.yudao.iocoder.cn/964fe9ccd1710d64ede261dc36d231918a017641986c15293c367f9f66d94d05.jpeg', 2, NULL, 0, '1', '2022-07-30 16:43:44', '1', '2022-07-30 16:43:44', b'0', 1), (7, 5, '厉害的 5G 手机', 'http://test.yudao.iocoder.cn/b287122f277838e8de368769b96217918605743bc45f3a29bda3cc7359dc66e1.png', 0, '123', 0, '1', '2022-07-30 20:38:09', '1', '2022-07-30 20:38:09', b'0', 1);
COMMIT;
-- ----------------------------
-- Table structure for product_property
-- ----------------------------
DROP TABLE IF EXISTS `product_property`;
CREATE TABLE `product_property` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格名称',
`status` tinyint NULL DEFAULT NULL COMMENT '状态 0 开启 1 禁用',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_name`(`name`(32) ASC) USING BTREE COMMENT '规格名称索引'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '规格名称';
-- ----------------------------
-- Records of product_property
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for product_property_value
-- ----------------------------
DROP TABLE IF EXISTS `product_property_value`;
CREATE TABLE `product_property_value` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`property_id` bigint NULL DEFAULT NULL COMMENT '规格键id',
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格值名字',
`status` tinyint NULL DEFAULT NULL COMMENT '状态 1 开启 2 禁用',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '规格值';
-- ----------------------------
-- Records of product_property_value
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for product_sku
-- ----------------------------
DROP TABLE IF EXISTS `product_sku`;
CREATE TABLE `product_sku` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`spu_id` bigint NOT NULL COMMENT 'spu编号',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
`name` varchar(128) DEFAULT NULL COMMENT '商品 SKU 名字',
`properties` varchar(128) DEFAULT NULL COMMENT '规格值数组-json格式 [{propertId: , valueId: }, {propertId: , valueId: }]',
`price` int NOT NULL DEFAULT '-1' COMMENT '销售价格单位',
`market_price` int DEFAULT NULL COMMENT '市场价',
`cost_price` int NOT NULL DEFAULT '-1' COMMENT '成本价单位 ',
`pic_url` varchar(128) NOT NULL COMMENT '图片地址',
`stock` int DEFAULT NULL COMMENT '库存',
`warn_stock` int DEFAULT NULL COMMENT '预警库存',
`volume` double DEFAULT NULL COMMENT '商品体积',
`weight` double DEFAULT NULL COMMENT '商品重量',
`bar_code` varchar(64) DEFAULT NULL COMMENT '条形码',
`status` tinyint DEFAULT NULL COMMENT '状态 0-正常 1-禁用',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(64) DEFAULT NULL COMMENT '创建人',
`updater` double(64,0) DEFAULT NULL COMMENT '更新人',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='商品sku';
-- ----------------------------
-- Records of product_sku
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for product_spu
-- ----------------------------
DROP TABLE IF EXISTS `product_spu`;
CREATE TABLE `product_spu` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
`brand_id` bigint DEFAULT NULL COMMENT '商品品牌编号',
`category_id` bigint NOT NULL COMMENT '分类id',
`spec_type` int NOT NULL COMMENT '规格类型0 单规格 1 多规格',
`code` varchar(128) DEFAULT NULL COMMENT '商品编码',
`name` varchar(128) NOT NULL COMMENT '商品名称',
`sell_point` varchar(128) DEFAULT NULL COMMENT '卖点',
`description` text COMMENT '描述',
`pic_urls` varchar(1024) DEFAULT '' COMMENT '商品轮播图地址\n 数组以逗号分隔\n 最多上传15张',
`video_url` varchar(128) DEFAULT NULL COMMENT '商品视频',
`market_price` int DEFAULT NULL COMMENT '市场价单位使用',
`min_price` int DEFAULT NULL COMMENT '最小价格单位使用',
`max_price` int DEFAULT NULL COMMENT '最大价格单位使用',
`total_stock` int NOT NULL DEFAULT '0' COMMENT '总库存',
`show_stock` int DEFAULT '0' COMMENT '是否展示库存',
`sales_count` int DEFAULT '0' COMMENT '商品销量',
`virtual_sales_count` int DEFAULT '0' COMMENT '虚拟销量',
`click_count` int DEFAULT '0' COMMENT '商品点击量',
`status` bit(1) DEFAULT NULL COMMENT '上下架状态 0 上架开启 1 下架禁用-1 回收',
`sort` int NOT NULL DEFAULT '0' COMMENT '排序字段',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(64) DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) DEFAULT NULL COMMENT '更新人',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='商品spu';
-- ----------------------------
-- Records of product_spu
-- ----------------------------
BEGIN;
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2000, '商品中心', '', 1, 60, 0, '/product', 'merchant', NULL, 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:26:19', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2002, '商品分类', '', 2, 2, 2000, 'category', 'dict', 'mall/product/category/index', 0, b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:23:37', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2003, '分类查询', 'product:category:query', 3, 1, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2004, '分类创建', 'product:category:create', 3, 2, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2005, '分类更新', 'product:category:update', 3, 3, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2006, '分类删除', 'product:category:delete', 3, 4, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2007, '分类导出', 'product:category:export', 3, 5, 2002, '', '', '', 0, b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-30 13:52:13', b'1');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2008, '商品品牌', '', 2, 1, 2000, 'brand', 'dashboard', 'mall/product/brand/index', 0, b'1', b'1', '', '2022-07-30 13:52:44', '1', '2022-07-30 22:23:43', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2009, '品牌查询', 'product:brand:query', 3, 1, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2010, '品牌创建', 'product:brand:create', 3, 2, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2011, '品牌更新', 'product:brand:update', 3, 3, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2012, '品牌删除', 'product:brand:delete', 3, 4, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2013, '品牌导出', 'product:brand:export', 3, 5, 2008, '', '', '', 0, b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 14:15:00', b'1');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2014, '商品管理', '', 2, 0, 2000, 'spu', 'link', 'mall/product/spu/index', 0, b'1', b'1', '', '2022-07-30 14:22:58', '1', '2022-07-30 22:26:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2015, '商品查询', 'product:spu:query', 3, 1, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2016, '商品创建', 'product:spu:create', 3, 2, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2017, '商品更新', 'product:spu:update', 3, 3, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2018, '商品删除', 'product:spu:delete', 3, 4, 2014, '', '', '', 0, b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2019, '规格管理', '', 2, 3, 2000, 'property', '', 'mall/product/property/index', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2020, '规格查询', 'product:property:query', 3, 1, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2021, '规格创建', 'product:property:create', 3, 2, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2022, '规格更新', 'product:property:update', 3, 3, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2023, '规格删除', 'product:property:delete', 3, 4, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2024, '规格导出', 'product:property:export', 3, 5, 2019, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-08-01 14:55:35', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2025, 'Banner管理', '', 2, 1, 2000, 'banner', '', 'mall/market/banner/index', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2026, 'Banner查询', 'market:banner:query', 3, 1, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2027, 'Banner创建', 'market:banner:create', 3, 2, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2028, 'Banner更新', 'market:banner:update', 3, 3, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0');
INSERT INTO `ruoyi-vue-pro`.`system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2029, 'Banner删除', 'market:banner:delete', 3, 4, 2025, '', '', '', 0, b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0');

View File

@ -0,0 +1,78 @@
/**todo cancelType 设置默认值 0?*/
DROP TABLE IF EXISTS `trade_order`;
CREATE TABLE `trade_order`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`sn` varchar(32) NOT NULL COMMENT '订单流水号',
`type` int NOT NULL DEFAULT '0' COMMENT '订单类型[0:普通订单 1:秒杀订单 2:拼团订单 3:砍价订单]',
`terminal` int NOT NULL COMMENT '订单来源终端[1:小程序 2:H5 3:iOS 4:安卓]',
`user_id` bigint unsigned NOT NULL COMMENT '用户编号',
`user_ip` varchar(30) NOT NULL DEFAULT '' COMMENT '用户 IP',
`user_remark` varchar(200) DEFAULT NULL COMMENT '用户备注',
`status` int NOT NULL DEFAULT '0' COMMENT '订单状态[0:待付款 1:待发货 2:待收货 3:已完成 4:已关闭]',
`product_count` int NOT NULL COMMENT '购买的商品数量',
`cancel_type` int DEFAULT NULL COMMENT '取消类型[10:超时未支付 20:退款关闭 30:买家取消 40:已通过货到付款交易]',
`remark` varchar(200) DEFAULT NULL COMMENT '商家备注',
`payed` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已支付[0:未支付 1:已经支付过]',
`pay_time` datetime DEFAULT NULL COMMENT '订单支付时间',
`finish_time` datetime DEFAULT NULL COMMENT '订单完成时间',
`cancel_time` datetime DEFAULT NULL COMMENT '订单取消时间',
`sku_original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价单位',
`sku_promotion_price` int NOT NULL DEFAULT '0' COMMENT '商品优惠单位',
`order_promotion_price` int NOT NULL DEFAULT '0' COMMENT '订单优惠单位',
`delivery_price` int NOT NULL DEFAULT '0' COMMENT '运费金额单位',
`pay_price` int NOT NULL DEFAULT '0' COMMENT '应付金额单位',
`pay_order_id` int DEFAULT NULL COMMENT '支付订单编号',
`pay_channel` int DEFAULT NULL COMMENT '支付成功的支付渠道',
`delivery_type` int DEFAULT NULL DEFAULT '1' COMMENT '配送方式:[1:快递发货 2:自提]',
`actual_delivery_type` int DEFAULT NULL DEFAULT '1' COMMENT '实际的配送方式:[1:快递发货 2:自提]',
`delivery_template_id` int DEFAULT NULL COMMENT '配置模板的编号',
`express_no` int DEFAULT NULL COMMENT '物流公司单号',
`delivery_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '发货状态[0:未发货 1:已发货]',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
`receiver_name` varchar(20) NOT NULL COMMENT '收件人名称',
`receiver_mobile` varchar(20) NOT NULL COMMENT '收件人手机',
`receiver_area_id` int NOT NULL COMMENT '收件人地区编号',
`receiver_post_code` int DEFAULT NULL COMMENT '收件人邮编',
`receiver_detail_address` varchar(255) NOT NULL COMMENT '收件人详细地址',
`refund_status` int NOT NULL DEFAULT '0' COMMENT '订单状态[0:未退款 1:部分退款 2:全部退款]',
`refund_price` int NOT NULL DEFAULT '0' COMMENT '退款金额单位',
`coupon_id` bigint unsigned NOT NULL COMMENT '优惠劵编号',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT ='交易订单表';
DROP TABLE IF EXISTS `trade_order_item`;
CREATE TABLE `trade_order_item`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`user_id` bigint unsigned NOT NULL COMMENT '用户编号',
`order_Id` bigint unsigned NOT NULL COMMENT '订单编号',
`spu_id` bigint unsigned NOT NULL COMMENT '商品 SPU 编号',
`sku_id` bigint unsigned NOT NULL COMMENT '商品 SKU 编号',
`properties` json DEFAULT NULL COMMENT '规格值数组JSON 格式',
`name` varchar(128) NOT NULL DEFAULT '' COMMENT '商品名称',
`pic_url` varchar(200) DEFAULT NULL COMMENT '商品图片',
`count` int NOT NULL COMMENT '购买数量',
`commented` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否评论[0:未评论 1:已评论]',
`original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价单位',
`total_original_price` int NOT NULL DEFAULT '0' COMMENT '商品原价单位',
`total_promotion_price` int NOT NULL DEFAULT '0' COMMENT '商品级优惠单位',
`present_price` int NOT NULL DEFAULT '0' COMMENT '最终购买金额单位',
`total_present_price` int NOT NULL DEFAULT '0' COMMENT '最终购买金额单位',
`total_pay_price` int NOT NULL DEFAULT '0' COMMENT '应付金额单位',
`refund_status` int NOT NULL DEFAULT '0' COMMENT '退款状态:[0:未申请退款 1:申请退款 2:等待退款 3:退款成功]',
`refund_total` int NOT NULL DEFAULT '0' COMMENT '退款总金额单位',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT ='交易订单明细表';

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,7 @@
Target Server Version : 110200 Target Server Version : 110200
File Encoding : 65001 File Encoding : 65001
Date: 26/05/2022 00:38:28 Date: 15/06/2022 08:20:08
*/ */
@ -878,13 +878,14 @@ CREATE TABLE "INFRA_FILE" (
"CONFIG_ID" NUMBER(20,0), "CONFIG_ID" NUMBER(20,0),
"PATH" NVARCHAR2(512), "PATH" NVARCHAR2(512),
"URL" NCLOB, "URL" NCLOB,
"TYPE" NVARCHAR2(63), "TYPE" NVARCHAR2(64),
"SIZE" NUMBER(11,0) NOT NULL, "SIZE" NUMBER(11,0) NOT NULL,
"CREATOR" NVARCHAR2(64), "CREATOR" NVARCHAR2(64),
"CREATE_TIME" DATE NOT NULL, "CREATE_TIME" DATE NOT NULL,
"UPDATER" NVARCHAR2(64), "UPDATER" NVARCHAR2(64),
"UPDATE_TIME" DATE NOT NULL, "UPDATE_TIME" DATE NOT NULL,
"DELETED" NUMBER(1,0) DEFAULT 0 "DELETED" NUMBER(1,0) DEFAULT 0,
"NAME" NVARCHAR2(512)
) )
LOGGING LOGGING
NOCOMPRESS NOCOMPRESS
@ -907,12 +908,13 @@ COMMENT ON COLUMN "INFRA_FILE"."ID" IS '文件编号';
COMMENT ON COLUMN "INFRA_FILE"."CONFIG_ID" IS '配置编号'; COMMENT ON COLUMN "INFRA_FILE"."CONFIG_ID" IS '配置编号';
COMMENT ON COLUMN "INFRA_FILE"."PATH" IS '文件路径'; COMMENT ON COLUMN "INFRA_FILE"."PATH" IS '文件路径';
COMMENT ON COLUMN "INFRA_FILE"."URL" IS '文件 URL'; COMMENT ON COLUMN "INFRA_FILE"."URL" IS '文件 URL';
COMMENT ON COLUMN "INFRA_FILE"."TYPE" IS '文件类型'; COMMENT ON COLUMN "INFRA_FILE"."TYPE" IS '文件MIME类型';
COMMENT ON COLUMN "INFRA_FILE"."SIZE" IS '文件大小'; COMMENT ON COLUMN "INFRA_FILE"."SIZE" IS '文件大小';
COMMENT ON COLUMN "INFRA_FILE"."CREATOR" IS '创建者'; COMMENT ON COLUMN "INFRA_FILE"."CREATOR" IS '创建者';
COMMENT ON COLUMN "INFRA_FILE"."CREATE_TIME" IS '创建时间'; COMMENT ON COLUMN "INFRA_FILE"."CREATE_TIME" IS '创建时间';
COMMENT ON COLUMN "INFRA_FILE"."UPDATER" IS '更新者'; COMMENT ON COLUMN "INFRA_FILE"."UPDATER" IS '更新者';
COMMENT ON COLUMN "INFRA_FILE"."UPDATE_TIME" IS '更新时间'; COMMENT ON COLUMN "INFRA_FILE"."UPDATE_TIME" IS '更新时间';
COMMENT ON COLUMN "INFRA_FILE"."NAME" IS '文件名';
COMMENT ON TABLE "INFRA_FILE" IS '文件表'; COMMENT ON TABLE "INFRA_FILE" IS '文件表';
-- ---------------------------- -- ----------------------------
@ -2452,7 +2454,6 @@ INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "ST
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('62', '0', '未处理', '0', 'infra_api_error_log_process_status', '0', 'primary', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:19', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:17', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('62', '0', '未处理', '0', 'infra_api_error_log_process_status', '0', 'primary', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:19', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:17', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('63', '1', '已处理', '1', 'infra_api_error_log_process_status', '0', 'success', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:26', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:08', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('63', '1', '已处理', '1', 'infra_api_error_log_process_status', '0', 'success', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:26', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:08', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('64', '2', '已忽略', '2', 'infra_api_error_log_process_status', '0', 'danger', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:14', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('64', '2', '已忽略', '2', 'infra_api_error_log_process_status', '0', 'danger', NULL, NULL, NULL, TO_DATE('2021-02-26 07:07:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 20:14:14', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('65', '1', '云片', 'YUN_PIAN', 'system_sms_channel_code', '0', 'success', NULL, NULL, '1', TO_DATE('2021-04-05 01:05:14', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 10:09:55', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('66', '2', '阿里云', 'ALIYUN', 'system_sms_channel_code', '0', 'primary', NULL, NULL, '1', TO_DATE('2021-04-05 01:05:26', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 10:09:52', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('66', '2', '阿里云', 'ALIYUN', 'system_sms_channel_code', '0', 'primary', NULL, NULL, '1', TO_DATE('2021-04-05 01:05:26', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 10:09:52', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('67', '1', '验证码', '1', 'system_sms_template_type', '0', 'warning', NULL, NULL, '1', TO_DATE('2021-04-05 21:50:57', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 12:48:30', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('67', '1', '验证码', '1', 'system_sms_template_type', '0', 'warning', NULL, NULL, '1', TO_DATE('2021-04-05 21:50:57', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 12:48:30', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('68', '2', '通知', '2', 'system_sms_template_type', '0', 'primary', NULL, NULL, '1', TO_DATE('2021-04-05 21:51:08', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 12:48:27', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_DATA" ("ID", "SORT", "LABEL", "VALUE", "DICT_TYPE", "STATUS", "COLOR_TYPE", "CSS_CLASS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('68', '2', '通知', '2', 'system_sms_template_type', '0', 'primary', NULL, NULL, '1', TO_DATE('2021-04-05 21:51:08', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 12:48:27', 'SYYYY-MM-DD HH24:MI:SS'), '0');
@ -2483,6 +2484,7 @@ CREATE TABLE "SYSTEM_DICT_TYPE" (
"CREATE_TIME" DATE NOT NULL, "CREATE_TIME" DATE NOT NULL,
"UPDATER" NVARCHAR2(64), "UPDATER" NVARCHAR2(64),
"UPDATE_TIME" DATE NOT NULL, "UPDATE_TIME" DATE NOT NULL,
"DELETED_TIME" DATE,
"DELETED" NUMBER(1,0) DEFAULT 0 NOT NULL "DELETED" NUMBER(1,0) DEFAULT 0 NOT NULL
) )
LOGGING LOGGING
@ -2502,25 +2504,54 @@ PARALLEL 1
NOCACHE NOCACHE
DISABLE ROW MOVEMENT DISABLE ROW MOVEMENT
; ;
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."ID" IS '字典主键'; COMMENT
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."NAME" IS '字典名称'; ON COLUMN "SYSTEM_DICT_TYPE"."ID" IS '字典主键';
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."TYPE" IS '字典类型'; COMMENT
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."STATUS" IS '状态0正常 1停用'; ON COLUMN "SYSTEM_DICT_TYPE"."NAME" IS '字典名称';
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."REMARK" IS '备注'; COMMENT
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."CREATOR" IS '创建者'; ON COLUMN "SYSTEM_DICT_TYPE"."TYPE" IS '字典类型';
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."CREATE_TIME" IS '创建时间'; COMMENT
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."UPDATER" IS '更新者'; ON COLUMN "SYSTEM_DICT_TYPE"."STATUS" IS '状态0正常 1停用';
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."UPDATE_TIME" IS '更新时间'; COMMENT
COMMENT ON COLUMN "SYSTEM_DICT_TYPE"."DELETED" IS '是否删除'; ON COLUMN "SYSTEM_DICT_TYPE"."REMARK" IS '备注';
COMMENT ON TABLE "SYSTEM_DICT_TYPE" IS '字典类型表'; COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."CREATOR" IS '创建者';
COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."CREATE_TIME" IS '创建时间';
COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."UPDATER" IS '更新者';
COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."UPDATE_TIME" IS '更新时间';
COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."DELETED_TIME" IS '删除时间';
COMMENT
ON COLUMN "SYSTEM_DICT_TYPE"."DELETED" IS '是否删除';
COMMENT
ON TABLE "SYSTEM_DICT_TYPE" IS '字典类型表';
-- ---------------------------- -- ----------------------------
-- Records of SYSTEM_DICT_TYPE -- Records of SYSTEM_DICT_TYPE
-- ---------------------------- -- ----------------------------
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('1', '用户性别', 'system_user_sex', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-05-01 12:55:56', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER",
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('6', '参数类型', 'infra_config_type', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:36:54', 'SYYYY-MM-DD HH24:MI:SS'), '0'); "UPDATE_TIME", "DELETED")
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('7', '通知类型', 'system_notice_type', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:35:26', 'SYYYY-MM-DD HH24:MI:SS'), '0'); VALUES ('1', '用户性别', 'system_user_sex', '0', NULL, 'admin',
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('9', '操作类型', 'system_operate_type', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-16 09:32:21', 'SYYYY-MM-DD HH24:MI:SS'), '0'); TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), '1',
TO_DATE('2022-05-01 12:55:56', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER",
"UPDATE_TIME", "DELETED")
VALUES ('6', '参数类型', 'infra_config_type', '0', NULL, 'admin',
TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL,
TO_DATE('2022-02-01 16:36:54', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER",
"UPDATE_TIME", "DELETED")
VALUES ('7', '通知类型', 'system_notice_type', '0', NULL, 'admin',
TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL,
TO_DATE('2022-02-01 16:35:26', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER",
"UPDATE_TIME", "DELETED")
VALUES ('9', '操作类型', 'system_operate_type', '0', NULL, 'admin',
TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), '1',
TO_DATE('2022-02-16 09:32:21', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('10', '系统状态', 'common_status', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:21:28', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('10', '系统状态', 'common_status', '0', NULL, 'admin', TO_DATE('2021-01-05 17:03:48', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:21:28', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('11', 'Boolean 是否类型', 'infra_boolean_string', '0', 'boolean 转是否', NULL, TO_DATE('2021-01-19 03:20:08', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:37:10', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('11', 'Boolean 是否类型', 'infra_boolean_string', '0', 'boolean 转是否', NULL, TO_DATE('2021-01-19 03:20:08', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:37:10', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('104', '登陆结果', 'system_login_result', '0', '登陆结果', NULL, TO_DATE('2021-01-18 06:17:11', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:36:00', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_DICT_TYPE" ("ID", "NAME", "TYPE", "STATUS", "REMARK", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('104', '登陆结果', 'system_login_result', '0', '登陆结果', NULL, TO_DATE('2021-01-18 06:17:11', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2022-02-01 16:36:00', 'SYYYY-MM-DD HH24:MI:SS'), '0');
@ -3196,7 +3227,7 @@ COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."STATUS" IS '状态';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."ACCESS_TOKEN_VALIDITY_SECONDS" IS '访问令牌的有效期'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."ACCESS_TOKEN_VALIDITY_SECONDS" IS '访问令牌的有效期';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."REFRESH_TOKEN_VALIDITY_SECONDS" IS '刷新令牌的有效期'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."REFRESH_TOKEN_VALIDITY_SECONDS" IS '刷新令牌的有效期';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."REDIRECT_URIS" IS '可重定向的 URI 地址'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."REDIRECT_URIS" IS '可重定向的 URI 地址';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTO_APPROVE_SCOPES" IS '是否自动授权'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTO_APPROVE_SCOPES" IS '自动通过的授权范围';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."SCOPES" IS '授权范围'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."SCOPES" IS '授权范围';
COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTHORITIES" IS '权限'; COMMENT ON COLUMN "SYSTEM_OAUTH2_CLIENT"."AUTHORITIES" IS '权限';
@ -3795,7 +3826,7 @@ COMMIT;
DROP TABLE "SYSTEM_SMS_CHANNEL"; DROP TABLE "SYSTEM_SMS_CHANNEL";
CREATE TABLE "SYSTEM_SMS_CHANNEL" ( CREATE TABLE "SYSTEM_SMS_CHANNEL" (
"ID" NUMBER(20,0) NOT NULL, "ID" NUMBER(20,0) NOT NULL,
"SIGNATURE" NVARCHAR2(10), "SIGNATURE" NVARCHAR2(12),
"CODE" NVARCHAR2(63), "CODE" NVARCHAR2(63),
"STATUS" NUMBER(4,0) NOT NULL, "STATUS" NUMBER(4,0) NOT NULL,
"REMARK" NVARCHAR2(255), "REMARK" NVARCHAR2(255),
@ -3843,7 +3874,6 @@ COMMENT ON TABLE "SYSTEM_SMS_CHANNEL" IS '短信渠道';
-- ---------------------------- -- ----------------------------
-- Records of SYSTEM_SMS_CHANNEL -- Records of SYSTEM_SMS_CHANNEL
-- ---------------------------- -- ----------------------------
INSERT INTO "SYSTEM_SMS_CHANNEL" ("ID", "SIGNATURE", "CODE", "STATUS", "REMARK", "API_KEY", "API_SECRET", "CALLBACK_URL", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('1', '芋道', 'YUN_PIAN', '0', '呵呵呵哒', '1555a14277cb8a608cf45a9e6a80d510', NULL, 'http://vdwapu.natappfree.cc/admin-api/system/sms/callback/yunpian', NULL, TO_DATE('2021-03-31 06:12:20', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2022-02-23 16:48:44', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_SMS_CHANNEL" ("ID", "SIGNATURE", "CODE", "STATUS", "REMARK", "API_KEY", "API_SECRET", "CALLBACK_URL", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('2', 'Ballcat', 'ALIYUN', '0', '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, NULL, TO_DATE('2021-03-31 11:53:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2021-04-14 00:08:37', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_SMS_CHANNEL" ("ID", "SIGNATURE", "CODE", "STATUS", "REMARK", "API_KEY", "API_SECRET", "CALLBACK_URL", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('2', 'Ballcat', 'ALIYUN', '0', '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, NULL, TO_DATE('2021-03-31 11:53:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2021-04-14 00:08:37', 'SYYYY-MM-DD HH24:MI:SS'), '0');
INSERT INTO "SYSTEM_SMS_CHANNEL" ("ID", "SIGNATURE", "CODE", "STATUS", "REMARK", "API_KEY", "API_SECRET", "CALLBACK_URL", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('4', '测试渠道', 'DEBUG_DING_TALK', '0', '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', TO_DATE('2021-04-13 00:23:14', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2021-04-14 00:07:10', 'SYYYY-MM-DD HH24:MI:SS'), '0'); INSERT INTO "SYSTEM_SMS_CHANNEL" ("ID", "SIGNATURE", "CODE", "STATUS", "REMARK", "API_KEY", "API_SECRET", "CALLBACK_URL", "CREATOR", "CREATE_TIME", "UPDATER", "UPDATE_TIME", "DELETED") VALUES ('4', '测试渠道', 'DEBUG_DING_TALK', '0', '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', TO_DATE('2021-04-13 00:23:14', 'SYYYY-MM-DD HH24:MI:SS'), '1', TO_DATE('2021-04-14 00:07:10', 'SYYYY-MM-DD HH24:MI:SS'), '0');
COMMIT; COMMIT;
@ -5393,10 +5423,8 @@ ALTER TABLE "QRTZ_FIRED_TRIGGERS" ADD CONSTRAINT "SYS_C008671" CHECK ("STATE" IS
-- Indexes structure for table QRTZ_FIRED_TRIGGERS -- Indexes structure for table QRTZ_FIRED_TRIGGERS
-- ---------------------------- -- ----------------------------
CREATE INDEX "IDX_QRTZ_FT_INST_JOB_REQ_RCVRY" CREATE INDEX "IDX_QRTZ_FT_INST_JOB_REQ_RCVRY"
ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "INSTANCE_NAME" ASC, "REQUESTS_RECOVERY" ASC) LOCAL ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "INSTANCE_NAME" ASC, "REQUESTS_RECOVERY" ASC)
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5410,7 +5438,7 @@ STORAGE (
BUFFER_POOL DEFAULT BUFFER_POOL DEFAULT
); );
CREATE INDEX "IDX_QRTZ_FT_JG" CREATE INDEX "IDX_QRTZ_FT_JG"
ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "JOB_GROUP" ASC) LOCAL ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "JOB_GROUP" ASC)
LOGGING LOGGING
ONLINE ONLINE
NOSORT NOSORT
@ -5427,10 +5455,8 @@ STORAGE (
BUFFER_POOL DEFAULT BUFFER_POOL DEFAULT
); );
CREATE INDEX "IDX_QRTZ_FT_J_G" CREATE INDEX "IDX_QRTZ_FT_J_G"
ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "JOB_NAME" ASC, "JOB_GROUP" ASC) LOCAL ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "JOB_NAME" ASC, "JOB_GROUP" ASC)
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5446,7 +5472,6 @@ STORAGE (
CREATE INDEX "IDX_QRTZ_FT_TG" CREATE INDEX "IDX_QRTZ_FT_TG"
ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "TRIGGER_GROUP" ASC) LOCAL ON "QRTZ_FIRED_TRIGGERS" ("SCHED_NAME" ASC, "TRIGGER_GROUP" ASC) LOCAL
LOGGING LOGGING
ONLINE
NOSORT NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
@ -5499,8 +5524,6 @@ STORAGE (
CREATE INDEX "IDX_QRTZ_J_REQ_RECOVERY" CREATE INDEX "IDX_QRTZ_J_REQ_RECOVERY"
ON "QRTZ_JOB_DETAILS" ("SCHED_NAME" ASC, "REQUESTS_RECOVERY" ASC) LOCAL ON "QRTZ_JOB_DETAILS" ("SCHED_NAME" ASC, "REQUESTS_RECOVERY" ASC) LOCAL
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5622,8 +5645,10 @@ ALTER TABLE "QRTZ_TRIGGERS" ADD CONSTRAINT "SYS_C008696" CHECK ("START_TIME" IS
-- Indexes structure for table QRTZ_TRIGGERS -- Indexes structure for table QRTZ_TRIGGERS
-- ---------------------------- -- ----------------------------
CREATE INDEX "IDX_QRTZ_T_C" CREATE INDEX "IDX_QRTZ_T_C"
ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "CALENDAR_NAME" ASC) ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "CALENDAR_NAME" ASC) LOCAL
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5637,10 +5662,8 @@ STORAGE (
BUFFER_POOL DEFAULT BUFFER_POOL DEFAULT
); );
CREATE INDEX "IDX_QRTZ_T_J" CREATE INDEX "IDX_QRTZ_T_J"
ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "JOB_NAME" ASC, "JOB_GROUP" ASC) LOCAL ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "JOB_NAME" ASC, "JOB_GROUP" ASC)
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5654,8 +5677,10 @@ STORAGE (
BUFFER_POOL DEFAULT BUFFER_POOL DEFAULT
); );
CREATE INDEX "IDX_QRTZ_T_JG" CREATE INDEX "IDX_QRTZ_T_JG"
ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "JOB_GROUP" ASC) ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "JOB_GROUP" ASC) LOCAL
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2
@ -5669,10 +5694,8 @@ STORAGE (
BUFFER_POOL DEFAULT BUFFER_POOL DEFAULT
); );
CREATE INDEX "IDX_QRTZ_T_NEXT_FIRE_TIME" CREATE INDEX "IDX_QRTZ_T_NEXT_FIRE_TIME"
ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "NEXT_FIRE_TIME" ASC) LOCAL ON "QRTZ_TRIGGERS" ("SCHED_NAME" ASC, "NEXT_FIRE_TIME" ASC)
LOGGING LOGGING
ONLINE
NOSORT
VISIBLE VISIBLE
PCTFREE 10 PCTFREE 10
INITRANS 2 INITRANS 2

View File

@ -12,32 +12,10 @@
Target Server Version : 140002 Target Server Version : 140002
File Encoding : 65001 File Encoding : 65001
Date: 26/05/2022 00:10:12 Date: 28/07/2022 23:48:10
*/ */
-- ----------------------------
-- Sequence structure for act_evt_log_log_nr__seq
-- ----------------------------
DROP SEQUENCE IF EXISTS "act_evt_log_log_nr__seq";
CREATE SEQUENCE "act_evt_log_log_nr__seq"
INCREMENT 1
MINVALUE 1
MAXVALUE 2147483647
START 1
CACHE 1;
-- ----------------------------
-- Sequence structure for act_hi_tsk_log_id__seq
-- ----------------------------
DROP SEQUENCE IF EXISTS "act_hi_tsk_log_id__seq";
CREATE SEQUENCE "act_hi_tsk_log_id__seq"
INCREMENT 1
MINVALUE 1
MAXVALUE 2147483647
START 1
CACHE 1;
-- ---------------------------- -- ----------------------------
-- Sequence structure for bpm_form_seq -- Sequence structure for bpm_form_seq
-- ---------------------------- -- ----------------------------
@ -589,12 +567,6 @@ COMMENT ON TABLE "bpm_form" IS '工作流的表单定义';
-- Records of bpm_form -- Records of bpm_form
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (7, '啊1', 1, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"label\":\"密码\",\"tag\":\"el-input\",\"tagIcon\":\"password\",\"placeholder\":\"请输入密码\",\"span\":24,\"show-password\":true,\"labelWidth\":null,\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prepend\":\"\",\"append\":\"\",\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":102,\"renderKey\":1640930414772,\"layout\":\"colFormItem\",\"vModel\":\"field102\",\"defaultValue\":\"admin123\"}","{\"label\":\"级联选择\",\"tag\":\"el-cascader\",\"tagIcon\":\"cascader\",\"placeholder\":\"请选择级联选择级联选择级联选择\",\"defaultValue\":[],\"span\":24,\"labelWidth\":null,\"style\":{\"width\":\"100%\"},\"props\":{\"props\":{\"multiple\":false}},\"show-all-levels\":true,\"disabled\":false,\"clearable\":true,\"filterable\":false,\"required\":true,\"options\":[{\"id\":1,\"value\":1,\"label\":\"选项1\",\"children\":[{\"id\":2,\"value\":2,\"label\":\"选项1-1\"}]}],\"dataType\":\"dynamic\",\"labelKey\":\"label\",\"valueKey\":\"value\",\"childrenKey\":\"children\",\"separator\":\"/\",\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/cascader\",\"formId\":101,\"renderKey\":1640960350991,\"layout\":\"colFormItem\",\"vModel\":\"field101\"}","{\"label\":\"生活\",\"tag\":\"el-input\",\"tagIcon\":\"input\",\"placeholder\":\"请输入生活生活生活\",\"span\":24,\"labelWidth\":null,\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prepend\":\"\",\"append\":\"\",\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":101,\"renderKey\":1640930388977,\"layout\":\"colFormItem\",\"vModel\":\"field101\",\"defaultValue\":\"admin\"}"]', '哈哈哈哈biu', '1', '2021-12-31 10:10:13', '1', '2022-02-19 17:27:56', 1, 1);
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (8, '啊哈哈', 0, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '[]', '哈哈哈哈', '1', '2021-12-31 10:17:26', '1', '2022-02-19 17:27:54', 1, 1);
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (9, '新增', 0, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"label\":\"单行文本\",\"tag\":\"el-input\",\"tagIcon\":\"input\",\"placeholder\":\"请输入单行文本\",\"span\":24,\"labelWidth\":null,\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prepend\":\"\",\"append\":\"\",\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":101,\"renderKey\":1640959561705,\"layout\":\"colFormItem\",\"vModel\":\"field101\"}","{\"label\":\"单选框组\",\"tag\":\"el-radio-group\",\"tagIcon\":\"radio\",\"span\":24,\"labelWidth\":null,\"style\":{},\"optionType\":\"default\",\"border\":false,\"size\":\"medium\",\"disabled\":false,\"required\":true,\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}],\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/radio\",\"formId\":102,\"renderKey\":1640959563240,\"layout\":\"colFormItem\",\"vModel\":\"field102\"}"]', '哈哈哈', '1', '2021-12-31 22:06:11', '1', '2022-02-19 17:27:54', 1, 1);
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (10, '11333', 1, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"left","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"label\":\"多行文本\",\"tag\":\"el-input\",\"tagIcon\":\"textarea\",\"type\":\"textarea\",\"placeholder\":\"请输入多行文本多行文本多行文本\",\"span\":24,\"labelWidth\":null,\"autosize\":{\"minRows\":4,\"maxRows\":4},\"style\":{\"width\":\"100%\"},\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":101,\"renderKey\":1640959720587,\"layout\":\"colFormItem\",\"vModel\":\"field101\",\"defaultValue\":\"1111\"}","{\"label\":\"滑块\",\"tag\":\"el-slider\",\"tagIcon\":\"slider\",\"defaultValue\":0,\"span\":24,\"labelWidth\":null,\"disabled\":false,\"required\":true,\"min\":0,\"max\":100,\"step\":1,\"show-stops\":false,\"range\":false,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/slider\",\"formId\":101,\"renderKey\":1640959732257,\"layout\":\"colFormItem\",\"vModel\":\"field101\"}"]', '222211', '1', '2021-12-31 22:08:45', '1', '2022-02-19 17:27:52', 1, 1);
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (11, 'biubiu', 0, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}","{\"__config__\":{\"label\":\"上传\",\"tag\":\"el-upload\",\"tagIcon\":\"upload\",\"layout\":\"colFormItem\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"required\":true,\"span\":24,\"showTip\":false,\"buttonText\":\"点击上传\",\"regList\":[],\"changeTag\":true,\"fileSize\":2,\"sizeUnit\":\"MB\",\"document\":\"https://element.eleme.cn/#/zh-CN/component/upload\",\"formId\":106,\"renderKey\":\"1061652244347700\"},\"__slot__\":{\"list-type\":true},\"action\":\"/dev-api/admin-api/infra/file/upload\",\"disabled\":false,\"accept\":\"\",\"name\":\"file\",\"auto-upload\":true,\"list-type\":\"text\",\"multiple\":false,\"__vModel__\":\"field106\"}"]', '嘿嘿', '1', '2022-01-02 12:25:55', '1', '2022-05-11 12:46:06', 0, 1);
INSERT INTO "bpm_form" ("id", "name", "status", "conf", "fields", "remark", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (15, 'leave-form', 0, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"开始时间\",\"tag\":\"el-date-picker\",\"tagIcon\":\"date\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"span\":24,\"layout\":\"colFormItem\",\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/date-picker\",\"formId\":101,\"renderKey\":\"1011647692195671\"},\"placeholder\":\"请选择开始时间\",\"type\":\"date\",\"style\":{\"width\":\"100%\"},\"disabled\":false,\"clearable\":true,\"format\":\"yyyy-MM-dd\",\"value-format\":\"yyyy-MM-dd\",\"readonly\":false,\"__vModel__\":\"field101\"}","{\"__config__\":{\"label\":\"结束时间\",\"tag\":\"el-date-picker\",\"tagIcon\":\"date\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"span\":24,\"layout\":\"colFormItem\",\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/date-picker\",\"formId\":102,\"renderKey\":\"1021647692207701\"},\"placeholder\":\"请选择结束时间\",\"type\":\"date\",\"style\":{\"width\":\"100%\"},\"disabled\":false,\"clearable\":true,\"format\":\"yyyy-MM-dd\",\"value-format\":\"yyyy-MM-dd\",\"readonly\":false,\"__vModel__\":\"field102\"}","{\"__config__\":{\"label\":\"请假类型\",\"showLabel\":true,\"labelWidth\":null,\"tag\":\"el-select\",\"tagIcon\":\"select\",\"layout\":\"colFormItem\",\"span\":24,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/select\",\"formId\":103,\"renderKey\":\"1031647692231884\"},\"__slot__\":{\"options\":[{\"label\":\"事假\",\"value\":1},{\"label\":\"年假\",\"value\":2}]},\"placeholder\":\"请选择请假类型\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"disabled\":false,\"filterable\":false,\"multiple\":false,\"__vModel__\":\"field103\"}","{\"__config__\":{\"label\":\"原因\",\"labelWidth\":null,\"showLabel\":true,\"tag\":\"el-input\",\"tagIcon\":\"textarea\",\"required\":false,\"layout\":\"colFormItem\",\"span\":24,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":105,\"renderKey\":\"1051647692319768\"},\"type\":\"textarea\",\"placeholder\":\"请输入原因\",\"autosize\":{\"minRows\":4,\"maxRows\":4},\"style\":{\"width\":\"100%\"},\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field105\"}"]', NULL, '1', '2022-03-19 20:20:56', '1', '2022-03-19 20:20:56', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -640,29 +612,6 @@ COMMENT ON TABLE "bpm_oa_leave" IS 'OA 请假申请表';
-- Records of bpm_oa_leave -- Records of bpm_oa_leave
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (3, 1, 1, '我要请假啦啦啦', '2022-03-01 08:00:00', '2022-03-03 08:00:00', 2, 1, 'a6a007dd-7b6d-11ec-b781-acde48001122', '1', '2022-01-22 18:25:42', '1', '2022-02-19 17:28:04', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (4, 1, 1, '我要请假啦啦啦', '2022-03-01 08:00:00', '2022-03-03 08:00:00', 2, 1, '28a5d744-7b75-11ec-a3c8-acde48001122', '1', '2022-01-22 19:19:26', '1', '2022-02-19 17:28:05', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (5, 1, 1, '我要请假啦啦啦', '2022-03-01 08:00:00', '2022-03-05 08:00:00', 4, 1, '75d43fd1-7b7f-11ec-a3c8-acde48001122', '1', '2022-01-22 20:33:11', '1', '2022-02-19 17:28:06', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (6, 1, 1, '我要请假啦啦啦', '2022-03-01 08:00:00', '2022-03-05 08:00:00', 4, 1, '9ac0eab4-7b7f-11ec-a3c8-acde48001122', '1', '2022-01-22 20:34:13', '1', '2022-02-19 17:28:07', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (7, 1, 1, 'EEE', '2022-01-11 00:00:00', '2022-01-27 00:00:00', 16, 1, '7250cfdf-7b88-11ec-8ef0-acde48001122', '1', '2022-01-22 21:37:31', '1', '2022-02-19 17:28:08', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (8, 1, 1, 'EEE', '2022-01-02 00:00:00', '2022-01-23 00:00:00', 21, 1, '0699ab3c-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 21:48:49', '1', '2022-02-19 17:28:08', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (9, 1, 1, 'EEE', '2022-01-01 00:00:00', '2022-01-29 00:00:00', 28, 1, 'ea957056-7b8d-11ec-b8e2-acde48001122', '1', '2022-01-22 22:16:40', '1', '2022-02-19 17:28:09', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (10, 1, 1, 'EEE', '2022-01-13 00:00:00', '2022-01-25 00:00:00', 12, 1, '7e093de8-7b8e-11ec-b8e2-acde48001122', '1', '2022-01-22 22:20:47', '1', '2022-02-19 17:28:10', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (11, 1, 1, 'AAA', '2022-01-03 00:00:00', '2022-01-21 00:00:00', 18, 1, '5354233a-7b91-11ec-8473-acde48001122', '1', '2022-01-22 22:41:04', '1', '2022-02-19 17:28:11', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (12, 1, 1, 'EEEEE', '2021-12-27 00:00:00', '2022-01-27 00:00:00', 31, 1, '68ce0834-7b91-11ec-8473-acde48001122', '1', '2022-01-22 22:41:40', '1', '2022-02-19 17:28:12', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (13, 1, 1, 'aaa', '2022-01-10 00:00:00', '2022-01-28 00:00:00', 18, 1, 'bb23c2b4-7b91-11ec-8473-acde48001122', '1', '2022-01-22 22:43:58', '1', '2022-02-19 17:28:14', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (14, 1, 1, 'eee', '2021-12-27 00:00:00', '2022-01-28 00:00:00', 32, 3, '8884f3e7-7b99-11ec-ba5c-acde48001122', '1', '2022-01-22 23:39:49', '1', '2022-02-19 17:28:13', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (15, 1, 1, 'EEE', '2022-01-20 00:00:00', '2022-01-19 00:00:00', 1, 1, 'a59a5391-7b99-11ec-ba5c-acde48001122', '1', '2022-01-22 23:40:38', '1', '2022-02-19 17:28:15', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (16, 1, 3, 'EEE', '2022-01-04 00:00:00', '2022-01-13 00:00:00', 9, 3, '03c6c157-7b9a-11ec-a290-acde48001122', '1', '2022-01-22 23:43:16', '1', '2022-02-19 17:28:15', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (17, 1, 2, 'EEE', '2022-01-22 00:00:00', '2022-01-22 00:00:00', 0, 1, '331bc281-7b9a-11ec-a290-acde48001122', '1', '2022-01-22 23:44:35', '1', '2022-02-19 17:28:20', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (18, 1, 2, 'EEE', '2022-01-11 00:00:00', '2022-01-11 00:00:00', 0, 1, '52ffd28e-7b9a-11ec-a290-acde48001122', '1', '2022-01-22 23:45:29', '1', '2022-02-19 17:28:16', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (19, 1, 2, 'eee', '2022-01-22 00:00:00', '2022-01-22 00:00:00', 0, 1, '67c2eaab-7b9a-11ec-a290-acde48001122', '1', '2022-01-22 23:46:04', '1', '2022-02-19 17:28:19', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (20, 1, 1, 'EEE', '2022-01-04 00:00:00', '2022-01-04 00:00:00', 0, 1, '819442e8-7b9a-11ec-a290-acde48001122', '1', '2022-01-22 23:46:47', '1', '2022-02-19 17:28:17', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (21, 1, 1, 'EEE', '2022-01-22 00:00:00', '2022-01-23 00:00:00', 1, 1, 'ec45f38f-7b9a-11ec-b03b-acde48001122', '1', '2022-01-22 23:49:46', '1', '2022-02-19 17:28:22', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (22, 1, 1, 'eee', '2022-01-22 00:00:00', '2022-01-22 00:00:00', 0, 2, '2152467e-7b9b-11ec-9a1b-acde48001122', '1', '2022-01-22 23:51:15', '1', '2022-02-19 17:28:23', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (23, 1, 2, 'eee', '2022-01-03 00:00:00', '2022-01-26 00:00:00', 23, 1, '7317cec6-7b9b-11ec-b5b7-acde48001122', '1', '2022-01-22 23:53:32', '1', '2022-02-19 17:28:24', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (24, 1, 2, 'eee', '2022-01-03 00:00:00', '2022-01-26 00:00:00', 23, 4, '7470a810-7b9b-11ec-b5b7-acde48001122', '1', '2022-01-22 23:53:35', '1', '2022-02-19 17:28:25', 0, 1);
INSERT INTO "bpm_oa_leave" ("id", "user_id", "type", "reason", "start_time", "end_time", "day", "result", "process_instance_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (25, 1, 1, 'EE', '2021-12-27 00:00:00', '2022-01-19 00:00:00', 23, 1, '3ad174fb-7b9d-11ec-8404-acde48001122', '1', '2022-01-23 00:06:17', '1', '2022-02-19 17:28:26', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -711,91 +660,6 @@ COMMENT ON TABLE "bpm_process_definition_ext" IS 'Bpm 流程定义的拓展表
-- Records of bpm_process_definition_ext -- Records of bpm_process_definition_ext
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (12, 'process1641042089407:5:6d9a655c-6b0b-11ec-bfb7-cacd34981f8e', '', '', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-01 22:02:17', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (13, 'Process_1641152976334:1:2db33c43-6c05-11ec-9fce-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 03:50:04', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (14, 'Process_1641152976334:2:52a4a536-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:19:44', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (15, 'Process_1641152976334:3:54f1a279-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:19:48', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (16, 'Process_1641152976334:4:59fc120c-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:19:56', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (17, 'Process_1641152976334:5:67c5bbcf-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:20:19', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (18, 'Process_1641152976334:6:741521a2-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:20:40', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (19, 'Process_1641152976334:7:a80332e5-6c09-11ec-b333-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 04:22:07', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (20, 'Process_1641152976334:8:7b70fa71-6c14-11ec-8928-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 05:40:27', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (21, 'baba:1:506515c9-6c2e-11ec-9fc8-cacd34981f8e', '', NULL, 1, NULL, NULL, NULL, NULL, NULL, '1', '2022-01-03 08:44:46', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (22, 'Process_1641152976334:9:c4b8386c-6c30-11ec-9fc8-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 09:02:06', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (23, 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 09:04:00', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (24, 'Process_1641152976334:11:1a212652-6c31-11ec-9fc8-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 09:04:32', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (25, 'baba:2:42165635-6c31-11ec-9fc8-cacd34981f8e', '', NULL, 1, NULL, NULL, NULL, NULL, NULL, '1', '2022-01-03 09:05:36', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (26, 'baba:3:3b6ff69d-6c41-11ec-a218-cacd34981f8e', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 10:59:57', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (27, 'baba:4:76cf8c60-6c41-11ec-a218-cacd34981f8e', '', '我是描述丫丫啊', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 11:01:36', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (28, 'baba:5:52d3b4c3-6c42-11ec-a218-cacd34981f8e', '', '我是描述丫丫啊', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 11:07:46', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (29, 'baba:6:2f739ca9-6c4d-11ec-86db-cacd34981f8e', '', '我是描述丫丫啊', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 12:25:31', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (30, 'tt:1:f1062230-6c7f-11ec-88b1-cacd34981f8e', '', NULL, 1, NULL, NULL, NULL, NULL, NULL, '1', '2022-01-03 18:28:50', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (31, 'qqw:1:897c7005-6c80-11ec-88b1-cacd34981f8e', '', '11', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-03 18:33:06', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (32, 'leave:7:20ada39c-6c95-11ec-88b1-cacd34981f8e', '', NULL, 1, NULL, NULL, NULL, NULL, NULL, '1', '2022-01-03 21:00:30', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (33, 'gateway_test:1:bf30c38f-7019-11ec-bc41-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-08 08:27:23', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (34, 'gateway_test:2:00e52d8e-701b-11ec-aca9-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-08 08:36:22', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (35, 'gateway_test:3:43f8ca4f-709c-11ec-9ce9-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-09 00:01:40', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (36, 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-09 18:23:26', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (37, 'AA:1:e1e1a8d3-7208-11ec-8954-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-10 19:31:42', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (38, 'AA:2:0d01d9e6-7209-11ec-8954-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-10 19:32:54', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (39, 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-10 19:50:32', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (40, 'leave:8:462de361-7282-11ec-8908-a2380e71991a', '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', NULL, 1, NULL, NULL, NULL, NULL, NULL, '1', '2022-01-11 10:00:39', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (41, 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-11 10:15:30', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (42, 'leave:10:d7fb3bb3-7473-11ec-a434-a2380e71991a', '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-13 21:22:24', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (43, 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', 'AAA', 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-13 23:13:31', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (44, 'test:1:913d7930-75b8-11ec-b607-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:06:51', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (45, 'test:2:0f0e3986-75ba-11ec-a317-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:17:32', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (46, 'test:3:8e4df3a5-75bb-11ec-a317-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:28:15', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (47, 'test:4:b86e7d03-75bd-11ec-bf54-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:43:45', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (48, 'test:5:d64bc095-75bd-11ec-bf54-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:44:35', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (49, 'test:6:ebac9f59-75bd-11ec-bf54-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:45:11', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (50, 'test:7:fc60e5fc-75bd-11ec-bf54-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:45:39', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (51, 'test:8:12e0a13e-75be-11ec-bf54-a2380e71991a', '1f98df4c-75b7-11ec-b607-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 12:46:16', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (53, 'test:9:e2658d43-7606-11ec-8cd2-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 21:27:28', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (54, 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '103', '2022-01-15 21:27:57', '103', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (55, 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', 'a3d5105e-760b-11ec-9367-a2380e71991a', NULL, 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 22:02:27', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (56, 'test:11:536ecba7-761a-11ec-a5c5-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 23:46:38', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (57, 'test:12:5c91d0ba-761a-11ec-a5c5-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 23:46:54', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (58, 'test:13:651e140d-761a-11ec-a5c5-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 23:47:08', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (59, 'test:14:c1f049a4-761a-11ec-ba93-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 23:49:44', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (60, 'test:15:5304ca92-761b-11ec-b05a-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 1, 11, NULL, NULL, NULL, NULL, '1', '2022-01-15 23:53:47', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (61, 'oa_leave:1:482ec033-762a-11ec-8477-a2380e71991a', 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'OA 请假的示例', 20, NULL, NULL, NULL, '/bpm/oa/flow', '/oa/oa/leave', '1', '2022-01-16 01:40:51', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (62, 'test:16:d83ee859-762d-11ec-9125-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 02:06:22', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (63, 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 02:07:35', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (64, 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 02:44:02', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (65, 'self:1:17c042ff-7680-11ec-bc82-a2380e71991a', '024b400b-7680-11ec-bc82-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 11:55:07', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (91, 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'OA 请假的示例', 20, NULL, NULL, NULL, '/bpm/oa/flow', '/oa/oa/leave', '1', '2022-01-22 19:19:11', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (92, 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'OA 请假的示例', 20, NULL, NULL, NULL, '/bpm/oa/flow', '/oa/oa/leave', '1', '2022-01-22 20:34:10', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (93, 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'OA 请假的示例', 20, NULL, NULL, NULL, '/bpm/oa/leave/create', '/bpm/oa/leave/detail', '1', '2022-01-22 21:48:38', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (66, 'test:19:a401b61a-768b-11ec-afcd-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 13:17:47', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (67, 'test_001:2:c680200d-768b-11ec-afcd-a2380e71991a', 'a3d5105e-760b-11ec-9367-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 13:18:44', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (68, 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', 'a3d5105e-760b-11ec-9367-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 13:22:33', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (69, 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '024b400b-7680-11ec-bc82-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 17:46:50', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (70, 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'OA 请假的示例', 20, NULL, NULL, NULL, '/bpm/oa/flow', '/oa/oa/leave', '1', '2022-01-16 17:46:53', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (71, 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', 'a3d5105e-760b-11ec-9367-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 17:46:56', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (72, 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-16 17:46:58', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (73, 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-20 13:12:18', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (74, 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '滔博牛皮', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-20 13:21:03', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (75, 'eee:2:8a7b5672-7ade-11ec-a777-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:21:17', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (76, 'eee:3:8db9dfa5-7ade-11ec-a777-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', NULL, 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:21:22', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (77, 'eee:4:a63e1e68-7ade-11ec-a777-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:22:03', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (78, 'eee:5:33f2d275-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:01', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (79, 'eee:6:365e0618-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:05', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (80, 'eee:7:3c5b3a1b-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:15', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (81, 'eee:8:3da2872e-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:17', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (82, 'eee:9:3f0f84b1-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:20', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (83, 'eee:10:479efc54-7adf-11ec-93fe-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:26:34', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (84, 'eee:11:38c6faaa-7ae0-11ec-9d9d-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:33:19', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (85, 'eee:12:c9c8ddcd-7ae0-11ec-9d9d-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:37:22', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (86, 'eee:13:f1aca890-7ae0-11ec-9d9d-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:38:29', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (87, 'eee:14:27a560fb-7ae2-11ec-9d9a-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 01:47:09', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (88, 'eee:15:c1906d85-7ae5-11ec-a69c-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 02:12:56', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (89, 'eee:16:c325da98-7ae5-11ec-a69c-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 02:12:58', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (90, 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', '02b756a8-79af-11ec-abb0-a2380e71991a', 'AAA', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-01-22 02:14:20', '1', '2022-02-19 17:29:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (94, 'flowable_01:1:c0bb5b36-97ed-11ec-a2b9-862bc1a4a054', '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'ooxx', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-02-28 00:53:14', '1', '2022-02-28 00:53:14', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (95, 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', '02217e82-a77e-11ec-96d6-8e557beca7ad', '通用表单简单示例', 10, 15, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"开始时间\",\"tag\":\"el-date-picker\",\"tagIcon\":\"date\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"span\":24,\"layout\":\"colFormItem\",\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/date-picker\",\"formId\":101,\"renderKey\":\"1011647692195671\"},\"placeholder\":\"请选择开始时间\",\"type\":\"date\",\"style\":{\"width\":\"100%\"},\"disabled\":false,\"clearable\":true,\"format\":\"yyyy-MM-dd\",\"value-format\":\"yyyy-MM-dd\",\"readonly\":false,\"__vModel__\":\"field101\"}","{\"__config__\":{\"label\":\"结束时间\",\"tag\":\"el-date-picker\",\"tagIcon\":\"date\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"span\":24,\"layout\":\"colFormItem\",\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/date-picker\",\"formId\":102,\"renderKey\":\"1021647692207701\"},\"placeholder\":\"请选择结束时间\",\"type\":\"date\",\"style\":{\"width\":\"100%\"},\"disabled\":false,\"clearable\":true,\"format\":\"yyyy-MM-dd\",\"value-format\":\"yyyy-MM-dd\",\"readonly\":false,\"__vModel__\":\"field102\"}","{\"__config__\":{\"label\":\"请假类型\",\"showLabel\":true,\"labelWidth\":null,\"tag\":\"el-select\",\"tagIcon\":\"select\",\"layout\":\"colFormItem\",\"span\":24,\"required\":true,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/select\",\"formId\":103,\"renderKey\":\"1031647692231884\"},\"__slot__\":{\"options\":[{\"label\":\"事假\",\"value\":1},{\"label\":\"年假\",\"value\":2}]},\"placeholder\":\"请选择请假类型\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"disabled\":false,\"filterable\":false,\"multiple\":false,\"__vModel__\":\"field103\"}","{\"__config__\":{\"label\":\"原因\",\"labelWidth\":null,\"showLabel\":true,\"tag\":\"el-input\",\"tagIcon\":\"textarea\",\"required\":false,\"layout\":\"colFormItem\",\"span\":24,\"regList\":[],\"changeTag\":true,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"formId\":105,\"renderKey\":\"1051647692319768\"},\"type\":\"textarea\",\"placeholder\":\"请输入原因\",\"autosize\":{\"minRows\":4,\"maxRows\":4},\"style\":{\"width\":\"100%\"},\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field105\"}"]', NULL, NULL, '1', '2022-03-19 21:14:26', '1', '2022-03-19 21:14:26', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (96, 'flowable_01:2:d344a0bd-cd5f-11ec-8280-3e2374911326', '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'ooxx', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}"]', NULL, NULL, '1', '2022-05-07 01:13:19', '1', '2022-05-07 01:13:19', 0, 1);
INSERT INTO "bpm_process_definition_ext" ("id", "process_definition_id", "model_id", "description", "form_type", "form_id", "form_conf", "form_fields", "form_custom_create_path", "form_custom_view_path", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (97, 'flowable_01:3:4b0eec62-d0e5-11ec-b8b5-3e2374911326', '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'ooxx', 10, 11, '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true}', '["{\"__config__\":{\"label\":\"单行文本\",\"labelWidth\":null,\"showLabel\":true,\"changeTag\":true,\"tag\":\"el-input\",\"tagIcon\":\"input\",\"required\":true,\"layout\":\"colFormItem\",\"span\":24,\"document\":\"https://element.eleme.cn/#/zh-CN/component/input\",\"regList\":[],\"formId\":121,\"renderKey\":\"1211641657675668\"},\"__slot__\":{\"prepend\":\"\",\"append\":\"\"},\"placeholder\":\"请输入单行文本\",\"style\":{\"width\":\"100%\"},\"clearable\":true,\"prefix-icon\":\"\",\"suffix-icon\":\"\",\"maxlength\":null,\"show-word-limit\":false,\"readonly\":false,\"disabled\":false,\"__vModel__\":\"field121\"}","{\"__config__\":{\"label\":\"多选框组\",\"tag\":\"el-checkbox-group\",\"tagIcon\":\"checkbox\",\"defaultValue\":[],\"span\":24,\"showLabel\":true,\"labelWidth\":null,\"layout\":\"colFormItem\",\"optionType\":\"default\",\"required\":true,\"regList\":[],\"changeTag\":true,\"border\":false,\"document\":\"https://element.eleme.cn/#/zh-CN/component/checkbox\",\"formId\":122,\"renderKey\":\"1221641097529857\"},\"__slot__\":{\"options\":[{\"label\":\"选项一\",\"value\":1},{\"label\":\"选项二\",\"value\":2}]},\"style\":{},\"size\":\"medium\",\"disabled\":false,\"__vModel__\":\"field122\"}","{\"__config__\":{\"label\":\"上传\",\"tag\":\"el-upload\",\"tagIcon\":\"upload\",\"layout\":\"colFormItem\",\"defaultValue\":null,\"showLabel\":true,\"labelWidth\":null,\"required\":true,\"span\":24,\"showTip\":false,\"buttonText\":\"点击上传\",\"regList\":[],\"changeTag\":true,\"fileSize\":2,\"sizeUnit\":\"MB\",\"document\":\"https://element.eleme.cn/#/zh-CN/component/upload\",\"formId\":106,\"renderKey\":\"1061652244347700\"},\"__slot__\":{\"list-type\":true},\"action\":\"/dev-api/admin-api/infra/file/upload\",\"disabled\":false,\"accept\":\"\",\"name\":\"file\",\"auto-upload\":true,\"list-type\":\"text\",\"multiple\":false,\"__vModel__\":\"field106\"}"]', NULL, NULL, '1', '2022-05-11 12:46:17', '1', '2022-05-11 12:46:17', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -843,125 +707,6 @@ COMMENT ON TABLE "bpm_process_instance_ext" IS '工作流的流程实例的拓
-- Records of bpm_process_instance_ext -- Records of bpm_process_instance_ext
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (51, 1, '笑死', 'd7bcdeb9-7134-11ec-99e4-a2380e71991a', 'gateway_test:3:43f8ca4f-709c-11ec-9ce9-a2380e71991a', '1', 1, 4, '2022-01-09 18:18:36', NULL, '1', '2022-01-09 18:13:51', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (52, 1, '笑死', '944619dd-7135-11ec-93f6-a2380e71991a', 'gateway_test:3:43f8ca4f-709c-11ec-9ce9-a2380e71991a', '2', 2, 3, '2022-01-09 18:35:50', NULL, '1', '2022-01-09 18:19:08', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (53, 1, '业务流程_1641152976334', 'dc524fb5-7135-11ec-93f6-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 3, '2022-01-09 18:35:49', NULL, '1', '2022-01-09 18:21:09', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (54, 1, '背背', 'e4e745a4-7135-11ec-93f6-a2380e71991a', 'qqw:1:897c7005-6c80-11ec-88b1-cacd34981f8e', '2', 2, 3, '2022-01-09 18:35:49', NULL, '1', '2022-01-09 18:21:23', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (55, 1, '背背', 'ea2ff6c3-7135-11ec-93f6-a2380e71991a', 'qqw:1:897c7005-6c80-11ec-88b1-cacd34981f8e', '1', 2, 3, '2022-01-09 18:35:48', NULL, '1', '2022-01-09 18:21:32', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (56, 1, '笑死', '47a87df5-7136-11ec-93f6-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', 'http://activiti.org/bpmn', 2, 3, '2022-01-09 18:35:46', NULL, '1', '2022-01-09 18:24:09', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (58, 1, '业务流程_1641152976334', 'af747f00-7137-11ec-bf24-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', 'http://activiti.org/bpmn', 1, 2, '2022-01-09 18:34:35', NULL, '1', '2022-01-09 18:34:12', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (59, 1, '笑死', 'f17cf222-7137-11ec-bf24-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', 'http://activiti.org/bpmn', 1, 2, '2022-01-09 18:36:16', NULL, '1', '2022-01-09 18:36:03', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (60, 1, '笑死', '2592fce0-7138-11ec-bf24-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', 'http://activiti.org/bpmn', 2, 3, '2022-01-09 18:37:37', NULL, '1', '2022-01-09 18:37:30', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (61, 1, '业务流程_1641152976334', '34b09dfb-7138-11ec-bf24-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', 'http://activiti.org/bpmn', 2, 2, '2022-01-09 18:38:02', NULL, '1', '2022-01-09 18:37:56', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (63, 1, '笑死', '9ea14ead-714b-11ec-af9b-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', 'http://activiti.org/bpmn', 2, 3, '2022-01-09 22:08:12', NULL, '1', '2022-01-09 20:56:54', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (64, 1, '业务流程_1641152976334', '1179546c-714c-11ec-943f-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:08:11', NULL, '1', '2022-01-09 21:00:07', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (65, 1, '业务流程_1641152976334', 'be323fbb-714c-11ec-943f-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 3, '2022-01-09 22:08:10', NULL, '1', '2022-01-09 21:04:56', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (66, 1, '业务流程_1641152976334', '09da6c8e-714e-11ec-922e-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:08:09', NULL, '1', '2022-01-09 21:14:13', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (67, 1, '业务流程_1641152976334', '66f0f91f-7155-11ec-b613-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:07:03', NULL, '1', '2022-01-09 22:06:55', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (68, 1, '业务流程_1641152976334', 'b86d4397-7155-11ec-b613-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 3, '2022-01-09 22:10:02', NULL, '1', '2022-01-09 22:09:12', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (69, 1, '业务流程_1641152976334', 'dcaa4d86-7155-11ec-b613-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:10:19', NULL, '1', '2022-01-09 22:10:13', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (70, 1, '业务流程_1641152976334', '4b1c61a8-7156-11ec-b613-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:14:38', NULL, '1', '2022-01-09 22:13:18', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (71, 1, '业务流程_1641152976334', '36e36bdd-7157-11ec-8642-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-09 22:20:16', NULL, '1', '2022-01-09 22:19:54', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (72, 1, '业务流程_1641152976334', '7917733d-7207-11ec-af01-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 2, '2022-01-10 19:48:34', NULL, '1', '2022-01-10 19:21:36', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (73, 1, '业务流程_1641152976334', 'd14992df-7207-11ec-a1b3-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 4, '2022-01-15 21:59:21', NULL, '1', '2022-01-10 19:24:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (74, 1, '业务流程_1641152976334', '37056d50-7208-11ec-a594-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', 2, 4, '2022-01-15 21:59:23', NULL, '1', '2022-01-10 19:26:55', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (75, 1, '笑死', '90b5effe-7208-11ec-a594-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:26', NULL, '1', '2022-01-10 19:29:25', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (76, 1, '测试任务', '12ac8117-7209-11ec-8954-a2380e71991a', 'AA:2:0d01d9e6-7209-11ec-8954-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:33', NULL, '1', '2022-01-10 19:33:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (77, 1, '测试任务', '712ac2f9-720a-11ec-883f-a2380e71991a', 'AA:2:0d01d9e6-7209-11ec-8954-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:29', NULL, '1', '2022-01-10 19:42:52', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (78, 1, '测试任务', '926ee336-720b-11ec-95cb-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:36', NULL, '1', '2022-01-10 19:50:57', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (79, 1, '测试任务', 'a89534d8-720b-11ec-95cb-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:38', NULL, '1', '2022-01-10 19:51:34', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (80, 1, '测试任务', '6acb0a6b-720f-11ec-b740-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:41', NULL, '1', '2022-01-10 20:18:28', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (81, 1, '笑死', 'dcc756b9-720f-11ec-b740-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:43', NULL, '1', '2022-01-10 20:21:40', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (82, 1, '测试任务', '2597c8a7-7210-11ec-8e38-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 2, '2022-01-10 20:23:55', NULL, '1', '2022-01-10 20:23:42', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (83, 1, '测试任务', '46b12370-7210-11ec-8e38-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 2, '2022-01-10 20:25:14', NULL, '1', '2022-01-10 20:24:37', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (84, 1, '测试任务', '40416229-7211-11ec-8e38-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:15', NULL, '1', '2022-01-10 20:31:36', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (85, 1, '测试任务', '84285947-7211-11ec-8e38-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:12', NULL, '1', '2022-01-10 20:33:30', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (92, 1, '请假', 'e93a3338-729d-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:10', NULL, '1', '2022-01-11 13:18:29', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (93, 1, '请假', '37c2e026-729e-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '2', 2, 4, '2022-01-15 21:59:07', NULL, '1', '2022-01-11 13:20:41', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (94, 1, '请假', '613e8904-729e-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '2', 2, 3, '2022-01-15 21:58:22', NULL, '1', '2022-01-11 13:21:50', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (98, 103, '请假', 'fcdfddae-7483-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '2', 2, 4, '2022-01-13 23:20:27', NULL, '103', '2022-01-13 23:17:57', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (99, 103, '请假', '265fa43c-7484-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '2', 2, 4, '2022-01-13 23:20:22', NULL, '103', '2022-01-13 23:19:07', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (103, 103, '测试流程', '078f63f1-75b9-11ec-b607-a2380e71991a', 'test:1:913d7930-75b8-11ec-b607-a2380e71991a', '1', 2, 4, '2022-01-15 12:10:18', NULL, '103', '2022-01-15 12:10:10', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (117, 103, '测试流程', 'a4f215b0-75bd-11ec-bf54-a2380e71991a', 'test:3:8e4df3a5-75bb-11ec-a317-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:18', NULL, '103', '2022-01-15 12:43:12', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (118, 103, '测试流程', 'c2c10164-75bd-11ec-bf54-a2380e71991a', 'test:4:b86e7d03-75bd-11ec-bf54-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:15', NULL, '103', '2022-01-15 12:44:02', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (119, 103, '测试流程', 'dce61ef6-75bd-11ec-bf54-a2380e71991a', 'test:5:d64bc095-75bd-11ec-bf54-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:12', NULL, '103', '2022-01-15 12:44:46', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (120, 103, '测试流程', 'f19a6a0a-75bd-11ec-bf54-a2380e71991a', 'test:6:ebac9f59-75bd-11ec-bf54-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:10', NULL, '103', '2022-01-15 12:45:20', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (121, 103, '测试流程', '027ff9dd-75be-11ec-bf54-a2380e71991a', 'test:7:fc60e5fc-75bd-11ec-bf54-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:07', NULL, '103', '2022-01-15 12:45:49', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (123, 103, '滔博', '10008257-7607-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', '1', 2, 4, '2022-01-15 21:58:05', NULL, '103', '2022-01-15 21:28:45', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (124, 1, '测试多审批人', 'caf40483-760b-11ec-9367-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 22:28:57', NULL, '1', '2022-01-15 22:02:36', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (125, 1, '测试多审批人', '9091b32c-760e-11ec-a415-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 22:28:51', NULL, '1', '2022-01-15 22:22:27', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (128, 1, '测试多审批人', '6325c778-760f-11ec-ad1b-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 22:28:56', NULL, '1', '2022-01-15 22:28:20', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (129, 1, '测试多审批人', '873817e8-760f-11ec-ad1b-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 22:31:04', NULL, '1', '2022-01-15 22:29:21', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (130, 1, '测试多审批人', '0c843d9b-7610-11ec-9266-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 23:01:43', NULL, '1', '2022-01-15 22:33:04', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (131, 1, '测试多审批人', '5822c2eb-7610-11ec-9266-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 23:01:42', NULL, '1', '2022-01-15 22:35:11', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (132, 1, '测试多审批人', '59b537cc-7612-11ec-8063-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 3, '2022-01-15 23:01:41', NULL, '1', '2022-01-15 22:49:33', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (133, 1, '测试多审批人', '1a0bb164-7614-11ec-87b4-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 4, '2022-01-15 23:54:05', NULL, '1', '2022-01-15 23:02:05', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (134, 1, '测试多审批人', '46a21254-7615-11ec-87b4-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 4, '2022-01-15 23:54:02', NULL, '1', '2022-01-15 23:10:29', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (135, 1, '测试多审批人', '57ce3983-761b-11ec-b05a-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 4, '2022-01-15 23:54:00', NULL, '1', '2022-01-15 23:53:55', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (136, 1, '滔博', '8a2ee6c9-7630-11ec-a535-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', '1', 2, 4, '2022-01-16 22:58:25', '{"field121":"AA","field122":[1]}', '1', '2022-01-16 02:25:39', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (137, 1, '滔博', 'e05c44cd-767f-11ec-bc82-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', '1', 2, 4, '2022-01-16 22:58:23', '{"field121":"AAA","field122":[1]}', '1', '2022-01-16 11:53:34', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (138, 1, '自己审批', '1d249260-7680-11ec-bc82-a2380e71991a', 'self:1:17c042ff-7680-11ec-bc82-a2380e71991a', '1', 2, 2, '2022-01-16 22:58:04', '{"field121":"AAA","field122":[1]}', '1', '2022-01-16 11:55:16', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (139, 1, '测试多审批人', '70ca71a9-768b-11ec-afcd-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', 2, 4, '2022-01-16 22:58:20', '{"field121":"EEE","field122":[1]}', '1', '2022-01-16 13:16:21', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (140, 1, '测试多审批人', 'cdbd4e1e-768b-11ec-afcd-a2380e71991a', 'test_001:2:c680200d-768b-11ec-afcd-a2380e71991a', '1', 2, 2, '2022-01-16 13:21:42', '{"field121":"eee","field122":[1]}', '1', '2022-01-16 13:18:57', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (141, 1, '测试多审批人', '537cceb3-768c-11ec-afcd-a2380e71991a', 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', '1', 2, 2, '2022-01-16 22:58:03', '{"field121":"EEE","field122":[1]}', '1', '2022-01-16 13:22:41', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (142, 1, '测试多审批人', '4b4c16ac-76d2-11ec-9423-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-16 22:57:44', '{"field121":"AAA","field122":[1]}', '1', '2022-01-16 21:43:32', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (143, 1, '测试多审批人', 'db3f3c84-76dc-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-16 23:12:55', '{"field121":"AEEE","field122":[1,2]}', '1', '2022-01-16 22:59:08', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (144, 1, '测试多审批人', 'cfe3c1d0-76de-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-17 00:51:07', '{"field121":"AAA","field122":[1]}', '1', '2022-01-16 23:13:08', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (145, 1, '测试多审批人', '1642e0b9-76e6-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-17 00:35:32', '{"field121":"EEE","field122":[1]}', '1', '2022-01-17 00:05:13', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (146, 1, '测试多审批人', '8bb14c95-76ea-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 3, '2022-01-17 00:37:21', '{"field121":"EEE","field122":[1]}', '1', '2022-01-17 00:37:08', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (147, 1, '测试多审批人', '29288241-76ed-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-17 12:49:45', '{"field121":"AAA","field122":[1]}', '1', '2022-01-17 00:55:51', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (148, 1, '测试多审批人', 'ce5e126f-77aa-11ec-9be9-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-17 23:51:26', '{"field121":"AAAA","field122":[1]}', '1', '2022-01-17 23:33:23', '103', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (149, 1, '测试多审批人', 'd1e75899-77b8-11ec-bc1a-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-19 08:45:38', '{"field121":"AAA","field122":[1]}', '1', '2022-01-18 01:13:42', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (150, 1, '滔博', 'f3191202-77f2-11ec-bc1a-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-18 08:09:49', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (151, 1, '滔博', '342453f2-78c1-11ec-9b4d-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"EEE","field122":[1]}', '1', '2022-01-19 08:46:14', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (152, 1, '测试多审批人', 'b2b9b949-78c1-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 3, '2022-01-19 09:13:19', '{"field121":"EEE","field122":[1]}', '1', '2022-01-19 08:49:46', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (153, 1, '测试多审批人', '0ef30262-78c5-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-19 09:14:22', '{"field121":"AAAA","field122":[2]}', '1', '2022-01-19 09:13:50', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (154, 1, '测试多审批人', '7d80f10e-78c7-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-19 09:31:27', '{"field121":"aaaa","field122":[1]}', '1', '2022-01-19 09:31:14', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (155, 1, '测试多审批人', '079d97ba-78cd-11ec-a731-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 3, '2022-01-19 10:11:03', '{"field121":"AAAA","field122":[1]}', '1', '2022-01-19 10:10:53', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (156, 1, 'eeee', '92904a2d-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', '1', 2, 2, '2022-01-20 13:12:51', '{"field121":"eeee","field122":[1]}', '1', '2022-01-20 13:12:33', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (157, 1, '滔博', 'cabc84b1-79b0-11ec-b2b8-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 2, 2, '2022-01-20 13:21:30', '{"field121":"AAA","field122":[1]}', '1', '2022-01-20 13:21:16', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (158, 1, '自己审批', 'b7f3b79b-7a14-11ec-8762-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', 2, 3, '2022-01-21 01:16:42', '{"field121":"aaa","field122":[1]}', '1', '2022-01-21 01:16:35', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (159, 1, '滔博', 'd9ee295b-7ac6-11ec-a040-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:31:42', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (160, 1, '测试多审批人', 'ed4a3769-7ac6-11ec-a040-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:32:14', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (161, 1, '滔博', '54aa251f-7ac7-11ec-a040-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:35:08', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (162, 1, '滔博', 'bd7dc717-7ac7-11ec-9948-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:38:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (163, 1, '测试多审批人', '37d7a55c-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:41:29', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (164, 1, '测试多审批人', '580a98c2-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:42:23', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (165, 1, '测试多审批人', '8f021988-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:43:55', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (166, 1, '测试多审批人', '23615875-7ac9-11ec-aa06-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-22 00:20:51', '{"field121":"AAA","field122":[1]}', '1', '2022-01-21 22:48:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (167, 1, '自己审批', '34f51703-7ad6-11ec-abe9-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', 2, 2, '2022-01-22 00:22:02', '{"field121":"AAA","field122":[1]}', '1', '2022-01-22 00:21:37', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (168, 1, '自己审批', 'a413bed4-7ad6-11ec-abe9-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', 2, 4, '2022-01-22 00:24:48', '{"field121":"AAA","field122":[1]}', '1', '2022-01-22 00:24:44', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (169, 1, '滔博', 'c00d2732-7ad6-11ec-abe9-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 2, 3, '2022-01-22 00:30:01', '{"field121":"AA","field122":[1]}', '1', '2022-01-22 00:25:31', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (170, 1, 'OA 请假', 'a6a007dd-7b6d-11ec-b781-acde48001122', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', '2', 1, 1, NULL, '{"day":2}', '1', '2022-01-22 18:25:42', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (171, 1, 'OA 请假', '28a5d744-7b75-11ec-a3c8-acde48001122', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', '2', 2, 2, '2022-01-22 20:31:52', '{"day":2}', '1', '2022-01-22 19:19:26', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (172, 1, 'OA 请假', '75d43fd1-7b7f-11ec-a3c8-acde48001122', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', '2', 1, 1, NULL, '{"day":4}', '1', '2022-01-22 20:33:11', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (173, 1, 'OA 请假', '9ac0eab4-7b7f-11ec-a3c8-acde48001122', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', '2', 2, 2, '2022-01-22 20:34:33', '{"day":4}', '1', '2022-01-22 20:34:13', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (174, 1, 'OA 请假', '7250cfdf-7b88-11ec-8ef0-acde48001122', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', '2', 1, 1, NULL, '{"day":16}', '1', '2022-01-22 21:37:31', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (175, 1, 'OA 请假', '0699ab3c-7b8a-11ec-8ef0-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 1, 1, NULL, '{"day":21}', '1', '2022-01-22 21:48:49', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (176, 1, 'OA 请假', 'ea957056-7b8d-11ec-b8e2-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 22:17:00', '{"day":28}', '1', '2022-01-22 22:16:40', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (177, 1, 'OA 请假', '7e093de8-7b8e-11ec-b8e2-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, '2022-01-22 22:23:25', '{"day":12}', '1', '2022-01-22 22:20:47', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (178, 1, 'OA 请假', '5354233a-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, '2022-01-22 22:41:09', '{"day":18}', '1', '2022-01-22 22:41:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (179, 1, 'OA 请假', '68ce0834-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, '2022-01-22 22:43:14', '{"day":31}', '1', '2022-01-22 22:41:40', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (180, 1, 'OA 请假', 'bb23c2b4-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, NULL, '{"day":18}', '1', '2022-01-22 22:43:58', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (181, 1, '自己审批', '49d3df58-7b98-11ec-b5ee-acde48001122', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', 2, 4, '2022-01-22 23:39:17', '{"field121":"AAA","field122":[1]}', '1', '2022-01-22 23:30:55', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (182, 1, 'OA 请假', '8884f3e7-7b99-11ec-ba5c-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, NULL, '{"day":32}', '1', '2022-01-22 23:39:49', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (183, 1, 'OA 请假', 'a59a5391-7b99-11ec-ba5c-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:40:52', '{"day":1}', '1', '2022-01-22 23:40:38', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (184, 1, 'OA 请假', '03c6c157-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 3, NULL, '{"day":9}', '1', '2022-01-22 23:43:16', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (185, 1, 'OA 请假', '331bc281-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:44:42', '{"day":0}', '1', '2022-01-22 23:44:35', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (186, 1, 'OA 请假', '52ffd28e-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:45:37', '{"day":0}', '1', '2022-01-22 23:45:29', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (187, 1, 'OA 请假', '67c2eaab-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:46:09', '{"day":0}', '1', '2022-01-22 23:46:04', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (188, 1, 'OA 请假', '819442e8-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:46:53', '{"day":0}', '1', '2022-01-22 23:46:47', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (189, 1, 'OA 请假', 'ec45f38f-7b9a-11ec-b03b-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:49:51', '{"day":1}', '1', '2022-01-22 23:49:46', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (190, 1, 'OA 请假', '2152467e-7b9b-11ec-9a1b-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 2, '2022-01-22 23:51:20', '{"day":0}', '1', '2022-01-22 23:51:15', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (191, 1, 'OA 请假', '7317cec6-7b9b-11ec-b5b7-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 1, 1, NULL, '{"day":23}', '1', '2022-01-22 23:53:32', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (192, 1, 'OA 请假', '7470a810-7b9b-11ec-b5b7-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 4, '2022-01-23 00:08:41', '{"day":23}', '1', '2022-01-22 23:53:35', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (193, 1, 'OA 请假', '3ad174fb-7b9d-11ec-8404-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '2', 2, 4, '2022-01-23 00:07:03', '{"day":23}', '1', '2022-01-23 00:06:17', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (194, 1, 'eeee', 'b243fa82-7c06-11ec-9110-acde48001122', 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', '1', 1, 1, NULL, '{"field121":"AAA","field122":[1]}', '1', '2022-01-23 12:41:14', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (195, 1, '测试多审批人', 'ecddb286-7c07-11ec-a41d-acde48001122', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', 2, 4, '2022-01-23 12:59:40', '{"field121":"AAA","field122":[1]}', '1', '2022-01-23 12:50:02', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (197, 1, '滔博', '4f676a08-7c09-11ec-b8a1-acde48001122', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', 1, 1, NULL, '{"field121":"aaa","field122":[1]}', '1', '2022-01-23 12:59:57', '1', '2022-02-19 17:29:20', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (198, 1, 'flowable测试', 'c964c377-97ed-11ec-a2b9-862bc1a4a054', 'flowable_01:1:c0bb5b36-97ed-11ec-a2b9-862bc1a4a054', '1', 2, 2, '2022-02-28 00:53:35', '{"field121":"AAA","field122":[1]}', '1', '2022-02-28 00:53:28', '1', '2022-02-28 00:53:35', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (199, 1, '通用表单', '6be9f198-a787-11ec-96d6-8e557beca7ad', 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', '1', 2, 2, '2022-03-19 22:16:00', '{"field101":"2022-03-16","field102":"2022-03-18","field103":1,"field105":"生病了"}', '1', '2022-03-19 21:21:01', '114', '2022-03-19 22:16:00', 0, 1);
INSERT INTO "bpm_process_instance_ext" ("id", "start_user_id", "name", "process_instance_id", "process_definition_id", "category", "status", "result", "end_time", "form_variables", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (200, 1, 'flowable测试', 'da9c5bae-cd5f-11ec-8280-3e2374911326', 'flowable_01:2:d344a0bd-cd5f-11ec-8280-3e2374911326', '1', 2, 2, '2022-05-07 01:13:37', '{"field121":"112","field122":[1]}', '1', '2022-05-07 01:13:32', '1', '2022-05-07 01:13:37', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -1001,158 +746,6 @@ COMMENT ON TABLE "bpm_task_assign_rule" IS 'Bpm 任务规则表';
-- Records of bpm_task_assign_rule -- Records of bpm_task_assign_rule
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (40, '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', 'task1', 30, '["1", "103"]', '', '2022-01-11 02:02:17', '', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (41, '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', '', 'task2', 50, '[1]', '103', '2022-01-13 13:07:05', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (42, '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', '', 'task1', 10, '[1,2]', '103', '2022-01-13 20:41:28', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (43, '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', 'task1', 10, '[1,2]', '103', '2022-01-13 23:13:31', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (44, '0c1ee1f8-6c95-11ec-88b1-cacd34981f8e', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', 'task2', 10, '[1]', '103', '2022-01-13 23:13:31', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (45, '1f98df4c-75b7-11ec-b607-a2380e71991a', '', 'task', 50, '[1]', '103', '2022-01-15 11:57:38', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (46, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:1:913d7930-75b8-11ec-b607-a2380e71991a', 'task', 10, '[1]', '103', '2022-01-15 12:06:51', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (47, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:2:0f0e3986-75ba-11ec-a317-a2380e71991a', 'task', 20, '[109]', '103', '2022-01-15 12:17:32', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (48, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:3:8e4df3a5-75bb-11ec-a317-a2380e71991a', 'task', 20, '[103,109]', '103', '2022-01-15 12:28:15', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (49, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:4:b86e7d03-75bd-11ec-bf54-a2380e71991a', 'task', 21, '[103,109]', '103', '2022-01-15 12:43:45', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (50, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:5:d64bc095-75bd-11ec-bf54-a2380e71991a', 'task', 22, '[1,2,3,4]', '103', '2022-01-15 12:44:35', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (51, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:6:ebac9f59-75bd-11ec-bf54-a2380e71991a', 'task', 30, '[1,103]', '103', '2022-01-15 12:45:11', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (52, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:7:fc60e5fc-75bd-11ec-bf54-a2380e71991a', 'task', 40, '[110]', '103', '2022-01-15 12:45:39', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (53, '1f98df4c-75b7-11ec-b607-a2380e71991a', 'test:8:12e0a13e-75be-11ec-bf54-a2380e71991a', 'task', 50, '[1]', '103', '2022-01-15 12:46:16', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (54, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '', 'Activity_05kt1hf', 50, '[10]', '103', '2022-01-15 21:27:10', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (55, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '', 'Activity_10tl4d8', 50, '[10]', '103', '2022-01-15 21:27:18', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (56, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', '', 'Activity_00wash3', 50, '[10]', '103', '2022-01-15 21:27:26', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (57, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:9:e2658d43-7606-11ec-8cd2-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '103', '2022-01-15 21:27:28', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (58, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:9:e2658d43-7606-11ec-8cd2-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '103', '2022-01-15 21:27:28', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (59, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:9:e2658d43-7606-11ec-8cd2-a2380e71991a', 'Activity_00wash3', 50, '[21]', '103', '2022-01-15 21:27:28', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (60, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '103', '2022-01-15 21:27:57', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (61, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '103', '2022-01-15 21:27:57', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (62, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', 'Activity_00wash3', 50, '[21]', '103', '2022-01-15 21:27:57', '103', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (63, 'a3d5105e-760b-11ec-9367-a2380e71991a', '', 'Activity_1avi0yr', 30, '[1,103]', '1', '2022-01-15 22:02:24', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (64, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', 'Activity_1avi0yr', 30, '[1,103]', '1', '2022-01-15 22:02:27', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (65, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:11:536ecba7-761a-11ec-a5c5-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-15 23:46:38', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (66, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:11:536ecba7-761a-11ec-a5c5-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-15 23:46:38', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (67, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:11:536ecba7-761a-11ec-a5c5-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-15 23:46:38', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (68, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:12:5c91d0ba-761a-11ec-a5c5-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-15 23:46:54', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (69, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:12:5c91d0ba-761a-11ec-a5c5-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-15 23:46:54', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (70, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:12:5c91d0ba-761a-11ec-a5c5-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-15 23:46:54', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (71, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:13:651e140d-761a-11ec-a5c5-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-15 23:47:08', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (72, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:13:651e140d-761a-11ec-a5c5-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-15 23:47:08', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (73, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:13:651e140d-761a-11ec-a5c5-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-15 23:47:08', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (74, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:14:c1f049a4-761a-11ec-ba93-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-15 23:49:44', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (75, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:14:c1f049a4-761a-11ec-ba93-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-15 23:49:44', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (76, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:14:c1f049a4-761a-11ec-ba93-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-15 23:49:44', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (77, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:15:5304ca92-761b-11ec-b05a-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-15 23:53:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (78, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:15:5304ca92-761b-11ec-b05a-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-15 23:53:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (79, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:15:5304ca92-761b-11ec-b05a-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-15 23:53:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (80, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', '', 'task-01', 50, '[10]', '1', '2022-01-16 01:40:26', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (81, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', '', 'task-22', 50, '[20]', '1', '2022-01-16 01:40:32', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (82, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', '', 'task-23', 50, '[21]', '1', '2022-01-16 01:40:39', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (83, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', '', 'task-21', 30, '[1]', '1', '2022-01-16 01:40:48', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (84, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:1:482ec033-762a-11ec-8477-a2380e71991a', 'task-01', 50, '[10]', '1', '2022-01-16 01:40:51', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (85, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:1:482ec033-762a-11ec-8477-a2380e71991a', 'task-22', 50, '[20]', '1', '2022-01-16 01:40:51', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (86, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:1:482ec033-762a-11ec-8477-a2380e71991a', 'task-23', 50, '[21]', '1', '2022-01-16 01:40:51', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (87, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:1:482ec033-762a-11ec-8477-a2380e71991a', 'task-21', 20, '[100]', '1', '2022-01-16 01:40:51', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (88, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:16:d83ee859-762d-11ec-9125-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-16 02:06:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (89, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:16:d83ee859-762d-11ec-9125-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-16 02:06:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (90, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:16:d83ee859-762d-11ec-9125-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-16 02:06:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (91, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-16 02:07:35', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (92, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-16 02:07:35', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (93, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-16 02:07:35', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (94, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-16 02:44:02', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (95, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-16 02:44:02', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (96, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-16 02:44:02', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (97, '024b400b-7680-11ec-bc82-a2380e71991a', '', 'Activity_04asu4q', 50, '[10]', '1', '2022-01-16 11:55:04', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (98, '024b400b-7680-11ec-bc82-a2380e71991a', 'self:1:17c042ff-7680-11ec-bc82-a2380e71991a', 'Activity_04asu4q', 50, '[10]', '1', '2022-01-16 11:55:07', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (99, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:19:a401b61a-768b-11ec-afcd-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-16 13:17:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (100, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:19:a401b61a-768b-11ec-afcd-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-16 13:17:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (101, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:19:a401b61a-768b-11ec-afcd-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-16 13:17:47', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (102, 'a3d5105e-760b-11ec-9367-a2380e71991a', '', 'Activity_0wdgatv', 50, '[10]', '1', '2022-01-16 13:18:29', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (103, 'a3d5105e-760b-11ec-9367-a2380e71991a', '', 'Activity_1y4q91p', 30, '[1]', '1', '2022-01-16 13:18:41', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (104, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:2:c680200d-768b-11ec-afcd-a2380e71991a', 'Activity_0wdgatv', 50, '[10]', '1', '2022-01-16 13:18:45', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (105, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:2:c680200d-768b-11ec-afcd-a2380e71991a', 'Activity_1y4q91p', 30, '[1]', '1', '2022-01-16 13:18:45', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (106, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', 'Activity_0wdgatv', 50, '[10]', '1', '2022-01-16 13:22:33', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (107, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', 'Activity_1y4q91p', 30, '[1]', '1', '2022-01-16 13:22:33', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (108, '024b400b-7680-11ec-bc82-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', 'Activity_04asu4q', 50, '[10]', '1', '2022-01-16 17:46:50', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (109, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', 'task-01', 50, '[10]', '1', '2022-01-16 17:46:53', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (110, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', 'task-22', 50, '[20]', '1', '2022-01-16 17:46:53', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (111, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', 'task-23', 50, '[21]', '1', '2022-01-16 17:46:53', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (112, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', 'task-21', 20, '[100]', '1', '2022-01-16 17:46:53', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (113, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', 'Activity_0wdgatv', 50, '[10]', '1', '2022-01-16 17:46:56', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (114, 'a3d5105e-760b-11ec-9367-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', 'Activity_1y4q91p', 30, '[1]', '1', '2022-01-16 17:46:56', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (115, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-16 17:46:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (116, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', 'Activity_10tl4d8', 50, '[20]', '1', '2022-01-16 17:46:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (117, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', 'Activity_00wash3', 50, '[21]', '1', '2022-01-16 17:46:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (118, '02b756a8-79af-11ec-abb0-a2380e71991a', '', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-20 13:09:15', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (119, '02b756a8-79af-11ec-abb0-a2380e71991a', '', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-20 13:12:08', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (120, '02b756a8-79af-11ec-abb0-a2380e71991a', '', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-20 13:12:15', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (121, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-20 13:12:18', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (122, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-20 13:12:18', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (123, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-20 13:12:18', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (124, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', 'Activity_05kt1hf', 50, '[10]', '1', '2022-01-20 13:21:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (125, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', 'Activity_10tl4d8', 50, '[10]', '1', '2022-01-20 13:21:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (126, 'a4ef4c7f-7606-11ec-8cd2-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', 'Activity_00wash3', 50, '[10]', '1', '2022-01-20 13:21:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (127, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:2:8a7b5672-7ade-11ec-a777-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:21:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (128, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:2:8a7b5672-7ade-11ec-a777-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:21:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (129, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:2:8a7b5672-7ade-11ec-a777-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:21:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (130, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:3:8db9dfa5-7ade-11ec-a777-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:21:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (131, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:3:8db9dfa5-7ade-11ec-a777-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:21:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (132, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:3:8db9dfa5-7ade-11ec-a777-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:21:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (133, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:4:a63e1e68-7ade-11ec-a777-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:22:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (134, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:4:a63e1e68-7ade-11ec-a777-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:22:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (135, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:4:a63e1e68-7ade-11ec-a777-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:22:03', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (136, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:5:33f2d275-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:01', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (137, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:5:33f2d275-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:01', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (138, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:5:33f2d275-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:01', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (139, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:6:365e0618-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:05', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (140, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:6:365e0618-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:05', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (141, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:6:365e0618-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:05', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (142, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:7:3c5b3a1b-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:15', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (143, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:7:3c5b3a1b-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:15', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (144, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:7:3c5b3a1b-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:15', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (145, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:8:3da2872e-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (146, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:8:3da2872e-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (147, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:8:3da2872e-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:17', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (148, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:9:3f0f84b1-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (149, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:9:3f0f84b1-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (150, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:9:3f0f84b1-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (151, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:10:479efc54-7adf-11ec-93fe-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:26:34', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (152, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:10:479efc54-7adf-11ec-93fe-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:26:34', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (153, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:10:479efc54-7adf-11ec-93fe-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:26:34', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (154, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:11:38c6faaa-7ae0-11ec-9d9d-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:33:19', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (155, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:11:38c6faaa-7ae0-11ec-9d9d-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:33:19', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (156, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:11:38c6faaa-7ae0-11ec-9d9d-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:33:19', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (157, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:12:c9c8ddcd-7ae0-11ec-9d9d-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:37:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (158, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:12:c9c8ddcd-7ae0-11ec-9d9d-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:37:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (159, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:12:c9c8ddcd-7ae0-11ec-9d9d-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:37:22', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (160, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:13:f1aca890-7ae0-11ec-9d9d-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:38:29', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (161, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:13:f1aca890-7ae0-11ec-9d9d-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:38:29', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (162, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:13:f1aca890-7ae0-11ec-9d9d-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:38:29', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (163, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:14:27a560fb-7ae2-11ec-9d9a-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 01:47:09', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (164, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:14:27a560fb-7ae2-11ec-9d9a-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 01:47:09', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (165, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:14:27a560fb-7ae2-11ec-9d9a-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 01:47:09', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (166, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:15:c1906d85-7ae5-11ec-a69c-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 02:12:56', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (167, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:15:c1906d85-7ae5-11ec-a69c-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 02:12:56', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (168, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:15:c1906d85-7ae5-11ec-a69c-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 02:12:56', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (169, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:16:c325da98-7ae5-11ec-a69c-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 02:12:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (170, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:16:c325da98-7ae5-11ec-a69c-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 02:12:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (171, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:16:c325da98-7ae5-11ec-a69c-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 02:12:58', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (172, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', 'Activity_1gndzgr', 50, '[10]', '1', '2022-01-22 02:14:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (173, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', 'Activity_078i5dd', 50, '[10]', '1', '2022-01-22 02:14:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (174, '02b756a8-79af-11ec-abb0-a2380e71991a', 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', 'Activity_0dlqjcv', 50, '[10]', '1', '2022-01-22 02:14:20', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (175, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', 'task-01', 50, '[10]', '1', '2022-01-22 19:19:12', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (176, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', 'task-21', 20, '[100]', '1', '2022-01-22 19:19:12', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (177, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', 'task-01', 50, '[10]', '1', '2022-01-22 20:34:10', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (178, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', 'task-21', 30, '[1]', '1', '2022-01-22 20:34:10', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (179, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', 'task-01', 50, '[10]', '1', '2022-01-22 21:48:38', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (180, 'e4a1a1ef-7628-11ec-8477-a2380e71991a', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', 'task-21', 30, '[1]', '1', '2022-01-22 21:48:38', '1', '2022-02-19 17:29:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (181, '4b4909d8-97e7-11ec-8e20-862bc1a4a054', '', 'task01', 50, '[10]', '1', '2022-02-28 00:53:09', '1', '2022-02-28 00:53:09', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (182, '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'flowable_01:1:c0bb5b36-97ed-11ec-a2b9-862bc1a4a054', 'task01', 50, '[10]', '1', '2022-02-28 00:53:14', '1', '2022-02-28 00:53:14', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (183, '02217e82-a77e-11ec-96d6-8e557beca7ad', '', 'Activity_06rmtz9', 50, '[20]', '1', '2022-03-19 20:58:24', '1', '2022-03-19 20:58:24', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (184, '02217e82-a77e-11ec-96d6-8e557beca7ad', '', 'Activity_1hxzcyl', 22, '[3]', '1', '2022-03-19 20:59:35', '1', '2022-03-19 20:59:35', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (185, '02217e82-a77e-11ec-96d6-8e557beca7ad', 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', 'Activity_06rmtz9', 50, '[20]', '1', '2022-03-19 21:14:26', '1', '2022-03-19 21:14:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (186, '02217e82-a77e-11ec-96d6-8e557beca7ad', 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', 'Activity_1hxzcyl', 22, '[3]', '1', '2022-03-19 21:14:26', '1', '2022-03-19 21:14:26', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (187, '18348550-a79a-11ec-bf87-8e557beca7ad', 'DEFAULT', 'task-01', 30, '[1]', '1', '2022-05-07 01:12:43', '1', '2022-05-07 01:12:43', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (188, '18348550-a79a-11ec-bf87-8e557beca7ad', 'DEFAULT', 'task-21', 30, '[1]', '1', '2022-05-07 01:12:49', '1', '2022-05-07 01:12:49', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (189, '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'DEFAULT', 'task01', 30, '[1]', '1', '2022-05-07 01:13:16', '1', '2022-05-07 01:13:16', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (190, '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'flowable_01:2:d344a0bd-cd5f-11ec-8280-3e2374911326', 'task01', 30, '[1]', '1', '2022-05-07 01:13:19', '1', '2022-05-07 01:13:19', 0, 1);
INSERT INTO "bpm_task_assign_rule" ("id", "model_id", "process_definition_id", "task_definition_key", "type", "options", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (191, '4b4909d8-97e7-11ec-8e20-862bc1a4a054', 'flowable_01:3:4b0eec62-d0e5-11ec-b8b5-3e2374911326', 'task01', 30, '[1]', '1', '2022-05-11 12:46:17', '1', '2022-05-11 12:46:17', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -1198,139 +791,6 @@ COMMENT ON TABLE "bpm_task_ext" IS '工作流的流程任务的拓展表';
-- Records of bpm_task_ext -- Records of bpm_task_ext
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (79, 1, NULL, '36ea97d6-7157-11ec-8642-a2380e71991a', 2, '通过', NULL, '36e36bdd-7157-11ec-8642-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', '2022-01-09 22:19:54', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (80, 1, NULL, '791e01f6-7207-11ec-af01-a2380e71991a', 2, '通过', NULL, '7917733d-7207-11ec-af01-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', '2022-01-10 19:21:36', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (81, NULL, NULL, 'd15049a8-7207-11ec-a1b3-a2380e71991a', 4, NULL, '2022-01-15 21:59:21', 'd14992df-7207-11ec-a1b3-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', '2022-01-10 19:24:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (82, NULL, NULL, '370c4b29-7208-11ec-a594-a2380e71991a', 4, NULL, '2022-01-15 21:59:23', '37056d50-7208-11ec-a594-a2380e71991a', 'Process_1641152976334:10:dd62eaef-6c30-11ec-9fc8-cacd34981f8e', '1', '2022-01-10 19:26:55', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (83, NULL, '任务二', '90cbe90b-7208-11ec-a594-a2380e71991a', 4, NULL, '2022-01-15 21:59:26', '90b5effe-7208-11ec-a594-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', '1', '2022-01-10 19:29:26', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (84, NULL, '任务一', '90cbe909-7208-11ec-a594-a2380e71991a', 4, NULL, '2022-01-15 21:59:26', '90b5effe-7208-11ec-a594-a2380e71991a', 'gateway_test:4:2e50e9a4-7136-11ec-93f6-a2380e71991a', '1', '2022-01-10 19:29:26', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (85, 1, '审批任务一', '842b1870-7211-11ec-8e38-a2380e71991a', 4, NULL, '2022-01-15 21:59:12', '84285947-7211-11ec-8e38-a2380e71991a', 'AA:3:83a1ac25-720b-11ec-95cb-a2380e71991a', '1', '2022-01-10 20:33:30', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (86, 1, '一级审批', 'e9444561-729d-11ec-abc7-a2380e71991a', 4, NULL, '2022-01-15 21:59:10', 'e93a3338-729d-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '1', '2022-01-11 13:18:29', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (87, 1, '一级审批', '37c5ed6f-729e-11ec-abc7-a2380e71991a', 4, NULL, '2022-01-15 21:59:07', '37c2e026-729e-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '1', '2022-01-11 13:20:41', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (88, 103, '一级审批', '61416f3d-729e-11ec-abc7-a2380e71991a', 3, '不通过', '2022-01-15 21:58:22', '613e8904-729e-11ec-abc7-a2380e71991a', 'leave:9:59689ba0-7284-11ec-965c-a2380e71991a', '1', '2022-01-11 13:21:50', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (89, 2, '一级审批', 'fcea15e7-7483-11ec-8645-a2380e71991a', 4, NULL, '2022-01-13 23:20:26', 'fcdfddae-7483-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '103', '2022-01-13 23:17:57', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (90, 2, '一级审批', '42f302b6-7484-11ec-8645-a2380e71991a', 4, NULL, '2022-01-13 23:20:22', '265fa43c-7484-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '103', '2022-01-13 23:19:55', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (91, 1, '一级审批', '476773e2-7484-11ec-8645-a2380e71991a', 3, '不通过', '2022-01-15 21:59:57', '2cb112bf-7484-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '103', '2022-01-13 23:20:02', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (92, 2, '一级审批', '4767c205-7484-11ec-8645-a2380e71991a', 1, NULL, NULL, '38d522d3-7484-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '103', '2022-01-13 23:20:02', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (93, 1, '一级审批', '477e7e66-7484-11ec-8645-a2380e71991a', 3, '不通过', '2022-01-15 21:59:56', '475d139b-7484-11ec-8645-a2380e71991a', 'leave:11:5ddc9eb0-7483-11ec-b390-a2380e71991a', '103', '2022-01-13 23:20:03', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (94, 1, '任务一', '0799c43a-75b9-11ec-b607-a2380e71991a', 4, NULL, '2022-01-15 12:10:18', '078f63f1-75b9-11ec-b607-a2380e71991a', 'test:1:913d7930-75b8-11ec-b607-a2380e71991a', '103', '2022-01-15 12:10:10', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (95, 1, '任务一', 'a4fdfc99-75bd-11ec-bf54-a2380e71991a', 4, NULL, '2022-01-15 21:58:18', 'a4f215b0-75bd-11ec-bf54-a2380e71991a', 'test:3:8e4df3a5-75bb-11ec-a317-a2380e71991a', '103', '2022-01-15 12:43:12', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (96, 104, '任务一', 'c2c3c08d-75bd-11ec-bf54-a2380e71991a', 4, NULL, '2022-01-15 21:58:15', 'c2c10164-75bd-11ec-bf54-a2380e71991a', 'test:4:b86e7d03-75bd-11ec-bf54-a2380e71991a', '103', '2022-01-15 12:44:02', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (97, 105, '任务一', 'dcea64bf-75bd-11ec-bf54-a2380e71991a', 4, NULL, '2022-01-15 21:58:12', 'dce61ef6-75bd-11ec-bf54-a2380e71991a', 'test:5:d64bc095-75bd-11ec-bf54-a2380e71991a', '103', '2022-01-15 12:44:46', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (98, 103, '任务一', 'f19d7753-75bd-11ec-bf54-a2380e71991a', 4, NULL, '2022-01-15 21:58:10', 'f19a6a0a-75bd-11ec-bf54-a2380e71991a', 'test:6:ebac9f59-75bd-11ec-bf54-a2380e71991a', '103', '2022-01-15 12:45:20', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (99, 1, '任务一', '02832d36-75be-11ec-bf54-a2380e71991a', 4, NULL, '2022-01-15 21:58:07', '027ff9dd-75be-11ec-bf54-a2380e71991a', 'test:7:fc60e5fc-75bd-11ec-bf54-a2380e71991a', '103', '2022-01-15 12:45:49', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (100, 103, '任务一', '100e3e00-7607-11ec-8cd2-a2380e71991a', 2, '通过', NULL, '10008257-7607-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', '103', '2022-01-15 21:28:45', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (101, 103, '任务二', 'a0e12108-7607-11ec-8cd2-a2380e71991a', 2, '通过', NULL, '10008257-7607-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', '103', '2022-01-15 21:32:48', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (102, 104, '任务三', 'ae546d70-7607-11ec-8cd2-a2380e71991a', 4, NULL, '2022-01-15 21:58:05', '10008257-7607-11ec-8cd2-a2380e71991a', 'test:10:f3aa05e6-7606-11ec-8cd2-a2380e71991a', '103', '2022-01-15 21:33:10', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (103, 103, '我哎审批', 'cafed9fc-760b-11ec-9367-a2380e71991a', 3, '不通过', '2022-01-15 22:28:57', 'caf40483-760b-11ec-9367-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:02:36', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (104, 1, '我哎审批', '90a11c85-760e-11ec-a415-a2380e71991a', 3, '不通过', '2022-01-15 22:28:51', '9091b32c-760e-11ec-a415-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:22:27', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (106, 103, '我哎审批', '6338b341-760f-11ec-ad1b-a2380e71991a', 3, '不通过', '2022-01-15 22:28:56', '6325c778-760f-11ec-ad1b-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:28:20', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (107, 103, '我哎审批', '873c5db1-760f-11ec-ad1b-a2380e71991a', 3, '不通过', '2022-01-15 22:31:04', '873817e8-760f-11ec-ad1b-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:29:21', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (108, 103, '我哎审批', '0c93a6f4-7610-11ec-9266-a2380e71991a', 3, '不通过', '2022-01-15 23:01:43', '0c843d9b-7610-11ec-9266-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:33:04', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (109, 103, '我哎审批', '5825f744-7610-11ec-9266-a2380e71991a', 3, '不通过', '2022-01-15 23:01:42', '5822c2eb-7610-11ec-9266-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:35:11', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (110, 103, '我哎审批', '59c4c835-7612-11ec-8063-a2380e71991a', 3, '不通过', '2022-01-15 23:01:41', '59b537cc-7612-11ec-8063-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 22:49:33', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (111, 1, '我哎审批', '1a14b21d-7614-11ec-87b4-a2380e71991a', 4, NULL, '2022-01-15 23:54:05', '1a0bb164-7614-11ec-87b4-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 23:02:05', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (112, 1, '我哎审批', '46a4f88d-7615-11ec-87b4-a2380e71991a', 4, NULL, '2022-01-15 23:54:02', '46a21254-7615-11ec-87b4-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 23:10:29', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (113, 103, '我哎审批', '57d90efc-761b-11ec-b05a-a2380e71991a', 4, NULL, '2022-01-15 23:54:00', '57ce3983-761b-11ec-b05a-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-15 23:53:55', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (114, 1, '任务一', '8a3a3172-7630-11ec-a535-a2380e71991a', 2, '通过', NULL, '8a2ee6c9-7630-11ec-a535-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', '1', '2022-01-16 02:25:39', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (115, 1, '任务一', 'e06804a6-767f-11ec-bc82-a2380e71991a', 2, '通过', NULL, 'e05c44cd-767f-11ec-bc82-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', '1', '2022-01-16 11:53:34', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (116, 1, '哈哈哈哈', '1d275189-7680-11ec-bc82-a2380e71991a', 2, '通过', NULL, '1d249260-7680-11ec-bc82-a2380e71991a', 'self:1:17c042ff-7680-11ec-bc82-a2380e71991a', '1', '2022-01-16 11:55:16', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (117, 103, '我哎审批', '70d54722-768b-11ec-afcd-a2380e71991a', 4, NULL, '2022-01-16 22:58:20', '70ca71a9-768b-11ec-afcd-a2380e71991a', 'test_001:1:c5772412-760b-11ec-9367-a2380e71991a', '1', '2022-01-16 13:16:21', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (118, 1, '1.1', 'cdc05b68-768b-11ec-afcd-a2380e71991a', 2, '通过', NULL, 'cdbd4e1e-768b-11ec-afcd-a2380e71991a', 'test_001:2:c680200d-768b-11ec-afcd-a2380e71991a', '1', '2022-01-16 13:18:57', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (119, 1, '1.2', '53892ad4-768c-11ec-afcd-a2380e71991a', 2, '通过', NULL, '537cceb3-768c-11ec-afcd-a2380e71991a', 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', '1', '2022-01-16 13:22:41', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (120, 1, '1.1', '5380ed6e-768c-11ec-afcd-a2380e71991a', 2, '通过', NULL, '537cceb3-768c-11ec-afcd-a2380e71991a', 'test_001:3:4e8e99b2-768c-11ec-afcd-a2380e71991a', '1', '2022-01-16 13:22:41', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (121, 1, '1.2', '363e7d39-76d1-11ec-9c66-a2380e71991a', 2, '通过', NULL, '362b9168-76d1-11ec-9c66-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:35:47', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (122, 1, '1.1', '3634b933-76d1-11ec-9c66-a2380e71991a', 2, '通过', NULL, '362b9168-76d1-11ec-9c66-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:35:47', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (123, 1, '1.2', 'c88367bf-76d1-11ec-9c66-a2380e71991a', 2, '通过', NULL, 'c1ca84ce-76d1-11ec-9c66-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:39:53', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (124, 1, '1.1', 'c87c3bc9-76d1-11ec-9c66-a2380e71991a', 2, '通过', NULL, 'c1ca84ce-76d1-11ec-9c66-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:39:53', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (125, 1, '1.2', '4da1ed9d-76d2-11ec-9423-a2380e71991a', 2, '通过', NULL, '4b4c16ac-76d2-11ec-9423-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:43:36', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (126, 1, '1.1', '4d91c0f7-76d2-11ec-9423-a2380e71991a', 2, '通过', NULL, '4b4c16ac-76d2-11ec-9423-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 21:43:36', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (127, 104, '任务二', 'b5cb3a35-76dc-11ec-95f2-a2380e71991a', 4, NULL, '2022-01-16 22:58:23', 'e05c44cd-767f-11ec-bc82-a2380e71991a', 'test:18:1bb307b1-7633-11ec-957a-a2380e71991a', '1', '2022-01-16 22:58:06', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (128, 104, '任务二', 'b6a45c2e-76dc-11ec-95f2-a2380e71991a', 4, NULL, '2022-01-16 22:58:25', '8a2ee6c9-7630-11ec-a535-a2380e71991a', 'test:17:04259e68-762e-11ec-9ab0-a2380e71991a', '1', '2022-01-16 22:58:07', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (129, 1, '1.2', 'ddef8f85-76dc-11ec-95f2-a2380e71991a', 2, '通过', NULL, 'db3f3c84-76dc-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 22:59:13', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (130, 1, '1.1', 'dde35a7f-76dc-11ec-95f2-a2380e71991a', 2, '通过', NULL, 'db3f3c84-76dc-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 22:59:13', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (131, 1, '1.2', 'cff54e11-76de-11ec-95f2-a2380e71991a', 2, '通过', '2022-01-16 23:13:15', 'cfe3c1d0-76de-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 23:13:09', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (132, 1, '1.1', 'cfea789b-76de-11ec-95f2-a2380e71991a', 2, 'EEE', '2022-01-17 00:51:06', 'cfe3c1d0-76de-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-16 23:13:08', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (133, 1, '1.2', '164c2f9a-76e6-11ec-95f2-a2380e71991a', 2, 'A', '2022-01-17 00:35:25', '1642e0b9-76e6-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:05:13', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (134, 1, '1.1', '1645ee04-76e6-11ec-95f2-a2380e71991a', 2, 'BBB', '2022-01-17 00:35:32', '1642e0b9-76e6-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:05:13', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (135, 1, '1.2', '8bbac286-76ea-11ec-95f2-a2380e71991a', 2, 'AAAA', '2022-01-17 00:37:19', '8bb14c95-76ea-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:37:08', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (136, 1, '1.1', '8bb40bc0-76ea-11ec-95f2-a2380e71991a', 3, 'BBB', '2022-01-17 00:37:21', '8bb14c95-76ea-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:37:08', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (137, 1, '1.2', '2937eba2-76ed-11ec-95f2-a2380e71991a', 2, '1111', '2022-01-17 00:57:01', '29288241-76ed-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:55:51', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (138, 1, '1.1', '292cef1c-76ed-11ec-95f2-a2380e71991a', 2, 'aaaa', '2022-01-17 12:49:45', '29288241-76ed-11ec-95f2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 00:55:51', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (139, 103, '1.2', 'ce91ccb0-77aa-11ec-9be9-a2380e71991a', 2, 'AAA', '2022-01-17 23:51:24', 'ce5e126f-77aa-11ec-9be9-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 23:33:24', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (140, 103, '1.1', 'ce773fca-77aa-11ec-9be9-a2380e71991a', 2, 'BBB', '2022-01-17 23:51:26', 'ce5e126f-77aa-11ec-9be9-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-17 23:33:23', '103', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (141, 1, '1.2', 'd201e58a-77b8-11ec-bc1a-a2380e71991a', 2, 'AAA', '2022-01-18 01:13:50', 'd1e75899-77b8-11ec-bc1a-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-18 01:13:42', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (142, 1, '1.1', 'd1f625b4-77b8-11ec-bc1a-a2380e71991a', 2, 'AAA', '2022-01-19 08:45:37', 'd1e75899-77b8-11ec-bc1a-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-18 01:13:42', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (143, 1, '任务一', 'f31c6d6b-77f2-11ec-bc1a-a2380e71991a', 2, 'AAA', '2022-01-18 08:10:09', 'f3191202-77f2-11ec-bc1a-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-18 08:09:49', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (144, 104, '任务二', 'ff5f7733-77f2-11ec-bc1a-a2380e71991a', 1, NULL, NULL, 'f3191202-77f2-11ec-bc1a-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-18 08:10:09', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (145, 1, '任务一', '342d7bbb-78c1-11ec-9b4d-a2380e71991a', 2, '恩恩', '2022-01-19 08:46:24', '342453f2-78c1-11ec-9b4d-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 08:46:14', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (146, 104, '任务二', '39d64e33-78c1-11ec-9b4d-a2380e71991a', 1, NULL, NULL, '342453f2-78c1-11ec-9b4d-a2380e71991a', 'test:20:3f1c2257-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 08:46:24', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (147, 1, '1.2', 'b2c79c0a-78c1-11ec-9b4d-a2380e71991a', 2, 'A', '2022-01-19 08:49:59', 'b2b9b949-78c1-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 08:49:47', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (148, 1, '1.1', 'b2be4d34-78c1-11ec-9b4d-a2380e71991a', 3, 'EEE', '2022-01-19 09:13:18', 'b2b9b949-78c1-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 08:49:46', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (149, 1, '1.2', '0efced83-78c5-11ec-9b4d-a2380e71991a', 2, 'EEE', '2022-01-19 09:14:15', '0ef30262-78c5-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 09:13:50', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (150, 1, '1.1', '0ef636bd-78c5-11ec-9b4d-a2380e71991a', 2, 'EEE', '2022-01-19 09:14:21', '0ef30262-78c5-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 09:13:50', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (151, 1, '1.2', '7d8b2a4f-78c7-11ec-9b4d-a2380e71991a', 2, 'bbb', '2022-01-19 09:31:27', '7d80f10e-78c7-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 09:31:14', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (152, 1, '1.1', '7d847389-78c7-11ec-9b4d-a2380e71991a', 2, 'aaaa', '2022-01-19 09:31:24', '7d80f10e-78c7-11ec-9b4d-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 09:31:14', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (153, 1, '1.2', '07b342ab-78cd-11ec-a731-a2380e71991a', 4, NULL, '2022-01-19 10:11:03', '079d97ba-78cd-11ec-a731-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 10:10:53', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (154, 1, '1.1', '07a86d35-78cd-11ec-a731-a2380e71991a', 3, 'BBB', '2022-01-19 10:11:03', '079d97ba-78cd-11ec-a731-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-19 10:10:53', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (155, 1, '申请', '929c0a06-79af-11ec-abb0-a2380e71991a', 2, 'eee', '2022-01-20 13:12:39', '92904a2d-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', '1', '2022-01-20 13:12:33', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (156, 1, '部门33审批', '9658eb06-79af-11ec-abb0-a2380e71991a', 2, 'qqq', '2022-01-20 13:12:46', '92904a2d-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', '1', '2022-01-20 13:12:39', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (157, 1, '人事审批', '96519800-79af-11ec-abb0-a2380e71991a', 2, 'wwww', '2022-01-20 13:12:51', '92904a2d-79af-11ec-abb0-a2380e71991a', 'eee:1:89b300ac-79af-11ec-abb0-a2380e71991a', '1', '2022-01-20 13:12:39', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (158, 1, '任务一', 'cac7f66a-79b0-11ec-b2b8-a2380e71991a', 2, 'EEE', '2022-01-20 13:21:22', 'cabc84b1-79b0-11ec-b2b8-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-20 13:21:16', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (159, 1, '任务二', 'ce4cd772-79b0-11ec-b2b8-a2380e71991a', 2, 'ZZZ', '2022-01-20 13:21:26', 'cabc84b1-79b0-11ec-b2b8-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-20 13:21:22', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (160, 1, '任务三', 'd080805a-79b0-11ec-b2b8-a2380e71991a', 2, 'WWW', '2022-01-20 13:21:30', 'cabc84b1-79b0-11ec-b2b8-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-20 13:21:26', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (161, 1, '哈哈哈哈', 'b7ff7774-7a14-11ec-8762-a2380e71991a', 3, 'eee', '2022-01-21 01:16:42', 'b7f3b79b-7a14-11ec-8762-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 01:16:35', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (162, 1, '任务一', 'd9fa3754-7ac6-11ec-a040-a2380e71991a', 1, NULL, NULL, 'd9ee295b-7ac6-11ec-a040-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-21 22:31:42', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (163, 1, '1.2', 'ed555b0a-7ac6-11ec-a040-a2380e71991a', 1, NULL, NULL, 'ed4a3769-7ac6-11ec-a040-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:32:15', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (164, 1, '1.1', 'ed4ef264-7ac6-11ec-a040-a2380e71991a', 1, NULL, NULL, 'ed4a3769-7ac6-11ec-a040-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:32:15', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (165, 1, '任务一', '54ad8088-7ac7-11ec-a040-a2380e71991a', 1, NULL, NULL, '54aa251f-7ac7-11ec-a040-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-21 22:35:08', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (166, 1, '任务一', 'bd97b7c0-7ac7-11ec-9948-a2380e71991a', 1, NULL, NULL, 'bd7dc717-7ac7-11ec-9948-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-21 22:38:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (167, 1, '1.2', '381aa1dd-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '37d7a55c-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:41:29', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (168, 1, '1.1', '37f95e37-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '37d7a55c-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:41:29', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (169, 1, '1.2', '58154733-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '580a98c2-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:42:23', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (170, 1, '1.1', '580e1b3d-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '580a98c2-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:42:23', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (171, 1, '1.2', '8f0d1619-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '8f021988-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:43:55', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (172, 1, '1.1', '8f059c03-7ac8-11ec-a9e2-a2380e71991a', 1, NULL, NULL, '8f021988-7ac8-11ec-a9e2-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:43:55', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (173, 1, '1.2', '2377edc6-7ac9-11ec-aa06-a2380e71991a', 2, 'A', '2022-01-22 00:20:48', '23615875-7ac9-11ec-aa06-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:48:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (174, 1, '1.1', '236c5500-7ac9-11ec-aa06-a2380e71991a', 2, 'A', '2022-01-22 00:20:51', '23615875-7ac9-11ec-aa06-a2380e71991a', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-21 22:48:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (175, 1, '哈哈哈哈', '34fb7fac-7ad6-11ec-abe9-a2380e71991a', 2, 'AAA', '2022-01-22 00:22:02', '34f51703-7ad6-11ec-abe9-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-22 00:21:37', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (176, 1, '哈哈哈哈', 'a4178f6d-7ad6-11ec-abe9-a2380e71991a', 4, NULL, '2022-01-22 00:24:48', 'a413bed4-7ad6-11ec-abe9-a2380e71991a', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-22 00:24:44', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (177, 1, '任务一', 'c010347b-7ad6-11ec-abe9-a2380e71991a', 3, 'EEE', '2022-01-22 00:30:01', 'c00d2732-7ad6-11ec-abe9-a2380e71991a', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-22 00:25:31', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (178, 1, '一级审批', 'a6aba0a4-7b6d-11ec-b781-acde48001122', 1, NULL, NULL, 'a6a007dd-7b6d-11ec-b781-acde48001122', 'oa_leave:2:3c1f0ef1-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-22 18:25:42', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (179, 1, '一级审批', '28aed7fb-7b75-11ec-a3c8-acde48001122', 2, 'EEE', '2022-01-22 20:31:52', '28a5d744-7b75-11ec-a3c8-acde48001122', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', '1', '2022-01-22 19:19:27', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (180, 1, '一级审批', '75d72608-7b7f-11ec-a3c8-acde48001122', 1, NULL, NULL, '75d43fd1-7b7f-11ec-a3c8-acde48001122', 'oa_leave:3:1fad3d93-7b75-11ec-a3c8-acde48001122', '1', '2022-01-22 20:33:11', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (181, 1, '一级审批', '9ac3d0eb-7b7f-11ec-a3c8-acde48001122', 2, 'EEE', '2022-01-22 20:34:25', '9ac0eab4-7b7f-11ec-a3c8-acde48001122', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', '1', '2022-01-22 20:34:13', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (182, 1, '二级审批', 'a23fb5b1-7b7f-11ec-a3c8-acde48001122', 2, 'CCC', '2022-01-22 20:34:33', '9ac0eab4-7b7f-11ec-a3c8-acde48001122', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', '1', '2022-01-22 20:34:25', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (183, 1, '一级审批', '725a1eb6-7b88-11ec-8ef0-acde48001122', 1, NULL, NULL, '7250cfdf-7b88-11ec-8ef0-acde48001122', 'oa_leave:4:991f2193-7b7f-11ec-a3c8-acde48001122', '1', '2022-01-22 21:37:31', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (184, 1, '一级审批', '069c6a63-7b8a-11ec-8ef0-acde48001122', 1, NULL, NULL, '0699ab3c-7b8a-11ec-8ef0-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 21:48:49', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (185, 1, '一级审批', 'eaa01ebd-7b8d-11ec-b8e2-acde48001122', 2, 'AAA', '2022-01-22 22:16:53', 'ea957056-7b8d-11ec-b8e2-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:16:40', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (186, 1, '二级审批', 'f24cfe93-7b8d-11ec-b8e2-acde48001122', 2, 'EEE', '2022-01-22 22:16:56', 'ea957056-7b8d-11ec-b8e2-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:16:53', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (187, 1, '一级审批', '7e0bd5ff-7b8e-11ec-b8e2-acde48001122', 3, 'EEE', '2022-01-22 22:21:14', '7e093de8-7b8e-11ec-b8e2-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:20:47', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (188, 1, '一级审批', '535dc031-7b91-11ec-8473-acde48001122', 3, 'EEE', '2022-01-22 22:41:09', '5354233a-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:41:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (189, 1, '一级审批', '68d13c8b-7b91-11ec-8473-acde48001122', 2, '1111', '2022-01-22 22:41:46', '68ce0834-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:41:40', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (190, 1, '二级审批', '6c5ad881-7b91-11ec-8473-acde48001122', 3, 'EEE', '2022-01-22 22:41:57', '68ce0834-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:41:46', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (191, 1, '一级审批', 'bb265acb-7b91-11ec-8473-acde48001122', 3, 'eeee', '2022-01-22 22:44:07', 'bb23c2b4-7b91-11ec-8473-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 22:43:58', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (192, 1, '哈哈哈哈', '49dd7c51-7b98-11ec-b5ee-acde48001122', 4, NULL, '2022-01-22 23:39:10', '49d3df58-7b98-11ec-b5ee-acde48001122', 'self:2:3a5a065e-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-22 23:30:55', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (193, 1, '一级审批', '888c6dfe-7b99-11ec-ba5c-acde48001122', 3, 'eee', '2022-01-22 23:39:59', '8884f3e7-7b99-11ec-ba5c-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:39:49', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (194, 1, '一级审批', 'a59c9d88-7b99-11ec-ba5c-acde48001122', 2, 'AAAA', '2022-01-22 23:40:49', 'a59a5391-7b99-11ec-ba5c-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:40:38', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (195, 1, '一级审批', '03d1219e-7b9a-11ec-a290-acde48001122', 3, 'BBB', '2022-01-22 23:43:29', '03c6c157-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:43:16', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (196, 1, '一级审批', '331e3388-7b9a-11ec-a290-acde48001122', 2, 'EEE', '2022-01-22 23:44:40', '331bc281-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:44:35', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (197, 1, '一级审批', '53026aa5-7b9a-11ec-a290-acde48001122', 2, 'AAA', '2022-01-22 23:45:37', '52ffd28e-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:45:29', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (198, 1, '一级审批', '67c534a2-7b9a-11ec-a290-acde48001122', 2, 'EEEE', '2022-01-22 23:46:09', '67c2eaab-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:46:04', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (199, 1, '一级审批', '8196daff-7b9a-11ec-a290-acde48001122', 2, 'eee', '2022-01-22 23:46:53', '819442e8-7b9a-11ec-a290-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:46:47', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (200, 1, '一级审批', 'ec507ae6-7b9a-11ec-b03b-acde48001122', 2, 'AAA', '2022-01-22 23:49:51', 'ec45f38f-7b9a-11ec-b03b-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:49:46', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (201, 1, '一级审批', '215cf4e5-7b9b-11ec-9a1b-acde48001122', 2, 'aaa', '2022-01-22 23:51:20', '2152467e-7b9b-11ec-9a1b-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:51:15', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (202, 1, '一级审批', '73211d9d-7b9b-11ec-b5b7-acde48001122', 1, NULL, NULL, '7317cec6-7b9b-11ec-b5b7-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:53:32', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (203, 1, '一级审批', '74736737-7b9b-11ec-b5b7-acde48001122', 4, NULL, '2022-01-23 00:08:41', '7470a810-7b9b-11ec-b5b7-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-22 23:53:35', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (204, 1, '一级审批', '3adac3d2-7b9d-11ec-8404-acde48001122', 4, NULL, '2022-01-23 00:07:03', '3ad174fb-7b9d-11ec-8404-acde48001122', 'oa_leave:5:004b710b-7b8a-11ec-8ef0-acde48001122', '1', '2022-01-23 00:06:17', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (205, 1, '申请', 'b25363db-7c06-11ec-9110-acde48001122', 1, NULL, NULL, 'b243fa82-7c06-11ec-9110-acde48001122', 'eee:17:f3aad03b-7ae5-11ec-a69c-a2380e71991a', '1', '2022-01-23 12:41:14', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (206, 1, '1.2', 'ee7cbc97-7c07-11ec-a41d-acde48001122', 4, NULL, '2022-01-23 12:59:40', 'ecddb286-7c07-11ec-a41d-acde48001122', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-23 12:50:05', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (207, 1, '1.1', 'ee67adf1-7c07-11ec-a41d-acde48001122', 4, NULL, '2022-01-23 12:59:40', 'ecddb286-7c07-11ec-a41d-acde48001122', 'test_001:4:3dbe6714-76b1-11ec-9c66-a2380e71991a', '1', '2022-01-23 12:50:05', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (209, 1, '任务一', '4f6fce81-7c09-11ec-b8a1-acde48001122', 1, NULL, NULL, '4f676a08-7c09-11ec-b8a1-acde48001122', 'test:21:c2cd44b0-79b0-11ec-b2b8-a2380e71991a', '1', '2022-01-23 12:59:57', '1', '2022-02-19 17:29:32', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (210, 1, 'task01', 'c97146a4-97ed-11ec-a2b9-862bc1a4a054', 2, '嗯嗯嗯', '2022-02-28 00:53:35', 'c964c377-97ed-11ec-a2b9-862bc1a4a054', 'flowable_01:1:c0bb5b36-97ed-11ec-a2b9-862bc1a4a054', '1', '2022-02-28 00:53:28', '1', '2022-02-28 00:53:35', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (211, 104, '部门领导审批', '6bf71106-a787-11ec-96d6-8e557beca7ad', 2, '关注芋道源码公众号', '2022-03-19 22:00:45', '6be9f198-a787-11ec-96d6-8e557beca7ad', 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', '1', '2022-03-19 21:21:02', '104', '2022-03-19 22:00:45', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (212, 114, 'HR 审批', 'f8beb356-a78c-11ec-bf87-8e557beca7ad', 2, '不错', '2022-03-19 22:16:00', '6be9f198-a787-11ec-96d6-8e557beca7ad', 'common-form:1:7fdfc407-a786-11ec-96d6-8e557beca7ad', '104', '2022-03-19 22:00:45', '114', '2022-03-19 22:16:00', 0, 1);
INSERT INTO "bpm_task_ext" ("id", "assignee_user_id", "name", "task_id", "result", "reason", "end_time", "process_instance_id", "process_definition_id", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (213, 1, 'task01', 'daa7cd6b-cd5f-11ec-8280-3e2374911326', 2, '23231', '2022-05-07 01:13:37', 'da9c5bae-cd5f-11ec-8280-3e2374911326', 'flowable_01:2:d344a0bd-cd5f-11ec-8280-3e2374911326', '1', '2022-05-07 01:13:32', '1', '2022-05-07 01:13:37', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -1368,7 +828,6 @@ COMMENT ON TABLE "bpm_user_group" IS '用户组';
-- Records of bpm_user_group -- Records of bpm_user_group
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "bpm_user_group" ("id", "name", "description", "member_user_ids", "status", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (110, '测试组', '哈哈哈哈', '[1]', 0, '1', '2022-01-14 13:54:13', '1', '2022-02-19 17:29:39', 0, 1);
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@ -1739,13 +1198,14 @@ CREATE TABLE "infra_file" (
"config_id" int8, "config_id" int8,
"path" varchar(512) COLLATE "pg_catalog"."default" NOT NULL, "path" varchar(512) COLLATE "pg_catalog"."default" NOT NULL,
"url" varchar(1024) COLLATE "pg_catalog"."default" NOT NULL, "url" varchar(1024) COLLATE "pg_catalog"."default" NOT NULL,
"type" varchar(63) COLLATE "pg_catalog"."default", "type" varchar(127) COLLATE "pg_catalog"."default",
"size" int4 NOT NULL, "size" int4 NOT NULL,
"creator" varchar(64) COLLATE "pg_catalog"."default", "creator" varchar(64) COLLATE "pg_catalog"."default",
"create_time" timestamp(6) NOT NULL, "create_time" timestamp(6) NOT NULL,
"updater" varchar(64) COLLATE "pg_catalog"."default", "updater" varchar(64) COLLATE "pg_catalog"."default",
"update_time" timestamp(6) NOT NULL, "update_time" timestamp(6) NOT NULL,
"deleted" int2 NOT NULL DEFAULT 0 "deleted" int2 NOT NULL DEFAULT 0,
"name" varchar(255) COLLATE "pg_catalog"."default"
) )
; ;
COMMENT ON COLUMN "infra_file"."id" IS '文件编号'; COMMENT ON COLUMN "infra_file"."id" IS '文件编号';
@ -1759,6 +1219,7 @@ COMMENT ON COLUMN "infra_file"."create_time" IS '创建时间';
COMMENT ON COLUMN "infra_file"."updater" IS '更新者'; COMMENT ON COLUMN "infra_file"."updater" IS '更新者';
COMMENT ON COLUMN "infra_file"."update_time" IS '更新时间'; COMMENT ON COLUMN "infra_file"."update_time" IS '更新时间';
COMMENT ON COLUMN "infra_file"."deleted" IS '是否删除'; COMMENT ON COLUMN "infra_file"."deleted" IS '是否删除';
COMMENT ON COLUMN "infra_file"."name" IS '文件名';
COMMENT ON TABLE "infra_file" IS '文件表'; COMMENT ON TABLE "infra_file" IS '文件表';
-- ---------------------------- -- ----------------------------
@ -2806,7 +2267,6 @@ INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "st
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (62, 0, '未处理', '0', 'infra_api_error_log_process_status', 0, 'primary', '', NULL, '', '2021-02-26 07:07:19', '1', '2022-02-16 20:14:17', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (62, 0, '未处理', '0', 'infra_api_error_log_process_status', 0, 'primary', '', NULL, '', '2021-02-26 07:07:19', '1', '2022-02-16 20:14:17', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (63, 1, '已处理', '1', 'infra_api_error_log_process_status', 0, 'success', '', NULL, '', '2021-02-26 07:07:26', '1', '2022-02-16 20:14:08', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (63, 1, '已处理', '1', 'infra_api_error_log_process_status', 0, 'success', '', NULL, '', '2021-02-26 07:07:26', '1', '2022-02-16 20:14:08', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (64, 2, '已忽略', '2', 'infra_api_error_log_process_status', 0, 'danger', '', NULL, '', '2021-02-26 07:07:34', '1', '2022-02-16 20:14:14', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (64, 2, '已忽略', '2', 'infra_api_error_log_process_status', 0, 'danger', '', NULL, '', '2021-02-26 07:07:34', '1', '2022-02-16 20:14:14', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (65, 1, '云片', 'YUN_PIAN', 'system_sms_channel_code', 0, 'success', '', NULL, '1', '2021-04-05 01:05:14', '1', '2022-02-16 10:09:55', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (66, 2, '阿里云', 'ALIYUN', 'system_sms_channel_code', 0, 'primary', '', NULL, '1', '2021-04-05 01:05:26', '1', '2022-02-16 10:09:52', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (66, 2, '阿里云', 'ALIYUN', 'system_sms_channel_code', 0, 'primary', '', NULL, '1', '2021-04-05 01:05:26', '1', '2022-02-16 10:09:52', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (67, 1, '验证码', '1', 'system_sms_template_type', 0, 'warning', '', NULL, '1', '2021-04-05 21:50:57', '1', '2022-02-16 12:48:30', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (67, 1, '验证码', '1', 'system_sms_template_type', 0, 'warning', '', NULL, '1', '2021-04-05 21:50:57', '1', '2022-02-16 12:48:30', 0);
INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (68, 2, '通知', '2', 'system_sms_template_type', 0, 'primary', '', NULL, '1', '2021-04-05 21:51:08', '1', '2022-02-16 12:48:27', 0); INSERT INTO "system_dict_data" ("id", "sort", "label", "value", "dict_type", "status", "color_type", "css_class", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (68, 2, '通知', '2', 'system_sms_template_type', 0, 'primary', '', NULL, '1', '2021-04-05 21:51:08', '1', '2022-02-16 12:48:27', 0);
@ -2907,28 +2367,48 @@ CREATE TABLE "system_dict_type" (
"create_time" timestamp(6) NOT NULL, "create_time" timestamp(6) NOT NULL,
"updater" varchar(64) COLLATE "pg_catalog"."default", "updater" varchar(64) COLLATE "pg_catalog"."default",
"update_time" timestamp(6) NOT NULL, "update_time" timestamp(6) NOT NULL,
"deleted_time" timestamp(6),
"deleted" int2 NOT NULL DEFAULT 0 "deleted" int2 NOT NULL DEFAULT 0
) )
; ;
COMMENT ON COLUMN "system_dict_type"."id" IS '字典主键'; COMMENT
COMMENT ON COLUMN "system_dict_type"."name" IS '字典名称'; ON COLUMN "system_dict_type"."id" IS '字典主键';
COMMENT ON COLUMN "system_dict_type"."type" IS '字典类型'; COMMENT
COMMENT ON COLUMN "system_dict_type"."status" IS '状态0正常 1停用'; ON COLUMN "system_dict_type"."name" IS '字典名称';
COMMENT ON COLUMN "system_dict_type"."remark" IS '备注'; COMMENT
COMMENT ON COLUMN "system_dict_type"."creator" IS '创建者'; ON COLUMN "system_dict_type"."type" IS '字典类型';
COMMENT ON COLUMN "system_dict_type"."create_time" IS '创建时间'; COMMENT
COMMENT ON COLUMN "system_dict_type"."updater" IS '更新者'; ON COLUMN "system_dict_type"."status" IS '状态0正常 1停用';
COMMENT ON COLUMN "system_dict_type"."update_time" IS '更新时间'; COMMENT
COMMENT ON COLUMN "system_dict_type"."deleted" IS '是否删除'; ON COLUMN "system_dict_type"."remark" IS '备注';
COMMENT ON TABLE "system_dict_type" IS '字典类型表'; COMMENT
ON COLUMN "system_dict_type"."creator" IS '创建者';
COMMENT
ON COLUMN "system_dict_type"."create_time" IS '创建时间';
COMMENT
ON COLUMN "system_dict_type"."updater" IS '更新者';
COMMENT
ON COLUMN "system_dict_type"."update_time" IS '更新时间';
COMMENT
ON COLUMN "system_dict_type"."deleted_time" IS '删除时间';
COMMENT
ON COLUMN "system_dict_type"."deleted" IS '是否删除';
COMMENT
ON TABLE "system_dict_type" IS '字典类型表';
-- ---------------------------- -- ----------------------------
-- Records of system_dict_type -- Records of system_dict_type
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:30:31', 0); INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater",
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', 0); "update_time", "deleted")
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', 0); VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:30:31', 0);
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater",
"update_time", "deleted")
VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', 0);
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater",
"update_time", "deleted")
VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', 0);
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', 0); INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', 0);
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', 0); INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', 0);
INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', 0); INSERT INTO "system_dict_type" ("id", "name", "type", "status", "remark", "creator", "create_time", "updater", "update_time", "deleted") VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', 0);
@ -4025,7 +3505,7 @@ COMMIT;
DROP TABLE IF EXISTS "system_sms_channel"; DROP TABLE IF EXISTS "system_sms_channel";
CREATE TABLE "system_sms_channel" ( CREATE TABLE "system_sms_channel" (
"id" int8 NOT NULL, "id" int8 NOT NULL,
"signature" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, "signature" varchar(12) COLLATE "pg_catalog"."default" NOT NULL,
"code" varchar(63) COLLATE "pg_catalog"."default" NOT NULL, "code" varchar(63) COLLATE "pg_catalog"."default" NOT NULL,
"status" int2 NOT NULL, "status" int2 NOT NULL,
"remark" varchar(255) COLLATE "pg_catalog"."default", "remark" varchar(255) COLLATE "pg_catalog"."default",
@ -4058,7 +3538,6 @@ COMMENT ON TABLE "system_sms_channel" IS '短信渠道';
-- Records of system_sms_channel -- Records of system_sms_channel
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (1, '芋道', 'YUN_PIAN', 0, '呵呵呵哒', '1555a14277cb8a608cf45a9e6a80d510', NULL, 'http://vdwapu.natappfree.cc/admin-api/system/sms/callback/yunpian', '', '2021-03-31 06:12:20', '1', '2022-02-23 16:48:44', 0);
INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (2, 'Ballcat', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2021-04-14 00:08:37', 0); INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (2, 'Ballcat', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2021-04-14 00:08:37', 0);
INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', 0); INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', 0);
INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (6, '测试演示', 'DEBUG_DING_TALK', 0, NULL, '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2022-04-10 23:07:59', '1', '2022-04-10 23:07:59', 0); INSERT INTO "system_sms_channel" ("id", "signature", "code", "status", "remark", "api_key", "api_secret", "callback_url", "creator", "create_time", "updater", "update_time", "deleted") VALUES (6, '测试演示', 'DEBUG_DING_TALK', 0, NULL, '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2022-04-10 23:07:59', '1', '2022-04-10 23:07:59', 0);
@ -4559,20 +4038,6 @@ INSERT INTO "system_users" ("id", "username", "password", "nickname", "remark",
INSERT INTO "system_users" ("id", "username", "password", "nickname", "remark", "dept_id", "post_ids", "email", "mobile", "sex", "avatar", "status", "login_ip", "login_date", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/48934f2f-92d4-4250-b917-d10d2b262c6a', 0, '127.0.0.1', '2022-05-25 23:44:33.003', 'admin', '2021-01-05 17:03:47', NULL, '2022-05-25 23:44:33.003', 0, 1); INSERT INTO "system_users" ("id", "username", "password", "nickname", "remark", "dept_id", "post_ids", "email", "mobile", "sex", "avatar", "status", "login_ip", "login_date", "creator", "create_time", "updater", "update_time", "deleted", "tenant_id") VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/48934f2f-92d4-4250-b917-d10d2b262c6a', 0, '127.0.0.1', '2022-05-25 23:44:33.003', 'admin', '2021-01-05 17:03:47', NULL, '2022-05-25 23:44:33.003', 0, 1);
COMMIT; COMMIT;
-- ----------------------------
-- Alter sequences owned by
-- ----------------------------
ALTER SEQUENCE "act_evt_log_log_nr__seq"
OWNED BY "act_evt_log"."log_nr_";
SELECT setval('"act_evt_log_log_nr__seq"', 1, false);
-- ----------------------------
-- Alter sequences owned by
-- ----------------------------
ALTER SEQUENCE "act_hi_tsk_log_id__seq"
OWNED BY "act_hi_tsk_log"."id_";
SELECT setval('"act_hi_tsk_log_id__seq"', 1, false);
-- ---------------------------- -- ----------------------------
-- Alter sequences owned by -- Alter sequences owned by
-- ---------------------------- -- ----------------------------

View File

@ -12,7 +12,7 @@
Target Server Version : 15004198 Target Server Version : 15004198
File Encoding : 65001 File Encoding : 65001
Date: 26/05/2022 01:01:02 Date: 15/06/2022 08:15:45
*/ */
@ -2634,13 +2634,14 @@ CREATE TABLE [dbo].[infra_file] (
[config_id] bigint NULL, [config_id] bigint NULL,
[path] nvarchar(512) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [path] nvarchar(512) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[url] nvarchar(1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [url] nvarchar(1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[type] nvarchar(63) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [type] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[size] int NOT NULL, [size] int NOT NULL,
[creator] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [creator] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[create_time] datetime2(7) NOT NULL, [create_time] datetime2(7) NOT NULL,
[updater] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [updater] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[update_time] datetime2(7) NOT NULL, [update_time] datetime2(7) NOT NULL,
[deleted] bit DEFAULT 0 NOT NULL [deleted] bit DEFAULT 0 NOT NULL,
[name] nvarchar(512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) )
GO GO
@ -2676,7 +2677,7 @@ EXEC sp_addextendedproperty
GO GO
EXEC sp_addextendedproperty EXEC sp_addextendedproperty
'MS_Description', N'文件类型', 'MS_Description', N'文件 MIME 类型',
'SCHEMA', N'dbo', 'SCHEMA', N'dbo',
'TABLE', N'infra_file', 'TABLE', N'infra_file',
'COLUMN', N'type' 'COLUMN', N'type'
@ -2724,6 +2725,13 @@ EXEC sp_addextendedproperty
'COLUMN', N'deleted' 'COLUMN', N'deleted'
GO GO
EXEC sp_addextendedproperty
'MS_Description', N'文件路径',
'SCHEMA', N'dbo',
'TABLE', N'infra_file',
'COLUMN', N'name'
GO
EXEC sp_addextendedproperty EXEC sp_addextendedproperty
'MS_Description', N'文件表', 'MS_Description', N'文件表',
'SCHEMA', N'dbo', 'SCHEMA', N'dbo',
@ -5537,11 +5545,7 @@ GO
INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'63', N'1', N'已处理', N'1', N'infra_api_error_log_process_status', N'0', N'success', N'', NULL, N'', N'2021-02-26 07:07:26.0000000', N'1', N'2022-02-16 20:14:08.0000000', N'0') INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'63', N'1', N'已处理', N'1', N'infra_api_error_log_process_status', N'0', N'success', N'', NULL, N'', N'2021-02-26 07:07:26.0000000', N'1', N'2022-02-16 20:14:08.0000000', N'0')
GO GO
INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'64', N'2', N'已忽略', N'2', N'infra_api_error_log_process_status', N'0', N'danger', N'', NULL, N'', N'2021-02-26 07:07:34.0000000', N'1', N'2022-02-16 20:14:14.0000000', N'0')
GO
INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'65', N'1', N'云片', N'YUN_PIAN', N'system_sms_channel_code', N'0', N'success', N'', NULL, N'1', N'2021-04-05 01:05:14.0000000', N'1', N'2022-02-16 10:09:55.0000000', N'0')
GO
INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'66', N'2', N'阿里云', N'ALIYUN', N'system_sms_channel_code', N'0', N'primary', N'', NULL, N'1', N'2021-04-05 01:05:26.0000000', N'1', N'2022-02-16 10:09:52.0000000', N'0') INSERT INTO [dbo].[system_dict_data] ([id], [sort], [label], [value], [dict_type], [status], [color_type], [css_class], [remark], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'66', N'2', N'阿里云', N'ALIYUN', N'system_sms_channel_code', N'0', N'primary', N'', NULL, N'1', N'2021-04-05 01:05:26.0000000', N'1', N'2022-02-16 10:09:52.0000000', N'0')
GO GO
@ -5809,16 +5813,49 @@ IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sy
DROP TABLE [dbo].[system_dict_type] DROP TABLE [dbo].[system_dict_type]
GO GO
CREATE TABLE [dbo].[system_dict_type] ( CREATE TABLE [dbo].[system_dict_type]
[id] bigint IDENTITY(1,1) NOT NULL, (
[name] nvarchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [
[type] nvarchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, id]
bigint
IDENTITY
(
1,
1
) NOT NULL,
[name] nvarchar
(
100
) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[type] nvarchar
(
100
) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[status] tinyint NOT NULL, [status] tinyint NOT NULL,
[remark] nvarchar(500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [remark] nvarchar
[creator] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, (
[create_time] datetime2(7) NOT NULL, 500
[updater] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, ) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[update_time] datetime2(7) NOT NULL, [creator] nvarchar
(
64
) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[create_time] datetime2
(
7
) NOT NULL,
[updater] nvarchar
(
64
) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[update_time] datetime2
(
7
) NOT NULL,
[deleted_time] datetime2
(
7
),
[deleted] bit DEFAULT 0 NOT NULL [deleted] bit DEFAULT 0 NOT NULL
) )
GO GO
@ -5881,21 +5918,24 @@ EXEC sp_addextendedproperty
'TABLE', N'system_dict_type', 'TABLE', N'system_dict_type',
'COLUMN', N'updater' 'COLUMN', N'updater'
GO GO
EXEC sp_addextendedproperty EXEC sp_addextendedproperty
'MS_Description', N'更新时间', 'MS_Description', N'更新时间',
'SCHEMA', N'dbo', 'SCHEMA', N'dbo',
'TABLE', N'system_dict_type', 'TABLE', N'system_dict_type',
'COLUMN', N'update_time' 'COLUMN', N'update_time'
GO GO
EXEC sp_addextendedproperty
'MS_Description', N'删除时间',
'SCHEMA', N'dbo',
'TABLE', N'system_dict_type',
'COLUMN', N'deleted_time'
GO
EXEC sp_addextendedproperty EXEC sp_addextendedproperty
'MS_Description', N'是否删除', 'MS_Description', N'是否删除',
'SCHEMA', N'dbo', 'SCHEMA', N'dbo',
'TABLE', N'system_dict_type', 'TABLE', N'system_dict_type',
'COLUMN', N'deleted' 'COLUMN', N'deleted'
GO GO
EXEC sp_addextendedproperty EXEC sp_addextendedproperty
'MS_Description', N'字典类型表', 'MS_Description', N'字典类型表',
'SCHEMA', N'dbo', 'SCHEMA', N'dbo',
@ -9490,7 +9530,7 @@ GO
CREATE TABLE [dbo].[system_sms_channel] ( CREATE TABLE [dbo].[system_sms_channel] (
[id] bigint IDENTITY(1,1) NOT NULL, [id] bigint IDENTITY(1,1) NOT NULL,
[signature] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [signature] nvarchar(12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[code] nvarchar(63) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [code] nvarchar(63) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[status] tinyint NOT NULL, [status] tinyint NOT NULL,
[remark] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [remark] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
@ -9615,9 +9655,6 @@ GO
SET IDENTITY_INSERT [dbo].[system_sms_channel] ON SET IDENTITY_INSERT [dbo].[system_sms_channel] ON
GO GO
INSERT INTO [dbo].[system_sms_channel] ([id], [signature], [code], [status], [remark], [api_key], [api_secret], [callback_url], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'1', N'芋道', N'YUN_PIAN', N'0', N'呵呵呵哒', N'1555a14277cb8a608cf45a9e6a80d510', NULL, N'http://vdwapu.natappfree.cc/admin-api/system/sms/callback/yunpian', N'', N'2021-03-31 06:12:20.0000000', N'1', N'2022-02-23 16:48:44.0000000', N'0')
GO
INSERT INTO [dbo].[system_sms_channel] ([id], [signature], [code], [status], [remark], [api_key], [api_secret], [callback_url], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'2', N'Ballcat', N'ALIYUN', N'0', N'啦啦啦', N'LTAI5tCnKso2uG3kJ5gRav88', N'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, N'', N'2021-03-31 11:53:10.0000000', N'1', N'2021-04-14 00:08:37.0000000', N'0') INSERT INTO [dbo].[system_sms_channel] ([id], [signature], [code], [status], [remark], [api_key], [api_secret], [callback_url], [creator], [create_time], [updater], [update_time], [deleted]) VALUES (N'2', N'Ballcat', N'ALIYUN', N'0', N'啦啦啦', N'LTAI5tCnKso2uG3kJ5gRav88', N'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, N'', N'2021-03-31 11:53:10.0000000', N'1', N'2021-04-14 00:08:37.0000000', N'0')
GO GO

View File

@ -14,56 +14,59 @@
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties> <properties>
<revision>1.6.2-snapshot</revision> <revision>1.6.5-snapshot</revision>
<!-- 统一依赖管理 --> <!-- 统一依赖管理 -->
<spring.boot.version>2.5.12</spring.boot.version> <spring.boot.version>2.7.6</spring.boot.version>
<!-- Web 相关 --> <!-- Web 相关 -->
<knife4j.version>3.0.2</knife4j.version> <knife4j.version>3.0.3</knife4j.version>
<swagger-annotations.version>1.5.22</swagger-annotations.version> <swagger-annotations.version>1.6.8</swagger-annotations.version>
<servlet.versoin>2.5</servlet.versoin> <servlet.versoin>2.5</servlet.versoin>
<!-- DB 相关 --> <!-- DB 相关 -->
<druid.version>1.2.8</druid.version> <druid.version>1.2.15</druid.version>
<mybatis-plus.version>3.4.3.4</mybatis-plus.version> <mybatis-plus.version>3.5.2</mybatis-plus.version>
<mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version> <mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version>
<dynamic-datasource.version>3.5.0</dynamic-datasource.version> <dynamic-datasource.version>3.6.0</dynamic-datasource.version>
<redisson.version>3.17.0</redisson.version> <redisson.version>3.18.0</redisson.version>
<!-- Config 配置中心相关 -->
<apollo.version>1.9.2</apollo.version>
<!-- Job 定时任务相关 -->
<!-- 服务保障相关 --> <!-- 服务保障相关 -->
<lock4j.version>2.2.0</lock4j.version> <lock4j.version>2.2.3</lock4j.version>
<resilience4j.version>1.7.0</resilience4j.version> <resilience4j.version>1.7.1</resilience4j.version>
<!-- 监控相关 --> <!-- 监控相关 -->
<skywalking.version>8.7.0</skywalking.version> <skywalking.version>8.12.0</skywalking.version>
<spring-boot-admin.version>2.6.2</spring-boot-admin.version> <spring-boot-admin.version>2.7.9</spring-boot-admin.version>
<opentracing.version>0.31.0</opentracing.version> <opentracing.version>0.33.0</opentracing.version>
<!-- Test 测试相关 --> <!-- Test 测试相关 -->
<podam.version>7.2.6.RELEASE</podam.version> <podam.version>7.2.11.RELEASE</podam.version>
<jedis-mock.version>0.1.16</jedis-mock.version> <jedis-mock.version>1.0.5</jedis-mock.version>
<mockito-inline.version>3.9.0</mockito-inline.version> <mockito-inline.version>4.8.0</mockito-inline.version>
<!-- Bpm 工作流相关 --> <!-- Bpm 工作流相关 -->
<activiti.version>7.1.0.M6</activiti.version> <flowable.version>6.7.2</flowable.version>
<flowable.version>6.7.0</flowable.version>
<!-- 工具类相关 --> <!-- 工具类相关 -->
<jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version> <lombok.version>1.18.24</lombok.version>
<lombok.version>1.18.20</lombok.version> <mapstruct.version>1.5.3.Final</mapstruct.version>
<mapstruct.version>1.4.1.Final</mapstruct.version> <hutool.version>5.8.10</hutool.version>
<hutool.version>5.6.1</hutool.version> <easyexcel.verion>3.1.3</easyexcel.verion>
<easyexcel.verion>2.2.7</easyexcel.verion> <velocity.version>2.3</velocity.version>
<velocity.version>2.2</velocity.version>
<screw.version>1.0.5</screw.version> <screw.version>1.0.5</screw.version>
<guava.version>30.1.1-jre</guava.version> <fastjson.version>1.2.83</fastjson.version>
<guava.version>31.1-jre</guava.version>
<guice.version>5.1.0</guice.version> <guice.version>5.1.0</guice.version>
<transmittable-thread-local.version>2.12.2</transmittable-thread-local.version> <transmittable-thread-local.version>2.14.2</transmittable-thread-local.version>
<commons-net.version>3.8.0</commons-net.version> <commons-net.version>3.8.0</commons-net.version>
<jsch.version>0.1.55</jsch.version> <jsch.version>0.1.55</jsch.version>
<tika-core.version>2.6.0</tika-core.version>
<aj-captcha.version>1.3.0</aj-captcha.version>
<netty-all.version>4.1.85.Final</netty-all.version>
<ip2region.version>2.6.6</ip2region.version>
<!-- 三方云服务相关 --> <!-- 三方云服务相关 -->
<minio.version>8.2.2</minio.version> <okio.version>3.0.0</okio.version>
<aliyun-java-sdk-core.version>4.5.25</aliyun-java-sdk-core.version> <okhttp3.version>4.10.0</okhttp3.version>
<aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version> <minio.version>8.4.6</minio.version>
<tencentcloud-sdk-java.version>3.1.471</tencentcloud-sdk-java.version> <aliyun-java-sdk-core.version>4.6.3</aliyun-java-sdk-core.version>
<yunpian-java-sdk.version>1.2.7</yunpian-java-sdk.version> <aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version>
<tencentcloud-sdk-java.version>3.1.637</tencentcloud-sdk-java.version>
<justauth.version>1.4.0</justauth.version> <justauth.version>1.4.0</justauth.version>
<jimureport.version>1.5.6</jimureport.version>
<xercesImpl.version>2.12.2</xercesImpl.version>
<wx-java-mp.version>4.3.0</wx-java-mp.version> <wx-java-mp.version>4.3.0</wx-java-mp.version>
</properties> </properties>
@ -79,6 +82,11 @@
</dependency> </dependency>
<!-- 业务组件 --> <!-- 业务组件 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-banner</artifactId>
<version>${revision}</version>
</dependency>
<dependency> <dependency>
<groupId>cn.iocoder.boot</groupId> <groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
@ -119,6 +127,21 @@
<artifactId>yudao-spring-boot-starter-biz-social</artifactId> <artifactId>yudao-spring-boot-starter-biz-social</artifactId>
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-biz-error-code</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-biz-ip</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-captcha</artifactId>
<version>${revision}</version>
</dependency>
<!-- Spring 核心 --> <!-- Spring 核心 -->
<dependency> <dependency>
@ -207,17 +230,6 @@
</dependency> </dependency>
<!-- Config 配置中心相关 --> <!-- Config 配置中心相关 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-config</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId> <!-- 引入 Apollo Client 库,实现内嵌的配置中心 -->
<version>${apollo.version}</version>
</dependency>
<!-- Job 定时任务相关 --> <!-- Job 定时任务相关 -->
<dependency> <dependency>
@ -365,41 +377,6 @@
</dependency> </dependency>
<!-- 工作流相关 --> <!-- 工作流相关 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>${activiti.version}</version>
<exclusions>
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-api</artifactId>
</exclusion>
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-spi</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<artifactId>el-api</artifactId>
<groupId>javax.el</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-activiti</artifactId>
<version>${revision}</version>
</dependency>
<!-- 工作流相关 flowable -->
<dependency> <dependency>
<groupId>cn.iocoder.boot</groupId> <groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-flowable</artifactId> <artifactId>yudao-spring-boot-starter-flowable</artifactId>
@ -407,7 +384,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.flowable</groupId> <groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter-basic</artifactId> <artifactId>flowable-spring-boot-starter-process</artifactId>
<version>${flowable.version}</version> <version>${flowable.version}</version>
</dependency> </dependency>
<dependency> <dependency>
@ -424,12 +401,6 @@
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId> <!-- 加解密 -->
<version>${jasypt-spring-boot-starter.version}</version>
</dependency>
<dependency> <dependency>
<groupId>cn.iocoder.boot</groupId> <groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-excel</artifactId> <artifactId>yudao-spring-boot-starter-excel</artifactId>
@ -470,12 +441,30 @@
<version>${easyexcel.verion}</version> <version>${easyexcel.verion}</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId> <!-- 文件类型的识别 -->
<version>${tika-core.version}</version>
</dependency>
<dependency>
<groupId>com.anji-plus</groupId>
<artifactId>spring-boot-starter-captcha</artifactId>
<version>${aj-captcha.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.velocity</groupId> <groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId> <artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version> <version>${velocity.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency> <dependency>
<groupId>cn.smallbun.screw</groupId> <groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId> <!-- 实现数据库文档 --> <artifactId>screw-core</artifactId> <!-- 实现数据库文档 -->
@ -484,6 +473,10 @@
<exclusion> <exclusion>
<groupId>org.freemarker</groupId> <groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId> <!-- 移除 Freemarker 依赖,采用 Velocity 作为模板引擎 --> <artifactId>freemarker</artifactId> <!-- 移除 Freemarker 依赖,采用 Velocity 作为模板引擎 -->
</exclusion>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <!-- 最新版screw-core1.0.5依赖fastjson1.2.73存在漏洞,移除。 -->
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
@ -511,13 +504,36 @@
<artifactId>commons-net</artifactId> <!-- 解决 ftp 连接 --> <artifactId>commons-net</artifactId> <!-- 解决 ftp 连接 -->
<version>${commons-net.version}</version> <version>${commons-net.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jcraft</groupId> <groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId> <!-- 解决 sftp 连接 --> <artifactId>jsch</artifactId> <!-- 解决 sftp 连接 -->
<version>${jsch.version}</version> <version>${jsch.version}</version>
</dependency> </dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty-all.version}</version>
</dependency>
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>${ip2region.version}</version>
</dependency>
<!-- 三方云服务相关 --> <!-- 三方云服务相关 -->
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>${okio.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp3.version}</version>
</dependency>
<dependency> <dependency>
<groupId>cn.iocoder.boot</groupId> <groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-file</artifactId> <artifactId>yudao-spring-boot-starter-file</artifactId>
@ -530,11 +546,6 @@
</dependency> </dependency>
<!-- SMS SDK begin --> <!-- SMS SDK begin -->
<dependency>
<groupId>com.yunpian.sdk</groupId>
<artifactId>yunpian-java-sdk</artifactId>
<version>${yunpian-java-sdk.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId> <artifactId>aliyun-java-sdk-core</artifactId>
@ -557,7 +568,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tencentcloudapi</groupId> <groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId> <artifactId>tencentcloud-sdk-java-sms</artifactId>
<version>${tencentcloud-sdk-java.version}</version> <version>${tencentcloud-sdk-java.version}</version>
</dependency> </dependency>
<!-- SMS SDK end --> <!-- SMS SDK end -->
@ -574,6 +585,23 @@
<version>${wx-java-mp.version}</version> <version>${wx-java-mp.version}</version>
</dependency> </dependency>
<!-- 积木报表-->
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>${jimureport.version}</version>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xercesImpl.version}</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

22
yudao-example/pom.xml Normal file
View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 由于方便大家拷贝,使用不使用 yudao 作为 Maven parent -->
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-example</artifactId>
<version>1.0.0-snapshot</version>
<packaging>pom</packaging>
<modules>
<module>yudao-sso-demo-by-code</module>
<module>yudao-sso-demo-by-password</module>
</modules>
<name>${project.artifactId}</name>
<description>提供各种示例例如说SSO 单点登录</description>
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
</project>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 由于方便大家拷贝,使用不使用 yudao 作为 Maven parent -->
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-sso-demo-by-code</artifactId>
<version>1.0.0-snapshot</version>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>基于授权码模式,如何实现 SSO 单点登录?</description>
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties>
<!-- Maven 相关 -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 统一依赖管理 -->
<spring.boot.version>2.7.6</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 统一依赖管理 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Web 相关 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,13 @@
package cn.iocoder.yudao.ssodemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SSODemoApplication {
public static void main(String[] args) {
SpringApplication.run(SSODemoApplication.class, args);
}
}

View File

@ -0,0 +1,157 @@
package cn.iocoder.yudao.ssodemo.client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2AccessTokenRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2CheckTokenRespDTO;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import org.springframework.util.Base64Utils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
/**
* OAuth 2.0 客户端
*
* 对应调用 OAuth2OpenController 接口
*/
@Component
public class OAuth2Client {
private static final String BASE_URL = "http://127.0.0.1:48080/admin-api/system/oauth2";
/**
* 租户编号
*
* 默认使用 1如果使用别的租户可以调整
*/
public static final Long TENANT_ID = 1L;
private static final String CLIENT_ID = "yudao-sso-demo-by-code";
private static final String CLIENT_SECRET = "test";
// @Resource // 可优化注册一个 RestTemplate Bean然后注入
private final RestTemplate restTemplate = new RestTemplate();
/**
* 使用 code 授权码获得访问令牌
*
* @param code 授权码
* @param redirectUri 重定向 URI
* @return 访问令牌
*/
public CommonResult<OAuth2AccessTokenRespDTO> postAccessToken(String code, String redirectUri) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("grant_type", "authorization_code");
body.add("code", code);
body.add("redirect_uri", redirectUri);
// body.add("state", ""); // 选填填了会校验
// 2. 执行请求
ResponseEntity<CommonResult<OAuth2AccessTokenRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/token",
HttpMethod.POST,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<OAuth2AccessTokenRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
/**
* 校验访问令牌并返回它的基本信息
*
* @param token 访问令牌
* @return 访问令牌的基本信息
*/
public CommonResult<OAuth2CheckTokenRespDTO> checkToken(String token) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("token", token);
// 2. 执行请求
ResponseEntity<CommonResult<OAuth2CheckTokenRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/check-token",
HttpMethod.POST,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<OAuth2CheckTokenRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
/**
* 使用刷新令牌获得刷新访问令牌
*
* @param refreshToken 刷新令牌
* @return 访问令牌
*/
public CommonResult<OAuth2AccessTokenRespDTO> refreshToken(String refreshToken) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("grant_type", "refresh_token");
body.add("refresh_token", refreshToken);
// 2. 执行请求
ResponseEntity<CommonResult<OAuth2AccessTokenRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/token",
HttpMethod.POST,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<OAuth2AccessTokenRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
/**
* 删除访问令牌
*
* @param token 访问令牌
* @return 成功
*/
public CommonResult<Boolean> revokeToken(String token) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("token", token);
// 2. 执行请求
ResponseEntity<CommonResult<Boolean>> exchange = restTemplate.exchange(
BASE_URL + "/token",
HttpMethod.DELETE,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<Boolean>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
private static void addClientHeader(HttpHeaders headers) {
// client 拼接需要 BASE64 编码
String client = CLIENT_ID + ":" + CLIENT_SECRET;
client = Base64Utils.encodeToString(client.getBytes(StandardCharsets.UTF_8));
headers.add("Authorization", "Basic " + client);
}
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.ssodemo.client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserInfoRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserUpdateReqDTO;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* 用户 User 信息的客户端
*
* 对应调用 OAuth2UserController 接口
*/
@Component
public class UserClient {
private static final String BASE_URL = "http://127.0.0.1:48080/admin-api//system/oauth2/user";
// @Resource // 可优化注册一个 RestTemplate Bean然后注入
private final RestTemplate restTemplate = new RestTemplate();
public CommonResult<UserInfoRespDTO> getUser() {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", OAuth2Client.TENANT_ID.toString());
addTokenHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
// 2. 执行请求
ResponseEntity<CommonResult<UserInfoRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/get",
HttpMethod.GET,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<UserInfoRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
public CommonResult<Boolean> updateUser(UserUpdateReqDTO updateReqDTO) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("tenant-id", OAuth2Client.TENANT_ID.toString());
addTokenHeader(headers);
// 1.2 构建请求参数
// 使用 updateReqDTO 即可
// 2. 执行请求
ResponseEntity<CommonResult<Boolean>> exchange = restTemplate.exchange(
BASE_URL + "/update",
HttpMethod.PUT,
new HttpEntity<>(updateReqDTO, headers),
new ParameterizedTypeReference<CommonResult<Boolean>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
private static void addTokenHeader(HttpHeaders headers) {
LoginUser loginUser = SecurityUtils.getLoginUser();
Assert.notNull(loginUser, "登录用户不能为空");
headers.add("Authorization", "Bearer " + loginUser.getAccessToken());
}
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.ssodemo.client.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 通用返回
*
* @param <T> 数据泛型
*/
@Data
public class CommonResult<T> implements Serializable {
/**
* 错误码
*/
private Integer code;
/**
* 返回数据
*/
private T data;
/**
* 错误提示用户可阅读
*/
private String msg;
}

View File

@ -0,0 +1,45 @@
package cn.iocoder.yudao.ssodemo.client.dto.oauth2;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 访问令牌 Response DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2AccessTokenRespDTO {
/**
* 访问令牌
*/
@JsonProperty("access_token")
private String accessToken;
/**
* 刷新令牌
*/
@JsonProperty("refresh_token")
private String refreshToken;
/**
* 令牌类型
*/
@JsonProperty("token_type")
private String tokenType;
/**
* 过期时间单位
*/
@JsonProperty("expires_in")
private Long expiresIn;
/**
* 授权范围如果多个授权范围使用空格分隔
*/
private String scope;
}

View File

@ -0,0 +1,59 @@
package cn.iocoder.yudao.ssodemo.client.dto.oauth2;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 校验令牌 Response DTO
*
* @author 芋道源码
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2CheckTokenRespDTO {
/**
* 用户编号
*/
@JsonProperty("user_id")
private Long userId;
/**
* 用户类型
*/
@JsonProperty("user_type")
private Integer userType;
/**
* 租户编号
*/
@JsonProperty("tenant_id")
private Long tenantId;
/**
* 客户端编号
*/
@JsonProperty("client_id")
private String clientId;
/**
* 授权范围
*/
private List<String> scopes;
/**
* 访问令牌
*/
@JsonProperty("access_token")
private String accessToken;
/**
* 过期时间
*
* 时间戳 / 1000即单位
*/
private Long exp;
}

View File

@ -0,0 +1,97 @@
package cn.iocoder.yudao.ssodemo.client.dto.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 获得用户基本信息 Response dto
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoRespDTO {
/**
* 用户编号
*/
private Long id;
/**
* 用户账号
*/
private String username;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户邮箱
*/
private String email;
/**
* 手机号码
*/
private String mobile;
/**
* 用户性别
*/
private Integer sex;
/**
* 用户头像
*/
private String avatar;
/**
* 所在部门
*/
private Dept dept;
/**
* 所属岗位数组
*/
private List<Post> posts;
/**
* 部门
*/
@Data
public static class Dept {
/**
* 部门编号
*/
private Long id;
/**
* 部门名称
*/
private String name;
}
/**
* 岗位
*/
@Data
public static class Post {
/**
* 岗位编号
*/
private Long id;
/**
* 岗位名称
*/
private String name;
}
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.ssodemo.client.dto.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 更新用户基本信息 Request DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserUpdateReqDTO {
/**
* 用户昵称
*/
private String nickname;
/**
* 用户邮箱
*/
private String email;
/**
* 手机号码
*/
private String mobile;
/**
* 用户性别
*/
private Integer sex;
}

View File

@ -0,0 +1,63 @@
package cn.iocoder.yudao.ssodemo.controller;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.ssodemo.client.OAuth2Client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2AccessTokenRespDTO;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/auth")
public class AuthController {
@Resource
private OAuth2Client oauth2Client;
/**
* 使用 code 访问令牌获得访问令牌
*
* @param code 授权码
* @param redirectUri 重定向 URI
* @return 访问令牌注意实际项目中最好创建对应的 ResponseVO 只返回必要的字段
*/
@PostMapping("/login-by-code")
public CommonResult<OAuth2AccessTokenRespDTO> loginByCode(@RequestParam("code") String code,
@RequestParam("redirectUri") String redirectUri) {
return oauth2Client.postAccessToken(code, redirectUri);
}
/**
* 使用刷新令牌获得刷新访问令牌
*
* @param refreshToken 刷新令牌
* @return 访问令牌注意实际项目中最好创建对应的 ResponseVO 只返回必要的字段
*/
@PostMapping("/refresh-token")
public CommonResult<OAuth2AccessTokenRespDTO> refreshToken(@RequestParam("refreshToken") String refreshToken) {
return oauth2Client.refreshToken(refreshToken);
}
/**
* 退出登录
*
* @param request 请求
* @return 成功
*/
@PostMapping("/logout")
public CommonResult<Boolean> logout(HttpServletRequest request) {
String token = SecurityUtils.obtainAuthorization(request, "Authorization");
if (StrUtil.isNotBlank(token)) {
return oauth2Client.revokeToken(token);
}
// 返回成功
return new CommonResult<>();
}
}

View File

@ -0,0 +1,40 @@
package cn.iocoder.yudao.ssodemo.controller;
import cn.iocoder.yudao.ssodemo.client.UserClient;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserInfoRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserUpdateReqDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserClient userClient;
/**
* 获得当前登录用户的基本信息
*
* @return 用户信息注意实际项目中最好创建对应的 ResponseVO 只返回必要的字段
*/
@GetMapping("/get")
public CommonResult<UserInfoRespDTO> getUser() {
return userClient.getUser();
}
/**
* 更新当前登录用户的昵称
*
* @param nickname 昵称
* @return 成功
*/
@PutMapping("/update")
public CommonResult<Boolean> updateUser(@RequestParam("nickname") String nickname) {
UserUpdateReqDTO updateReqDTO = new UserUpdateReqDTO(nickname, null, null, null);
return userClient.updateUser(updateReqDTO);
}
}

View File

@ -0,0 +1,52 @@
package cn.iocoder.yudao.ssodemo.framework.config;
import cn.iocoder.yudao.ssodemo.framework.core.filter.TokenAuthenticationFilter;
import cn.iocoder.yudao.ssodemo.framework.core.handler.AccessDeniedHandlerImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import javax.annotation.Resource;
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
public class SecurityConfiguration{
@Resource
private TokenAuthenticationFilter tokenAuthenticationFilter;
@Resource
private AccessDeniedHandlerImpl accessDeniedHandler;
@Resource
private AuthenticationEntryPoint authenticationEntryPoint;
@Bean
protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
// 设置 URL 安全权限
httpSecurity.csrf().disable() // 禁用 CSRF 保护
.authorizeRequests()
// 1. 静态资源可匿名访问
.antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll()
// 2. 登录相关的接口可匿名访问
.antMatchers("/auth/login-by-code").permitAll()
.antMatchers("/auth/refresh-token").permitAll()
.antMatchers("/auth/logout").permitAll()
// last. 兜底规则必须认证
.and().authorizeRequests()
.anyRequest().authenticated();
// 设置处理器
httpSecurity.exceptionHandling().accessDeniedHandler(accessDeniedHandler)
.authenticationEntryPoint(authenticationEntryPoint);
// 添加 Token Filter
httpSecurity.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
return httpSecurity.build();
}
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.ssodemo.framework.core;
import lombok.Data;
import java.util.List;
/**
* 登录用户信息
*
* @author 芋道源码
*/
@Data
public class LoginUser {
/**
* 用户编号
*/
private Long id;
/**
* 用户类型
*/
private Integer userType;
/**
* 租户编号
*/
private Long tenantId;
/**
* 授权范围
*/
private List<String> scopes;
/**
* 访问令牌
*/
private String accessToken;
}

View File

@ -0,0 +1,66 @@
package cn.iocoder.yudao.ssodemo.framework.core.filter;
import cn.iocoder.yudao.ssodemo.client.OAuth2Client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2CheckTokenRespDTO;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.annotation.Resource;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Token 过滤器验证 token 的有效性
* 验证通过后获得 {@link LoginUser} 信息并加入到 Spring Security 上下文
*
* @author 芋道源码
*/
@Component
public class TokenAuthenticationFilter extends OncePerRequestFilter {
@Resource
private OAuth2Client oauth2Client;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
// 1. 获得访问令牌
String token = SecurityUtils.obtainAuthorization(request, "Authorization");
if (StringUtils.hasText(token)) {
// 2. 基于 token 构建登录用户
LoginUser loginUser = buildLoginUserByToken(token);
// 3. 设置当前用户
if (loginUser != null) {
SecurityUtils.setLoginUser(loginUser, request);
}
}
// 继续过滤链
filterChain.doFilter(request, response);
}
private LoginUser buildLoginUserByToken(String token) {
try {
CommonResult<OAuth2CheckTokenRespDTO> accessTokenResult = oauth2Client.checkToken(token);
OAuth2CheckTokenRespDTO accessToken = accessTokenResult.getData();
if (accessToken == null) {
return null;
}
// 构建登录用户
return new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType())
.setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes())
.setAccessToken(accessToken.getAccessToken());
} catch (Exception exception) {
// 校验 Token 不通过时考虑到一些接口是无需登录的所以直接返回 null 即可
return null;
}
}
}

View File

@ -0,0 +1,44 @@
package cn.iocoder.yudao.ssodemo.framework.core.handler;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import cn.iocoder.yudao.ssodemo.framework.core.util.ServletUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.stereotype.Component;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 访问一个需要认证的 URL 资源已经认证登录但是没有权限的情况下返回 {@link GlobalErrorCodeConstants#FORBIDDEN} 错误码
*
* 补充Spring Security 通过 {@link ExceptionTranslationFilter#handleAccessDeniedException(HttpServletRequest, HttpServletResponse, FilterChain, AccessDeniedException)} 方法调用当前类
*
* @author 芋道源码
*/
@Component
@SuppressWarnings("JavadocReference")
@Slf4j
public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e)
throws IOException, ServletException {
// 打印 warn 的原因是不定期合并 warn看看有没恶意破坏
log.warn("[commence][访问 URL({}) 时,用户({}) 权限不够]", request.getRequestURI(),
SecurityUtils.getLoginUserId(), e);
// 返回 403
CommonResult<Object> result = new CommonResult<>();
result.setCode(HttpStatus.FORBIDDEN.value());
result.setMsg("没有该操作权限");
ServletUtils.writeJSON(response, result);
}
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.ssodemo.framework.core.handler;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.framework.core.util.ServletUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.stereotype.Component;
import javax.servlet.FilterChain;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 访问一个需要认证的 URL 资源但是此时自己尚未认证登录的情况下返回 {@link GlobalErrorCodeConstants#UNAUTHORIZED} 错误码从而使前端重定向到登录页
*
* 补充Spring Security 通过 {@link ExceptionTranslationFilter#sendStartAuthentication(HttpServletRequest, HttpServletResponse, FilterChain, AuthenticationException)} 方法调用当前类
*/
@Component
@Slf4j
@SuppressWarnings("JavadocReference") // 忽略文档引用报错
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) {
log.debug("[commence][访问 URL({}) 时,没有登录]", request.getRequestURI(), e);
// 返回 401
CommonResult<Object> result = new CommonResult<>();
result.setCode(HttpStatus.UNAUTHORIZED.value());
result.setMsg("账号未登录");
ServletUtils.writeJSON(response, result);
}
}

View File

@ -0,0 +1,103 @@
package cn.iocoder.yudao.ssodemo.framework.core.util;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import org.springframework.lang.Nullable;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
/**
* 安全服务工具类
*
* @author 芋道源码
*/
public class SecurityUtils {
public static final String AUTHORIZATION_BEARER = "Bearer";
private SecurityUtils() {}
/**
* 从请求中获得认证 Token
*
* @param request 请求
* @param header 认证 Token 对应的 Header 名字
* @return 认证 Token
*/
public static String obtainAuthorization(HttpServletRequest request, String header) {
String authorization = request.getHeader(header);
if (!StringUtils.hasText(authorization)) {
return null;
}
int index = authorization.indexOf(AUTHORIZATION_BEARER + " ");
if (index == -1) { // 未找到
return null;
}
return authorization.substring(index + 7).trim();
}
/**
* 获得当前认证信息
*
* @return 认证信息
*/
public static Authentication getAuthentication() {
SecurityContext context = SecurityContextHolder.getContext();
if (context == null) {
return null;
}
return context.getAuthentication();
}
/**
* 获取当前用户
*
* @return 当前用户
*/
@Nullable
public static LoginUser getLoginUser() {
Authentication authentication = getAuthentication();
if (authentication == null) {
return null;
}
return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null;
}
/**
* 获得当前用户的编号从上下文中
*
* @return 用户编号
*/
@Nullable
public static Long getLoginUserId() {
LoginUser loginUser = getLoginUser();
return loginUser != null ? loginUser.getId() : null;
}
/**
* 设置当前用户
*
* @param loginUser 登录用户
* @param request 请求
*/
public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) {
// 创建 Authentication并设置到上下文
Authentication authentication = buildAuthentication(loginUser, request);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) {
// 创建 UsernamePasswordAuthenticationToken 对象
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
loginUser, null, Collections.emptyList());
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
return authenticationToken;
}
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.ssodemo.framework.core.util;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.json.JSONUtil;
import org.springframework.http.MediaType;
import javax.servlet.http.HttpServletResponse;
/**
* 客户端工具类
*
* @author 芋道源码
*/
public class ServletUtils {
/**
* 返回 JSON 字符串
*
* @param response 响应
* @param object 对象会序列化成 JSON 字符串
*/
@SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE否则会乱码
public static void writeJSON(HttpServletResponse response, Object object) {
String content = JSONUtil.toJsonStr(object);
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
}
}

View File

@ -0,0 +1,2 @@
server:
port: 18080

View File

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SSO 授权后的回调页</title>
<!-- jQuery操作 dom、发起请求等 -->
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>
<!-- 工具类 -->
<script type="application/javascript">
(function ($) {
/**
* 获得 URL 的指定参数的值
*
* @param name 参数名
* @returns 参数值
*/
$.getUrlParam = function (name) {
const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
const r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
})(jQuery);
</script>
<script type="application/javascript">
$(function () {
// 获得 code 授权码
const code = $.getUrlParam('code');
if (!code) {
alert('获取不到 code 参数,请排查!')
return;
}
// 提交
const redirectUri = 'http://127.0.0.1:18080/callback.html'; // 需要修改成,你回调的地址,就是在 index.html 拼接的 redirectUri
$.ajax({
url: "http://127.0.0.1:18080/auth/login-by-code?code=" + code
+ '&redirectUri=' + redirectUri,
method: 'POST',
success: function( result ) {
if (result.code !== 0) {
alert('获得访问令牌失败,原因:' + result.msg)
return;
}
alert('获得访问令牌成功!点击确认,跳转回首页')
// 设置到 localStorage 中
localStorage.setItem('ACCESS-TOKEN', result.data.access_token);
localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);
// 跳转回首页
window.location.href = '/index.html';
}
})
})
</script>
</head>
<body>
正在使用 code 授权码,进行 accessToken 访问令牌的获取
</body>
</html>

View File

@ -0,0 +1,159 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<!-- jQuery操作 dom、发起请求等 -->
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>
<script type="application/javascript">
/**
* 跳转单点登录
*/
function ssoLogin() {
const clientId = 'yudao-sso-demo-by-code'; // 可以改写成,你的 clientId
const redirectUri = encodeURIComponent('http://127.0.0.1:18080/callback.html'); // 注意,需要使用 encodeURIComponent 编码地址
const responseType = 'code'; // 1授权码模式对应 code2简化模式对应 token
window.location.href = 'http://127.0.0.1:1024/sso?client_id=' + clientId
+ '&redirect_uri=' + redirectUri
+ '&response_type=' + responseType;
}
/**
* 修改昵称
*/
function updateNickname() {
const nickname = prompt("请输入新的昵称", "");
if (!nickname) {
return;
}
// 更新用户的昵称
const accessToken = localStorage.getItem('ACCESS-TOKEN');
$.ajax({
url: "http://127.0.0.1:18080/user/update?nickname=" + nickname,
method: 'PUT',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('更新昵称失败,原因:' + result.msg)
return;
}
alert('更新昵称成功!');
$('#nicknameSpan').html(nickname);
}
});
}
/**
* 刷新令牌
*/
function refreshToken() {
const refreshToken = localStorage.getItem('REFRESH-TOKEN');
if (!refreshToken) {
alert("获取不到刷新令牌");
return;
}
$.ajax({
url: "http://127.0.0.1:18080/auth/refresh-token?refreshToken=" + refreshToken,
method: 'POST',
success: function (result) {
if (result.code !== 0) {
alert('刷新访问令牌失败,原因:' + result.msg)
return;
}
alert('更新访问令牌成功!');
$('#accessTokenSpan').html(result.data.access_token);
// 设置到 localStorage 中
localStorage.setItem('ACCESS-TOKEN', result.data.access_token);
localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);
}
});
}
/**
* 登出,删除访问令牌
*/
function logout() {
const accessToken = localStorage.getItem('ACCESS-TOKEN');
if (!accessToken) {
location.reload();
return;
}
$.ajax({
url: "http://127.0.0.1:18080/auth/logout",
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('退出登录失败,原因:' + result.msg)
return;
}
alert('退出登录成功!');
// 删除 localStorage 中
localStorage.removeItem('ACCESS-TOKEN');
localStorage.removeItem('REFRESH-TOKEN');
location.reload();
}
});
}
$(function () {
const accessToken = localStorage.getItem('ACCESS-TOKEN');
// 情况一:未登录
if (!accessToken) {
$('#noLoginDiv').css("display", "block");
return;
}
// 情况二:已登录
$('#yesLoginDiv').css("display", "block");
$('#accessTokenSpan').html(accessToken);
// 获得登录用户的信息
$.ajax({
url: "http://127.0.0.1:18080/user/get",
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('获得个人信息失败,原因:' + result.msg)
return;
}
$('#nicknameSpan').html(result.data.nickname);
}
});
})
</script>
</head>
<body>
<!-- 情况一未登录1跳转 ruoyi-vue-pro 的 SSO 登录页 -->
<div id="noLoginDiv" style="display: none">
您未登录,点击 <a href="#" onclick="ssoLogin()">跳转 </a> SSO 单点登录
</div>
<!-- 情况二已登录1展示用户信息2刷新访问令牌3退出登录 -->
<div id="yesLoginDiv" style="display: none">
您已登录!<button onclick="logout()">退出登录</button> <br />
昵称:<span id="nicknameSpan"> 加载中... </span> <button onclick="updateNickname()">修改昵称</button> <br />
访问令牌:<span id="accessTokenSpan"> 加载中... </span> <button onclick="refreshToken()">刷新令牌</button> <br />
</div>
</body>
<style>
body { /** 页面居中 */
border-radius: 20px;
height: 350px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
</style>
</html>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 由于方便大家拷贝,使用不使用 yudao 作为 Maven parent -->
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-sso-demo-by-password</artifactId>
<version>1.0.0-snapshot</version>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>基于密码模式,如何实现 SSO 单点登录?</description>
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties>
<!-- Maven 相关 -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 统一依赖管理 -->
<spring.boot.version>2.7.6</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 统一依赖管理 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Web 相关 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,13 @@
package cn.iocoder.yudao.ssodemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SSODemoApplication {
public static void main(String[] args) {
SpringApplication.run(SSODemoApplication.class, args);
}
}

View File

@ -0,0 +1,127 @@
package cn.iocoder.yudao.ssodemo.client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2AccessTokenRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2CheckTokenRespDTO;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import org.springframework.util.Base64Utils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
/**
* OAuth 2.0 客户端
*
* 对应调用 OAuth2OpenController 接口
*/
@Component
public class OAuth2Client {
private static final String BASE_URL = "http://127.0.0.1:48080/admin-api/system/oauth2";
/**
* 租户编号
*
* 默认使用 1如果使用别的租户可以调整
*/
public static final Long TENANT_ID = 1L;
private static final String CLIENT_ID = "yudao-sso-demo-by-password";
private static final String CLIENT_SECRET = "test";
// @Resource // 可优化注册一个 RestTemplate Bean然后注入
private final RestTemplate restTemplate = new RestTemplate();
/**
* 校验访问令牌并返回它的基本信息
*
* @param token 访问令牌
* @return 访问令牌的基本信息
*/
public CommonResult<OAuth2CheckTokenRespDTO> checkToken(String token) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("token", token);
// 2. 执行请求
ResponseEntity<CommonResult<OAuth2CheckTokenRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/check-token",
HttpMethod.POST,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<OAuth2CheckTokenRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
/**
* 使用刷新令牌获得刷新访问令牌
*
* @param refreshToken 刷新令牌
* @return 访问令牌
*/
public CommonResult<OAuth2AccessTokenRespDTO> refreshToken(String refreshToken) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("grant_type", "refresh_token");
body.add("refresh_token", refreshToken);
// 2. 执行请求
ResponseEntity<CommonResult<OAuth2AccessTokenRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/token",
HttpMethod.POST,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<OAuth2AccessTokenRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
/**
* 删除访问令牌
*
* @param token 访问令牌
* @return 成功
*/
public CommonResult<Boolean> revokeToken(String token) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", TENANT_ID.toString());
addClientHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("token", token);
// 2. 执行请求
ResponseEntity<CommonResult<Boolean>> exchange = restTemplate.exchange(
BASE_URL + "/token",
HttpMethod.DELETE,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<Boolean>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
private static void addClientHeader(HttpHeaders headers) {
// client 拼接需要 BASE64 编码
String client = CLIENT_ID + ":" + CLIENT_SECRET;
client = Base64Utils.encodeToString(client.getBytes(StandardCharsets.UTF_8));
headers.add("Authorization", "Basic " + client);
}
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.ssodemo.client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserInfoRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserUpdateReqDTO;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* 用户 User 信息的客户端
*
* 对应调用 OAuth2UserController 接口
*/
@Component
public class UserClient {
private static final String BASE_URL = "http://127.0.0.1:48080/admin-api//system/oauth2/user";
// @Resource // 可优化注册一个 RestTemplate Bean然后注入
private final RestTemplate restTemplate = new RestTemplate();
public CommonResult<UserInfoRespDTO> getUser() {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("tenant-id", OAuth2Client.TENANT_ID.toString());
addTokenHeader(headers);
// 1.2 构建请求参数
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
// 2. 执行请求
ResponseEntity<CommonResult<UserInfoRespDTO>> exchange = restTemplate.exchange(
BASE_URL + "/get",
HttpMethod.GET,
new HttpEntity<>(body, headers),
new ParameterizedTypeReference<CommonResult<UserInfoRespDTO>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
public CommonResult<Boolean> updateUser(UserUpdateReqDTO updateReqDTO) {
// 1.1 构建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("tenant-id", OAuth2Client.TENANT_ID.toString());
addTokenHeader(headers);
// 1.2 构建请求参数
// 使用 updateReqDTO 即可
// 2. 执行请求
ResponseEntity<CommonResult<Boolean>> exchange = restTemplate.exchange(
BASE_URL + "/update",
HttpMethod.PUT,
new HttpEntity<>(updateReqDTO, headers),
new ParameterizedTypeReference<CommonResult<Boolean>>() {}); // 解决 CommonResult 的泛型丢失
Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
return exchange.getBody();
}
private static void addTokenHeader(HttpHeaders headers) {
LoginUser loginUser = SecurityUtils.getLoginUser();
Assert.notNull(loginUser, "登录用户不能为空");
headers.add("Authorization", "Bearer " + loginUser.getAccessToken());
}
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.ssodemo.client.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 通用返回
*
* @param <T> 数据泛型
*/
@Data
public class CommonResult<T> implements Serializable {
/**
* 错误码
*/
private Integer code;
/**
* 返回数据
*/
private T data;
/**
* 错误提示用户可阅读
*/
private String msg;
}

View File

@ -0,0 +1,45 @@
package cn.iocoder.yudao.ssodemo.client.dto.oauth2;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 访问令牌 Response DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2AccessTokenRespDTO {
/**
* 访问令牌
*/
@JsonProperty("access_token")
private String accessToken;
/**
* 刷新令牌
*/
@JsonProperty("refresh_token")
private String refreshToken;
/**
* 令牌类型
*/
@JsonProperty("token_type")
private String tokenType;
/**
* 过期时间单位
*/
@JsonProperty("expires_in")
private Long expiresIn;
/**
* 授权范围如果多个授权范围使用空格分隔
*/
private String scope;
}

View File

@ -0,0 +1,59 @@
package cn.iocoder.yudao.ssodemo.client.dto.oauth2;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 校验令牌 Response DTO
*
* @author 芋道源码
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2CheckTokenRespDTO {
/**
* 用户编号
*/
@JsonProperty("user_id")
private Long userId;
/**
* 用户类型
*/
@JsonProperty("user_type")
private Integer userType;
/**
* 租户编号
*/
@JsonProperty("tenant_id")
private Long tenantId;
/**
* 客户端编号
*/
@JsonProperty("client_id")
private String clientId;
/**
* 授权范围
*/
private List<String> scopes;
/**
* 访问令牌
*/
@JsonProperty("access_token")
private String accessToken;
/**
* 过期时间
*
* 时间戳 / 1000即单位
*/
private Long exp;
}

View File

@ -0,0 +1,97 @@
package cn.iocoder.yudao.ssodemo.client.dto.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 获得用户基本信息 Response dto
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoRespDTO {
/**
* 用户编号
*/
private Long id;
/**
* 用户账号
*/
private String username;
/**
* 用户昵称
*/
private String nickname;
/**
* 用户邮箱
*/
private String email;
/**
* 手机号码
*/
private String mobile;
/**
* 用户性别
*/
private Integer sex;
/**
* 用户头像
*/
private String avatar;
/**
* 所在部门
*/
private Dept dept;
/**
* 所属岗位数组
*/
private List<Post> posts;
/**
* 部门
*/
@Data
public static class Dept {
/**
* 部门编号
*/
private Long id;
/**
* 部门名称
*/
private String name;
}
/**
* 岗位
*/
@Data
public static class Post {
/**
* 岗位编号
*/
private Long id;
/**
* 岗位名称
*/
private String name;
}
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.ssodemo.client.dto.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 更新用户基本信息 Request DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserUpdateReqDTO {
/**
* 用户昵称
*/
private String nickname;
/**
* 用户邮箱
*/
private String email;
/**
* 手机号码
*/
private String mobile;
/**
* 用户性别
*/
private Integer sex;
}

View File

@ -0,0 +1,50 @@
package cn.iocoder.yudao.ssodemo.controller;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.ssodemo.client.OAuth2Client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2AccessTokenRespDTO;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/auth")
public class AuthController {
@Resource
private OAuth2Client oauth2Client;
/**
* 使用刷新令牌获得刷新访问令牌
*
* @param refreshToken 刷新令牌
* @return 访问令牌注意实际项目中最好创建对应的 ResponseVO 只返回必要的字段
*/
@PostMapping("/refresh-token")
public CommonResult<OAuth2AccessTokenRespDTO> refreshToken(@RequestParam("refreshToken") String refreshToken) {
return oauth2Client.refreshToken(refreshToken);
}
/**
* 退出登录
*
* @param request 请求
* @return 成功
*/
@PostMapping("/logout")
public CommonResult<Boolean> logout(HttpServletRequest request) {
String token = SecurityUtils.obtainAuthorization(request, "Authorization");
if (StrUtil.isNotBlank(token)) {
return oauth2Client.revokeToken(token);
}
// 返回成功
return new CommonResult<>();
}
}

View File

@ -0,0 +1,40 @@
package cn.iocoder.yudao.ssodemo.controller;
import cn.iocoder.yudao.ssodemo.client.UserClient;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserInfoRespDTO;
import cn.iocoder.yudao.ssodemo.client.dto.user.UserUpdateReqDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserClient userClient;
/**
* 获得当前登录用户的基本信息
*
* @return 用户信息注意实际项目中最好创建对应的 ResponseVO 只返回必要的字段
*/
@GetMapping("/get")
public CommonResult<UserInfoRespDTO> getUser() {
return userClient.getUser();
}
/**
* 更新当前登录用户的昵称
*
* @param nickname 昵称
* @return 成功
*/
@PutMapping("/update")
public CommonResult<Boolean> updateUser(@RequestParam("nickname") String nickname) {
UserUpdateReqDTO updateReqDTO = new UserUpdateReqDTO(nickname, null, null, null);
return userClient.updateUser(updateReqDTO);
}
}

View File

@ -0,0 +1,52 @@
package cn.iocoder.yudao.ssodemo.framework.config;
import cn.iocoder.yudao.ssodemo.framework.core.filter.TokenAuthenticationFilter;
import cn.iocoder.yudao.ssodemo.framework.core.handler.AccessDeniedHandlerImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import javax.annotation.Resource;
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
public class SecurityConfiguration {
@Resource
private TokenAuthenticationFilter tokenAuthenticationFilter;
@Resource
private AccessDeniedHandlerImpl accessDeniedHandler;
@Resource
private AuthenticationEntryPoint authenticationEntryPoint;
@Bean
protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
// 设置 URL 安全权限
httpSecurity.csrf().disable() // 禁用 CSRF 保护
.authorizeRequests()
// 1. 静态资源可匿名访问
.antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll()
// 2. 登录相关的接口可匿名访问
.antMatchers("/auth/login-by-code").permitAll()
.antMatchers("/auth/refresh-token").permitAll()
.antMatchers("/auth/logout").permitAll()
// last. 兜底规则必须认证
.and().authorizeRequests()
.anyRequest().authenticated();
// 设置处理器
httpSecurity.exceptionHandling().accessDeniedHandler(accessDeniedHandler)
.authenticationEntryPoint(authenticationEntryPoint);
// 添加 Token Filter
httpSecurity.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
return httpSecurity.build();
}
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.ssodemo.framework.core;
import lombok.Data;
import java.util.List;
/**
* 登录用户信息
*
* @author 芋道源码
*/
@Data
public class LoginUser {
/**
* 用户编号
*/
private Long id;
/**
* 用户类型
*/
private Integer userType;
/**
* 租户编号
*/
private Long tenantId;
/**
* 授权范围
*/
private List<String> scopes;
/**
* 访问令牌
*/
private String accessToken;
}

View File

@ -0,0 +1,66 @@
package cn.iocoder.yudao.ssodemo.framework.core.filter;
import cn.iocoder.yudao.ssodemo.client.OAuth2Client;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.client.dto.oauth2.OAuth2CheckTokenRespDTO;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.annotation.Resource;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Token 过滤器验证 token 的有效性
* 验证通过后获得 {@link LoginUser} 信息并加入到 Spring Security 上下文
*
* @author 芋道源码
*/
@Component
public class TokenAuthenticationFilter extends OncePerRequestFilter {
@Resource
private OAuth2Client oauth2Client;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
// 1. 获得访问令牌
String token = SecurityUtils.obtainAuthorization(request, "Authorization");
if (StringUtils.hasText(token)) {
// 2. 基于 token 构建登录用户
LoginUser loginUser = buildLoginUserByToken(token);
// 3. 设置当前用户
if (loginUser != null) {
SecurityUtils.setLoginUser(loginUser, request);
}
}
// 继续过滤链
filterChain.doFilter(request, response);
}
private LoginUser buildLoginUserByToken(String token) {
try {
CommonResult<OAuth2CheckTokenRespDTO> accessTokenResult = oauth2Client.checkToken(token);
OAuth2CheckTokenRespDTO accessToken = accessTokenResult.getData();
if (accessToken == null) {
return null;
}
// 构建登录用户
return new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType())
.setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes())
.setAccessToken(accessToken.getAccessToken());
} catch (Exception exception) {
// 校验 Token 不通过时考虑到一些接口是无需登录的所以直接返回 null 即可
return null;
}
}
}

View File

@ -0,0 +1,44 @@
package cn.iocoder.yudao.ssodemo.framework.core.handler;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.framework.core.util.SecurityUtils;
import cn.iocoder.yudao.ssodemo.framework.core.util.ServletUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.stereotype.Component;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 访问一个需要认证的 URL 资源已经认证登录但是没有权限的情况下返回 {@link GlobalErrorCodeConstants#FORBIDDEN} 错误码
*
* 补充Spring Security 通过 {@link ExceptionTranslationFilter#handleAccessDeniedException(HttpServletRequest, HttpServletResponse, FilterChain, AccessDeniedException)} 方法调用当前类
*
* @author 芋道源码
*/
@Component
@SuppressWarnings("JavadocReference")
@Slf4j
public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e)
throws IOException, ServletException {
// 打印 warn 的原因是不定期合并 warn看看有没恶意破坏
log.warn("[commence][访问 URL({}) 时,用户({}) 权限不够]", request.getRequestURI(),
SecurityUtils.getLoginUserId(), e);
// 返回 403
CommonResult<Object> result = new CommonResult<>();
result.setCode(HttpStatus.FORBIDDEN.value());
result.setMsg("没有该操作权限");
ServletUtils.writeJSON(response, result);
}
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.ssodemo.framework.core.handler;
import cn.iocoder.yudao.ssodemo.client.dto.CommonResult;
import cn.iocoder.yudao.ssodemo.framework.core.util.ServletUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.stereotype.Component;
import javax.servlet.FilterChain;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 访问一个需要认证的 URL 资源但是此时自己尚未认证登录的情况下返回 {@link GlobalErrorCodeConstants#UNAUTHORIZED} 错误码从而使前端重定向到登录页
*
* 补充Spring Security 通过 {@link ExceptionTranslationFilter#sendStartAuthentication(HttpServletRequest, HttpServletResponse, FilterChain, AuthenticationException)} 方法调用当前类
*/
@Component
@Slf4j
@SuppressWarnings("JavadocReference") // 忽略文档引用报错
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) {
log.debug("[commence][访问 URL({}) 时,没有登录]", request.getRequestURI(), e);
// 返回 401
CommonResult<Object> result = new CommonResult<>();
result.setCode(HttpStatus.UNAUTHORIZED.value());
result.setMsg("账号未登录");
ServletUtils.writeJSON(response, result);
}
}

View File

@ -0,0 +1,103 @@
package cn.iocoder.yudao.ssodemo.framework.core.util;
import cn.iocoder.yudao.ssodemo.framework.core.LoginUser;
import org.springframework.lang.Nullable;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
/**
* 安全服务工具类
*
* @author 芋道源码
*/
public class SecurityUtils {
public static final String AUTHORIZATION_BEARER = "Bearer";
private SecurityUtils() {}
/**
* 从请求中获得认证 Token
*
* @param request 请求
* @param header 认证 Token 对应的 Header 名字
* @return 认证 Token
*/
public static String obtainAuthorization(HttpServletRequest request, String header) {
String authorization = request.getHeader(header);
if (!StringUtils.hasText(authorization)) {
return null;
}
int index = authorization.indexOf(AUTHORIZATION_BEARER + " ");
if (index == -1) { // 未找到
return null;
}
return authorization.substring(index + 7).trim();
}
/**
* 获得当前认证信息
*
* @return 认证信息
*/
public static Authentication getAuthentication() {
SecurityContext context = SecurityContextHolder.getContext();
if (context == null) {
return null;
}
return context.getAuthentication();
}
/**
* 获取当前用户
*
* @return 当前用户
*/
@Nullable
public static LoginUser getLoginUser() {
Authentication authentication = getAuthentication();
if (authentication == null) {
return null;
}
return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null;
}
/**
* 获得当前用户的编号从上下文中
*
* @return 用户编号
*/
@Nullable
public static Long getLoginUserId() {
LoginUser loginUser = getLoginUser();
return loginUser != null ? loginUser.getId() : null;
}
/**
* 设置当前用户
*
* @param loginUser 登录用户
* @param request 请求
*/
public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) {
// 创建 Authentication并设置到上下文
Authentication authentication = buildAuthentication(loginUser, request);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) {
// 创建 UsernamePasswordAuthenticationToken 对象
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
loginUser, null, Collections.emptyList());
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
return authenticationToken;
}
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.ssodemo.framework.core.util;
import cn.hutool.extra.servlet.ServletUtil;
import cn.hutool.json.JSONUtil;
import org.springframework.http.MediaType;
import javax.servlet.http.HttpServletResponse;
/**
* 客户端工具类
*
* @author 芋道源码
*/
public class ServletUtils {
/**
* 返回 JSON 字符串
*
* @param response 响应
* @param object 对象会序列化成 JSON 字符串
*/
@SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE否则会乱码
public static void writeJSON(HttpServletResponse response, Object object) {
String content = JSONUtil.toJsonStr(object);
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
}
}

View File

@ -0,0 +1,2 @@
server:
port: 18080

View File

@ -0,0 +1,154 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<!-- jQuery操作 dom、发起请求等 -->
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>
<script type="application/javascript">
/**
* 跳转单点登录
*/
function passwordLogin() {
window.location.href = '/login.html'
}
/**
* 修改昵称
*/
function updateNickname() {
const nickname = prompt("请输入新的昵称", "");
if (!nickname) {
return;
}
// 更新用户的昵称
const accessToken = localStorage.getItem('ACCESS-TOKEN');
$.ajax({
url: "http://127.0.0.1:18080/user/update?nickname=" + nickname,
method: 'PUT',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('更新昵称失败,原因:' + result.msg)
return;
}
alert('更新昵称成功!');
$('#nicknameSpan').html(nickname);
}
});
}
/**
* 刷新令牌
*/
function refreshToken() {
const refreshToken = localStorage.getItem('REFRESH-TOKEN');
if (!refreshToken) {
alert("获取不到刷新令牌");
return;
}
$.ajax({
url: "http://127.0.0.1:18080/auth/refresh-token?refreshToken=" + refreshToken,
method: 'POST',
success: function (result) {
if (result.code !== 0) {
alert('刷新访问令牌失败,原因:' + result.msg)
return;
}
alert('更新访问令牌成功!');
$('#accessTokenSpan').html(result.data.access_token);
// 设置到 localStorage 中
localStorage.setItem('ACCESS-TOKEN', result.data.access_token);
localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);
}
});
}
/**
* 登出,删除访问令牌
*/
function logout() {
const accessToken = localStorage.getItem('ACCESS-TOKEN');
if (!accessToken) {
location.reload();
return;
}
$.ajax({
url: "http://127.0.0.1:18080/auth/logout",
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('退出登录失败,原因:' + result.msg)
return;
}
alert('退出登录成功!');
// 删除 localStorage 中
localStorage.removeItem('ACCESS-TOKEN');
localStorage.removeItem('REFRESH-TOKEN');
location.reload();
}
});
}
$(function () {
const accessToken = localStorage.getItem('ACCESS-TOKEN');
// 情况一:未登录
if (!accessToken) {
$('#noLoginDiv').css("display", "block");
return;
}
// 情况二:已登录
$('#yesLoginDiv').css("display", "block");
$('#accessTokenSpan').html(accessToken);
// 获得登录用户的信息
$.ajax({
url: "http://127.0.0.1:18080/user/get",
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken
},
success: function (result) {
if (result.code !== 0) {
alert('获得个人信息失败,原因:' + result.msg)
return;
}
$('#nicknameSpan').html(result.data.nickname);
}
});
})
</script>
</head>
<body>
<!-- 情况一未登录1跳转 ruoyi-vue-pro 的 SSO 登录页 -->
<div id="noLoginDiv" style="display: none">
您未登录,点击 <a href="#" onclick="passwordLogin()">跳转 </a> 账号密码登录
</div>
<!-- 情况二已登录1展示用户信息2刷新访问令牌3退出登录 -->
<div id="yesLoginDiv" style="display: none">
您已登录!<button onclick="logout()">退出登录</button> <br />
昵称:<span id="nicknameSpan"> 加载中... </span> <button onclick="updateNickname()">修改昵称</button> <br />
访问令牌:<span id="accessTokenSpan"> 加载中... </span> <button onclick="refreshToken()">刷新令牌</button> <br />
</div>
</body>
<style>
body { /** 页面居中 */
border-radius: 20px;
height: 350px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
</style>
</html>

View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
<!-- jQuery操作 dom、发起请求等 -->
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>
<script type="application/javascript">
/**
* 账号密码登录
*/
function login() {
const clientId = 'yudao-sso-demo-by-password'; // 可以改写成,你的 clientId
const clientSecret = 'test'; // 可以改写成,你的 clientSecret
const grantType = 'password'; // 密码模式
// 账号 + 密码
const username = $('#username').val();
const password = $('#password').val();
if (username.length === 0 || password.length === 0) {
alert('账号或密码未输入');
return;
}
// 发起请求
$.ajax({
url: "http://127.0.0.1:48080/admin-api/system/oauth2/token?"
// 客户端
+ "client_id=" + clientId
+ "&client_secret=" + clientSecret
// 密码模式的参数
+ "&grant_type=" + grantType
+ "&username=" + username
+ "&password=" + password
+ '&scope=user.read user.write',
method: 'POST',
headers: {
'tenant-id': '1', // 多租户编号,写死
},
success: function (result) {
if (result.code !== 0) {
alert('登录失败,原因:' + result.msg)
return;
}
// 设置到 localStorage 中
localStorage.setItem('ACCESS-TOKEN', result.data.access_token);
localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);
// 提示登录成功
alert('登录成功!点击确认,跳转回首页');
window.location.href = '/index.html';
}
});
}
</script>
</head>
<body>
账号:<input id="username" value="admin" /> <br />
密码:<input id="password" value="admin123" > <br />
<button style="float: right; margin-top: 5px;" onclick="login()">登录</button>
</body>
<style>
body { /** 页面居中 */
border-radius: 20px;
height: 350px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
</style>
</html>

View File

@ -11,6 +11,7 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<modules> <modules>
<module>yudao-common</module> <module>yudao-common</module>
<module>yudao-spring-boot-starter-banner</module>
<module>yudao-spring-boot-starter-mybatis</module> <module>yudao-spring-boot-starter-mybatis</module>
<module>yudao-spring-boot-starter-redis</module> <module>yudao-spring-boot-starter-redis</module>
<module>yudao-spring-boot-starter-web</module> <module>yudao-spring-boot-starter-web</module>
@ -19,24 +20,26 @@
<module>yudao-spring-boot-starter-file</module> <module>yudao-spring-boot-starter-file</module>
<module>yudao-spring-boot-starter-monitor</module> <module>yudao-spring-boot-starter-monitor</module>
<module>yudao-spring-boot-starter-protection</module> <module>yudao-spring-boot-starter-protection</module>
<module>yudao-spring-boot-starter-config</module>
<module>yudao-spring-boot-starter-job</module> <module>yudao-spring-boot-starter-job</module>
<module>yudao-spring-boot-starter-mq</module> <module>yudao-spring-boot-starter-mq</module>
<module>yudao-spring-boot-starter-excel</module> <module>yudao-spring-boot-starter-excel</module>
<module>yudao-spring-boot-starter-test</module> <module>yudao-spring-boot-starter-test</module>
<module>yudao-spring-boot-starter-extension</module>
<module>yudao-spring-boot-starter-biz-operatelog</module> <module>yudao-spring-boot-starter-biz-operatelog</module>
<module>yudao-spring-boot-starter-biz-dict</module> <module>yudao-spring-boot-starter-biz-dict</module>
<module>yudao-spring-boot-starter-biz-sms</module> <module>yudao-spring-boot-starter-biz-sms</module>
<module>yudao-spring-boot-starter-activiti</module>
<module>yudao-spring-boot-starter-biz-pay</module> <module>yudao-spring-boot-starter-biz-pay</module>
<module>yudao-spring-boot-starter-biz-weixin</module> <module>yudao-spring-boot-starter-biz-weixin</module>
<module>yudao-spring-boot-starter-biz-social</module> <module>yudao-spring-boot-starter-biz-social</module>
<module>yudao-spring-boot-starter-biz-tenant</module> <module>yudao-spring-boot-starter-biz-tenant</module>
<module>yudao-spring-boot-starter-biz-data-permission</module> <module>yudao-spring-boot-starter-biz-data-permission</module>
<module>yudao-spring-boot-starter-biz-error-code</module>
<module>yudao-spring-boot-starter-biz-ip</module>
<module>yudao-spring-boot-starter-flowable</module> <module>yudao-spring-boot-starter-flowable</module>
<module>yudao-spring-boot-starter-captcha</module>
</modules> </modules>
<artifactId>yudao-framework</artifactId> <artifactId>yudao-framework</artifactId>

View File

@ -105,6 +105,11 @@
<artifactId>jackson-core</artifactId> <artifactId>jackson-core</artifactId>
<scope>provided</scope> <!-- 设置为 provided只有工具类需要使用到 --> <scope>provided</scope> <!-- 设置为 provided只有工具类需要使用到 -->
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<scope>provided</scope> <!-- 设置为 provided只有工具类需要使用到 -->
</dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>

View File

@ -1,8 +1,11 @@
package cn.iocoder.yudao.framework.common.enums; package cn.iocoder.yudao.framework.common.enums;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays;
/** /**
* 通用状态枚举 * 通用状态枚举
* *
@ -10,11 +13,13 @@ import lombok.Getter;
*/ */
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum CommonStatusEnum { public enum CommonStatusEnum implements IntArrayValuable {
ENABLE(0, "开启"), ENABLE(0, "开启"),
DISABLE(1, "关闭"); DISABLE(1, "关闭");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CommonStatusEnum::getStatus).toArray();
/** /**
* 状态值 * 状态值
*/ */
@ -24,4 +29,9 @@ public enum CommonStatusEnum {
*/ */
private final String name; private final String name;
@Override
public int[] array() {
return ARRAYS;
}
} }

View File

@ -12,7 +12,8 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum DocumentEnum { public enum DocumentEnum {
REDIS_INSTALL("https://gitee.com/zhijiantianya/ruoyi-vue-pro/issues/I4VCSJ", "Redis 安装文档"); REDIS_INSTALL("https://gitee.com/zhijiantianya/ruoyi-vue-pro/issues/I4VCSJ", "Redis 安装文档"),
TENANT("https://doc.iocoder.cn", "SaaS 多租户文档");
private final String url; private final String url;
private final String memo; private final String memo;

View File

@ -0,0 +1,40 @@
package cn.iocoder.yudao.framework.common.enums;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
/**
* 终端的枚举
*
* @author 芋道源码
*/
@RequiredArgsConstructor
@Getter
public enum TerminalEnum implements IntArrayValuable {
WECHAT_MINI_PROGRAM(10, "微信小程序"),
WECHAT_WAP(11, "微信公众号"),
H5(20, "H5 网页"),
IOS(31, "苹果 App"),
ANDROID(32, "安卓 App"),
;
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray();
/**
* 终端
*/
private final Integer terminal;
/**
* 终端名
*/
private final String name;
@Override
public int[] array() {
return ARRAYS;
}
}

View File

@ -3,7 +3,7 @@ package cn.iocoder.yudao.framework.common.enums;
/** /**
* Web 过滤器顺序的枚举类保证过滤器按照符合我们的预期 * Web 过滤器顺序的枚举类保证过滤器按照符合我们的预期
* *
* 考虑到每个 starter 都需要用到该工具类所以放到 common 模块下的 util 包下 * 考虑到每个 starter 都需要用到该工具类所以放到 common 模块下的 enums 包下
* *
* @author 芋道源码 * @author 芋道源码
*/ */

View File

@ -0,0 +1,60 @@
package cn.iocoder.yudao.framework.common.exception;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 服务器异常 Exception
*/
@Data
@EqualsAndHashCode(callSuper = true)
public final class ServerException extends RuntimeException {
/**
* 全局错误码
*
* @see GlobalErrorCodeConstants
*/
private Integer code;
/**
* 错误提示
*/
private String message;
/**
* 空构造方法避免反序列化问题
*/
public ServerException() {
}
public ServerException(ErrorCode errorCode) {
this.code = errorCode.getCode();
this.message = errorCode.getMsg();
}
public ServerException(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public ServerException setCode(Integer code) {
this.code = code;
return this;
}
@Override
public String getMessage() {
return message;
}
public ServerException setMessage(String message) {
this.message = message;
return this;
}
}

View File

@ -29,6 +29,7 @@ public interface GlobalErrorCodeConstants {
// ========== 服务端错误段 ========== // ========== 服务端错误段 ==========
ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常"); ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常");
ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "功能未实现/未开启");
// ========== 自定义错误段 ========== // ========== 自定义错误段 ==========
ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求 ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求
@ -36,9 +37,15 @@ public interface GlobalErrorCodeConstants {
ErrorCode UNKNOWN = new ErrorCode(999, "未知错误"); ErrorCode UNKNOWN = new ErrorCode(999, "未知错误");
static boolean isMatch(Integer code) { /**
* 是否为服务端错误参考 HTTP 5XX 错误码段
*
* @param code 错误码
* @return 是否
*/
static boolean isServerErrorCode(Integer code) {
return code != null return code != null
&& code >= SUCCESS.getCode() && code <= UNKNOWN.getCode(); && code >= INTERNAL_SERVER_ERROR.getCode() && code <= INTERNAL_SERVER_ERROR.getCode() + 99;
} }
} }

View File

@ -29,6 +29,10 @@ package cn.iocoder.yudao.framework.common.exception.enums;
*/ */
public class ServiceErrorCodeRange { public class ServiceErrorCodeRange {
// 模块 system 错误码区间 [1-000-001-000 ~ 1-000-002-000] // 模块 infra 错误码区间 [1-001-000-000 ~ 1-002-000-000)
// 模块 system 错误码区间 [1-002-000-000 ~ 1-003-000-000)
// 模块 member 错误码区间 [1-004-000-000 ~ 1-005-000-000)
// 模块 pay 错误码区间 [1-007-000-000 ~ 1-008-000-000)
// 模块 bpm 错误码区间 [1-009-000-000 ~ 1-010-000-000)
} }

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.framework.common.pojo; package cn.iocoder.yudao.framework.common.pojo;
import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.framework.common.exception.ServerException;
import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
@ -91,10 +92,24 @@ public class CommonResult<T> implements Serializable {
if (isSuccess()) { if (isSuccess()) {
return; return;
} }
// 服务端异常
if (GlobalErrorCodeConstants.isServerErrorCode(code)) {
throw new ServerException(code, msg);
}
// 业务异常 // 业务异常
throw new ServiceException(code, msg); throw new ServiceException(code, msg);
} }
/**
* 判断是否有异常如果有则抛出 {@link ServiceException} 异常
* 如果没有则返回 {@link #data} 数据
*/
@JsonIgnore // 避免 jackson 序列化
public T getCheckedData() {
checkError();
return data;
}
public static <T> CommonResult<T> error(ServiceException serviceException) { public static <T> CommonResult<T> error(ServiceException serviceException) {
return error(serviceException.getCode(), serviceException.getMessage()); return error(serviceException.getCode(), serviceException.getMessage());
} }

View File

@ -23,8 +23,8 @@ public class PageParam implements Serializable {
@ApiModelProperty(value = "每页条数,最大值为 100", required = true, example = "10") @ApiModelProperty(value = "每页条数,最大值为 100", required = true, example = "10")
@NotNull(message = "每页条数不能为空") @NotNull(message = "每页条数不能为空")
@Min(value = 1, message = "页码最小值为 1") @Min(value = 1, message = "每页条数最小值为 1")
@Max(value = 100, message = "页码最大值为 100") @Max(value = 100, message = "每页条数最大值为 100")
private Integer pageSize = PAGE_SIZE; private Integer pageSize = PAGE_SIZE;
} }

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.framework.common.util.cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import java.time.Duration;
import java.util.concurrent.Executors;
/**
* Cache 工具类
*
* @author 芋道源码
*/
public class CacheUtils {
public static <K, V> LoadingCache<K, V> buildAsyncReloadingCache(Duration duration, CacheLoader<K, V> loader) {
return CacheBuilder.newBuilder()
// 只阻塞当前数据加载线程其他线程返回旧值
.refreshAfterWrite(duration)
// 通过 asyncReloading 实现全异步加载包括 refreshAfterWrite 被阻塞的加载线程
.build(CacheLoader.asyncReloading(loader, Executors.newCachedThreadPool())); // TODO 芋艿可能要思考下未来要不要做成可配置
}
}

View File

@ -1,15 +1,10 @@
package cn.iocoder.yudao.framework.common.util.collection; package cn.iocoder.yudao.framework.common.util.collection;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.TypeUtil;
import org.springframework.cglib.core.TypeUtils;
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
@ -50,7 +45,14 @@ public class ArrayUtils {
if (CollectionUtil.isEmpty(from)) { if (CollectionUtil.isEmpty(from)) {
return (T[]) (new Object[0]); return (T[]) (new Object[0]);
} }
return ArrayUtil.toArray(from, (Class<T>) CollectionUtil.getElementType(from.iterator())); return ArrayUtil.toArray(from, (Class<T>) IterUtil.getElementType(from.iterator()));
}
public static <T> T get(T[] array, int index) {
if (null == array || index >= array.length) {
return null;
}
return array[index];
} }
} }

View File

@ -173,6 +173,23 @@ public class CollectionUtils {
return valueFunc.apply(t); return valueFunc.apply(t);
} }
public static <T, V extends Comparable<? super V>> V getMinValue(List<T> from, Function<T, V> valueFunc) {
if (CollUtil.isEmpty(from)) {
return null;
}
assert from.size() > 0; // 断言避免告警
T t = from.stream().min(Comparator.comparing(valueFunc)).get();
return valueFunc.apply(t);
}
public static <T, V extends Comparable<? super V>> V getSumValue(List<T> from, Function<T, V> valueFunc, BinaryOperator<V> accumulator) {
if (CollUtil.isEmpty(from)) {
return null;
}
assert from.size() > 0; // 断言避免告警
return from.stream().map(valueFunc).reduce(accumulator).get();
}
public static <T> void addIfNotNull(Collection<T> coll, T item) { public static <T> void addIfNotNull(Collection<T> coll, T item) {
if (item == null) { if (item == null) {
return; return;

View File

@ -11,6 +11,7 @@ import java.util.Set;
*/ */
public class SetUtils { public class SetUtils {
@SafeVarargs
public static <T> Set<T> asSet(T... objs) { public static <T> Set<T> asSet(T... objs) {
return new HashSet<>(Arrays.asList(objs)); return new HashSet<>(Arrays.asList(objs));
} }

View File

@ -1,6 +1,8 @@
package cn.iocoder.yudao.framework.common.util.date; package cn.iocoder.yudao.framework.common.util.date;
import java.time.Duration; import cn.hutool.core.date.LocalDateTimeUtil;
import java.time.*;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -23,6 +25,37 @@ public class DateUtils {
public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss";
public static final String FORMAT_HOUR_MINUTE_SECOND = "HH:mm:ss";
/**
* LocalDateTime 转换成 Date
*
* @param date LocalDateTime
* @return LocalDateTime
*/
public static Date of(LocalDateTime date) {
// 将此日期时间与时区相结合以创建 ZonedDateTime
ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault());
// 本地时间线 LocalDateTime 到即时时间线 Instant 时间戳
Instant instant = zonedDateTime.toInstant();
// UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间
return Date.from(instant);
}
/**
* Date 转换成 LocalDateTime
*
* @param date Date
* @return LocalDateTime
*/
public static LocalDateTime of(Date date) {
// 转为时间戳
Instant instant = date.toInstant();
// UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
}
@Deprecated
public static Date addTime(Duration duration) { public static Date addTime(Duration duration) {
return new Date(System.currentTimeMillis() + duration.toMillis()); return new Date(System.currentTimeMillis() + duration.toMillis());
} }
@ -31,6 +64,11 @@ public class DateUtils {
return System.currentTimeMillis() > time.getTime(); return System.currentTimeMillis() > time.getTime();
} }
public static boolean isExpired(LocalDateTime time) {
LocalDateTime now = LocalDateTime.now();
return now.isAfter(time);
}
public static long diff(Date endTime, Date startTime) { public static long diff(Date endTime, Date startTime) {
return endTime.getTime() - startTime.getTime(); return endTime.getTime() - startTime.getTime();
} }
@ -81,12 +119,14 @@ public class DateUtils {
return a.compareTo(b) > 0 ? a : b; return a.compareTo(b) > 0 ? a : b;
} }
public static boolean beforeNow(Date date) { public static LocalDateTime max(LocalDateTime a, LocalDateTime b) {
return date.getTime() < System.currentTimeMillis(); if (a == null) {
return b;
} }
if (b == null) {
public static boolean afterNow(Date date) { return a;
return date.getTime() >= System.currentTimeMillis(); }
return a.isAfter(b) ? a : b;
} }
/** /**
@ -120,4 +160,14 @@ public class DateUtils {
return c.getTime(); return c.getTime();
} }
/**
* 是否今天
*
* @param date 日期
* @return 是否
*/
public static boolean isToday(LocalDateTime date) {
return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now());
}
} }

View File

@ -0,0 +1,58 @@
package cn.iocoder.yudao.framework.common.util.date;
import cn.hutool.core.date.LocalDateTimeUtil;
import java.time.Duration;
import java.time.LocalDateTime;
/**
* 时间工具类用于 {@link java.time.LocalDateTime}
*
* @author 芋道源码
*/
public class LocalDateTimeUtils {
/**
* 空的 LocalDateTime 对象主要用于 DB 唯一索引的默认值
*/
public static LocalDateTime EMPTY = buildTime(1970, 1, 1);
public static LocalDateTime addTime(Duration duration) {
return LocalDateTime.now().plus(duration);
}
public static boolean beforeNow(LocalDateTime date) {
return date.isBefore(LocalDateTime.now());
}
public static boolean afterNow(LocalDateTime date) {
return date.isAfter(LocalDateTime.now());
}
/**
* 创建指定时间
*
* @param year
* @param mouth
* @param day
* @return 指定时间
*/
public static LocalDateTime buildTime(int year, int mouth, int day) {
return LocalDateTime.of(year, mouth, day, 0, 0, 0);
}
/**
* 判断当前时间是否在该时间范围内
*
* @param startTime 开始时间
* @param endTime 结束时间
* @return 是否
*/
public static boolean isBetween(LocalDateTime startTime, LocalDateTime endTime) {
if (startTime == null || endTime == null) {
return false;
}
return LocalDateTimeUtil.isIn(LocalDateTime.now(), startTime, endTime);
}
}

View File

@ -1,9 +1,14 @@
package cn.iocoder.yudao.framework.common.util.io; package cn.iocoder.yudao.framework.common.util.io;
import cn.hutool.core.io.FileTypeUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import java.io.ByteArrayInputStream;
import java.io.File; import java.io.File;
/** /**
@ -58,4 +63,22 @@ public class FileUtils {
return file; return file;
} }
/**
* 生成文件路径
*
* @param content 文件内容
* @param originalName 原始文件名
* @return path唯一不可重复
*/
public static String generatePath(byte[] content, String originalName) {
String sha256Hex = DigestUtil.sha256Hex(content);
// 情况一如果存在 name则优先使用 name 的后缀
if (StrUtil.isNotBlank(originalName)) {
String extName = FileNameUtil.extName(originalName);
return StrUtil.isBlank(extName) ? sha256Hex : sha256Hex + "." + extName;
}
// 情况二基于 content 计算
return sha256Hex + '.' + FileTypeUtil.getType(new ByteArrayInputStream(content));
}
} }

View File

@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -28,6 +29,7 @@ public class JsonUtils {
static { static {
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.registerModules(new JavaTimeModule()); // 解决 LocalDateTime 的序列化
} }
/** /**
@ -51,6 +53,10 @@ public class JsonUtils {
return objectMapper.writeValueAsBytes(object); return objectMapper.writeValueAsBytes(object);
} }
@SneakyThrows
public static String toJsonPrettyString(Object object) {
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
}
public static <T> T parseObject(String text, Class<T> clazz) { public static <T> T parseObject(String text, Class<T> clazz) {
if (StrUtil.isEmpty(text)) { if (StrUtil.isEmpty(text)) {
@ -132,7 +138,7 @@ public class JsonUtils {
} }
public static boolean isJson(String text) { public static boolean isJson(String text) {
return JSONUtil.isJson(text); return JSONUtil.isTypeJSON(text);
} }
} }

View File

@ -1,12 +1,10 @@
package cn.iocoder.yudao.framework.common.util.object; package cn.iocoder.yudao.framework.common.util.object;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects;
import java.util.function.Consumer; import java.util.function.Consumer;
/** /**
@ -47,6 +45,7 @@ public class ObjectUtils {
return obj1.compareTo(obj2) > 0 ? obj1 : obj2; return obj1.compareTo(obj2) > 0 ? obj1 : obj2;
} }
@SafeVarargs
public static <T> T defaultIfNull(T... array) { public static <T> T defaultIfNull(T... array) {
for (T item : array) { for (T item : array) {
if (item != null) { if (item != null) {
@ -56,6 +55,7 @@ public class ObjectUtils {
return null; return null;
} }
@SafeVarargs
public static <T> boolean equalsAny(T obj, T... array) { public static <T> boolean equalsAny(T obj, T... array) {
return Arrays.asList(array).contains(obj); return Arrays.asList(array).contains(obj);
} }

View File

@ -3,7 +3,10 @@ package cn.iocoder.yudao.framework.common.util.string;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 字符串工具类 * 字符串工具类
@ -37,4 +40,9 @@ public class StrUtils {
return false; return false;
} }
public static List<Long> splitToLong(String value, CharSequence separator) {
long[] longs = StrUtil.splitToLong(value, separator);
return Arrays.stream(longs).boxed().collect(Collectors.toList());
}
} }

View File

@ -17,16 +17,15 @@ import java.util.regex.Pattern;
*/ */
public class ValidationUtils { public class ValidationUtils {
private static final Pattern PATTERN_MOBILE = Pattern.compile("^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[189]))\\d{8}$");
private static final Pattern PATTERN_URL = Pattern.compile("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); private static final Pattern PATTERN_URL = Pattern.compile("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]");
private static final Pattern PATTERN_XML_NCNAME = Pattern.compile("[a-zA-Z_][\\-_.0-9_a-zA-Z$]*"); private static final Pattern PATTERN_XML_NCNAME = Pattern.compile("[a-zA-Z_][\\-_.0-9_a-zA-Z$]*");
public static boolean isMobile(String mobile) { public static boolean isMobile(String mobile) {
if (StrUtil.length(mobile) != 11) { return StringUtils.hasText(mobile)
return false; && PATTERN_MOBILE.matcher(mobile).matches();
}
// TODO 芋艿后面完善手机校验
return true;
} }
public static boolean isURL(String url) { public static boolean isURL(String url) {

View File

@ -1,45 +0,0 @@
package cn.iocoder.yudao.framework.activiti.config;
import cn.iocoder.yudao.framework.activiti.core.web.ActivitiWebFilter;
import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum;
import org.activiti.image.ProcessDiagramGenerator;
import org.activiti.image.impl.DefaultProcessDiagramGenerator;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.transaction.TransactionFactory;
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;
@Configuration
public class YudaoActivitiConfiguration {
/**
* Activiti 流程图的生成器目前管理后台的流程图 svg通过它绘制生成
*/
@Bean
public ProcessDiagramGenerator processDiagramGenerator() {
return new DefaultProcessDiagramGenerator();
}
@Bean
public FilterRegistrationBean<ActivitiWebFilter> activitiWebFilter() {
FilterRegistrationBean<ActivitiWebFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new ActivitiWebFilter());
registrationBean.setOrder(WebFilterOrderEnum.ACTIVITI_FILTER);
return registrationBean;
}
/**
* ProcessEngineConfigurationConfigurer 实现类设置事务管理器保证 ACT_ 表和自己的表的事务一致性
*/
@Bean
public ProcessEngineConfigurationConfigurer processEngineConfigurationConfigurer(
PlatformTransactionManager platformTransactionManager) {
return processEngineConfiguration -> processEngineConfiguration.setTransactionManager(platformTransactionManager);
}
}

View File

@ -1,109 +0,0 @@
package cn.iocoder.yudao.framework.activiti.core.util;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
import com.alibaba.ttl.TransmittableThreadLocal;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.Process;
import org.activiti.engine.impl.identity.Authentication;
import org.activiti.engine.impl.util.io.BytesStreamSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;
/**
* Activiti 工具类
*
* @author 芋道源码
*/
public class ActivitiUtils {
static {
setAuthenticationThreadLocal();
}
// ========== Authentication 相关 ==========
/**
* 反射修改 Authentication authenticatedUserIdThreadLocal 静态变量使用 TTL 线程变量
* 目的保证 @Async 等异步执行时变量丢失的问题
*/
private static void setAuthenticationThreadLocal() {
ReflectUtil.setFieldValue(Authentication.class, "authenticatedUserIdThreadLocal",
new TransmittableThreadLocal<String>());
}
public static void setAuthenticatedUserId(Long userId) {
Authentication.setAuthenticatedUserId(String.valueOf(userId));
}
public static void clearAuthenticatedUserId() {
Authentication.setAuthenticatedUserId(null);
}
public static boolean equals(String userIdStr, Long userId) {
return Objects.equals(userId, NumberUtils.parseLong(userIdStr));
}
// ========== BPMN XML 相关 ==========
/**
* 构建对应的 BPMN Model
*
* @param bpmnBytes 原始的 BPMN XML 字节数组
* @return BPMN Model
*/
public static BpmnModel buildBpmnModel(byte[] bpmnBytes) {
// 转换成 BpmnModel 对象
BpmnXMLConverter converter = new BpmnXMLConverter();
return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true);
}
/**
* 获得 BPMN 流程中指定的元素们
*
* @param model
* @param clazz 指定元素例如说{@link org.activiti.bpmn.model.UserTask}{@link org.activiti.bpmn.model.Gateway} 等等
* @return 元素们
*/
public static <T extends FlowElement> List<T> getBpmnModelElements(BpmnModel model, Class<T> clazz) {
List<T> result = new ArrayList<>();
model.getProcesses().forEach(process -> {
process.getFlowElements().forEach(flowElement -> {
if (flowElement.getClass().isAssignableFrom(clazz)) {
result.add((T) flowElement);
}
});
});
return result;
}
public static String getBpmnXml(BpmnModel model) {
if (model == null) {
return null;
}
return StrUtil.utf8Str(getBpmnBytes(model));
}
public static byte[] getBpmnBytes(BpmnModel model) {
if (model == null) {
return new byte[0];
}
BpmnXMLConverter converter = new BpmnXMLConverter();
return converter.convertToXML(model);
}
public static boolean equals(BpmnModel oldModel, BpmnModel newModel) {
// 由于 BpmnModel 未提供 equals 方法所以只能转成字节数组进行比较
return Arrays.equals(getBpmnBytes(oldModel), getBpmnBytes(newModel));
}
}

View File

@ -1,37 +0,0 @@
package cn.iocoder.yudao.framework.activiti.core.web;
import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Activiti Web 过滤器 userId 设置到 {@link org.activiti.engine.impl.identity.Authentication}
*
* @author 芋道源码
*/
public class ActivitiWebFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws ServletException, IOException {
try {
// 设置工作流的用户
Long userId = SecurityFrameworkUtils.getLoginUserId();
if (userId != null) {
ActivitiUtils.setAuthenticatedUserId(userId);
}
// 过滤
chain.doFilter(request, response);
} finally {
// 清理
ActivitiUtils.clearAuthenticatedUserId();
}
}
}

View File

@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.iocoder.yudao.framework.activiti.config.YudaoActivitiConfiguration

View File

@ -3,16 +3,16 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent> <parent>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-framework</artifactId> <artifactId>yudao-framework</artifactId>
<groupId>cn.iocoder.boot</groupId>
<version>${revision}</version> <version>${revision}</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>yudao-spring-boot-starter-config</artifactId> <artifactId>yudao-spring-boot-starter-banner</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
<description>配置中心,基于 Apollo 魔改实现</description> <description>Banner 用于在 console 控制台,打印开发文档、接口文档等</description>
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<dependencies> <dependencies>
@ -21,17 +21,10 @@
<artifactId>yudao-common</artifactId> <artifactId>yudao-common</artifactId>
</dependency> </dependency>
<!-- Spring 核心 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- Config 配置中心相关 -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId> <!-- 引入 Apollo Client 库,实现内嵌的配置中心 -->
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -0,0 +1,20 @@
package cn.iocoder.yudao.framework.banner.config;
import cn.iocoder.yudao.framework.banner.core.BannerApplicationRunner;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
/**
* Banner 的自动配置类
*
* @author 芋道源码
*/
@AutoConfiguration
public class YudaoBannerAutoConfiguration {
@Bean
public BannerApplicationRunner bannerApplicationRunner() {
return new BannerApplicationRunner();
}
}

View File

@ -1,19 +1,20 @@
package cn.iocoder.yudao.server.framework.tip.core; package cn.iocoder.yudao.framework.banner.core;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component; import org.springframework.util.ClassUtils;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
* 项目启动成功后提供文档相关的地址 * 项目启动成功后提供文档相关的地址
*
* @author 芋道源码
*/ */
@Component
@Slf4j @Slf4j
public class TipApplicationRunner implements ApplicationRunner { public class BannerApplicationRunner implements ApplicationRunner {
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
@ -30,7 +31,20 @@ public class TipApplicationRunner implements ApplicationRunner {
"https://doc.iocoder.cn", "https://doc.iocoder.cn",
"https://t.zsxq.com/02Yf6M7Qn", "https://t.zsxq.com/02Yf6M7Qn",
"https://t.zsxq.com/02B6ujIee"); "https://t.zsxq.com/02B6ujIee");
// 数据报表
if (isNotPresent("cn.iocoder.yudao.module.visualization.framework.security.config.SecurityConfiguration")) {
System.out.println("[报表模块 yudao-module-visualization - 已禁用][参考 https://doc.iocoder.cn/report/ 开启]");
}
// 工作流
if (isNotPresent("cn.iocoder.yudao.framework.flowable.config.YudaoFlowableConfiguration")) {
System.out.println("[工作流模块 yudao-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]");
}
}); });
} }
private static boolean isNotPresent(String className) {
return !ClassUtils.isPresent(className, ClassUtils.getDefaultClassLoader());
}
} }

View File

@ -0,0 +1,6 @@
/**
* Banner 用于在 console 控制台打印开发文档接口文档等
*
* @author 芋道源码
*/
package cn.iocoder.yudao.framework.banner;

View File

@ -0,0 +1 @@
cn.iocoder.yudao.framework.banner.config.YudaoBannerAutoConfiguration

View File

@ -7,17 +7,17 @@ import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFac
import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactoryImpl; import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactoryImpl;
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List; import java.util.List;
/** /**
* 数据全新啊的自动配置类 * 数据权限的自动配置类
* *
* @author 芋道源码 * @author 芋道源码
*/ */
@Configuration @AutoConfiguration
public class YudaoDataPermissionAutoConfiguration { public class YudaoDataPermissionAutoConfiguration {
@Bean @Bean
@ -27,9 +27,8 @@ public class YudaoDataPermissionAutoConfiguration {
@Bean @Bean
public DataPermissionDatabaseInterceptor dataPermissionDatabaseInterceptor(MybatisPlusInterceptor interceptor, public DataPermissionDatabaseInterceptor dataPermissionDatabaseInterceptor(MybatisPlusInterceptor interceptor,
List<DataPermissionRule> rules) { DataPermissionRuleFactory ruleFactory) {
// 创建 DataPermissionDatabaseInterceptor 拦截器 // 创建 DataPermissionDatabaseInterceptor 拦截器
DataPermissionRuleFactory ruleFactory = dataPermissionRuleFactory(rules);
DataPermissionDatabaseInterceptor inner = new DataPermissionDatabaseInterceptor(ruleFactory); DataPermissionDatabaseInterceptor inner = new DataPermissionDatabaseInterceptor(ruleFactory);
// 添加到 interceptor // 添加到 interceptor
// 需要加在首个主要是为了在分页插件前面这个是 MyBatis Plus 的规定 // 需要加在首个主要是为了在分页插件前面这个是 MyBatis Plus 的规定

View File

@ -4,10 +4,10 @@ import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissi
import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List; import java.util.List;
@ -16,7 +16,7 @@ import java.util.List;
* *
* @author 芋道源码 * @author 芋道源码
*/ */
@Configuration @AutoConfiguration
@ConditionalOnClass(LoginUser.class) @ConditionalOnClass(LoginUser.class)
@ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class}) @ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class})
public class YudaoDeptDataPermissionAutoConfiguration { public class YudaoDeptDataPermissionAutoConfiguration {

View File

@ -18,7 +18,6 @@ import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.ExistsExpression; import net.sf.jsqlparser.expression.operators.relational.ExistsExpression;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression; import net.sf.jsqlparser.expression.operators.relational.InExpression;
import net.sf.jsqlparser.expression.operators.relational.ItemsList;
import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.delete.Delete; import net.sf.jsqlparser.statement.delete.Delete;
import net.sf.jsqlparser.statement.select.*; import net.sf.jsqlparser.statement.select.*;
@ -37,7 +36,7 @@ import java.util.concurrent.ConcurrentHashMap;
/** /**
* 数据权限拦截器通过 {@link DataPermissionRule} 数据权限规则重写 SQL 的方式来实现 * 数据权限拦截器通过 {@link DataPermissionRule} 数据权限规则重写 SQL 的方式来实现
* 主要的 SQL 重写方法可见 {@link #builderExpression(Expression, Table)} 方法 * 主要的 SQL 重写方法可见 {@link #builderExpression(Expression, List)} 方法
* *
* 整体的代码实现上参考 {@link com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor} 实现 * 整体的代码实现上参考 {@link com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor} 实现
* 所以每次 MyBatis Plus 升级时需要 Review 下其具体的实现是否有变更 * 所以每次 MyBatis Plus 升级时需要 Review 下其具体的实现是否有变更
@ -53,8 +52,7 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
private final MappedStatementCache mappedStatementCache = new MappedStatementCache(); private final MappedStatementCache mappedStatementCache = new MappedStatementCache();
@Override // SELECT 场景 @Override // SELECT 场景
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
// 获得 Mapper 对应的数据权限的规则 // 获得 Mapper 对应的数据权限的规则
List<DataPermissionRule> rules = ruleFactory.getDataPermissionRule(ms.getId()); List<DataPermissionRule> rules = ruleFactory.getDataPermissionRule(ms.getId());
if (mappedStatementCache.noRewritable(ms, rules)) { // 如果无需重写则跳过 if (mappedStatementCache.noRewritable(ms, rules)) { // 如果无需重写则跳过
@ -68,12 +66,14 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
// 处理 SQL // 处理 SQL
mpBs.sql(parserSingle(mpBs.sql(), null)); mpBs.sql(parserSingle(mpBs.sql(), null));
} finally { } finally {
// 添加是否需要重写的缓存
addMappedStatementCache(ms); addMappedStatementCache(ms);
// 清空上下文
ContextHolder.clear(); ContextHolder.clear();
} }
} }
@Override // 只处理 UPDATE / DELETE 场景不处理 INSERT 场景 @Override // 只处理 UPDATE / DELETE 场景不处理 INSERT 场景因为 INSERT 不需要数据权限)
public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) { public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh); PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh);
MappedStatement ms = mpSh.mappedStatement(); MappedStatement ms = mpSh.mappedStatement();
@ -92,7 +92,9 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
// 处理 SQL // 处理 SQL
mpBs.sql(parserMulti(mpBs.sql(), null)); mpBs.sql(parserMulti(mpBs.sql(), null));
} finally { } finally {
// 添加是否需要重写的缓存
addMappedStatementCache(ms); addMappedStatementCache(ms);
// 清空上下文
ContextHolder.clear(); ContextHolder.clear();
} }
} }
@ -107,24 +109,6 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
} }
} }
protected void processSelectBody(SelectBody selectBody) {
if (selectBody == null) {
return;
}
if (selectBody instanceof PlainSelect) {
processPlainSelect((PlainSelect) selectBody);
} else if (selectBody instanceof WithItem) {
WithItem withItem = (WithItem) selectBody;
processSelectBody(withItem.getSubSelect().getSelectBody());
} else {
SetOperationList operationList = (SetOperationList) selectBody;
List<SelectBody> selectBodys = operationList.getSelects();
if (CollectionUtils.isNotEmpty(selectBodys)) {
selectBodys.forEach(this::processSelectBody);
}
}
}
/** /**
* update 语句处理 * update 语句处理
*/ */
@ -142,28 +126,77 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
delete.setWhere(this.builderExpression(delete.getWhere(), delete.getTable())); delete.setWhere(this.builderExpression(delete.getWhere(), delete.getTable()));
} }
// ========== TenantLineInnerInterceptor 一致的逻辑 ==========
protected void processSelectBody(SelectBody selectBody) {
if (selectBody == null) {
return;
}
if (selectBody instanceof PlainSelect) {
processPlainSelect((PlainSelect) selectBody);
} else if (selectBody instanceof WithItem) {
WithItem withItem = (WithItem) selectBody;
processSelectBody(withItem.getSubSelect().getSelectBody());
} else {
SetOperationList operationList = (SetOperationList) selectBody;
List<SelectBody> selectBodyList = operationList.getSelects();
if (CollectionUtils.isNotEmpty(selectBodyList)) {
selectBodyList.forEach(this::processSelectBody);
}
}
}
/** /**
* 处理 PlainSelect * 处理 PlainSelect
*/ */
protected void processPlainSelect(PlainSelect plainSelect) { protected void processPlainSelect(PlainSelect plainSelect) {
FromItem fromItem = plainSelect.getFromItem();
Expression where = plainSelect.getWhere();
processWhereSubSelect(where);
if (fromItem instanceof Table) {
Table fromTable = (Table) fromItem;
plainSelect.setWhere(builderExpression(where, fromTable));
} else {
processFromItem(fromItem);
}
//#3087 github //#3087 github
List<SelectItem> selectItems = plainSelect.getSelectItems(); List<SelectItem> selectItems = plainSelect.getSelectItems();
if (CollectionUtils.isNotEmpty(selectItems)) { if (CollectionUtils.isNotEmpty(selectItems)) {
selectItems.forEach(this::processSelectItem); selectItems.forEach(this::processSelectItem);
} }
// 处理 where 中的子查询
Expression where = plainSelect.getWhere();
processWhereSubSelect(where);
// 处理 fromItem
FromItem fromItem = plainSelect.getFromItem();
List<Table> list = processFromItem(fromItem);
List<Table> mainTables = new ArrayList<>(list);
// 处理 join
List<Join> joins = plainSelect.getJoins(); List<Join> joins = plainSelect.getJoins();
if (CollectionUtils.isNotEmpty(joins)) { if (CollectionUtils.isNotEmpty(joins)) {
processJoins(joins); mainTables = processJoins(mainTables, joins);
} }
// 当有 mainTable 进行 where 条件追加
if (CollectionUtils.isNotEmpty(mainTables)) {
plainSelect.setWhere(builderExpression(where, mainTables));
}
}
private List<Table> processFromItem(FromItem fromItem) {
// 处理括号括起来的表达式
while (fromItem instanceof ParenthesisFromItem) {
fromItem = ((ParenthesisFromItem) fromItem).getFromItem();
}
List<Table> mainTables = new ArrayList<>();
// join 时的处理逻辑
if (fromItem instanceof Table) {
Table fromTable = (Table) fromItem;
mainTables.add(fromTable);
} else if (fromItem instanceof SubJoin) {
// SubJoin 类型则还需要添加上 where 条件
List<Table> tables = processSubJoin((SubJoin) fromItem);
mainTables.addAll(tables);
} else {
// 处理下 fromItem
processOtherFromItem(fromItem);
}
return mainTables;
} }
/** /**
@ -191,7 +224,7 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
return; return;
} }
if (where instanceof FromItem) { if (where instanceof FromItem) {
processFromItem((FromItem) where); processOtherFromItem((FromItem) where);
return; return;
} }
if (where.toString().indexOf("SELECT") > 0) { if (where.toString().indexOf("SELECT") > 0) {
@ -204,9 +237,9 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
} else if (where instanceof InExpression) { } else if (where instanceof InExpression) {
// in // in
InExpression expression = (InExpression) where; InExpression expression = (InExpression) where;
ItemsList itemsList = expression.getRightItemsList(); Expression inExpression = expression.getRightExpression();
if (itemsList instanceof SubSelect) { if (inExpression instanceof SubSelect) {
processSelectBody(((SubSelect) itemsList).getSelectBody()); processSelectBody(((SubSelect) inExpression).getSelectBody());
} }
} else if (where instanceof ExistsExpression) { } else if (where instanceof ExistsExpression) {
// exists // exists
@ -239,7 +272,7 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
* <p>支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)<p> * <p>支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)<p>
* <p> fixed gitee pulls/141</p> * <p> fixed gitee pulls/141</p>
* *
* @param function 函数 * @param function
*/ */
protected void processFunction(Function function) { protected void processFunction(Function function) {
ExpressionList parameters = function.getParameters(); ExpressionList parameters = function.getParameters();
@ -257,22 +290,19 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
/** /**
* 处理子查询等 * 处理子查询等
*/ */
protected void processFromItem(FromItem fromItem) { protected void processOtherFromItem(FromItem fromItem) {
if (fromItem instanceof SubJoin) { // 去除括号
SubJoin subJoin = (SubJoin) fromItem; while (fromItem instanceof ParenthesisFromItem) {
if (subJoin.getJoinList() != null) { fromItem = ((ParenthesisFromItem) fromItem).getFromItem();
processJoins(subJoin.getJoinList());
} }
if (subJoin.getLeft() != null) {
processFromItem(subJoin.getLeft()); if (fromItem instanceof SubSelect) {
}
} else if (fromItem instanceof SubSelect) {
SubSelect subSelect = (SubSelect) fromItem; SubSelect subSelect = (SubSelect) fromItem;
if (subSelect.getSelectBody() != null) { if (subSelect.getSelectBody() != null) {
processSelectBody(subSelect.getSelectBody()); processSelectBody(subSelect.getSelectBody());
} }
} else if (fromItem instanceof ValuesList) { } else if (fromItem instanceof ValuesList) {
logger.debug("Perform a subquery, if you do not give us feedback"); logger.debug("Perform a subQuery, if you do not give us feedback");
} else if (fromItem instanceof LateralSubSelect) { } else if (fromItem instanceof LateralSubSelect) {
LateralSubSelect lateralSubSelect = (LateralSubSelect) fromItem; LateralSubSelect lateralSubSelect = (LateralSubSelect) fromItem;
if (lateralSubSelect.getSubSelect() != null) { if (lateralSubSelect.getSubSelect() != null) {
@ -284,75 +314,176 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
} }
} }
/**
* 处理 sub join
*
* @param subJoin subJoin
* @return Table subJoin 中的主表
*/
private List<Table> processSubJoin(SubJoin subJoin) {
List<Table> mainTables = new ArrayList<>();
if (subJoin.getJoinList() != null) {
List<Table> list = processFromItem(subJoin.getLeft());
mainTables.addAll(list);
mainTables = processJoins(mainTables, subJoin.getJoinList());
}
return mainTables;
}
/** /**
* 处理 joins * 处理 joins
* *
* @param mainTables 可以为 null
* @param joins join 集合 * @param joins join 集合
* @return List<Table> 右连接查询的 Table 列表
*/ */
private void processJoins(List<Join> joins) { private List<Table> processJoins(List<Table> mainTables, List<Join> joins) {
// join 表达式中最终的主表
Table mainTable = null;
// 当前 join 的左表
Table leftTable = null;
if (mainTables == null) {
mainTables = new ArrayList<>();
} else if (mainTables.size() == 1) {
mainTable = mainTables.get(0);
leftTable = mainTable;
}
//对于 on 表达式写在最后的 join需要记录下前面多个 on 的表名 //对于 on 表达式写在最后的 join需要记录下前面多个 on 的表名
Deque<Table> tables = new LinkedList<>(); Deque<List<Table>> onTableDeque = new LinkedList<>();
for (Join join : joins) { for (Join join : joins) {
// 处理 on 表达式 // 处理 on 表达式
FromItem fromItem = join.getRightItem(); FromItem joinItem = join.getRightItem();
if (fromItem instanceof Table) {
Table fromTable = (Table) fromItem; // 获取当前 join 的表subJoint 可以看作是一张表
List<Table> joinTables = null;
if (joinItem instanceof Table) {
joinTables = new ArrayList<>();
joinTables.add((Table) joinItem);
} else if (joinItem instanceof SubJoin) {
joinTables = processSubJoin((SubJoin) joinItem);
}
if (joinTables != null) {
// 如果是隐式内连接
if (join.isSimple()) {
mainTables.addAll(joinTables);
continue;
}
// 当前表是否忽略
Table joinTable = joinTables.get(0);
List<Table> onTables = null;
// 如果不要忽略且是右连接则记录下当前表
if (join.isRight()) {
mainTable = joinTable;
if (leftTable != null) {
onTables = Collections.singletonList(leftTable);
}
} else if (join.isLeft()) {
onTables = Collections.singletonList(joinTable);
} else if (join.isInner()) {
if (mainTable == null) {
onTables = Collections.singletonList(joinTable);
} else {
onTables = Arrays.asList(mainTable, joinTable);
}
mainTable = null;
}
mainTables = new ArrayList<>();
if (mainTable != null) {
mainTables.add(mainTable);
}
// 获取 join 尾缀的 on 表达式列表 // 获取 join 尾缀的 on 表达式列表
Collection<Expression> originOnExpressions = join.getOnExpressions(); Collection<Expression> originOnExpressions = join.getOnExpressions();
// 正常 join on 表达式只有一个立刻处理 // 正常 join on 表达式只有一个立刻处理
if (originOnExpressions.size() == 1) { if (originOnExpressions.size() == 1 && onTables != null) {
processJoin(join); List<Expression> onExpressions = new LinkedList<>();
onExpressions.add(builderExpression(originOnExpressions.iterator().next(), onTables));
join.setOnExpressions(onExpressions);
leftTable = joinTable;
continue; continue;
} }
tables.push(fromTable); // 表名压栈忽略的表压入 null以便后续不处理
onTableDeque.push(onTables);
// 尾缀多个 on 表达式的时候统一处理 // 尾缀多个 on 表达式的时候统一处理
if (originOnExpressions.size() > 1) { if (originOnExpressions.size() > 1) {
Collection<Expression> onExpressions = new LinkedList<>(); Collection<Expression> onExpressions = new LinkedList<>();
for (Expression originOnExpression : originOnExpressions) { for (Expression originOnExpression : originOnExpressions) {
Table currentTable = tables.poll(); List<Table> currentTableList = onTableDeque.poll();
onExpressions.add(builderExpression(originOnExpression, currentTable)); if (CollectionUtils.isEmpty(currentTableList)) {
onExpressions.add(originOnExpression);
} else {
onExpressions.add(builderExpression(originOnExpression, currentTableList));
}
} }
join.setOnExpressions(onExpressions); join.setOnExpressions(onExpressions);
} }
leftTable = joinTable;
} else { } else {
// 处理右边连接的子表达式 processOtherFromItem(joinItem);
processFromItem(fromItem); leftTable = null;
}
} }
} }
/** return mainTables;
* 处理联接语句
*/
protected void processJoin(Join join) {
if (join.getRightItem() instanceof Table) {
Table fromTable = (Table) join.getRightItem();
Expression originOnExpression = CollUtil.getFirst(join.getOnExpressions());
originOnExpression = builderExpression(originOnExpression, fromTable);
join.setOnExpressions(CollUtil.newArrayList(originOnExpression));
} }
// ========== TenantLineInnerInterceptor 存在差异的逻辑关键实现权限条件的拼接 ==========
/**
* 处理条件
*
* @param currentExpression 当前 where 条件
* @param table 单个表
*/
protected Expression builderExpression(Expression currentExpression, Table table) {
return this.builderExpression(currentExpression, Collections.singletonList(table));
} }
/** /**
* 处理条件 * 处理条件
*
* @param currentExpression 当前 where 条件
* @param tables 多个表
*/ */
protected Expression builderExpression(Expression currentExpression, Table table) { protected Expression builderExpression(Expression currentExpression, List<Table> tables) {
// 获得 Table 对应的数据权限条件 // 没有表需要处理直接返回
Expression equalsTo = buildDataPermissionExpression(table); if (CollectionUtils.isEmpty(tables)) {
if (equalsTo == null) { // 如果没条件则返回 currentExpression 默认
return currentExpression; return currentExpression;
} }
// 表达式为空则直接返回 equalsTo // 第一步获得 Table 对应的数据权限条件
Expression dataPermissionExpression = null;
for (Table table : tables) {
// 构建每个表的权限 Expression 条件
Expression expression = buildDataPermissionExpression(table);
if (expression == null) {
continue;
}
// 合并到 dataPermissionExpression
dataPermissionExpression = dataPermissionExpression == null ? expression
: new AndExpression(dataPermissionExpression, expression);
}
// 第二步合并多个 Expression 条件
if (dataPermissionExpression == null) {
return currentExpression;
}
if (currentExpression == null) { if (currentExpression == null) {
return equalsTo; return dataPermissionExpression;
} }
// 如果表达式为 Or则需要 (currentExpression) AND equalsTo // 如果表达式为 Or则需要 (currentExpression) AND dataPermissionExpression
if (currentExpression instanceof OrExpression) { if (currentExpression instanceof OrExpression) {
return new AndExpression(new Parenthesis(currentExpression), equalsTo); return new AndExpression(new Parenthesis(currentExpression), dataPermissionExpression);
} }
// 如果表达式为 And则直接返回 currentExpression AND equalsTo // 如果表达式为 And则直接返回 where AND dataPermissionExpression
return new AndExpression(currentExpression, equalsTo); return new AndExpression(currentExpression, dataPermissionExpression);
} }
/** /**

View File

@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule;
import cn.iocoder.yudao.framework.expression.OrExpressionX;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
@ -20,7 +21,6 @@ import net.sf.jsqlparser.expression.Alias;
import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue; import net.sf.jsqlparser.expression.LongValue;
import net.sf.jsqlparser.expression.NullValue; import net.sf.jsqlparser.expression.NullValue;
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.EqualsTo; import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression; import net.sf.jsqlparser.expression.operators.relational.InExpression;
@ -143,8 +143,8 @@ public class DeptDataPermissionRule implements DataPermissionRule {
if (userExpression == null) { if (userExpression == null) {
return deptExpression; return deptExpression;
} }
// 目前如果有指定部门 + 可查看自己采用 OR 条件WHERE dept_id IN ? OR user_id = ? // 目前如果有指定部门 + 可查看自己采用 OR 条件WHERE (dept_id IN ? OR user_id = ?)
return new OrExpression(deptExpression, userExpression); return new OrExpressionX(deptExpression, userExpression);
} }
private Expression buildDeptExpression(String tableName, Alias tableAlias, Set<Long> deptIds) { private Expression buildDeptExpression(String tableName, Alias tableAlias, Set<Long> deptIds) {

View File

@ -1,3 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.iocoder.yudao.framework.datapermission.config.YudaoDataPermissionAutoConfiguration,\
cn.iocoder.yudao.framework.datapermission.config.YudaoDeptDataPermissionAutoConfiguration

View File

@ -0,0 +1,2 @@
cn.iocoder.yudao.framework.datapermission.config.YudaoDataPermissionAutoConfiguration
cn.iocoder.yudao.framework.datapermission.config.YudaoDeptDataPermissionAutoConfiguration

View File

@ -62,7 +62,7 @@ public class DataPermissionDatabaseInterceptorTest extends BaseMockitoUnitTest {
// 调用 // 调用
interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql);
// 断言 // 断言
pluginUtilsMock.verify(never(), () -> PluginUtils.mpBoundSql(boundSql)); pluginUtilsMock.verify(() -> PluginUtils.mpBoundSql(boundSql), never());
} }
} }
@ -87,7 +87,7 @@ public class DataPermissionDatabaseInterceptorTest extends BaseMockitoUnitTest {
interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql);
// 断言 // 断言
verify(mpBs, times(1)).sql( verify(mpBs, times(1)).sql(
eq("SELECT * FROM t_user WHERE id = 1 AND dept_id = 100")); eq("SELECT * FROM t_user WHERE id = 1 AND t_user.dept_id = 100"));
// 断言缓存 // 断言缓存
assertTrue(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty()); assertTrue(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty());
} }

View File

@ -46,7 +46,7 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
@Override @Override
public Set<String> getTableNames() { public Set<String> getTableNames() {
return asSet("entity", "entity1", "entity2", "t1", "t2", // 支持 MyBatis Plus 的单元测试 return asSet("entity", "entity1", "entity2", "entity3", "t1", "t2", "sys_dict_item", // 支持 MyBatis Plus 的单元测试
"t_user", "t_role"); // 满足自己的单元测试 "t_user", "t_role"); // 满足自己的单元测试
} }
@ -84,30 +84,30 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
@Test @Test
void delete() { void delete() {
assertSql("delete from entity where id = ?", assertSql("delete from entity where id = ?",
"DELETE FROM entity WHERE id = ? AND tenant_id = 1"); "DELETE FROM entity WHERE id = ? AND entity.tenant_id = 1");
} }
@Test @Test
void update() { void update() {
assertSql("update entity set name = ? where id = ?", assertSql("update entity set name = ? where id = ?",
"UPDATE entity SET name = ? WHERE id = ? AND tenant_id = 1"); "UPDATE entity SET name = ? WHERE id = ? AND entity.tenant_id = 1");
} }
@Test @Test
void selectSingle() { void selectSingle() {
// 单表 // 单表
assertSql("select * from entity where id = ?", assertSql("select * from entity where id = ?",
"SELECT * FROM entity WHERE id = ? AND tenant_id = 1"); "SELECT * FROM entity WHERE id = ? AND entity.tenant_id = 1");
assertSql("select * from entity where id = ? or name = ?", assertSql("select * from entity where id = ? or name = ?",
"SELECT * FROM entity WHERE (id = ? OR name = ?) AND tenant_id = 1"); "SELECT * FROM entity WHERE (id = ? OR name = ?) AND entity.tenant_id = 1");
assertSql("SELECT * FROM entity WHERE (id = ? OR name = ?)", assertSql("SELECT * FROM entity WHERE (id = ? OR name = ?)",
"SELECT * FROM entity WHERE (id = ? OR name = ?) AND tenant_id = 1"); "SELECT * FROM entity WHERE (id = ? OR name = ?) AND entity.tenant_id = 1");
/* not */ /* not */
assertSql("SELECT * FROM entity WHERE not (id = ? OR name = ?)", assertSql("SELECT * FROM entity WHERE not (id = ? OR name = ?)",
"SELECT * FROM entity WHERE NOT (id = ? OR name = ?) AND tenant_id = 1"); "SELECT * FROM entity WHERE NOT (id = ? OR name = ?) AND entity.tenant_id = 1");
} }
@Test @Test
@ -167,10 +167,12 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
assertSql("SELECT * FROM entity e WHERE e.id >= (select e1.id from entity1 e1 where e1.id = ?)", assertSql("SELECT * FROM entity e WHERE e.id >= (select e1.id from entity1 e1 where e1.id = ?)",
"SELECT * FROM entity e WHERE e.id >= (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1"); "SELECT * FROM entity e WHERE e.id >= (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1");
/* <= */ /* <= */
assertSql("SELECT * FROM entity e WHERE e.id <= (select e1.id from entity1 e1 where e1.id = ?)", assertSql("SELECT * FROM entity e WHERE e.id <= (select e1.id from entity1 e1 where e1.id = ?)",
"SELECT * FROM entity e WHERE e.id <= (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1"); "SELECT * FROM entity e WHERE e.id <= (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1");
/* <> */ /* <> */
assertSql("SELECT * FROM entity e WHERE e.id <> (select e1.id from entity1 e1 where e1.id = ?)", assertSql("SELECT * FROM entity e WHERE e.id <> (select e1.id from entity1 e1 where e1.id = ?)",
"SELECT * FROM entity e WHERE e.id <> (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1"); "SELECT * FROM entity e WHERE e.id <> (SELECT e1.id FROM entity1 e1 WHERE e1.id = ? AND e1.tenant_id = 1) AND e.tenant_id = 1");
@ -204,6 +206,14 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
"SELECT * FROM entity e " + "SELECT * FROM entity e " +
"LEFT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "LEFT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1"); "WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1");
assertSql("SELECT * FROM entity e " +
"left join entity1 e1 on e1.id = e.id " +
"left join entity2 e2 on e1.id = e2.id",
"SELECT * FROM entity e " +
"LEFT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " +
"LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1 " +
"WHERE e.tenant_id = 1");
} }
@Test @Test
@ -212,17 +222,125 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
assertSql("SELECT * FROM entity e " + assertSql("SELECT * FROM entity e " +
"right join entity1 e1 on e1.id = e.id", "right join entity1 e1 on e1.id = e.id",
"SELECT * FROM entity e " + "SELECT * FROM entity e " +
"RIGHT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "RIGHT JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 " +
"WHERE e.tenant_id = 1"); "WHERE e1.tenant_id = 1");
assertSql("SELECT * FROM with_as_1 e " +
"right join entity1 e1 on e1.id = e.id",
"SELECT * FROM with_as_1 e " +
"RIGHT JOIN entity1 e1 ON e1.id = e.id " +
"WHERE e1.tenant_id = 1");
assertSql("SELECT * FROM entity e " + assertSql("SELECT * FROM entity e " +
"right join entity1 e1 on e1.id = e.id " + "right join entity1 e1 on e1.id = e.id " +
"WHERE e.id = ? OR e.name = ?", "WHERE e.id = ? OR e.name = ?",
"SELECT * FROM entity e " + "SELECT * FROM entity e " +
"RIGHT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "RIGHT JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1"); "WHERE (e.id = ? OR e.name = ?) AND e1.tenant_id = 1");
assertSql("SELECT * FROM entity e " +
"right join entity1 e1 on e1.id = e.id " +
"right join entity2 e2 on e1.id = e2.id ",
"SELECT * FROM entity e " +
"RIGHT JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 " +
"RIGHT JOIN entity2 e2 ON e1.id = e2.id AND e1.tenant_id = 1 " +
"WHERE e2.tenant_id = 1");
} }
@Test
void selectMixJoin() {
assertSql("SELECT * FROM entity e " +
"right join entity1 e1 on e1.id = e.id " +
"left join entity2 e2 on e1.id = e2.id",
"SELECT * FROM entity e " +
"RIGHT JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 " +
"LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1 " +
"WHERE e1.tenant_id = 1");
assertSql("SELECT * FROM entity e " +
"left join entity1 e1 on e1.id = e.id " +
"right join entity2 e2 on e1.id = e2.id",
"SELECT * FROM entity e " +
"LEFT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " +
"RIGHT JOIN entity2 e2 ON e1.id = e2.id AND e1.tenant_id = 1 " +
"WHERE e2.tenant_id = 1");
assertSql("SELECT * FROM entity e " +
"left join entity1 e1 on e1.id = e.id " +
"inner join entity2 e2 on e1.id = e2.id",
"SELECT * FROM entity e " +
"LEFT JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " +
"INNER JOIN entity2 e2 ON e1.id = e2.id AND e.tenant_id = 1 AND e2.tenant_id = 1");
}
@Test
void selectJoinSubSelect() {
assertSql("select * from (select * from entity) e1 " +
"left join entity2 e2 on e1.id = e2.id",
"SELECT * FROM (SELECT * FROM entity WHERE entity.tenant_id = 1) e1 " +
"LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1");
assertSql("select * from entity1 e1 " +
"left join (select * from entity2) e2 " +
"on e1.id = e2.id",
"SELECT * FROM entity1 e1 " +
"LEFT JOIN (SELECT * FROM entity2 WHERE entity2.tenant_id = 1) e2 " +
"ON e1.id = e2.id " +
"WHERE e1.tenant_id = 1");
}
@Test
void selectSubJoin() {
assertSql("select * FROM " +
"(entity1 e1 right JOIN entity2 e2 ON e1.id = e2.id)",
"SELECT * FROM " +
"(entity1 e1 RIGHT JOIN entity2 e2 ON e1.id = e2.id AND e1.tenant_id = 1) " +
"WHERE e2.tenant_id = 1");
assertSql("select * FROM " +
"(entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id)",
"SELECT * FROM " +
"(entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1) " +
"WHERE e1.tenant_id = 1");
assertSql("select * FROM " +
"(entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id) " +
"right join entity3 e3 on e1.id = e3.id",
"SELECT * FROM " +
"(entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1) " +
"RIGHT JOIN entity3 e3 ON e1.id = e3.id AND e1.tenant_id = 1 " +
"WHERE e3.tenant_id = 1");
assertSql("select * FROM entity e " +
"LEFT JOIN (entity1 e1 right join entity2 e2 ON e1.id = e2.id) " +
"on e.id = e2.id",
"SELECT * FROM entity e " +
"LEFT JOIN (entity1 e1 RIGHT JOIN entity2 e2 ON e1.id = e2.id AND e1.tenant_id = 1) " +
"ON e.id = e2.id AND e2.tenant_id = 1 " +
"WHERE e.tenant_id = 1");
assertSql("select * FROM entity e " +
"LEFT JOIN (entity1 e1 left join entity2 e2 ON e1.id = e2.id) " +
"on e.id = e2.id",
"SELECT * FROM entity e " +
"LEFT JOIN (entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1) " +
"ON e.id = e2.id AND e1.tenant_id = 1 " +
"WHERE e.tenant_id = 1");
assertSql("select * FROM entity e " +
"RIGHT JOIN (entity1 e1 left join entity2 e2 ON e1.id = e2.id) " +
"on e.id = e2.id",
"SELECT * FROM entity e " +
"RIGHT JOIN (entity1 e1 LEFT JOIN entity2 e2 ON e1.id = e2.id AND e2.tenant_id = 1) " +
"ON e.id = e2.id AND e.tenant_id = 1 " +
"WHERE e1.tenant_id = 1");
}
@Test @Test
void selectLeftJoinMultipleTrailingOn() { void selectLeftJoinMultipleTrailingOn() {
// 多个 on 尾缀的 // 多个 on 尾缀的
@ -256,51 +374,97 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
"inner join entity1 e1 on e1.id = e.id " + "inner join entity1 e1 on e1.id = e.id " +
"WHERE e.id = ? OR e.name = ?", "WHERE e.id = ? OR e.name = ?",
"SELECT * FROM entity e " + "SELECT * FROM entity e " +
"INNER JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "INNER JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 AND e1.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1"); "WHERE e.id = ? OR e.name = ?");
assertSql("SELECT * FROM entity e " + assertSql("SELECT * FROM entity e " +
"inner join entity1 e1 on e1.id = e.id " + "inner join entity1 e1 on e1.id = e.id " +
"WHERE (e.id = ? OR e.name = ?)", "WHERE (e.id = ? OR e.name = ?)",
"SELECT * FROM entity e " + "SELECT * FROM entity e " +
"INNER JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "INNER JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 AND e1.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1"); "WHERE (e.id = ? OR e.name = ?)");
// 隐式内连接
assertSql("SELECT * FROM entity,entity1 " +
"WHERE entity.id = entity1.id",
"SELECT * FROM entity, entity1 " +
"WHERE entity.id = entity1.id AND entity.tenant_id = 1 AND entity1.tenant_id = 1");
// 隐式内连接
assertSql("SELECT * FROM entity a, with_as_entity1 b " +
"WHERE a.id = b.id",
"SELECT * FROM entity a, with_as_entity1 b " +
"WHERE a.id = b.id AND a.tenant_id = 1");
assertSql("SELECT * FROM with_as_entity a, with_as_entity1 b " +
"WHERE a.id = b.id",
"SELECT * FROM with_as_entity a, with_as_entity1 b " +
"WHERE a.id = b.id");
// SubJoin with 隐式内连接
assertSql("SELECT * FROM (entity,entity1) " +
"WHERE entity.id = entity1.id",
"SELECT * FROM (entity, entity1) " +
"WHERE entity.id = entity1.id " +
"AND entity.tenant_id = 1 AND entity1.tenant_id = 1");
assertSql("SELECT * FROM ((entity,entity1),entity2) " +
"WHERE entity.id = entity1.id and entity.id = entity2.id",
"SELECT * FROM ((entity, entity1), entity2) " +
"WHERE entity.id = entity1.id AND entity.id = entity2.id " +
"AND entity.tenant_id = 1 AND entity1.tenant_id = 1 AND entity2.tenant_id = 1");
assertSql("SELECT * FROM (entity,(entity1,entity2)) " +
"WHERE entity.id = entity1.id and entity.id = entity2.id",
"SELECT * FROM (entity, (entity1, entity2)) " +
"WHERE entity.id = entity1.id AND entity.id = entity2.id " +
"AND entity.tenant_id = 1 AND entity1.tenant_id = 1 AND entity2.tenant_id = 1");
// 沙雕的括号写法
assertSql("SELECT * FROM (((entity,entity1))) " +
"WHERE entity.id = entity1.id",
"SELECT * FROM (((entity, entity1))) " +
"WHERE entity.id = entity1.id " +
"AND entity.tenant_id = 1 AND entity1.tenant_id = 1");
// 垃圾 inner join todo
// assertSql("SELECT * FROM entity,entity1 " +
// "WHERE entity.id = entity1.id",
// "SELECT * FROM entity e " +
// "INNER JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " +
// "WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1");
} }
@Test @Test
void selectWithAs() { void selectWithAs() {
assertSql("with with_as_A as (select * from entity) select * from with_as_A", assertSql("with with_as_A as (select * from entity) select * from with_as_A",
"WITH with_as_A AS (SELECT * FROM entity WHERE tenant_id = 1) SELECT * FROM with_as_A"); "WITH with_as_A AS (SELECT * FROM entity WHERE entity.tenant_id = 1) SELECT * FROM with_as_A");
}
@Test
void selectIgnoreTable() {
assertSql(" SELECT dict.dict_code, item.item_text AS \"text\", item.item_value AS \"value\" FROM sys_dict_item item INNER JOIN sys_dict dict ON dict.id = item.dict_id WHERE dict.dict_code IN (1, 2, 3) AND item.item_value IN (1, 2, 3)",
"SELECT dict.dict_code, item.item_text AS \"text\", item.item_value AS \"value\" FROM sys_dict_item item INNER JOIN sys_dict dict ON dict.id = item.dict_id AND item.tenant_id = 1 WHERE dict.dict_code IN (1, 2, 3) AND item.item_value IN (1, 2, 3)");
} }
private void assertSql(String sql, String targetSql) { private void assertSql(String sql, String targetSql) {
assertEquals(targetSql, interceptor.parserSingle(sql, null)); assertEquals(targetSql, interceptor.parserSingle(sql, null));
} }
// ========== 额外的测试 ========== // ========== 额外的测试 ==========
@Test @Test
public void testSelectSingle() { public void testSelectSingle() {
// 单表 // 单表
assertSql("select * from t_user where id = ?", assertSql("select * from t_user where id = ?",
"SELECT * FROM t_user WHERE id = ? AND tenant_id = 1 AND dept_id IN (10, 20)"); "SELECT * FROM t_user WHERE id = ? AND t_user.tenant_id = 1 AND t_user.dept_id IN (10, 20)");
assertSql("select * from t_user where id = ? or name = ?", assertSql("select * from t_user where id = ? or name = ?",
"SELECT * FROM t_user WHERE (id = ? OR name = ?) AND tenant_id = 1 AND dept_id IN (10, 20)"); "SELECT * FROM t_user WHERE (id = ? OR name = ?) AND t_user.tenant_id = 1 AND t_user.dept_id IN (10, 20)");
assertSql("SELECT * FROM t_user WHERE (id = ? OR name = ?)", assertSql("SELECT * FROM t_user WHERE (id = ? OR name = ?)",
"SELECT * FROM t_user WHERE (id = ? OR name = ?) AND tenant_id = 1 AND dept_id IN (10, 20)"); "SELECT * FROM t_user WHERE (id = ? OR name = ?) AND t_user.tenant_id = 1 AND t_user.dept_id IN (10, 20)");
/* not */ /* not */
assertSql("SELECT * FROM t_user WHERE not (id = ? OR name = ?)", assertSql("SELECT * FROM t_user WHERE not (id = ? OR name = ?)",
"SELECT * FROM t_user WHERE NOT (id = ? OR name = ?) AND tenant_id = 1 AND dept_id IN (10, 20)"); "SELECT * FROM t_user WHERE NOT (id = ? OR name = ?) AND t_user.tenant_id = 1 AND t_user.dept_id IN (10, 20)");
} }
@Test @Test
@ -329,16 +493,16 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
"right join t_role e1 on e1.id = e.id " + "right join t_role e1 on e1.id = e.id " +
"WHERE e.id = ? OR e.name = ?", "WHERE e.id = ? OR e.name = ?",
"SELECT * FROM t_user e " + "SELECT * FROM t_user e " +
"RIGHT JOIN t_role e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "RIGHT JOIN t_role e1 ON e1.id = e.id AND e.tenant_id = 1 AND e.dept_id IN (10, 20) " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1 AND e.dept_id IN (10, 20)"); "WHERE (e.id = ? OR e.name = ?) AND e1.tenant_id = 1");
// 条件 e.id = ? OR e.name = ? 带括号 // 条件 e.id = ? OR e.name = ? 带括号
assertSql("SELECT * FROM t_user e " + assertSql("SELECT * FROM t_user e " +
"right join t_role e1 on e1.id = e.id " + "right join t_role e1 on e1.id = e.id " +
"WHERE (e.id = ? OR e.name = ?)", "WHERE (e.id = ? OR e.name = ?)",
"SELECT * FROM t_user e " + "SELECT * FROM t_user e " +
"RIGHT JOIN t_role e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "RIGHT JOIN t_role e1 ON e1.id = e.id AND e.tenant_id = 1 AND e.dept_id IN (10, 20) " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1 AND e.dept_id IN (10, 20)"); "WHERE (e.id = ? OR e.name = ?) AND e1.tenant_id = 1");
} }
@Test @Test
@ -348,23 +512,22 @@ public class DataPermissionDatabaseInterceptorTest2 extends BaseMockitoUnitTest
"inner join entity1 e1 on e1.id = e.id " + "inner join entity1 e1 on e1.id = e.id " +
"WHERE e.id = ? OR e.name = ?", "WHERE e.id = ? OR e.name = ?",
"SELECT * FROM t_user e " + "SELECT * FROM t_user e " +
"INNER JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "INNER JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 AND e.dept_id IN (10, 20) AND e1.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1 AND e.dept_id IN (10, 20)"); "WHERE e.id = ? OR e.name = ?");
// 条件 e.id = ? OR e.name = ? 带括号 // 条件 e.id = ? OR e.name = ? 带括号
assertSql("SELECT * FROM t_user e " + assertSql("SELECT * FROM t_user e " +
"inner join t_role e1 on e1.id = e.id " + "inner join entity1 e1 on e1.id = e.id " +
"WHERE (e.id = ? OR e.name = ?)", "WHERE (e.id = ? OR e.name = ?)",
"SELECT * FROM t_user e " + "SELECT * FROM t_user e " +
"INNER JOIN t_role e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "INNER JOIN entity1 e1 ON e1.id = e.id AND e.tenant_id = 1 AND e.dept_id IN (10, 20) AND e1.tenant_id = 1 " +
"WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1 AND e.dept_id IN (10, 20)"); "WHERE (e.id = ? OR e.name = ?)");
// 垃圾 inner join todo // 没有 On inner join
// assertSql("SELECT * FROM entity,entity1 " + assertSql("SELECT * FROM entity,entity1 " +
// "WHERE entity.id = entity1.id", "WHERE entity.id = entity1.id",
// "SELECT * FROM entity e " + "SELECT * FROM entity, entity1 " +
// "INNER JOIN entity1 e1 ON e1.id = e.id AND e1.tenant_id = 1 " + "WHERE entity.id = entity1.id AND entity.tenant_id = 1 AND entity1.tenant_id = 1");
// "WHERE (e.id = ? OR e.name = ?) AND e.tenant_id = 1");
} }
} }

View File

@ -227,7 +227,7 @@ class DeptDataPermissionRuleTest extends BaseMockitoUnitTest {
// 调用 // 调用
Expression expression = rule.getExpression(tableName, tableAlias); Expression expression = rule.getExpression(tableName, tableAlias);
// 断言 // 断言
assertEquals("u.dept_id IN (10, 20) OR u.id = 1", expression.toString()); assertEquals("(u.dept_id IN (10, 20) OR u.id = 1)", expression.toString());
assertSame(deptDataPermission, loginUser.getContext(DeptDataPermissionRule.CONTEXT_KEY, DeptDataPermissionRespDTO.class)); assertSame(deptDataPermission, loginUser.getContext(DeptDataPermissionRule.CONTEXT_KEY, DeptDataPermissionRespDTO.class));
} }
} }

View File

@ -26,5 +26,18 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- 业务组件 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-system-api</artifactId> <!-- 需要使用它,进行 Token 的校验 -->
<version>${revision}</version>
</dependency>
<!-- 工具类相关 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

Some files were not shown because too many files have changed in this diff Show More