初始代码
This commit is contained in:
102
.gitignore
vendored
Normal file
102
.gitignore
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
#======================================================================================================================
|
||||
#========================================= gitignore的基础用法 =========================================
|
||||
#======================================================================================================================
|
||||
# 一.基础语法
|
||||
# .gitignore配置文件的一些通用技巧 [参考:https://git-scm.com/docs/gitignore]
|
||||
# 1.空白行不匹配任何文件,所以可以作为可读性的分隔符,同时两端的空格将会被忽略.
|
||||
# 2.使用[#]开头,将会注释掉整行,使其不进行匹配操作,如果需要匹配#开头,可以使用转义字符[\].
|
||||
# 3.1匹配模式以[/]结尾,表示想要匹配一个目录及其子文件.(比如[foo/]会匹配foo目录及其下面的路径.)
|
||||
# 3.2匹配模式不包含[/],将会全局匹配该文件.
|
||||
# 4.通配符
|
||||
# [*]: 匹配除[/]以外的任何内容,也就意味着[*]不能跨目录.
|
||||
# [?]: 匹配除[/]和[[]以及[]]以外的任何一个字符.
|
||||
# [**]: 匹配所有的内容,或者说匹配任意目录下的内容.
|
||||
# 示例:
|
||||
# 1.[**/foo/bar] 将会匹配所有直接在foo目录下的bar,无论foo处在何处.
|
||||
# 2.[foo/**]则表示匹配foo目录下的所有文件和目录.
|
||||
# 3.[a/**/b]则可以匹配a/b, a/c/b, a/c/d/b,即此处的[**]可以表示0个或多个.
|
||||
# !!! 需要注意的是,除上面示例的用法外,剩余的[**]都是无效的..
|
||||
# 5.可以通过前缀[!]来表示不忽略某些文件,比如可以通过[!a]来确保文件a不会被忽略,即时前面已经声明了忽略其父目录,该模式优先级高于普通忽略模式.
|
||||
# 二.常用命令
|
||||
# 1.git -rm [https://git-scm.com/docs/git-rm]
|
||||
# 删除文件索引,或者同时删除文件索引和物理文件.可以使用通配符.
|
||||
# 2.git-check-ignore [https://git-scm.com/docs/git-check-ignore]
|
||||
# 调试.gitignore文件
|
||||
# 三.注意事项
|
||||
# 1.如果文件已经被git管理,那么后续添加的忽略模式将不会生效,具体解决方法,参考<<二.常用命令>>.
|
||||
|
||||
#=======================================================================================================================
|
||||
#============================== java忽略文件 =====================================
|
||||
#===================== https://github.com/github/gitignore/blob/master/Java.gitignore ==================
|
||||
#=======================================================================================================================
|
||||
# 编译后的class文件,忽略所有以[.class]结尾的文件
|
||||
*.class
|
||||
|
||||
# 日志文件,忽略所有以[.log]结尾的文件.
|
||||
*.log
|
||||
|
||||
# BlueJ 文件,忽略所有以[.ctxt]结尾的文件.
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME),忽略[.mtj.tmp/]目录及其子文件.
|
||||
.mtj.tmp/
|
||||
|
||||
# 打包文件,忽略所有以[.jar]或[.war]或[.nar]或[.ear]或[.zip]或[.tar.gz]或[rar]结尾的文件.
|
||||
*.jar
|
||||
*.war
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
# 虚拟机崩溃日志,忽略所有以[hs_err_pid]开头的文件.[see http://www.java.com/en/download/help/error_hotspot.xml]
|
||||
hs_err_pid*
|
||||
#=======================================================================================================================
|
||||
#============================== maven忽略文件 ===================================
|
||||
#===================== https://github.com/github/gitignore/blob/master/Maven.gitignore ==================
|
||||
#=======================================================================================================================
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
dependency-reduced-pom.xml
|
||||
buildNumber.properties
|
||||
.mvn/timing.properties
|
||||
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
|
||||
!/.mvn/wrapper/maven-wrapper.jar
|
||||
#=======================================================================================================================
|
||||
#============================== IDE环境忽略文件 ==================================
|
||||
#===================== https://github.com/github/gitignore/blob/master/Maven.gitignore ==================
|
||||
#=======================================================================================================================
|
||||
#----------------IDEA-------------
|
||||
.idea/*
|
||||
.idea/compiler.xml
|
||||
.idea/encodings.xml
|
||||
.idea/modules.xml
|
||||
*.iml
|
||||
#=======================================================================================================================
|
||||
#============================== other环境忽略文件 ================================
|
||||
#===================== https://github.com/github/gitignore/blob/master/Maven.gitignore ==================
|
||||
#=======================================================================================================================
|
||||
*.sw?
|
||||
.#*
|
||||
*#
|
||||
*~
|
||||
.classpath
|
||||
.project
|
||||
.settings/
|
||||
bin
|
||||
build
|
||||
target
|
||||
dependency-reduced-pom.xml
|
||||
*.sublime-*
|
||||
/scratch
|
||||
.gradle
|
||||
Guardfile
|
||||
README.html
|
||||
*.iml
|
||||
.idea
|
||||
._*
|
||||
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
# 基础镜像
|
||||
FROM bellsoft/liberica-openjre-rocky:21
|
||||
# FROM bellsoft/liberica-openjre-rocky:17
|
||||
# FROM bellsoft/liberica-openjre-rocky:11
|
||||
# FROM bellsoft/liberica-openjre-rocky:8
|
||||
LABEL maintainer=yunzhupaas-team
|
||||
|
||||
# 设置时区
|
||||
ENV TZ=Asia/Shanghai
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# 指定运行时的工作目录
|
||||
WORKDIR /data/yunzhupaassoft/flowApi
|
||||
|
||||
# 将构建产物jar包拷贝到运行时目录中
|
||||
COPY yunzhupaas-workflow-admin/target/*.jar ./yunzhupaas-flow-admin.jar
|
||||
|
||||
# 指定容器内运行端口
|
||||
EXPOSE 31000
|
||||
|
||||
# 指定容器启动时要运行的命令
|
||||
ENTRYPOINT ["/bin/sh","-c","java -javaagent:./yunzhupaas-flow-admin.jar -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom --add-opens java.base/java.lang=ALL-UNNAMED -XX:+DisableAttachMechanism -jar yunzhupaas-flow-admin.jar"]
|
||||
295
README.md
Normal file
295
README.md
Normal file
@@ -0,0 +1,295 @@
|
||||
> 特别说明:源码、JDK、数据库、Redis等安装或存放路径禁止包含中文、空格、特殊字符等
|
||||
|
||||
## 一 环境要求
|
||||
|
||||
### 1.1 开发环境
|
||||
|
||||
| 类目 | 版本说明或建议 |
|
||||
| --- |------------------------|
|
||||
| 硬件 | 开发电脑建议使用I3及以上CPU,16G及以上内存 |
|
||||
| 操作系统 | Windows 10/11,MacOS |
|
||||
| JDK | 默认使用JDK 21,如需要切换JDK 8/11/17版本请参考文档调整代码,推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版;|
|
||||
| Maven | 依赖管理工具,推荐使用 `3.6.3` 及以上版本 |
|
||||
| 数据库 | 兼容 `MySQL 5.7.x/8.x`、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)` |
|
||||
| IDE | 代码集成开发环境,推荐使用 `IDEA2024` 及以上版本,兼容 `Eclipse`、 `Spring Tool Suite` 等IDE工具 |
|
||||
|
||||
### 1.2 运行环境
|
||||
|
||||
> 适用于测试或生产环境
|
||||
|
||||
| 类目 | 版本说明或建议 |
|
||||
| --- |-----------------------------------------------|
|
||||
| 服务器配置 | 建议至少在 4C/16G/50G的机器配置下运行; |
|
||||
| 操作系统 | 建议使用 `Windows Server 2019` 及以上版本或主流 `Linux` 发行版本,推荐使用 `Linux` 环境;兼容 `统信UOS`,`OpenEuler`,`麒麟服务器版` 等信创环境; |
|
||||
| JRE | 默认使用JRE 21,如需要切换JRE 8、11、17版本请参考文档调整代码;推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版; |
|
||||
| 数据库 | 兼容 `MySQL 5.7.x/8.x`、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)` |
|
||||
|
||||
## 二 关联项目
|
||||
|
||||
| 项目 | 分支 | 说明 |
|
||||
|--------------------|---------------|------------|
|
||||
| yunzhupaas-workflow-core | v1.0.0-stable | 流程引擎基础依赖 |
|
||||
|
||||
## 三 Maven私服配置
|
||||
|
||||
> Apache Maven 依赖管理工具,推荐使用 `3.6.3` 及以上版本<br>解决以下依赖无法从公共Maven仓库下载的问题
|
||||
|
||||
打开Maven安装目录中的 `conf/settings.xml` 文件,<br>
|
||||
在 `<servers></servers>` 中添加如下内容
|
||||
|
||||
```xml
|
||||
<server>
|
||||
<id>maven-releases</id>
|
||||
<username>admin</username>
|
||||
<password>admin123</password>
|
||||
</server>
|
||||
```
|
||||
|
||||
在 `<mirrors></mirrors>` 中添加
|
||||
|
||||
```xml
|
||||
<mirror>
|
||||
<id>maven-releases</id>
|
||||
<mirrorOf>*</mirrorOf>
|
||||
<name>maven-releases</name>
|
||||
<url>https://repository.yunzhupaas.com/repository/maven-public/</url>
|
||||
</mirror>
|
||||
```
|
||||
|
||||
## 四 开发环境
|
||||
|
||||
### 4.1 导入数据库脚本
|
||||
|
||||
> 以 MySQL数据库 为例<br>字符集:utf8mb4<br/>排序规则:utf8mb4_general_ci
|
||||
|
||||
在MySQL创建 `yunzhupaas_flow` 数据库,并将 `yunzhupaas-database/MySQL/yunzhupaas_flow_init.sql` 导入;
|
||||
|
||||
### 4.2 导入依赖
|
||||
|
||||
详见 `yunzhupaas-workflow-core` 项目中的 `README.md` 文档说明
|
||||
|
||||
### 4.3 项目配置
|
||||
|
||||
打开编辑 `yunzhupaas-workflow-admin/src/main/resources/application.yml`
|
||||
|
||||
#### 4.3.1 指定环境配置
|
||||
|
||||
环境说明:
|
||||
|
||||
- `application-dev.yml` 开发环境(默认)
|
||||
- `application-test.yml` 测试环境
|
||||
- `application-preview.yml` 预发布环境
|
||||
- `application-prod.yml` 生产环境
|
||||
|
||||
> 以开发环境为例,根据实际需求修改
|
||||
|
||||
```yaml
|
||||
# application.yml第 6 行,可选值:dev(开发环境-默认)、test(测试环境)、preview(预生产)、prod(生产环境)
|
||||
active: dev
|
||||
```
|
||||
|
||||
#### 4.3.2 调整运行端口
|
||||
> 根据实际需求调整
|
||||
|
||||
打开编辑 `yunzhupaas-workflow-admin/src/main/resources/application-dev.yml`(第 2 行)
|
||||
|
||||
```yaml
|
||||
port: 31000 # 默认运行端口
|
||||
```
|
||||
|
||||
#### 4.3.3 数据库配置示例
|
||||
|
||||
打开编辑 `yunzhupaas-workflow-admin/src/main/resources/application-dev.yml`,修改以下配置
|
||||
|
||||
> 注意:
|
||||
> - 若使用 `Oracle` 或 `达梦` 数据库必需配置模式名称
|
||||
> - 若使用 `PostgreSQL` 和 `人大金仓KingbaseES` 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
||||
> - 若使用 `MySQL` 和 `SQLServer` 无需配置模式名称
|
||||
|
||||
##### 4.3.3.1 MySQL数据库
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.mysql.cj.jdbc.MysqlDataSource
|
||||
url: jdbc:mysql://127.0.0.1:3306/yunzhupaas_flow?yunzhupaasDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
##### 4.3.3.2 SQLServer数据库
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
||||
url: jdbc:sqlserver://127.0.0.1:1433;databaseName=yunzhupaas_flow;trustServerCertificate=true
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
##### 4.3.3.3 Oracle数据库
|
||||
> 必需配置模式名称
|
||||
|
||||
```yaml
|
||||
flowable:
|
||||
database-schema: YUNZHUPAAS_FLOW
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: oracle.jdbc.OracleDriver
|
||||
type: oracle.jdbc.datasource.impl.OracleDataSource
|
||||
url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
||||
username: YUNZHUPAAS_FLOW
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
##### 4.3.3.4 PostgreSQL数据库
|
||||
|
||||
**若使用默认 `public` 模式**
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: org.postgresql.Driver
|
||||
type: org.postgresql.ds.PGSimpleDataSource
|
||||
url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
**若使用其他模式**
|
||||
|
||||
```yaml
|
||||
flowable:
|
||||
database-schema: yunzhupaas_flow
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: org.postgresql.Driver
|
||||
type: org.postgresql.ds.PGSimpleDataSource
|
||||
url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
##### 4.3.3.5 达梦dm8数据库
|
||||
> 必需配置模式名称,连接后面需要添加参数 ?compatibleMode=oracle
|
||||
|
||||
```yaml
|
||||
flowable:
|
||||
database-schema: YUNZHUPAAS_FLOW
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: dm.jdbc.driver.DmDriver
|
||||
type: dm.jdbc.driver.DmdbDataSource
|
||||
url: jdbc:dm://127.0.0.1:5236/YUNZHUPAAS_FLOW?compatibleMode=oracle
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
##### 4.3.3.6 人大金仓KingbaseES数据库
|
||||
|
||||
**若使用默认 `public` 模式**
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: org.postgresql.Driver
|
||||
type: org.postgresql.ds.PGSimpleDataSource
|
||||
url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
**若使用其他模式**
|
||||
|
||||
```yaml
|
||||
flowable:
|
||||
database-schema: yunzhupaas_flow
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: org.postgresql.Driver
|
||||
type: org.postgresql.ds.PGSimpleDataSource
|
||||
url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
username: dbuser
|
||||
password: dbpasswd
|
||||
```
|
||||
|
||||
### 4.4 执行调试或运行
|
||||
|
||||
#### 4.4.1 `yunzhupaas-workflow-core` 项目未使用加密
|
||||
|
||||
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 去除勾选 `encrypted` 选项, 再点击 Maven `刷新` 图标刷新Maven
|
||||
- 找到 `yunzhupaas-workflow-admin/src/main/java/yunzhupaas/YunzhupaasFlowableApplication.java`,右击运行即可。
|
||||
|
||||
若使用JDK9及以上版本,在IDEA中,打开 `Edit Configurations` VM启动参数添加如下参数:
|
||||
|
||||
```bash
|
||||
--add-opens java.base/java.lang=ALL-UNNAMED
|
||||
```
|
||||
|
||||
#### 4.4.2 `yunzhupaas-workflow-core` 项目使用加密
|
||||
|
||||
- 在IDEA中,展开右侧 `Maven` 中 `Profiles` 勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
||||
- 在IDEA中,双击右侧 `Maven` 中 `yunzhupaas-workflow` > `clean` 将会自动安装加密打包插件, 并创建创建`yunzhupaas-workflow-admin/target/copylib` 复制依赖包用于下一步运行
|
||||
|
||||
**参数说明**:
|
||||
|
||||
```bash
|
||||
# 打开项目中`yunzhupaas-workflow-admin/target/copylib` 目录, 复制Jar包 `yunzhupaas-workflow-common-版本号.jar` 的文件名
|
||||
-javaagent:项目存放路径/yunzhupaas-workflow-admin/target/copylib/yunzhupaas-workflow-common-当前版本号.jar(上面复制的文件名)="decryptProjectPathPrefix=yunzhupaas-workflow-common___yunzhupaas-workflow-flowable"
|
||||
```
|
||||
|
||||
- 在IDEA中,打开 `Edit Configurations` VM启动参数添加如下参数
|
||||
|
||||
若使用 JDK8 运行,需要替换下方命令示例中的Jar包路径
|
||||
|
||||
``` bash
|
||||
-XX:+DisableAttachMechanism
|
||||
-javaagent:D:/Projects/IdeaProjects/yunzhupaas-workflow-boot/yunzhupaas-workflow-admin/target/copylib/yunzhupaas-workflow-common-1.0.0-RELEASE.jar="decryptProjectPathPrefix=yunzhupaas-workflow-common___yunzhupaas-workflow-flowable"
|
||||
```
|
||||
|
||||
若使用JDK 9及以上版本,需要替换下方命令示例中的Jar包路径
|
||||
|
||||
``` bash
|
||||
--add-opens java.base/java.lang=ALL-UNNAMED
|
||||
-XX:+DisableAttachMechanism
|
||||
-javaagent:D:/Projects/IdeaProjects/yunzhupaas-workflow-boot/yunzhupaas-workflow-admin/target/copylib/yunzhupaas-workflow-common-1.0.0-RELEASE.jar="decryptProjectPathPrefix=yunzhupaas-workflow-common___yunzhupaas-workflow-flowable"
|
||||
```
|
||||
|
||||
### 4.5 专业版用户
|
||||
> 专业版用户无 `yunzhupaas-workflow-core` 项目
|
||||
|
||||
若使用 `JDK 8/11` 开发
|
||||
|
||||
- 首先全局搜索 `jakarta.` 批量替换为 `javax.`,
|
||||
- 在本项目根目录打开 `pom.xml` 文件,注释第 92 行,解除注释第 94 行;
|
||||
|
||||
## 五 项目发布
|
||||
|
||||
### 5.1 `yunzhupaas-workflow-core` 项目未使用加密
|
||||
|
||||
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 去除勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
||||
- 在IDEA中,双击右侧Maven中 `yunzhupaas-workflow` > `Lifecycle` > `clean` 清理项目
|
||||
- 在IDEA中,双击右侧Maven中 `yunzhupaas-workflow` > `Lifecycle` > `package` 打包项目
|
||||
- 打开 `yunzhupaas-workflow/yunzhupaas-workflow-admin/target`,将 `yunzhupaas-workflow-admin-1.0.0-RELEASE.jar` 上传至服务器
|
||||
|
||||
### 5.2 `yunzhupaas-workflow-core` 项目使用加密
|
||||
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
||||
- 在IDEA中,双击右侧 `Maven` > `yunzhupaas-workflow` > `clean` 将会自动安装加密打包插件
|
||||
- 在IDEA中,双击右侧 `Maven` > `yunzhupaas-workflow` > `Lifecycle` > `package` 打包项目
|
||||
- 打开 `yunzhupaas-workflow/yunzhupaas-workflow-admin/target`,将 `yunzhupaas-workflow-admin-1.0.0-RELEASE.jar` 上传至服务器
|
||||
- 启动命令
|
||||
|
||||
若使用 JDK/JRE 8 运行
|
||||
|
||||
```bash
|
||||
java -javaagent:./yunzhupaas-workflow-admin-1.0.0-RELEASE.jar -XX:+DisableAttachMechanism -jar yunzhupaas-workflow-admin-1.0.0-RELEASE.jar
|
||||
```
|
||||
|
||||
若使用 JDK/JRE 9及以上版本运行
|
||||
|
||||
```bash
|
||||
java -javaagent:./yunzhupaas-workflow-admin-1.0.0-RELEASE.jar --add-opens java.base/java.lang=ALL-UNNAMED -XX:+DisableAttachMechanism -jar yunzhupaas-workflow-admin-1.0.0-RELEASE.jar
|
||||
```
|
||||
37
allatori/class-winter-maven-plugin-pom.xml
Normal file
37
allatori/class-winter-maven-plugin-pom.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?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>
|
||||
|
||||
<groupId>com.idea-aedi</groupId>
|
||||
<artifactId>class-winter-core</artifactId>
|
||||
<version>enhance-2.9.4</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.idea-aedi</groupId>
|
||||
<artifactId>class-winter-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugin-tools</groupId>
|
||||
<artifactId>maven-plugin-annotations</artifactId>
|
||||
<version>3.6.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-project</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
118
pom.xml
Normal file
118
pom.xml
Normal file
@@ -0,0 +1,118 @@
|
||||
<?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>
|
||||
|
||||
<artifactId>yunzhupaas-workflow</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
<modules>
|
||||
<module>yunzhupaas-workflow-admin</module>
|
||||
</modules>
|
||||
|
||||
<parent>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<artifactId>yunzhupaas-workflow-core</artifactId>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<snakeyaml.version>2.2</snakeyaml.version>
|
||||
<mysql.version>8.3.0</mysql.version>
|
||||
<oracle.version>21.9.0.0</oracle.version>
|
||||
<dm18.version>8.1.3.140</dm18.version>
|
||||
<sqlserver.version>12.6.1.jre8</sqlserver.version>
|
||||
<postgre.version>42.6.2</postgre.version>
|
||||
<gaussdb.version>6.0.0</gaussdb.version>
|
||||
<highgo.version>42.5.0</highgo.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>${mysql.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<version>${snakeyaml.version}</version>
|
||||
</dependency>
|
||||
<!-- Oracle-->
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.jdbc</groupId>
|
||||
<artifactId>ojdbc8</artifactId>
|
||||
<version>${oracle.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.nls</groupId>
|
||||
<artifactId>orai18n</artifactId>
|
||||
<version>${oracle.version}</version>
|
||||
</dependency>
|
||||
<!-- dm -->
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
<artifactId>DmJdbcDriver18</artifactId>
|
||||
<version>${dm18.version}</version>
|
||||
</dependency>
|
||||
<!--sqlserver-->
|
||||
<dependency>
|
||||
<groupId>com.microsoft.sqlserver</groupId>
|
||||
<artifactId>mssql-jdbc</artifactId>
|
||||
<version>${sqlserver.version}</version>
|
||||
</dependency>
|
||||
<!--PostGre-->
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>${postgre.version}</version>
|
||||
</dependency>
|
||||
<!--GaussDB-->
|
||||
<!--<dependency>
|
||||
<groupId>org.opengauss</groupId>
|
||||
<artifactId>opengauss-jdbc</artifactId>
|
||||
<version>${gaussdb.version}</version>
|
||||
</dependency>-->
|
||||
<!--HighgoDB-->
|
||||
<!--<dependency>
|
||||
<groupId>com.highgo</groupId>
|
||||
<artifactId>hgdb-pgjdbc</artifactId>
|
||||
<version>${highgo.version}</version>
|
||||
</dependency>-->
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>boot3</id>
|
||||
<activation>
|
||||
<jdk>[17,)</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<com.yunzhupaas.workflow.core.jdk.version></com.yunzhupaas.workflow.core.jdk.version>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>boot2</id>
|
||||
<activation>
|
||||
<jdk>(,17)</jdk>
|
||||
</activation>
|
||||
<properties>
|
||||
<com.yunzhupaas.workflow.core.jdk.version></com.yunzhupaas.workflow.core.jdk.version>
|
||||
<!--若使用JDK8,且无yunzhupaas-workflow-core项目源码, 注释上方版本定义, 删除下方注释, 切换JDK8版本依赖-->
|
||||
<!-- <com.yunzhupaas.workflow.core.jdk.version>-jdk8</com.yunzhupaas.workflow.core.jdk.version>-->
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
113
yunzhupaas-workflow-admin/pom.xml
Normal file
113
yunzhupaas-workflow-admin/pom.xml
Normal file
@@ -0,0 +1,113 @@
|
||||
<?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">
|
||||
<parent>
|
||||
<artifactId>yunzhupaas-workflow</artifactId>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<artifactId>yunzhupaas-workflow-admin</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Oracle-->
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.jdbc</groupId>
|
||||
<artifactId>ojdbc8</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.nls</groupId>
|
||||
<artifactId>orai18n</artifactId>
|
||||
</dependency>
|
||||
<!-- dm -->
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
<artifactId>DmJdbcDriver18</artifactId>
|
||||
</dependency>
|
||||
<!-- sqlserver -->
|
||||
<dependency>
|
||||
<groupId>com.microsoft.sqlserver</groupId>
|
||||
<artifactId>mssql-jdbc</artifactId>
|
||||
</dependency>
|
||||
<!--PostGre-->
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
</dependency>
|
||||
<!--GaussDB-->
|
||||
<!--<dependency>
|
||||
<groupId>org.opengauss</groupId>
|
||||
<artifactId>opengauss-jdbc</artifactId>
|
||||
</dependency>-->
|
||||
<!--HighgoDB-->
|
||||
<!--<dependency>
|
||||
<groupId>com.highgo</groupId>
|
||||
<artifactId>hgdb-pgjdbc</artifactId>
|
||||
</dependency>-->
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>flowable</id>
|
||||
<activation>
|
||||
<jdk>[,]</jdk>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<artifactId>yunzhupaas-workflow-flowable${com.yunzhupaas.workflow.core.jdk.version}</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<!--<profile>
|
||||
<id>activiti</id>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<artifactId>yunzhupaas-workflow-activiti</artifactId>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>-->
|
||||
|
||||
</profiles>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<mainClass>com.yunzhupaas.FlowableApplication</mainClass>
|
||||
<layout>ZIP</layout>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.yunzhupaas;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
/**
|
||||
* 启动类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/2 17:55
|
||||
**/
|
||||
@SpringBootApplication
|
||||
public class FlowableApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(FlowableApplication.class, args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.yunzhupaas.workflow.admin.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import com.yunzhupaas.workflow.admin.result.Result;
|
||||
import com.yunzhupaas.workflow.common.exception.ResultCode;
|
||||
import com.yunzhupaas.workflow.common.model.fo.DefinitionDeleteFo;
|
||||
import com.yunzhupaas.workflow.common.model.fo.DefinitionDeployFo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.DefinitionVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.DeploymentVo;
|
||||
import com.yunzhupaas.workflow.common.service.IDefinitionService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程定义控制层
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 10:36
|
||||
*/
|
||||
@Slf4j
|
||||
@Tag(name = "流程定义控制层", description = "DefinitionController")
|
||||
@RestController
|
||||
@RequestMapping("/api/Flow/definition")
|
||||
@RequiredArgsConstructor
|
||||
public class DefinitionController {
|
||||
private final IDefinitionService definitionService;
|
||||
|
||||
/**
|
||||
* 部署流程定义
|
||||
*
|
||||
* @param fo {@link DefinitionDeployFo}
|
||||
* @return {@link Result<DeploymentVo>}
|
||||
* @since 2024/4/7 13:39
|
||||
**/
|
||||
@Operation(summary = "deploy", description = "部署流程定义")
|
||||
@PostMapping("/deploy")
|
||||
public Result<DeploymentVo> deploy(@RequestBody @Valid DefinitionDeployFo fo) {
|
||||
DeploymentVo vo = definitionService.deployDefinition(fo);
|
||||
if (null != vo) {
|
||||
return Result.success(vo);
|
||||
}
|
||||
return Result.failed(ResultCode.DEPLOY_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询流程定义
|
||||
*
|
||||
* @return {@link Result<List<DefinitionVo>>}
|
||||
* @since 2024/4/7 13:39
|
||||
**/
|
||||
@Operation(summary = "list", description = "列表查询流程定义")
|
||||
@GetMapping("/list")
|
||||
public Result<List<DefinitionVo>> list() {
|
||||
return Result.success(definitionService.listDefinition());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除流程定义
|
||||
*
|
||||
* @param fo {@link DefinitionDeleteFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/7 13:39
|
||||
**/
|
||||
@Operation(summary = "delete", description = "删除流程定义")
|
||||
@DeleteMapping
|
||||
public Result<Boolean> delete(@Valid DefinitionDeleteFo fo) {
|
||||
if (definitionService.deleteDefinition(fo)) {
|
||||
return Result.success(ResultCode.DELETE_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.DELETE_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流程元素
|
||||
*
|
||||
* @param deploymentId 部署ID
|
||||
*/
|
||||
@Operation(summary = "get", description = "获取流程元素")
|
||||
@GetMapping("/{deploymentId}")
|
||||
public Result getStructure(@PathVariable("deploymentId") String deploymentId) {
|
||||
return Result.success(definitionService.getStructure(deploymentId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.yunzhupaas.workflow.admin.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import com.yunzhupaas.workflow.admin.result.Result;
|
||||
import com.yunzhupaas.workflow.common.exception.ResultCode;
|
||||
import com.yunzhupaas.workflow.common.model.fo.InstanceDeleteFo;
|
||||
import com.yunzhupaas.workflow.common.model.fo.InstanceStartFo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.HistoricInstanceVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.InstanceVo;
|
||||
import com.yunzhupaas.workflow.common.service.IInstanceService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 流程实例控制层
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 16:29
|
||||
*/
|
||||
@Slf4j
|
||||
@Tag(name = "流程实例控制层", description = "InstanceController")
|
||||
@RestController
|
||||
@RequestMapping("/api/Flow/instance")
|
||||
@RequiredArgsConstructor
|
||||
public class InstanceController {
|
||||
private final IInstanceService instanceService;
|
||||
|
||||
/**
|
||||
* 启动流程实例
|
||||
*
|
||||
* @param fo {@link InstanceStartFo}
|
||||
* @return {@link Result<InstanceVo>}
|
||||
* @since 2024/4/7 17:35
|
||||
**/
|
||||
@Operation(summary = "start", description = "启动流程实例")
|
||||
@PostMapping("/start")
|
||||
public Result<InstanceVo> start(@RequestBody @Valid InstanceStartFo fo) {
|
||||
InstanceVo vo = instanceService.startById(fo);
|
||||
if (null != vo) {
|
||||
return Result.success(vo);
|
||||
}
|
||||
return Result.failed(ResultCode.START_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流程实例
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link Result<HistoricInstanceVo>}
|
||||
* @since 2024/4/7 18:17
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取流程实例")
|
||||
@GetMapping("/{instanceId}")
|
||||
public Result<HistoricInstanceVo> getInstance(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(instanceService.getHistoricProcessInstance(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除流程实例
|
||||
*
|
||||
* @param fo {@link InstanceDeleteFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/7 17:35
|
||||
**/
|
||||
@Operation(summary = "delete", description = "删除流程实例")
|
||||
@DeleteMapping
|
||||
public Result<Boolean> delete(InstanceDeleteFo fo) {
|
||||
if (instanceService.deleteInstance(fo)) {
|
||||
return Result.success(ResultCode.DELETE_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.DELETE_FAILURE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
package com.yunzhupaas.workflow.admin.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import com.yunzhupaas.workflow.admin.result.Result;
|
||||
import com.yunzhupaas.workflow.common.exception.ResultCode;
|
||||
import com.yunzhupaas.workflow.common.model.fo.*;
|
||||
import com.yunzhupaas.workflow.common.model.vo.HistoricNodeVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.NodeElementVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.TaskVo;
|
||||
import com.yunzhupaas.workflow.common.service.ITaskService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程任务控制层
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 14:17
|
||||
*/
|
||||
@Slf4j
|
||||
@Tag(name = "流程任务控制层", description = "TaskController")
|
||||
@RestController
|
||||
@RequestMapping("/api/Flow/task")
|
||||
@RequiredArgsConstructor
|
||||
public class TaskController {
|
||||
private final ITaskService taskService;
|
||||
|
||||
/**
|
||||
* 根据流程实例ID获取任务
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link Result<List<TaskVo>>}
|
||||
* @since 2024/4/8 15:10
|
||||
**/
|
||||
@Operation(summary = "list", description = "根据流程实例ID获取任务")
|
||||
@GetMapping("/list/{instanceId}")
|
||||
public Result<List<TaskVo>> list(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(taskService.getTask(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 完成任务
|
||||
*
|
||||
* @param fo {@link TaskCompleteFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/8 15:10
|
||||
**/
|
||||
@Operation(summary = "complete", description = "完成任务")
|
||||
@PostMapping("/complete")
|
||||
public Result<Boolean> complete(@RequestBody @Valid TaskCompleteFo fo) {
|
||||
if (taskService.complete(fo)) {
|
||||
return Result.success(ResultCode.COMPLETE_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.COMPLETE_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 单节点跳转多节点
|
||||
*
|
||||
* @param fo {@link MoveSingleToMultiFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/10 10:30
|
||||
**/
|
||||
@Operation(summary = "moveSingleToMulti", description = "单节点跳转多节点")
|
||||
@PostMapping("/move/single/to/multi")
|
||||
public Result<Boolean> moveSingleToMulti(@RequestBody @Valid MoveSingleToMultiFo fo) {
|
||||
if (taskService.moveSingleToMulti(fo)) {
|
||||
return Result.success(ResultCode.JUMP_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.JUMP_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 多节点跳转单节点
|
||||
*
|
||||
* @param fo {@link MoveMultiToSingleFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/10 10:30
|
||||
**/
|
||||
@Operation(summary = "moveMultiToSingle", description = "多节点跳转单节点")
|
||||
@PostMapping("/move/multi/to/single")
|
||||
public Result<Boolean> moveMultiToSingle(@RequestBody @Valid MoveMultiToSingleFo fo) {
|
||||
if (taskService.moveMultiToSingle(fo)) {
|
||||
return Result.success(ResultCode.JUMP_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.JUMP_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 节点跳转
|
||||
*
|
||||
* @param fo {@link JumpFo}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/10 11:50
|
||||
**/
|
||||
@Operation(summary = "jump", description = "节点跳转")
|
||||
@PostMapping("/jump")
|
||||
public Result<Boolean> jump(@RequestBody JumpFo fo) {
|
||||
if (taskService.jump(fo)) {
|
||||
return Result.success(ResultCode.JUMP_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.JUMP_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可回退的节点ID
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/8 16:03
|
||||
**/
|
||||
@Operation(summary = "fallbacks", description = "获取可回退的节点ID")
|
||||
@GetMapping("/fallbacks/{taskId}")
|
||||
public Result<List<String>> fallbacks(@PathVariable("taskId") String taskId) {
|
||||
return Result.success(taskService.getFallbacks(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 退回
|
||||
*
|
||||
* @param fo {@link TaskBackFo}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/9 9:27
|
||||
**/
|
||||
@Operation(summary = "back", description = "退回")
|
||||
@PostMapping("/back")
|
||||
public Result<List<String>> back(@RequestBody @Valid TaskBackFo fo) {
|
||||
return Result.success(taskService.back(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上一级任务节点ID集合
|
||||
*
|
||||
* @param fo {@link TaskPrevFo}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/9 9:27
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取上一级任务节点ID集合")
|
||||
@GetMapping("/prev")
|
||||
public Result<List<String>> getPrev(TaskPrevFo fo) {
|
||||
return Result.success(taskService.getPrevUserTask(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一级任务节点集合
|
||||
*
|
||||
* @param fo {@link TaskNextFo}
|
||||
* @return {@link Result<List< NodeElementVo >>}
|
||||
* @since 2024/4/9 9:27
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取下一级任务节点集合")
|
||||
@GetMapping("/next")
|
||||
public Result<List<NodeElementVo>> getNext(TaskNextFo fo) {
|
||||
return Result.success(taskService.getNextUserTask(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 撤回
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link Result<Boolean>}
|
||||
* @since 2024/4/9 11:08
|
||||
**/
|
||||
@Operation(summary = "retract", description = "撤回")
|
||||
@PostMapping("/retract/{taskId}")
|
||||
public Result<Boolean> retract(@PathVariable("taskId") String taskId) {
|
||||
if (taskService.retract(taskId)) {
|
||||
return Result.success(ResultCode.RETRACT_SUCCESS);
|
||||
}
|
||||
return Result.failed(ResultCode.RETRACT_FAILURE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出线Key集合(若出线的出口为网关,则一并获取网关的出线)
|
||||
*
|
||||
* @param fo {@link TaskOutgoingFo}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/9 11:08
|
||||
**/
|
||||
@Operation(summary = "outgoingFlows", description = "获取出线Key集合(若出线的出口为网关,则一并获取网关的出线)")
|
||||
@GetMapping("/outgoing/flows")
|
||||
public Result<List<String>> getOutgoingFlows(TaskOutgoingFo fo) {
|
||||
return Result.success(taskService.getOutgoingFlows(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取完成的节点Key
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/9 13:54
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取完成的节点Key")
|
||||
@GetMapping("/finished/keys/{instanceId}")
|
||||
public Result<List<String>> getKeysOfFinished(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(taskService.getKeysOfFinished(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取进线的Key
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/9 13:58
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取进线的Key")
|
||||
@GetMapping("/incoming/flows/{taskId}")
|
||||
public Result<List<String>> getIncomingFlows(@PathVariable("taskId") String taskId) {
|
||||
return Result.success(taskService.getIncomingFlows(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取线之后的任务节点
|
||||
*
|
||||
* @param fo {@link FlowTargetTaskFo}
|
||||
* @return {@link Result<String>}
|
||||
* @since 2024/4/17 17:48
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取线之后的任务节点")
|
||||
@GetMapping("/flow/target")
|
||||
public Result<List<String>> getTaskKeyAfterFlow(FlowTargetTaskFo fo) {
|
||||
return Result.success(taskService.getTaskKeyAfterFlow(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取未经过的节点
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link Result<List<String>>}
|
||||
* @since 2024/4/29 10:08
|
||||
**/
|
||||
@Operation(summary = "get", description = "获取未经过的节点")
|
||||
@GetMapping("/tobe/pass/{instanceId}")
|
||||
public Result<List<String>> getToBePass(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(taskService.getToBePass(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取节点的后续节点
|
||||
*
|
||||
* @param fo 参数
|
||||
*/
|
||||
@Operation(summary = "get", description = "获取节点的后续节点")
|
||||
@PostMapping("/after")
|
||||
public Result<List<String>> getAfter(@RequestBody TaskAfterFo fo) {
|
||||
return Result.success(taskService.getAfter(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 异常补偿
|
||||
*
|
||||
* @param fo 参数
|
||||
*/
|
||||
@Operation(summary = "compensate", description = "异常补偿")
|
||||
@PostMapping("/compensate")
|
||||
public Result<List<TaskVo>> compensate(@RequestBody CompensateFo fo) {
|
||||
return Result.success(taskService.compensate(fo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取历史节点
|
||||
*
|
||||
* @param instanceId 实例主键
|
||||
*/
|
||||
@Operation(summary = "historic", description = "获取历史节点")
|
||||
@GetMapping("/historic/{instanceId}")
|
||||
public Result<List<HistoricNodeVo>> getHistoric(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(taskService.getHistoric(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取历史结束节点
|
||||
*
|
||||
* @param instanceId 实例主键
|
||||
*/
|
||||
@Operation(summary = "historicEnd", description = "获取历史结束节点")
|
||||
@GetMapping("/historic/end/{instanceId}")
|
||||
public Result<List<String>> getHistoricEnd(@PathVariable("instanceId") String instanceId) {
|
||||
return Result.success(taskService.getHistoricEnd(instanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取元素信息
|
||||
*
|
||||
* @param model 参数
|
||||
*/
|
||||
@Operation(summary = "elementInfo", description = "获取元素信息")
|
||||
@GetMapping("/element/info")
|
||||
public Result getElementInfo(InfoModel model) {
|
||||
return Result.success(taskService.getElementInfo(model));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.yunzhupaas.workflow.admin.handle;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import com.yunzhupaas.workflow.admin.result.Result;
|
||||
import com.yunzhupaas.workflow.common.exception.BizException;
|
||||
import com.yunzhupaas.workflow.common.exception.ResultCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.support.DefaultMessageSourceResolvable;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.validation.FieldError;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 全局异常处理
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 15:33
|
||||
*/
|
||||
@Slf4j
|
||||
@RestControllerAdvice
|
||||
public class GlobalExceptionHandler {
|
||||
@ExceptionHandler(BindException.class)
|
||||
public Result<?> bindExceptionHandler(BindException e) {
|
||||
log.error("接口校验失败!原因是:{}", e.getMessage(), e);
|
||||
List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
|
||||
List<String> collect = fieldErrors.stream()
|
||||
.map(DefaultMessageSourceResolvable::getDefaultMessage)
|
||||
.collect(Collectors.toList());
|
||||
String msg = String.join(",", collect);
|
||||
return Result.failed(ResultCode.REQUEST_PARAM_IS_NULL, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理空指针的异常
|
||||
*/
|
||||
@ExceptionHandler(value = NullPointerException.class)
|
||||
public Result<?> exceptionHandler(HttpServletRequest req, NullPointerException e) {
|
||||
log.error("发生空指针异常!原因是:{}", e.getMessage(), e);
|
||||
return Result.failed(ResultCode.SYSTEM_EXECUTION_ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理自定义异常
|
||||
*/
|
||||
@ExceptionHandler(value = BizException.class)
|
||||
public Result<?> exceptionHandler(HttpServletRequest req, BizException e) {
|
||||
log.error("BizException!原因是:{}", e.getMessage(), e);
|
||||
return Result.failed(e.getResultCode(), e.getMessage());
|
||||
}
|
||||
|
||||
@ExceptionHandler(Exception.class)
|
||||
public Result<?> exceptionHandler(HttpServletRequest req, Exception e) {
|
||||
log.error("未知异常!原因是:{}", e.getMessage(), e);
|
||||
return Result.failed(e.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.yunzhupaas.workflow.admin.result;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.yunzhupaas.workflow.common.exception.ResultCode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 统一返回结果类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 15:00
|
||||
*/
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Result<T> implements Serializable {
|
||||
private Boolean success;
|
||||
private String code;
|
||||
private String msg;
|
||||
private T data;
|
||||
|
||||
public static <T> Result<T> result(Boolean success, String code, String msg, T data) {
|
||||
Result<T> result = new Result<>();
|
||||
result.setSuccess(success);
|
||||
result.setCode(code);
|
||||
result.setMsg(msg);
|
||||
result.setData(data);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T> Result<T> result(Boolean success, ResultCode resultCode, T data) {
|
||||
return result(success, resultCode.getCode(), resultCode.getMsg(), data);
|
||||
}
|
||||
|
||||
public static <T> boolean isSuccess(Result<T> result) {
|
||||
return result != null && ResultCode.SUCCESS.getCode().equals(result.getCode());
|
||||
}
|
||||
|
||||
public static <T> Result<T> success() {
|
||||
return result(true, ResultCode.SUCCESS, null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> success(T data) {
|
||||
return result(true, ResultCode.SUCCESS, data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> success(ResultCode resultCode, T data) {
|
||||
return result(true, resultCode, data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> success(ResultCode resultCode) {
|
||||
return result(true, resultCode, null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> success(String code, String msg, T data) {
|
||||
return result(true, code, msg, data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> success(String msg) {
|
||||
return result(true, ResultCode.SUCCESS.getCode(), msg, null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed() {
|
||||
return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(T data) {
|
||||
return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(String msg) {
|
||||
return result(false, ResultCode.FAILURE.getCode(), msg, null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(String msg, T data) {
|
||||
return result(false, ResultCode.FAILURE.getCode(), msg, data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(ResultCode resultCode) {
|
||||
return result(false, resultCode.getCode(), resultCode.getMsg(), null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(ResultCode resultCode, T data) {
|
||||
return result(false, resultCode.getCode(), resultCode.getMsg(), data);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(ResultCode resultCode, String msg) {
|
||||
return result(false, resultCode.getCode(), msg, null);
|
||||
}
|
||||
|
||||
public static <T> Result<T> failed(ResultCode resultCode, String msg, T data) {
|
||||
return result(false, resultCode.getCode(), msg, data);
|
||||
}
|
||||
}
|
||||
101
yunzhupaas-workflow-admin/src/main/resources/application-dev.yml
Normal file
101
yunzhupaas-workflow-admin/src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
server:
|
||||
port: 31000
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
org.flowable.engine.impl.persistence.entity.*: debug
|
||||
org.flowable.task.service.impl.persistence.entity.*: debug
|
||||
|
||||
# 注意:
|
||||
# 若使用 Oracle 或 达梦 数据库必需配置模式名称
|
||||
# 若使用 PostgreSQL 和 人大金仓KingbaseES 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
||||
# 若使用 MySQL 和 SQLServer 无需配置模式名称
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
|
||||
# ===================== 1 若使用MySQL数据库-Start =====================
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.mysql.cj.jdbc.MysqlDataSource
|
||||
url: jdbc:mysql://mysql.szlecheng.cn:13306/jnpfsoft_flow?yunzhupaasDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
||||
username: jnpfsoft_flow
|
||||
password: C6J7BiD2bskYAwtZ
|
||||
# ===================== 1 若使用MySQL数据库-End =======================
|
||||
# ===================== 2 若使用SQLServer数据库-Start =====================
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
||||
# url: jdbc:sqlserver://127.0.0.1:1433;databaseName=yunzhupaas_flow;trustServerCertificate=true
|
||||
# username: sa
|
||||
# password: 123456
|
||||
# ===================== 2 若使用SQLServer数据库-End =======================
|
||||
# ===================== 3 若使用Oracle数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: oracle.jdbc.OracleDriver
|
||||
# type: oracle.jdbc.datasource.impl.OracleDataSource
|
||||
# url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
||||
# username: YUNZHUPAAS_FLOW
|
||||
# password: dbpasswd
|
||||
# ===================== 3 若使用Oracle数据库-End =======================
|
||||
# ===================== 4 若使用PostgreSQL数据库-Start =====================
|
||||
# ========== 4.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.1 若使用默认public模式-End ==========
|
||||
# ========== 4.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.2 若使用其他模式-End ==========
|
||||
# ===================== 4 若使用PostgreSQL数据库-End =======================
|
||||
# ===================== 5 若使用达梦dm8数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: dm.jdbc.driver.DmDriver
|
||||
# type: dm.jdbc.driver.DmdbDataSource
|
||||
# # 连接后面需要添加参数 ?compatibleMode=oracle
|
||||
# url: jdbc:dm://127.0.0.1:5236/YUNZHUPAAS_FLOW?compatibleMode=oracle
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ===================== 5 若使用达梦dm8数据库-End =======================
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-Start =====================
|
||||
# ========== 6.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.1 若使用默认public模式-End ==========
|
||||
# ========== 6.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.2 若使用其他模式-End ==========
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-End =======================
|
||||
@@ -0,0 +1,101 @@
|
||||
server:
|
||||
port: 31000
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
org.flowable.engine.impl.persistence.entity.*: debug
|
||||
org.flowable.task.service.impl.persistence.entity.*: debug
|
||||
|
||||
# 注意:
|
||||
# 若使用 Oracle 或 达梦 数据库必需配置模式名称
|
||||
# 若使用 PostgreSQL 和 人大金仓KingbaseES 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
||||
# 若使用 MySQL 和 SQLServer 无需配置模式名称
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
|
||||
# ===================== 1 若使用MySQL数据库-Start =====================
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.mysql.cj.jdbc.MysqlDataSource
|
||||
url: jdbc:mysql://127.0.0.1:3306/yunzhupaas_flow?yunzhupaasDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
# ===================== 1 若使用MySQL数据库-End =======================
|
||||
# ===================== 2 若使用SQLServer数据库-Start =====================
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
||||
# url: jdbc:sqlserver://127.0.0.1:1433;databaseName=yunzhupaas_flow;trustServerCertificate=true
|
||||
# username: sa
|
||||
# password: 123456
|
||||
# ===================== 2 若使用SQLServer数据库-End =======================
|
||||
# ===================== 3 若使用Oracle数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: oracle.jdbc.OracleDriver
|
||||
# type: oracle.jdbc.datasource.impl.OracleDataSource
|
||||
# url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
||||
# username: YUNZHUPAAS_FLOW
|
||||
# password: dbpasswd
|
||||
# ===================== 3 若使用Oracle数据库-End =======================
|
||||
# ===================== 4 若使用PostgreSQL数据库-Start =====================
|
||||
# ========== 4.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.1 若使用默认public模式-End ==========
|
||||
# ========== 4.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.2 若使用其他模式-End ==========
|
||||
# ===================== 4 若使用PostgreSQL数据库-End =======================
|
||||
# ===================== 5 若使用达梦dm8数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: dm.jdbc.driver.DmDriver
|
||||
# type: dm.jdbc.driver.DmdbDataSource
|
||||
# # 连接后面需要添加参数 ?compatibleMode=oracle
|
||||
# url: jdbc:dm://127.0.0.1:5236/YUNZHUPAAS_FLOW?compatibleMode=oracle
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ===================== 5 若使用达梦dm8数据库-End =======================
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-Start =====================
|
||||
# ========== 6.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.1 若使用默认public模式-End ==========
|
||||
# ========== 6.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.2 若使用其他模式-End ==========
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-End =======================
|
||||
@@ -0,0 +1,101 @@
|
||||
server:
|
||||
port: 31000
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
org.flowable.engine.impl.persistence.entity.*: debug
|
||||
org.flowable.task.service.impl.persistence.entity.*: debug
|
||||
|
||||
# 注意:
|
||||
# 若使用 Oracle 或 达梦 数据库必需配置模式名称
|
||||
# 若使用 PostgreSQL 和 人大金仓KingbaseES 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
||||
# 若使用 MySQL 和 SQLServer 无需配置模式名称
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
|
||||
# ===================== 1 若使用MySQL数据库-Start =====================
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.mysql.cj.jdbc.MysqlDataSource
|
||||
url: jdbc:mysql://127.0.0.1:3306/yunzhupaas_flow?yunzhupaasDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
# ===================== 1 若使用MySQL数据库-End =======================
|
||||
# ===================== 2 若使用SQLServer数据库-Start =====================
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
||||
# url: jdbc:sqlserver://127.0.0.1:1433;databaseName=yunzhupaas_flow;trustServerCertificate=true
|
||||
# username: sa
|
||||
# password: 123456
|
||||
# ===================== 2 若使用SQLServer数据库-End =======================
|
||||
# ===================== 3 若使用Oracle数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: oracle.jdbc.OracleDriver
|
||||
# type: oracle.jdbc.datasource.impl.OracleDataSource
|
||||
# url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
||||
# username: YUNZHUPAAS_FLOW
|
||||
# password: dbpasswd
|
||||
# ===================== 3 若使用Oracle数据库-End =======================
|
||||
# ===================== 4 若使用PostgreSQL数据库-Start =====================
|
||||
# ========== 4.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.1 若使用默认public模式-End ==========
|
||||
# ========== 4.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.2 若使用其他模式-End ==========
|
||||
# ===================== 4 若使用PostgreSQL数据库-End =======================
|
||||
# ===================== 5 若使用达梦dm8数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: dm.jdbc.driver.DmDriver
|
||||
# type: dm.jdbc.driver.DmdbDataSource
|
||||
# # 连接后面需要添加参数 ?compatibleMode=oracle
|
||||
# url: jdbc:dm://127.0.0.1:5236/YUNZHUPAAS_FLOW?compatibleMode=oracle
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ===================== 5 若使用达梦dm8数据库-End =======================
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-Start =====================
|
||||
# ========== 6.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.1 若使用默认public模式-End ==========
|
||||
# ========== 6.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.2 若使用其他模式-End ==========
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-End =======================
|
||||
@@ -0,0 +1,101 @@
|
||||
server:
|
||||
port: 31000
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
org.flowable.engine.impl.persistence.entity.*: debug
|
||||
org.flowable.task.service.impl.persistence.entity.*: debug
|
||||
|
||||
# 注意:
|
||||
# 若使用 Oracle 或 达梦 数据库必需配置模式名称
|
||||
# 若使用 PostgreSQL 和 人大金仓KingbaseES 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
||||
# 若使用 MySQL 和 SQLServer 无需配置模式名称
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
|
||||
# ===================== 1 若使用MySQL数据库-Start =====================
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.mysql.cj.jdbc.MysqlDataSource
|
||||
url: jdbc:mysql://127.0.0.1:3306/yunzhupaas_flow?yunzhupaasDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
# ===================== 1 若使用MySQL数据库-End =======================
|
||||
# ===================== 2 若使用SQLServer数据库-Start =====================
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
||||
# url: jdbc:sqlserver://127.0.0.1:1433;databaseName=yunzhupaas_flow;trustServerCertificate=true
|
||||
# username: sa
|
||||
# password: 123456
|
||||
# ===================== 2 若使用SQLServer数据库-End =======================
|
||||
# ===================== 3 若使用Oracle数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: oracle.jdbc.OracleDriver
|
||||
# type: oracle.jdbc.datasource.impl.OracleDataSource
|
||||
# url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
||||
# username: YUNZHUPAAS_FLOW
|
||||
# password: dbpasswd
|
||||
# ===================== 3 若使用Oracle数据库-End =======================
|
||||
# ===================== 4 若使用PostgreSQL数据库-Start =====================
|
||||
# ========== 4.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.1 若使用默认public模式-End ==========
|
||||
# ========== 4.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 4.2 若使用其他模式-End ==========
|
||||
# ===================== 4 若使用PostgreSQL数据库-End =======================
|
||||
# ===================== 5 若使用达梦dm8数据库-Start =====================
|
||||
#flowable:
|
||||
# database-schema: YUNZHUPAAS_FLOW
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: dm.jdbc.driver.DmDriver
|
||||
# type: dm.jdbc.driver.DmdbDataSource
|
||||
# # 连接后面需要添加参数 ?compatibleMode=oracle
|
||||
# url: jdbc:dm://127.0.0.1:5236/YUNZHUPAAS_FLOW?compatibleMode=oracle
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ===================== 5 若使用达梦dm8数据库-End =======================
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-Start =====================
|
||||
# ========== 6.1 若使用默认public模式-Start ==========
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.1 若使用默认public模式-End ==========
|
||||
# ========== 6.2 若使用其他模式-Start ==========
|
||||
#flowable:
|
||||
# database-schema: yunzhupaas_flow
|
||||
#spring:
|
||||
# datasource:
|
||||
# driver-class-name: org.postgresql.Driver
|
||||
# type: org.postgresql.ds.PGSimpleDataSource
|
||||
# url: jdbc:postgresql://127.0.0.1:5432/yunzhupaas_flow
|
||||
# username: dbuser
|
||||
# password: dbpasswd
|
||||
# ========== 6.2 若使用其他模式-End ==========
|
||||
# ===================== 6 若使用人大金仓KingbaseES数据库-End =======================
|
||||
24
yunzhupaas-workflow-admin/src/main/resources/application.yml
Normal file
24
yunzhupaas-workflow-admin/src/main/resources/application.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
spring:
|
||||
application:
|
||||
name: yunzhupaas-workflow
|
||||
profiles:
|
||||
# 指定环境配置 dev(开发环境-默认)、test(测试环境)、preview(预生产)、prod(生产环境)
|
||||
active: dev
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
allow-circular-references: true
|
||||
|
||||
logging:
|
||||
config: classpath:logback-spring.xml
|
||||
springdoc:
|
||||
default-flat-param-object: true
|
||||
api-docs:
|
||||
enabled: true
|
||||
|
||||
#SpringDoc增强
|
||||
#knife4j:
|
||||
# basic: #接口文档访问鉴权
|
||||
# enable: true
|
||||
# username: yunzhupaas
|
||||
# password: 123456
|
||||
# enable: true
|
||||
339
yunzhupaas-workflow-admin/src/main/resources/logback-spring.xml
Normal file
339
yunzhupaas-workflow-admin/src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,339 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
|
||||
<!--日志格式应用spring boot默认的格式,也可以自己更改-->
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||
<property name="FILE_LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] [%logger{50}] [%M] [%line] - %msg%n" />
|
||||
<springProperty scope="context" name="SERVICE_NAME" source="spring.application.name" defaultValue="yunzhupaas"/>
|
||||
|
||||
<!--定义日志存放的位置,默认存放在项目启动的相对路径的目录-->
|
||||
<springProperty scope="context" name="LOG_PATH" source="log.path" defaultValue="log/${SERVICE_NAME}"/>
|
||||
<!-- 全局日志等级 -->
|
||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="log.level.root" defaultValue="INFO"/>
|
||||
<!-- 服务自定义等级 如需自定义服务日志等级 修改下方的【自定义服务名】与nacos上的log.level.自定义服务名=等级 -->
|
||||
<springProperty scope="context" name="LOG_LEVEL" source="log.level.yunzhupaas-boot" defaultValue="${LOG_LEVEL_ROOT}"/>
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,level为 ERROR 日志 -->
|
||||
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_error.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/error/%d{yyyy-MM-dd,aux}/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
|
||||
<!-- 此日志文件只记录error级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>error</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,level为 INFO 日志 -->
|
||||
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_info.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/info/%d{yyyy-MM-dd,aux}/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
|
||||
<!-- 此日志文件只记录info级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>info</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,level为 WARN 日志 -->
|
||||
<appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_warn.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/warn/%d{yyyy-MM-dd,aux}/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
|
||||
<!-- 此日志文件只记录warn级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>warn</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,level为 DEBUG 日志 -->
|
||||
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_debug.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/debug/%d{yyyy-MM-dd,aux}/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
|
||||
<!-- 此日志文件只记录debug级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>debug</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,所有日志 -->
|
||||
<appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_total.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/total/%d{yyyy-MM-dd,aux}/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 日志记录器,日期滚动记录,level 根据配置动态输出日志 -->
|
||||
<appender name="FILE_RELEASE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
||||
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||
<file>${LOG_PATH}/log_release.log</file>
|
||||
|
||||
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
|
||||
<!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
|
||||
<fileNamePattern>${LOG_PATH}/release/%d{yyyy-MM-dd,aux}/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<!--日志最大的历史7天-->
|
||||
<maxHistory>7</maxHistory>
|
||||
|
||||
<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
|
||||
命名日志文件,例如log-error-2013-12-21.0.log -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<!-- 追加方式记录日志 -->
|
||||
<append>true</append>
|
||||
|
||||
<!-- 日志文件的格式 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
|
||||
<!-- 此日志文件只记录warn级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>${LOG_LEVEL}</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 异步输出 DEBUG -->
|
||||
<appender name="ASYNC_FILE_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE_DEBUG"/>
|
||||
</appender>
|
||||
<!-- 异步输出 INFO -->
|
||||
<appender name="ASYNC_FILE_INFO" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE_INFO"/>
|
||||
</appender>
|
||||
<!-- 异步输出 WARN -->
|
||||
<appender name="ASYNC_FILE_WARN" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE_WARN"/>
|
||||
</appender>
|
||||
<!-- 异步输出 ERROR -->
|
||||
<appender name="ASYNC_FILE_ERROR" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE_ERROR"/>
|
||||
</appender>
|
||||
<!-- 异步输出 ALL -->
|
||||
<appender name="ASYNC_FILE_ALL" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE_ALL"/>
|
||||
</appender>
|
||||
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<!-- 异步输出 控制台 -->
|
||||
<appender name="ASYNC_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</appender>
|
||||
|
||||
|
||||
<!--<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||
<!– 必填:目标:LogStash的 IP:Port –>
|
||||
<destination>192.168.0.50:50000</destination>
|
||||
<!– 可选:保持程序存活时间 –>
|
||||
<keepAliveDuration>5 minutes</keepAliveDuration>
|
||||
<!– 可选:重连延迟时长 –>
|
||||
<reconnectionDelay>10 second</reconnectionDelay>
|
||||
<!– 可选:等待策略 –>
|
||||
<waitStrategyType>sleeping</waitStrategyType>
|
||||
<!– ============ encoder必须配置,有多种可选 ============= –>
|
||||
<!– 编码器二:LoggingEventCompositeJsonEncoder –>
|
||||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||||
<providers>
|
||||
<!– 时间戳:时区 –>
|
||||
<timestamp>
|
||||
<timeZone>UTC</timeZone>
|
||||
</timestamp>
|
||||
<!– 模式 –>
|
||||
<pattern>
|
||||
<pattern>
|
||||
{
|
||||
"severity": "%level",
|
||||
"service": "${SERVICE_NAME:-}",
|
||||
"trace": "%X{X-B3-TraceId:-}",
|
||||
"span": "%X{X-B3-SpanId:-}",
|
||||
"exportable": "%X{X-Span-Export:-}",
|
||||
"pid": "${PID:-}",
|
||||
"thread": "%thread",
|
||||
"class": "%logger{40}",
|
||||
"msg": "%message"
|
||||
<!–"idx_pre": "elk-original-third-access",–>
|
||||
<!–"json": "#asJson{%message}" 这个asJson可以把对应的字符串作为json对象取出来,这样es可以对json里面的字段索引了–>
|
||||
}
|
||||
</pattern>
|
||||
</pattern>
|
||||
</providers>
|
||||
</encoder>
|
||||
</appender>-->
|
||||
|
||||
|
||||
<root level="${LOG_LEVEL}">
|
||||
<appender-ref ref="ASYNC_STDOUT"/>
|
||||
<appender-ref ref="ASYNC_FILE_ERROR"/>
|
||||
<appender-ref ref="ASYNC_FILE_INFO"/>
|
||||
<appender-ref ref="ASYNC_FILE_WARN"/>
|
||||
<appender-ref ref="ASYNC_FILE_DEBUG"/>
|
||||
<appender-ref ref="ASYNC_FILE_ALL"/>
|
||||
<!--<appender-ref ref="LOGSTASH"/>-->
|
||||
</root>
|
||||
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user