init
This commit is contained in:
10
.idea/.gitignore
generated
vendored
Normal file
10
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 已忽略包含查询文件的默认文件夹
|
||||||
|
/queries/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
99
.idea/compiler.xml
generated
Normal file
99
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile default="true" name="Default" enabled="true" />
|
||||||
|
<profile name="Annotation profile for water-Vue-Plus" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<processorPath useClasspath="false">
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/com/github/therapi/therapi-runtime-javadoc-scribe/0.15.0/therapi-runtime-javadoc-scribe-0.15.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/com/github/therapi/therapi-runtime-javadoc/0.15.0/therapi-runtime-javadoc-0.15.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.42/lombok-1.18.42.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-configuration-processor/3.5.12/spring-boot-configuration-processor-3.5.12.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus-processor/1.5.0/mapstruct-plus-processor-1.5.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus/1.5.0/mapstruct-plus-1.5.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.6.3/mapstruct-1.6.3.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus-object-convert/1.5.0/mapstruct-plus-object-convert-1.5.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/cn/easii/tutelary-repackage-javapoet/1.0.5/tutelary-repackage-javapoet-1.0.5.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.6.3/mapstruct-processor-1.6.3.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/tools/gem/gem-api/1.0.0.Alpha3/gem-api-1.0.0.Alpha3.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok-mapstruct-binding/0.2.0/lombok-mapstruct-binding-0.2.0.jar" />
|
||||||
|
</processorPath>
|
||||||
|
<module name="water-app" />
|
||||||
|
<module name="water-common-excel" />
|
||||||
|
<module name="water-generator" />
|
||||||
|
<module name="water-monitor-admin" />
|
||||||
|
<module name="water-common-translation" />
|
||||||
|
<module name="water-admin" />
|
||||||
|
<module name="water-common-idempotent" />
|
||||||
|
<module name="water-common-web" />
|
||||||
|
<module name="water-common-websocket" />
|
||||||
|
<module name="water-common-sms" />
|
||||||
|
<module name="water-common-ratelimiter" />
|
||||||
|
<module name="water-common-mybatis" />
|
||||||
|
<module name="water-common-security" />
|
||||||
|
<module name="water-common-oss" />
|
||||||
|
<module name="water-common-satoken" />
|
||||||
|
<module name="water-common-mail" />
|
||||||
|
<module name="water-common-sensitive" />
|
||||||
|
<module name="water-common-sse" />
|
||||||
|
<module name="water-common-log" />
|
||||||
|
<module name="water-common-job" />
|
||||||
|
<module name="water-common-json" />
|
||||||
|
<module name="water-job" />
|
||||||
|
<module name="water-common-social" />
|
||||||
|
<module name="water-common-core" />
|
||||||
|
<module name="water-snailjob-server" />
|
||||||
|
<module name="water-common-doc" />
|
||||||
|
<module name="water-common-tenant" />
|
||||||
|
<module name="water-common-encrypt" />
|
||||||
|
<module name="water-common-redis" />
|
||||||
|
<module name="water-system" />
|
||||||
|
<module name="water-demo" />
|
||||||
|
<module name="water-workflow" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
</component>
|
||||||
|
<component name="JavacSettings">
|
||||||
|
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||||
|
<module name="water" options="-parameters" />
|
||||||
|
<module name="water-admin" options="-parameters" />
|
||||||
|
<module name="water-app" options="-parameters" />
|
||||||
|
<module name="water-common" options="-parameters" />
|
||||||
|
<module name="water-common-core" options="-parameters" />
|
||||||
|
<module name="water-common-doc" options="-parameters" />
|
||||||
|
<module name="water-common-encrypt" options="-parameters" />
|
||||||
|
<module name="water-common-excel" options="-parameters" />
|
||||||
|
<module name="water-common-idempotent" options="-parameters" />
|
||||||
|
<module name="water-common-job" options="-parameters" />
|
||||||
|
<module name="water-common-json" options="-parameters" />
|
||||||
|
<module name="water-common-log" options="-parameters" />
|
||||||
|
<module name="water-common-mail" options="-parameters" />
|
||||||
|
<module name="water-common-mybatis" options="-parameters" />
|
||||||
|
<module name="water-common-oss" options="-parameters" />
|
||||||
|
<module name="water-common-ratelimiter" options="-parameters" />
|
||||||
|
<module name="water-common-redis" options="-parameters" />
|
||||||
|
<module name="water-common-satoken" options="-parameters" />
|
||||||
|
<module name="water-common-security" options="-parameters" />
|
||||||
|
<module name="water-common-sensitive" options="-parameters" />
|
||||||
|
<module name="water-common-sms" options="-parameters" />
|
||||||
|
<module name="water-common-social" options="-parameters" />
|
||||||
|
<module name="water-common-sse" options="-parameters" />
|
||||||
|
<module name="water-common-tenant" options="-parameters" />
|
||||||
|
<module name="water-common-translation" options="-parameters" />
|
||||||
|
<module name="water-common-web" options="-parameters" />
|
||||||
|
<module name="water-common-websocket" options="-parameters" />
|
||||||
|
<module name="water-demo" options="-parameters" />
|
||||||
|
<module name="water-extend" options="-parameters" />
|
||||||
|
<module name="water-generator" options="-parameters" />
|
||||||
|
<module name="water-job" options="-parameters" />
|
||||||
|
<module name="water-modules" options="-parameters" />
|
||||||
|
<module name="water-monitor-admin" options="-parameters" />
|
||||||
|
<module name="water-snailjob-server" options="-parameters" />
|
||||||
|
<module name="water-system" options="-parameters" />
|
||||||
|
<module name="water-workflow" options="-parameters" />
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
77
.idea/encodings.xml
generated
Normal file
77
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-admin/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-admin/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-core/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-doc/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-doc/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-encrypt/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-excel/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-excel/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-idempotent/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-job/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-job/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-json/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-json/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-log/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-log/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mail/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-mybatis/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-oss/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-oss/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-ratelimiter/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-redis/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-redis/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-satoken/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-satoken/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-security/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sensitive/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sensitive/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sms/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-social/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-social/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sse/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-sse/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-tenant/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-tenant/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-translation/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-translation/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-web/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-web/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-common/water-common-websocket/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/water-monitor-admin/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-extend/water-snailjob-server/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-app/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-demo/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-demo/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-generator/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-job/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-job/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-system/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-workflow/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/water-modules/water-workflow/src/main/resources" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
25
.idea/jarRepositories.xml
generated
Normal file
25
.idea/jarRepositories.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="public" />
|
||||||
|
<option name="name" value="huawei nexus" />
|
||||||
|
<option name="url" value="https://mirrors.huaweicloud.com/repository/maven/" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
14
.idea/misc.xml
generated
Normal file
14
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
12
.run/ruoyi-monitor-admin.run.xml
Normal file
12
.run/ruoyi-monitor-admin.run.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="water-monitor-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||||
|
<deployment type="dockerfile">
|
||||||
|
<settings>
|
||||||
|
<option name="imageTag" value="water/water-monitor-admin:5.6.0" />
|
||||||
|
<option name="buildOnly" value="true" />
|
||||||
|
<option name="sourceFilePath" value="water-extend/water-monitor-admin/Dockerfile" />
|
||||||
|
</settings>
|
||||||
|
</deployment>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
12
.run/ruoyi-server.run.xml
Normal file
12
.run/ruoyi-server.run.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="water-server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||||
|
<deployment type="dockerfile">
|
||||||
|
<settings>
|
||||||
|
<option name="imageTag" value="water/water-server:5.6.0" />
|
||||||
|
<option name="buildOnly" value="true" />
|
||||||
|
<option name="sourceFilePath" value="water-admin/Dockerfile" />
|
||||||
|
</settings>
|
||||||
|
</deployment>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
12
.run/ruoyi-snailjob-server.run.xml
Normal file
12
.run/ruoyi-snailjob-server.run.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="water-snailjob-server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||||
|
<deployment type="dockerfile">
|
||||||
|
<settings>
|
||||||
|
<option name="imageTag" value="water/water-snailjob-server:5.6.0" />
|
||||||
|
<option name="buildOnly" value="true" />
|
||||||
|
<option name="sourceFilePath" value="water-extend/water-snailjob-server/Dockerfile" />
|
||||||
|
</settings>
|
||||||
|
</deployment>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
20
LICENSE
Normal file
20
LICENSE
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2019 water-Vue-Plus
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
1758
logs/sys-console.log
Normal file
1758
logs/sys-console.log
Normal file
File diff suppressed because it is too large
Load Diff
975
logs/sys-error.log
Normal file
975
logs/sys-error.log
Normal file
@@ -0,0 +1,975 @@
|
|||||||
|
2026-04-24 08:28:29 [main] ERROR o.s.boot.SpringApplication - Application run failed
|
||||||
|
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authController' defined in file [D:\code\water\water-admin\target\classes\org\dromara\web\controller\AuthController.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'sysLoginService' defined in file [D:\code\water\water-admin\target\classes\org\dromara\web\service\SysLoginService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'sysTenantServiceImpl' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\service\impl\SysTenantServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'sysTenantMapper' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\mapper\SysTenantMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:991)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:628)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
|
||||||
|
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
|
||||||
|
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
|
||||||
|
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
|
||||||
|
at org.dromara.DromaraApplication.main(DromaraApplication.java:19)
|
||||||
|
Suppressed: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.closeables" is null
|
||||||
|
at org.springframework.boot.web.embedded.undertow.UndertowWebServer.destroy(UndertowWebServer.java:293)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:153)
|
||||||
|
... 4 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysLoginService' defined in file [D:\code\water\water-admin\target\classes\org\dromara\web\service\SysLoginService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'sysTenantServiceImpl' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\service\impl\SysTenantServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'sysTenantMapper' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\mapper\SysTenantMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 19 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysTenantServiceImpl' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\service\impl\SysTenantServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'sysTenantMapper' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\mapper\SysTenantMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 33 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysTenantMapper' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\mapper\SysTenantMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1556)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1450)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:606)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 47 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1541)
|
||||||
|
... 59 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.class]: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1708)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 72 common frames omitted
|
||||||
|
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:610)
|
||||||
|
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:597)
|
||||||
|
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:97)
|
||||||
|
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:80)
|
||||||
|
at com.baomidou.dynamic.datasource.creator.hikaricp.HikariDataSourceCreator.createDataSource(HikariDataSourceCreator.java:85)
|
||||||
|
at com.baomidou.dynamic.datasource.creator.DefaultDataSourceCreator.createDataSource(DefaultDataSourceCreator.java:97)
|
||||||
|
at com.baomidou.dynamic.datasource.provider.AbstractDataSourceProvider.createDataSourceMap(AbstractDataSourceProvider.java:53)
|
||||||
|
at com.baomidou.dynamic.datasource.provider.YmlDynamicDataSourceProvider.loadDataSources(YmlDynamicDataSourceProvider.java:53)
|
||||||
|
at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.afterPropertiesSet(DynamicRoutingDataSource.java:229)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
|
||||||
|
... 82 common frames omitted
|
||||||
|
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
|
||||||
|
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:102)
|
||||||
|
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
|
||||||
|
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81)
|
||||||
|
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55)
|
||||||
|
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:65)
|
||||||
|
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:914)
|
||||||
|
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:833)
|
||||||
|
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:416)
|
||||||
|
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
|
||||||
|
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:180)
|
||||||
|
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
|
||||||
|
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
|
||||||
|
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
|
||||||
|
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
|
||||||
|
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
|
||||||
|
... 91 common frames omitted
|
||||||
|
Caused by: com.mysql.cj.exceptions.CJException: Access denied for user 'root'@'localhost' (using password: YES)
|
||||||
|
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
|
||||||
|
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
|
||||||
|
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
|
||||||
|
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
|
||||||
|
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
|
||||||
|
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:52)
|
||||||
|
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:95)
|
||||||
|
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:140)
|
||||||
|
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:118)
|
||||||
|
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:853)
|
||||||
|
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:776)
|
||||||
|
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:745)
|
||||||
|
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:147)
|
||||||
|
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:461)
|
||||||
|
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:206)
|
||||||
|
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1334)
|
||||||
|
at com.mysql.cj.NativeSession.connect(NativeSession.java:155)
|
||||||
|
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:854)
|
||||||
|
... 100 common frames omitted
|
||||||
|
2026-04-24 08:33:02 [main] ERROR o.s.boot.SpringApplication - Application run failed
|
||||||
|
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cacheController' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\controller\monitor\CacheController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:991)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:628)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
|
||||||
|
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
|
||||||
|
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
|
||||||
|
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
|
||||||
|
at org.dromara.DromaraApplication.main(DromaraApplication.java:19)
|
||||||
|
Suppressed: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.closeables" is null
|
||||||
|
at org.springframework.boot.web.embedded.undertow.UndertowWebServer.destroy(UndertowWebServer.java:293)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:153)
|
||||||
|
... 4 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 19 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 33 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
|
||||||
|
... 47 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisConnectionException: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:229)
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:188)
|
||||||
|
at org.redisson.connection.ConnectionManager.create(ConnectionManager.java:98)
|
||||||
|
at org.redisson.Redisson.<init>(Redisson.java:76)
|
||||||
|
at org.redisson.Redisson.create(Redisson.java:119)
|
||||||
|
at org.redisson.spring.starter.RedissonAutoConfiguration.redisson(RedissonAutoConfiguration.java:329)
|
||||||
|
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||||
|
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||||
|
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||||
|
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172)
|
||||||
|
... 50 common frames omitted
|
||||||
|
Caused by: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:224)
|
||||||
|
... 60 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$2(ConnectionsHolder.java:169)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire$$$capture(CompletableFuture.java:911)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$5(ConnectionsHolder.java:183)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire$$$capture(CompletableFuture.java:841)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.client.RedisClient$2$1.run(RedisClient.java:316)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
|
||||||
|
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
|
||||||
|
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
|
||||||
|
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||||
|
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||||
|
at java.base/java.lang.Thread.run(Thread.java:842)
|
||||||
|
Caused by: java.util.concurrent.CompletionException: org.redisson.client.RedisException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?. channel: [id: 0x9b03c9b9, L:/127.0.0.1:64149 - R:localhost/127.0.0.1:6379] command: (AUTH), params: (password masked)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1097)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.client.protocol.CommandData.tryFailure(CommandData.java:87)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:433)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:220)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:148)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:124)
|
||||||
|
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:545)
|
||||||
|
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
|
||||||
|
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
|
||||||
|
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
|
||||||
|
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
|
||||||
|
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||||
|
... 4 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?. channel: [id: 0x9b03c9b9, L:/127.0.0.1:64149 - R:localhost/127.0.0.1:6379] command: (AUTH), params: (password masked)
|
||||||
|
... 23 common frames omitted
|
||||||
|
2026-04-24 08:33:41 [main] ERROR o.s.boot.SpringApplication - Application run failed
|
||||||
|
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cacheController' defined in file [D:\code\water\water-modules\water-system\target\classes\org\dromara\system\controller\monitor\CacheController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:991)
|
||||||
|
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:628)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
|
||||||
|
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
|
||||||
|
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
|
||||||
|
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
|
||||||
|
at org.dromara.DromaraApplication.main(DromaraApplication.java:19)
|
||||||
|
Suppressed: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.closeables" is null
|
||||||
|
at org.springframework.boot.web.embedded.undertow.UndertowWebServer.destroy(UndertowWebServer.java:293)
|
||||||
|
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:153)
|
||||||
|
... 4 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 19 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
|
||||||
|
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
|
||||||
|
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
|
||||||
|
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
|
||||||
|
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
|
||||||
|
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||||
|
... 33 common frames omitted
|
||||||
|
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169)
|
||||||
|
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
|
||||||
|
... 47 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisConnectionException: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:229)
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:188)
|
||||||
|
at org.redisson.connection.ConnectionManager.create(ConnectionManager.java:98)
|
||||||
|
at org.redisson.Redisson.<init>(Redisson.java:76)
|
||||||
|
at org.redisson.Redisson.create(Redisson.java:119)
|
||||||
|
at org.redisson.spring.starter.RedissonAutoConfiguration.redisson(RedissonAutoConfiguration.java:329)
|
||||||
|
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||||
|
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||||
|
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||||
|
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
|
||||||
|
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172)
|
||||||
|
... 50 common frames omitted
|
||||||
|
Caused by: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)
|
||||||
|
at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:224)
|
||||||
|
... 60 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||||
|
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$2(ConnectionsHolder.java:169)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire$$$capture(CompletableFuture.java:911)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.connection.ConnectionsHolder.lambda$createConnection$5(ConnectionsHolder.java:183)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire$$$capture(CompletableFuture.java:841)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.client.RedisClient$2$1.run(RedisClient.java:316)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)
|
||||||
|
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
|
||||||
|
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
|
||||||
|
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
|
||||||
|
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||||
|
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||||
|
at java.base/java.lang.Thread.run(Thread.java:842)
|
||||||
|
Caused by: java.util.concurrent.CompletionException: org.redisson.client.RedisException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?. channel: [id: 0x23a902e7, L:/127.0.0.1:50178 - R:localhost/127.0.0.1:6379] command: (AUTH), params: (password masked)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1097)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
|
||||||
|
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
|
||||||
|
at org.redisson.client.protocol.CommandData.tryFailure(CommandData.java:87)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:433)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:220)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:148)
|
||||||
|
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:124)
|
||||||
|
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:545)
|
||||||
|
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
|
||||||
|
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
|
||||||
|
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
|
||||||
|
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
|
||||||
|
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
|
||||||
|
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
|
||||||
|
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||||
|
... 4 common frames omitted
|
||||||
|
Caused by: org.redisson.client.RedisException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?. channel: [id: 0x23a902e7, L:/127.0.0.1:50178 - R:localhost/127.0.0.1:6379] command: (AUTH), params: (password masked)
|
||||||
|
... 23 common frames omitted
|
||||||
|
2026-04-24 08:34:40 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:34:40 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:34:50 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:00 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:10 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:20 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:30 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:40 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[9] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:35:50 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:00 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:10 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:20 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:30 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:40 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[15] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:36:50 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:00 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:10 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:20 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:30 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:40 [snail-job-grpc-client-executor-127.0.0.1-22] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[23] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:37:50 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:00 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:10 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:20 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:30 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:40 [snail-job-grpc-client-executor-127.0.0.1-30] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[30] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:38:50 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:39:00 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:39:10 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:15 [snail-job-grpc-client-executor-127.0.0.1-0] ERROR c.a.s.c.j.c.r.JobExecutorRegistrar - Job executors register error requestId:[0] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:15 [snail-job-grpc-client-executor-127.0.0.1-2] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[1] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:25 [snail-job-grpc-client-executor-127.0.0.1-3] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[3] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:35 [snail-job-grpc-client-executor-127.0.0.1-4] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[4] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:45 [snail-job-grpc-client-executor-127.0.0.1-5] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[5] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:42:55 [snail-job-grpc-client-executor-127.0.0.1-6] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[6] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:05 [snail-job-grpc-client-executor-127.0.0.1-7] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[7] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:15 [snail-job-grpc-client-executor-127.0.0.1-8] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[8] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:25 [snail-job-grpc-client-executor-127.0.0.1-10] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[10] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:35 [snail-job-grpc-client-executor-127.0.0.1-11] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[11] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:45 [snail-job-grpc-client-executor-127.0.0.1-12] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[12] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:43:55 [snail-job-grpc-client-executor-127.0.0.1-13] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[13] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:05 [snail-job-grpc-client-executor-127.0.0.1-14] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[14] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:15 [snail-job-grpc-client-executor-127.0.0.1-15] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[16] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:25 [snail-job-grpc-client-executor-127.0.0.1-17] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[17] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:35 [snail-job-grpc-client-executor-127.0.0.1-18] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[18] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:45 [snail-job-grpc-client-executor-127.0.0.1-19] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[19] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:44:55 [snail-job-grpc-client-executor-127.0.0.1-20] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[20] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:05 [snail-job-grpc-client-executor-127.0.0.1-21] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[21] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:15 [snail-job-grpc-client-executor-127.0.0.1-23] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[22] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:25 [snail-job-grpc-client-executor-127.0.0.1-24] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[24] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:35 [snail-job-grpc-client-executor-127.0.0.1-25] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[25] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:45 [snail-job-grpc-client-executor-127.0.0.1-26] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[26] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:45:55 [snail-job-grpc-client-executor-127.0.0.1-27] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[27] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:05 [snail-job-grpc-client-executor-127.0.0.1-28] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[28] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:15 [snail-job-grpc-client-executor-127.0.0.1-30] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[30] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:25 [snail-job-grpc-client-executor-127.0.0.1-31] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[31] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:35 [snail-job-grpc-client-executor-127.0.0.1-32] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[32] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:45 [snail-job-grpc-client-executor-127.0.0.1-33] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[33] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:46:55 [snail-job-grpc-client-executor-127.0.0.1-34] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[34] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:05 [snail-job-grpc-client-executor-127.0.0.1-35] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[35] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:15 [snail-job-grpc-client-executor-127.0.0.1-37] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[37] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:25 [snail-job-grpc-client-executor-127.0.0.1-38] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[38] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:35 [snail-job-grpc-client-executor-127.0.0.1-39] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[39] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:45 [snail-job-grpc-client-executor-127.0.0.1-40] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[40] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:47:55 [snail-job-grpc-client-executor-127.0.0.1-41] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[41] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:05 [snail-job-grpc-client-executor-127.0.0.1-42] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[42] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:15 [snail-job-grpc-client-executor-127.0.0.1-43] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[44] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:25 [snail-job-grpc-client-executor-127.0.0.1-45] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[45] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:35 [snail-job-grpc-client-executor-127.0.0.1-46] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[46] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:45 [snail-job-grpc-client-executor-127.0.0.1-47] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[47] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:48:55 [snail-job-grpc-client-executor-127.0.0.1-48] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[48] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:05 [snail-job-grpc-client-executor-127.0.0.1-49] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[49] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:15 [snail-job-grpc-client-executor-127.0.0.1-51] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[51] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:25 [snail-job-grpc-client-executor-127.0.0.1-52] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[52] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:35 [snail-job-grpc-client-executor-127.0.0.1-53] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[53] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:45 [snail-job-grpc-client-executor-127.0.0.1-54] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[54] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:49:55 [snail-job-grpc-client-executor-127.0.0.1-55] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[55] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:05 [snail-job-grpc-client-executor-127.0.0.1-56] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[56] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:15 [snail-job-grpc-client-executor-127.0.0.1-57] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[58] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:25 [snail-job-grpc-client-executor-127.0.0.1-59] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[59] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:35 [snail-job-grpc-client-executor-127.0.0.1-60] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[60] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:45 [snail-job-grpc-client-executor-127.0.0.1-61] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[61] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:50:55 [snail-job-grpc-client-executor-127.0.0.1-62] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[62] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:05 [snail-job-grpc-client-executor-127.0.0.1-63] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[63] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:15 [snail-job-grpc-client-executor-127.0.0.1-65] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[65] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:25 [snail-job-grpc-client-executor-127.0.0.1-66] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[66] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:35 [snail-job-grpc-client-executor-127.0.0.1-67] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[67] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:45 [snail-job-grpc-client-executor-127.0.0.1-68] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[68] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:51:55 [snail-job-grpc-client-executor-127.0.0.1-69] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[69] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:05 [snail-job-grpc-client-executor-127.0.0.1-70] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[70] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:15 [snail-job-grpc-client-executor-127.0.0.1-72] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[71] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:25 [snail-job-grpc-client-executor-127.0.0.1-73] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[73] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:35 [snail-job-grpc-client-executor-127.0.0.1-74] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[74] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:45 [snail-job-grpc-client-executor-127.0.0.1-75] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[75] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:52:55 [snail-job-grpc-client-executor-127.0.0.1-76] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[76] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:05 [snail-job-grpc-client-executor-127.0.0.1-77] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[77] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:15 [snail-job-grpc-client-executor-127.0.0.1-79] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[79] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:25 [snail-job-grpc-client-executor-127.0.0.1-80] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[80] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:35 [snail-job-grpc-client-executor-127.0.0.1-81] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[81] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:45 [snail-job-grpc-client-executor-127.0.0.1-82] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[82] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:53:55 [snail-job-grpc-client-executor-127.0.0.1-83] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[83] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:05 [snail-job-grpc-client-executor-127.0.0.1-84] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[84] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:15 [snail-job-grpc-client-executor-127.0.0.1-86] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[86] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:25 [snail-job-grpc-client-executor-127.0.0.1-87] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[87] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:35 [snail-job-grpc-client-executor-127.0.0.1-88] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[88] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:45 [snail-job-grpc-client-executor-127.0.0.1-89] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[89] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:54:55 [snail-job-grpc-client-executor-127.0.0.1-90] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[90] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:05 [snail-job-grpc-client-executor-127.0.0.1-91] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[91] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:15 [snail-job-grpc-client-executor-127.0.0.1-93] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[93] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:25 [snail-job-grpc-client-executor-127.0.0.1-94] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[94] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:35 [snail-job-grpc-client-executor-127.0.0.1-95] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[95] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:45 [snail-job-grpc-client-executor-127.0.0.1-96] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[96] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:55:55 [snail-job-grpc-client-executor-127.0.0.1-97] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[97] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:05 [snail-job-grpc-client-executor-127.0.0.1-98] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[98] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:15 [snail-job-grpc-client-executor-127.0.0.1-99] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[100] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:25 [snail-job-grpc-client-executor-127.0.0.1-101] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[101] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:35 [snail-job-grpc-client-executor-127.0.0.1-102] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[102] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:45 [snail-job-grpc-client-executor-127.0.0.1-103] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[103] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:56:55 [snail-job-grpc-client-executor-127.0.0.1-104] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[104] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:05 [snail-job-grpc-client-executor-127.0.0.1-105] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[105] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:15 [snail-job-grpc-client-executor-127.0.0.1-107] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[106] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:25 [snail-job-grpc-client-executor-127.0.0.1-108] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[108] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:35 [snail-job-grpc-client-executor-127.0.0.1-109] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[109] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:45 [snail-job-grpc-client-executor-127.0.0.1-110] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[110] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:57:55 [snail-job-grpc-client-executor-127.0.0.1-111] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[111] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:05 [snail-job-grpc-client-executor-127.0.0.1-112] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[112] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:15 [snail-job-grpc-client-executor-127.0.0.1-113] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[114] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:25 [snail-job-grpc-client-executor-127.0.0.1-115] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[115] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:35 [snail-job-grpc-client-executor-127.0.0.1-116] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[116] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:45 [snail-job-grpc-client-executor-127.0.0.1-117] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[117] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:58:55 [snail-job-grpc-client-executor-127.0.0.1-118] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[118] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:05 [snail-job-grpc-client-executor-127.0.0.1-119] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[119] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:15 [snail-job-grpc-client-executor-127.0.0.1-121] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[120] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:25 [snail-job-grpc-client-executor-127.0.0.1-122] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[122] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:35 [snail-job-grpc-client-executor-127.0.0.1-123] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[123] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:45 [snail-job-grpc-client-executor-127.0.0.1-124] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[124] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 08:59:55 [snail-job-grpc-client-executor-127.0.0.1-125] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[125] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:05 [snail-job-grpc-client-executor-127.0.0.1-126] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[126] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:15 [snail-job-grpc-client-executor-127.0.0.1-127] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[128] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:25 [snail-job-grpc-client-executor-127.0.0.1-129] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[129] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:35 [snail-job-grpc-client-executor-127.0.0.1-130] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[130] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:45 [snail-job-grpc-client-executor-127.0.0.1-131] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[131] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:00:55 [snail-job-grpc-client-executor-127.0.0.1-132] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[132] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:05 [snail-job-grpc-client-executor-127.0.0.1-133] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[133] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:15 [snail-job-grpc-client-executor-127.0.0.1-135] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[134] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:25 [snail-job-grpc-client-executor-127.0.0.1-136] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[136] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:35 [snail-job-grpc-client-executor-127.0.0.1-137] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[137] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:45 [snail-job-grpc-client-executor-127.0.0.1-138] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[138] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:01:55 [snail-job-grpc-client-executor-127.0.0.1-139] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[139] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:05 [snail-job-grpc-client-executor-127.0.0.1-140] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[140] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:15 [snail-job-grpc-client-executor-127.0.0.1-141] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[142] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:25 [snail-job-grpc-client-executor-127.0.0.1-143] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[143] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:35 [snail-job-grpc-client-executor-127.0.0.1-144] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[144] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:45 [snail-job-grpc-client-executor-127.0.0.1-145] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[145] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:02:55 [snail-job-grpc-client-executor-127.0.0.1-146] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[146] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:05 [snail-job-grpc-client-executor-127.0.0.1-147] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[147] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:15 [snail-job-grpc-client-executor-127.0.0.1-148] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[148] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:25 [snail-job-grpc-client-executor-127.0.0.1-150] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[150] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:35 [snail-job-grpc-client-executor-127.0.0.1-151] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[151] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:45 [snail-job-grpc-client-executor-127.0.0.1-152] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[152] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:03:55 [snail-job-grpc-client-executor-127.0.0.1-153] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[153] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:05 [snail-job-grpc-client-executor-127.0.0.1-154] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[154] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:15 [snail-job-grpc-client-executor-127.0.0.1-155] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[155] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:25 [snail-job-grpc-client-executor-127.0.0.1-157] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[157] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:35 [snail-job-grpc-client-executor-127.0.0.1-158] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[158] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:45 [snail-job-grpc-client-executor-127.0.0.1-159] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[159] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:04:55 [snail-job-grpc-client-executor-127.0.0.1-160] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[160] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:05 [snail-job-grpc-client-executor-127.0.0.1-161] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[161] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:15 [snail-job-grpc-client-executor-127.0.0.1-162] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[163] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:25 [snail-job-grpc-client-executor-127.0.0.1-164] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[164] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:35 [snail-job-grpc-client-executor-127.0.0.1-165] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[165] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:45 [snail-job-grpc-client-executor-127.0.0.1-166] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[166] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:05:55 [snail-job-grpc-client-executor-127.0.0.1-167] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[167] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:05 [snail-job-grpc-client-executor-127.0.0.1-168] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[168] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:15 [snail-job-grpc-client-executor-127.0.0.1-169] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[169] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:25 [snail-job-grpc-client-executor-127.0.0.1-171] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[171] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:35 [snail-job-grpc-client-executor-127.0.0.1-172] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[172] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:45 [snail-job-grpc-client-executor-127.0.0.1-173] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[173] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:06:55 [snail-job-grpc-client-executor-127.0.0.1-174] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[174] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:05 [snail-job-grpc-client-executor-127.0.0.1-175] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[175] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:15 [snail-job-grpc-client-executor-127.0.0.1-177] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[176] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:25 [snail-job-grpc-client-executor-127.0.0.1-178] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[178] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:35 [snail-job-grpc-client-executor-127.0.0.1-179] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[179] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:45 [snail-job-grpc-client-executor-127.0.0.1-180] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[180] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:07:55 [snail-job-grpc-client-executor-127.0.0.1-181] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[181] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:05 [snail-job-grpc-client-executor-127.0.0.1-182] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[182] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:15 [snail-job-grpc-client-executor-127.0.0.1-184] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[184] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:25 [snail-job-grpc-client-executor-127.0.0.1-185] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[185] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:35 [snail-job-grpc-client-executor-127.0.0.1-186] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[186] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:45 [snail-job-grpc-client-executor-127.0.0.1-187] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[187] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:08:55 [snail-job-grpc-client-executor-127.0.0.1-188] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[188] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:05 [snail-job-grpc-client-executor-127.0.0.1-189] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[189] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:15 [snail-job-grpc-client-executor-127.0.0.1-190] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[191] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:25 [snail-job-grpc-client-executor-127.0.0.1-192] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[192] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:35 [snail-job-grpc-client-executor-127.0.0.1-193] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[193] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:45 [snail-job-grpc-client-executor-127.0.0.1-194] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[194] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:09:55 [snail-job-grpc-client-executor-127.0.0.1-195] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[195] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:05 [snail-job-grpc-client-executor-127.0.0.1-196] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[196] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:15 [snail-job-grpc-client-executor-127.0.0.1-197] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[198] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:25 [snail-job-grpc-client-executor-127.0.0.1-199] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[199] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:35 [snail-job-grpc-client-executor-127.0.0.1-200] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[200] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:45 [snail-job-grpc-client-executor-127.0.0.1-201] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[201] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:10:55 [snail-job-grpc-client-executor-127.0.0.1-202] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[202] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:05 [snail-job-grpc-client-executor-127.0.0.1-203] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[203] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:15 [snail-job-grpc-client-executor-127.0.0.1-205] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[205] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:25 [snail-job-grpc-client-executor-127.0.0.1-206] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[206] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:35 [snail-job-grpc-client-executor-127.0.0.1-207] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[207] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:45 [snail-job-grpc-client-executor-127.0.0.1-208] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[208] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:11:55 [snail-job-grpc-client-executor-127.0.0.1-209] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[209] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:05 [snail-job-grpc-client-executor-127.0.0.1-210] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[210] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:15 [snail-job-grpc-client-executor-127.0.0.1-211] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[212] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:25 [snail-job-grpc-client-executor-127.0.0.1-213] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[213] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:35 [snail-job-grpc-client-executor-127.0.0.1-214] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[214] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:45 [snail-job-grpc-client-executor-127.0.0.1-215] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[215] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:12:55 [snail-job-grpc-client-executor-127.0.0.1-216] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[216] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:05 [snail-job-grpc-client-executor-127.0.0.1-217] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[217] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:15 [snail-job-grpc-client-executor-127.0.0.1-219] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[218] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:25 [snail-job-grpc-client-executor-127.0.0.1-220] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[220] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:35 [snail-job-grpc-client-executor-127.0.0.1-221] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[221] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:45 [snail-job-grpc-client-executor-127.0.0.1-222] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[222] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:13:55 [snail-job-grpc-client-executor-127.0.0.1-223] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[223] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:05 [snail-job-grpc-client-executor-127.0.0.1-224] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[224] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:15 [snail-job-grpc-client-executor-127.0.0.1-225] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[225] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:25 [snail-job-grpc-client-executor-127.0.0.1-227] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[227] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:35 [snail-job-grpc-client-executor-127.0.0.1-228] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[228] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:45 [snail-job-grpc-client-executor-127.0.0.1-229] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[229] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:14:55 [snail-job-grpc-client-executor-127.0.0.1-230] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[230] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:05 [snail-job-grpc-client-executor-127.0.0.1-231] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[231] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:15 [snail-job-grpc-client-executor-127.0.0.1-233] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[233] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:25 [snail-job-grpc-client-executor-127.0.0.1-234] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[234] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:35 [snail-job-grpc-client-executor-127.0.0.1-235] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[235] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:45 [snail-job-grpc-client-executor-127.0.0.1-236] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[236] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:15:55 [snail-job-grpc-client-executor-127.0.0.1-237] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[237] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:05 [snail-job-grpc-client-executor-127.0.0.1-238] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[238] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:15 [snail-job-grpc-client-executor-127.0.0.1-240] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[240] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:25 [snail-job-grpc-client-executor-127.0.0.1-241] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[241] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:35 [snail-job-grpc-client-executor-127.0.0.1-242] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[242] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:45 [snail-job-grpc-client-executor-127.0.0.1-243] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[243] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:16:55 [snail-job-grpc-client-executor-127.0.0.1-244] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[244] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:05 [snail-job-grpc-client-executor-127.0.0.1-245] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[245] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:15 [snail-job-grpc-client-executor-127.0.0.1-247] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[247] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:25 [snail-job-grpc-client-executor-127.0.0.1-248] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[248] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:35 [snail-job-grpc-client-executor-127.0.0.1-249] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[249] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:45 [snail-job-grpc-client-executor-127.0.0.1-250] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[250] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:17:55 [snail-job-grpc-client-executor-127.0.0.1-251] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[251] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:05 [snail-job-grpc-client-executor-127.0.0.1-252] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[252] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:15 [snail-job-grpc-client-executor-127.0.0.1-254] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[254] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:25 [snail-job-grpc-client-executor-127.0.0.1-255] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[255] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:35 [snail-job-grpc-client-executor-127.0.0.1-256] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[256] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:45 [snail-job-grpc-client-executor-127.0.0.1-257] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[257] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:18:55 [snail-job-grpc-client-executor-127.0.0.1-258] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[258] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:05 [snail-job-grpc-client-executor-127.0.0.1-259] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[259] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:15 [snail-job-grpc-client-executor-127.0.0.1-260] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[260] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:25 [snail-job-grpc-client-executor-127.0.0.1-262] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[262] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:35 [snail-job-grpc-client-executor-127.0.0.1-263] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[263] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:45 [snail-job-grpc-client-executor-127.0.0.1-264] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[264] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:19:55 [snail-job-grpc-client-executor-127.0.0.1-265] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[265] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:05 [snail-job-grpc-client-executor-127.0.0.1-266] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[266] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:15 [snail-job-grpc-client-executor-127.0.0.1-267] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[268] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:25 [snail-job-grpc-client-executor-127.0.0.1-269] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[269] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:35 [snail-job-grpc-client-executor-127.0.0.1-270] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[270] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:45 [snail-job-grpc-client-executor-127.0.0.1-271] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[271] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:20:55 [snail-job-grpc-client-executor-127.0.0.1-272] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[272] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:05 [snail-job-grpc-client-executor-127.0.0.1-273] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[273] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:15 [snail-job-grpc-client-executor-127.0.0.1-274] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[274] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:25 [snail-job-grpc-client-executor-127.0.0.1-276] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[276] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:35 [snail-job-grpc-client-executor-127.0.0.1-277] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[277] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:45 [snail-job-grpc-client-executor-127.0.0.1-278] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[278] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:21:55 [snail-job-grpc-client-executor-127.0.0.1-279] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[279] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:05 [snail-job-grpc-client-executor-127.0.0.1-280] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[280] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:15 [snail-job-grpc-client-executor-127.0.0.1-281] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[281] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:25 [snail-job-grpc-client-executor-127.0.0.1-283] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[283] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:35 [snail-job-grpc-client-executor-127.0.0.1-284] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[284] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:45 [snail-job-grpc-client-executor-127.0.0.1-285] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[285] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:22:55 [snail-job-grpc-client-executor-127.0.0.1-286] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[286] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:05 [snail-job-grpc-client-executor-127.0.0.1-287] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[287] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:15 [snail-job-grpc-client-executor-127.0.0.1-288] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[288] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:25 [snail-job-grpc-client-executor-127.0.0.1-290] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[290] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:35 [snail-job-grpc-client-executor-127.0.0.1-291] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[291] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:45 [snail-job-grpc-client-executor-127.0.0.1-292] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[292] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:23:55 [snail-job-grpc-client-executor-127.0.0.1-293] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[293] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:05 [snail-job-grpc-client-executor-127.0.0.1-294] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[294] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:15 [snail-job-grpc-client-executor-127.0.0.1-296] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[295] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:25 [snail-job-grpc-client-executor-127.0.0.1-297] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[297] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:35 [snail-job-grpc-client-executor-127.0.0.1-298] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[298] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:45 [snail-job-grpc-client-executor-127.0.0.1-299] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[299] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:24:55 [snail-job-grpc-client-executor-127.0.0.1-300] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[300] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:05 [snail-job-grpc-client-executor-127.0.0.1-301] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[301] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:15 [snail-job-grpc-client-executor-127.0.0.1-302] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[303] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:25 [snail-job-grpc-client-executor-127.0.0.1-304] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[304] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:35 [snail-job-grpc-client-executor-127.0.0.1-305] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[305] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:45 [snail-job-grpc-client-executor-127.0.0.1-306] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[306] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:25:55 [snail-job-grpc-client-executor-127.0.0.1-307] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[307] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:05 [snail-job-grpc-client-executor-127.0.0.1-308] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[308] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:15 [snail-job-grpc-client-executor-127.0.0.1-309] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[310] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:25 [snail-job-grpc-client-executor-127.0.0.1-311] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[311] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:35 [snail-job-grpc-client-executor-127.0.0.1-312] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[312] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:45 [snail-job-grpc-client-executor-127.0.0.1-313] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[313] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:26:55 [snail-job-grpc-client-executor-127.0.0.1-314] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[314] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:05 [snail-job-grpc-client-executor-127.0.0.1-315] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[315] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:15 [snail-job-grpc-client-executor-127.0.0.1-316] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[317] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:25 [snail-job-grpc-client-executor-127.0.0.1-318] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[318] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:35 [snail-job-grpc-client-executor-127.0.0.1-319] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[319] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:45 [snail-job-grpc-client-executor-127.0.0.1-320] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[320] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:27:55 [snail-job-grpc-client-executor-127.0.0.1-321] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[321] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:05 [snail-job-grpc-client-executor-127.0.0.1-322] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[322] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:15 [snail-job-grpc-client-executor-127.0.0.1-323] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[324] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:25 [snail-job-grpc-client-executor-127.0.0.1-325] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[325] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:35 [snail-job-grpc-client-executor-127.0.0.1-326] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[326] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:45 [snail-job-grpc-client-executor-127.0.0.1-327] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[327] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:28:55 [snail-job-grpc-client-executor-127.0.0.1-328] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[328] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:05 [snail-job-grpc-client-executor-127.0.0.1-329] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[329] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:15 [snail-job-grpc-client-executor-127.0.0.1-330] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[330] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:25 [snail-job-grpc-client-executor-127.0.0.1-332] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[332] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:35 [snail-job-grpc-client-executor-127.0.0.1-333] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[333] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:45 [snail-job-grpc-client-executor-127.0.0.1-334] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[334] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:29:55 [snail-job-grpc-client-executor-127.0.0.1-335] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[335] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:05 [snail-job-grpc-client-executor-127.0.0.1-336] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[336] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:15 [snail-job-grpc-client-executor-127.0.0.1-337] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[338] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:25 [snail-job-grpc-client-executor-127.0.0.1-339] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[339] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:35 [snail-job-grpc-client-executor-127.0.0.1-340] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[340] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:45 [snail-job-grpc-client-executor-127.0.0.1-341] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[341] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:30:55 [snail-job-grpc-client-executor-127.0.0.1-342] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[342] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:05 [snail-job-grpc-client-executor-127.0.0.1-343] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[343] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:15 [snail-job-grpc-client-executor-127.0.0.1-344] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[345] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:25 [snail-job-grpc-client-executor-127.0.0.1-346] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[346] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:35 [snail-job-grpc-client-executor-127.0.0.1-347] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[347] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:45 [snail-job-grpc-client-executor-127.0.0.1-348] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[348] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:31:55 [snail-job-grpc-client-executor-127.0.0.1-349] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[349] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:05 [snail-job-grpc-client-executor-127.0.0.1-350] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[350] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:15 [snail-job-grpc-client-executor-127.0.0.1-352] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[352] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:25 [snail-job-grpc-client-executor-127.0.0.1-353] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[353] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:35 [snail-job-grpc-client-executor-127.0.0.1-354] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[354] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:45 [snail-job-grpc-client-executor-127.0.0.1-355] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[355] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:32:55 [snail-job-grpc-client-executor-127.0.0.1-356] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[356] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:05 [snail-job-grpc-client-executor-127.0.0.1-357] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[357] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:15 [snail-job-grpc-client-executor-127.0.0.1-358] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[359] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:25 [snail-job-grpc-client-executor-127.0.0.1-360] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[360] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:35 [snail-job-grpc-client-executor-127.0.0.1-361] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[361] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:45 [snail-job-grpc-client-executor-127.0.0.1-362] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[362] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:33:55 [snail-job-grpc-client-executor-127.0.0.1-363] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[363] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:05 [snail-job-grpc-client-executor-127.0.0.1-364] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[364] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:15 [snail-job-grpc-client-executor-127.0.0.1-365] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[365] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:25 [snail-job-grpc-client-executor-127.0.0.1-367] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[367] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:35 [snail-job-grpc-client-executor-127.0.0.1-368] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[368] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:45 [snail-job-grpc-client-executor-127.0.0.1-369] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[369] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:34:55 [snail-job-grpc-client-executor-127.0.0.1-370] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[370] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:05 [snail-job-grpc-client-executor-127.0.0.1-371] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[371] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:15 [snail-job-grpc-client-executor-127.0.0.1-373] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[372] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:25 [snail-job-grpc-client-executor-127.0.0.1-374] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[374] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:35 [snail-job-grpc-client-executor-127.0.0.1-375] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[375] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:45 [snail-job-grpc-client-executor-127.0.0.1-376] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[376] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:35:55 [snail-job-grpc-client-executor-127.0.0.1-377] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[377] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:05 [snail-job-grpc-client-executor-127.0.0.1-378] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[378] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:15 [snail-job-grpc-client-executor-127.0.0.1-380] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[380] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:25 [snail-job-grpc-client-executor-127.0.0.1-381] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[381] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:35 [snail-job-grpc-client-executor-127.0.0.1-382] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[382] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:45 [snail-job-grpc-client-executor-127.0.0.1-383] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[383] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:36:55 [snail-job-grpc-client-executor-127.0.0.1-384] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[384] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:05 [snail-job-grpc-client-executor-127.0.0.1-385] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[385] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:15 [snail-job-grpc-client-executor-127.0.0.1-386] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[386] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:25 [snail-job-grpc-client-executor-127.0.0.1-388] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[388] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:35 [snail-job-grpc-client-executor-127.0.0.1-389] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[389] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:45 [snail-job-grpc-client-executor-127.0.0.1-390] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[390] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:37:55 [snail-job-grpc-client-executor-127.0.0.1-391] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[391] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:05 [snail-job-grpc-client-executor-127.0.0.1-392] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[392] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:15 [snail-job-grpc-client-executor-127.0.0.1-393] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[393] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:25 [snail-job-grpc-client-executor-127.0.0.1-395] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[395] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:35 [snail-job-grpc-client-executor-127.0.0.1-396] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[396] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:45 [snail-job-grpc-client-executor-127.0.0.1-397] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[397] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:38:55 [snail-job-grpc-client-executor-127.0.0.1-398] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[398] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:05 [snail-job-grpc-client-executor-127.0.0.1-399] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[399] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:15 [snail-job-grpc-client-executor-127.0.0.1-401] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[401] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:25 [snail-job-grpc-client-executor-127.0.0.1-402] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[402] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:35 [snail-job-grpc-client-executor-127.0.0.1-403] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[403] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:45 [snail-job-grpc-client-executor-127.0.0.1-404] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[404] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:39:55 [snail-job-grpc-client-executor-127.0.0.1-405] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[405] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:05 [snail-job-grpc-client-executor-127.0.0.1-406] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[406] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:15 [snail-job-grpc-client-executor-127.0.0.1-408] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[408] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:25 [snail-job-grpc-client-executor-127.0.0.1-409] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[409] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:35 [snail-job-grpc-client-executor-127.0.0.1-410] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[410] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:45 [snail-job-grpc-client-executor-127.0.0.1-411] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[411] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:40:55 [snail-job-grpc-client-executor-127.0.0.1-412] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[412] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:05 [snail-job-grpc-client-executor-127.0.0.1-413] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[413] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:15 [snail-job-grpc-client-executor-127.0.0.1-414] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[415] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:25 [snail-job-grpc-client-executor-127.0.0.1-416] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[416] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:35 [snail-job-grpc-client-executor-127.0.0.1-417] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[417] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:45 [snail-job-grpc-client-executor-127.0.0.1-418] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[418] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:41:55 [snail-job-grpc-client-executor-127.0.0.1-419] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[419] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:05 [snail-job-grpc-client-executor-127.0.0.1-420] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[420] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:15 [snail-job-grpc-client-executor-127.0.0.1-422] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[422] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:25 [snail-job-grpc-client-executor-127.0.0.1-423] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[423] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:35 [snail-job-grpc-client-executor-127.0.0.1-424] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[424] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:45 [snail-job-grpc-client-executor-127.0.0.1-425] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[425] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:42:55 [snail-job-grpc-client-executor-127.0.0.1-426] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[426] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:05 [snail-job-grpc-client-executor-127.0.0.1-427] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[427] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:15 [snail-job-grpc-client-executor-127.0.0.1-428] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[428] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:25 [snail-job-grpc-client-executor-127.0.0.1-430] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[430] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:35 [snail-job-grpc-client-executor-127.0.0.1-431] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[431] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:45 [snail-job-grpc-client-executor-127.0.0.1-432] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[432] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:43:55 [snail-job-grpc-client-executor-127.0.0.1-433] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[433] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:05 [snail-job-grpc-client-executor-127.0.0.1-434] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[434] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:15 [snail-job-grpc-client-executor-127.0.0.1-435] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[436] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:25 [snail-job-grpc-client-executor-127.0.0.1-437] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[437] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:35 [snail-job-grpc-client-executor-127.0.0.1-438] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[438] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:45 [snail-job-grpc-client-executor-127.0.0.1-439] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[439] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:44:55 [snail-job-grpc-client-executor-127.0.0.1-440] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[440] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:05 [snail-job-grpc-client-executor-127.0.0.1-441] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[441] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:15 [snail-job-grpc-client-executor-127.0.0.1-443] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[442] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:25 [snail-job-grpc-client-executor-127.0.0.1-444] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[444] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:35 [snail-job-grpc-client-executor-127.0.0.1-445] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[445] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:45 [snail-job-grpc-client-executor-127.0.0.1-446] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[446] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:45:55 [snail-job-grpc-client-executor-127.0.0.1-447] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[447] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:05 [snail-job-grpc-client-executor-127.0.0.1-448] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[448] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:15 [snail-job-grpc-client-executor-127.0.0.1-450] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[449] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:25 [snail-job-grpc-client-executor-127.0.0.1-451] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[451] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:35 [snail-job-grpc-client-executor-127.0.0.1-452] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[452] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:45 [snail-job-grpc-client-executor-127.0.0.1-453] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[453] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:46:55 [snail-job-grpc-client-executor-127.0.0.1-454] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[454] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:05 [snail-job-grpc-client-executor-127.0.0.1-455] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[455] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:15 [snail-job-grpc-client-executor-127.0.0.1-457] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[457] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:25 [snail-job-grpc-client-executor-127.0.0.1-458] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[458] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:35 [snail-job-grpc-client-executor-127.0.0.1-459] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[459] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:45 [snail-job-grpc-client-executor-127.0.0.1-460] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[460] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:47:55 [snail-job-grpc-client-executor-127.0.0.1-461] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[461] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:05 [snail-job-grpc-client-executor-127.0.0.1-462] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[462] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:15 [snail-job-grpc-client-executor-127.0.0.1-463] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[463] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:25 [snail-job-grpc-client-executor-127.0.0.1-465] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[465] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:35 [snail-job-grpc-client-executor-127.0.0.1-466] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[466] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:45 [snail-job-grpc-client-executor-127.0.0.1-467] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[467] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:48:55 [snail-job-grpc-client-executor-127.0.0.1-468] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[468] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:05 [snail-job-grpc-client-executor-127.0.0.1-469] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[469] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:15 [snail-job-grpc-client-executor-127.0.0.1-471] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[470] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:25 [snail-job-grpc-client-executor-127.0.0.1-472] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[472] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:35 [snail-job-grpc-client-executor-127.0.0.1-473] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[473] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:45 [snail-job-grpc-client-executor-127.0.0.1-474] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[474] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:49:55 [snail-job-grpc-client-executor-127.0.0.1-475] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[475] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:05 [snail-job-grpc-client-executor-127.0.0.1-476] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[476] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:15 [snail-job-grpc-client-executor-127.0.0.1-478] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[477] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:25 [snail-job-grpc-client-executor-127.0.0.1-479] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[479] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:35 [snail-job-grpc-client-executor-127.0.0.1-480] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[480] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:45 [snail-job-grpc-client-executor-127.0.0.1-481] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[481] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:50:55 [snail-job-grpc-client-executor-127.0.0.1-482] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[482] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:05 [snail-job-grpc-client-executor-127.0.0.1-483] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[483] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:15 [snail-job-grpc-client-executor-127.0.0.1-484] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[485] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:25 [snail-job-grpc-client-executor-127.0.0.1-486] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[486] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:35 [snail-job-grpc-client-executor-127.0.0.1-487] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[487] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:45 [snail-job-grpc-client-executor-127.0.0.1-488] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[488] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:51:55 [snail-job-grpc-client-executor-127.0.0.1-489] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[489] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:05 [snail-job-grpc-client-executor-127.0.0.1-490] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[490] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:15 [snail-job-grpc-client-executor-127.0.0.1-491] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[492] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:25 [snail-job-grpc-client-executor-127.0.0.1-493] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[493] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:35 [snail-job-grpc-client-executor-127.0.0.1-494] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[494] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:45 [snail-job-grpc-client-executor-127.0.0.1-495] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[495] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:52:55 [snail-job-grpc-client-executor-127.0.0.1-496] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[496] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:05 [snail-job-grpc-client-executor-127.0.0.1-497] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[497] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:15 [snail-job-grpc-client-executor-127.0.0.1-499] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[499] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:25 [snail-job-grpc-client-executor-127.0.0.1-500] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[500] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:35 [snail-job-grpc-client-executor-127.0.0.1-501] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[501] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:45 [snail-job-grpc-client-executor-127.0.0.1-502] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[502] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:53:55 [snail-job-grpc-client-executor-127.0.0.1-503] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[503] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:05 [snail-job-grpc-client-executor-127.0.0.1-504] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[504] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:15 [snail-job-grpc-client-executor-127.0.0.1-506] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[505] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:25 [snail-job-grpc-client-executor-127.0.0.1-507] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[507] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:35 [snail-job-grpc-client-executor-127.0.0.1-508] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[508] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:45 [snail-job-grpc-client-executor-127.0.0.1-509] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[509] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:54:55 [snail-job-grpc-client-executor-127.0.0.1-510] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[510] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:05 [snail-job-grpc-client-executor-127.0.0.1-511] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[511] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:15 [snail-job-grpc-client-executor-127.0.0.1-512] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[513] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:25 [snail-job-grpc-client-executor-127.0.0.1-514] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[514] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:35 [snail-job-grpc-client-executor-127.0.0.1-515] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[515] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:45 [snail-job-grpc-client-executor-127.0.0.1-516] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[516] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:55:55 [snail-job-grpc-client-executor-127.0.0.1-517] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[517] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:05 [snail-job-grpc-client-executor-127.0.0.1-518] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[518] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:15 [snail-job-grpc-client-executor-127.0.0.1-520] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[520] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:25 [snail-job-grpc-client-executor-127.0.0.1-521] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[521] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:35 [snail-job-grpc-client-executor-127.0.0.1-522] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[522] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:45 [snail-job-grpc-client-executor-127.0.0.1-523] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[523] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:56:55 [snail-job-grpc-client-executor-127.0.0.1-524] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[524] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:05 [snail-job-grpc-client-executor-127.0.0.1-525] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[525] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:15 [snail-job-grpc-client-executor-127.0.0.1-526] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[527] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:25 [snail-job-grpc-client-executor-127.0.0.1-528] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[528] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:35 [snail-job-grpc-client-executor-127.0.0.1-529] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[529] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:45 [snail-job-grpc-client-executor-127.0.0.1-530] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[530] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:57:55 [snail-job-grpc-client-executor-127.0.0.1-531] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[531] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:05 [snail-job-grpc-client-executor-127.0.0.1-532] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[532] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:15 [snail-job-grpc-client-executor-127.0.0.1-533] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[533] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:25 [snail-job-grpc-client-executor-127.0.0.1-535] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[535] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:35 [snail-job-grpc-client-executor-127.0.0.1-536] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[536] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:45 [snail-job-grpc-client-executor-127.0.0.1-537] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[537] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:58:55 [snail-job-grpc-client-executor-127.0.0.1-538] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[538] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:05 [snail-job-grpc-client-executor-127.0.0.1-539] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[539] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:15 [snail-job-grpc-client-executor-127.0.0.1-540] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[541] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:25 [snail-job-grpc-client-executor-127.0.0.1-542] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[542] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:35 [snail-job-grpc-client-executor-127.0.0.1-543] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[543] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:45 [snail-job-grpc-client-executor-127.0.0.1-544] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[544] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 09:59:55 [snail-job-grpc-client-executor-127.0.0.1-545] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[545] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:05 [snail-job-grpc-client-executor-127.0.0.1-546] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[546] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:15 [snail-job-grpc-client-executor-127.0.0.1-547] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[548] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:25 [snail-job-grpc-client-executor-127.0.0.1-549] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[549] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:35 [snail-job-grpc-client-executor-127.0.0.1-550] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[550] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:45 [snail-job-grpc-client-executor-127.0.0.1-551] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[551] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:00:55 [snail-job-grpc-client-executor-127.0.0.1-552] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[552] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:05 [snail-job-grpc-client-executor-127.0.0.1-553] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[553] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:15 [snail-job-grpc-client-executor-127.0.0.1-554] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[555] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:25 [snail-job-grpc-client-executor-127.0.0.1-556] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[556] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:35 [snail-job-grpc-client-executor-127.0.0.1-557] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[557] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:45 [snail-job-grpc-client-executor-127.0.0.1-558] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[558] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:01:55 [snail-job-grpc-client-executor-127.0.0.1-559] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[559] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:05 [snail-job-grpc-client-executor-127.0.0.1-560] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[560] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:15 [snail-job-grpc-client-executor-127.0.0.1-562] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[561] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:25 [snail-job-grpc-client-executor-127.0.0.1-563] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[563] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:35 [snail-job-grpc-client-executor-127.0.0.1-564] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[564] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:45 [snail-job-grpc-client-executor-127.0.0.1-565] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[565] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:02:55 [snail-job-grpc-client-executor-127.0.0.1-566] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[566] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:05 [snail-job-grpc-client-executor-127.0.0.1-567] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[567] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:15 [snail-job-grpc-client-executor-127.0.0.1-569] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[568] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:25 [snail-job-grpc-client-executor-127.0.0.1-570] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[570] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:35 [snail-job-grpc-client-executor-127.0.0.1-571] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[571] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:45 [snail-job-grpc-client-executor-127.0.0.1-572] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[572] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:03:55 [snail-job-grpc-client-executor-127.0.0.1-573] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[573] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:05 [snail-job-grpc-client-executor-127.0.0.1-574] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[574] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:15 [snail-job-grpc-client-executor-127.0.0.1-576] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[576] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:25 [snail-job-grpc-client-executor-127.0.0.1-577] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[577] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:35 [snail-job-grpc-client-executor-127.0.0.1-578] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[578] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:45 [snail-job-grpc-client-executor-127.0.0.1-579] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[579] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:04:55 [snail-job-grpc-client-executor-127.0.0.1-580] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[580] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:05 [snail-job-grpc-client-executor-127.0.0.1-581] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[581] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:15 [snail-job-grpc-client-executor-127.0.0.1-583] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[583] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:25 [snail-job-grpc-client-executor-127.0.0.1-584] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[584] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:35 [snail-job-grpc-client-executor-127.0.0.1-585] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[585] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:45 [snail-job-grpc-client-executor-127.0.0.1-586] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[586] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:05:55 [snail-job-grpc-client-executor-127.0.0.1-587] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[587] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:05 [snail-job-grpc-client-executor-127.0.0.1-588] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[588] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:15 [snail-job-grpc-client-executor-127.0.0.1-589] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[590] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:25 [snail-job-grpc-client-executor-127.0.0.1-591] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[591] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:35 [snail-job-grpc-client-executor-127.0.0.1-592] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[592] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:45 [snail-job-grpc-client-executor-127.0.0.1-593] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[593] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:06:55 [snail-job-grpc-client-executor-127.0.0.1-594] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[594] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:05 [snail-job-grpc-client-executor-127.0.0.1-595] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[595] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:15 [snail-job-grpc-client-executor-127.0.0.1-597] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[597] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:25 [snail-job-grpc-client-executor-127.0.0.1-598] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[598] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:35 [snail-job-grpc-client-executor-127.0.0.1-599] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[599] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:45 [snail-job-grpc-client-executor-127.0.0.1-600] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[600] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:07:55 [snail-job-grpc-client-executor-127.0.0.1-601] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[601] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:08:05 [snail-job-grpc-client-executor-127.0.0.1-602] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[602] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:08:15 [snail-job-grpc-client-executor-127.0.0.1-604] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[603] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:08:25 [snail-job-grpc-client-executor-127.0.0.1-605] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[605] message:[UNAVAILABLE: io exception]
|
||||||
|
2026-04-24 10:08:35 [snail-job-grpc-client-executor-127.0.0.1-606] ERROR c.a.s.c.c.handler.ClientRegister - heartbeat check requestId:[606] message:[UNAVAILABLE: io exception]
|
||||||
136
logs/sys-info.log
Normal file
136
logs/sys-info.log
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
2026-04-24 08:28:21 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
||||||
|
2026-04-24 08:28:21 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 22648 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
||||||
|
2026-04-24 08:28:21 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
||||||
|
2026-04-24 08:28:24 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||||
|
2026-04-24 08:28:24 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||||
|
2026-04-24 08:28:24 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||||
|
2026-04-24 08:32:49 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
||||||
|
2026-04-24 08:32:49 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 9636 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
||||||
|
2026-04-24 08:32:49 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
||||||
|
2026-04-24 08:32:53 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||||
|
2026-04-24 08:32:53 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||||
|
2026-04-24 08:32:53 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||||
|
2026-04-24 08:32:53 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@7322013f
|
||||||
|
2026-04-24 08:32:53 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||||
|
2026-04-24 08:32:53 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||||
|
2026-04-24 08:32:53 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
||||||
|
2026-04-24 08:32:54 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
||||||
|
2026-04-24 08:32:55 [main] INFO org.redisson.Version - Redisson 3.52.0
|
||||||
|
2026-04-24 08:33:02 [main] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
||||||
|
2026-04-24 08:33:02 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||||
|
2026-04-24 08:33:02 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||||
|
2026-04-24 08:33:02 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||||
|
2026-04-24 08:33:02 [main] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
||||||
|
2026-04-24 08:33:02 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||||
|
2026-04-24 08:33:29 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
||||||
|
2026-04-24 08:33:29 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 29592 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
||||||
|
2026-04-24 08:33:29 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
||||||
|
2026-04-24 08:33:32 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||||
|
2026-04-24 08:33:32 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||||
|
2026-04-24 08:33:32 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||||
|
2026-04-24 08:33:33 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@252f00ba
|
||||||
|
2026-04-24 08:33:33 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||||
|
2026-04-24 08:33:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||||
|
2026-04-24 08:33:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
||||||
|
2026-04-24 08:33:34 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
||||||
|
2026-04-24 08:33:34 [main] INFO org.redisson.Version - Redisson 3.52.0
|
||||||
|
2026-04-24 08:33:41 [main] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
||||||
|
2026-04-24 08:33:41 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||||
|
2026-04-24 08:33:41 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||||
|
2026-04-24 08:33:41 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||||
|
2026-04-24 08:33:41 [main] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
||||||
|
2026-04-24 08:33:41 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||||
|
2026-04-24 08:34:25 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
||||||
|
2026-04-24 08:34:25 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 19800 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
||||||
|
2026-04-24 08:34:25 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
||||||
|
2026-04-24 08:34:29 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||||
|
2026-04-24 08:34:29 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||||
|
2026-04-24 08:34:29 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||||
|
2026-04-24 08:34:30 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@14a488ed
|
||||||
|
2026-04-24 08:34:30 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||||
|
2026-04-24 08:34:30 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||||
|
2026-04-24 08:34:30 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
||||||
|
2026-04-24 08:34:31 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
||||||
|
2026-04-24 08:34:31 [main] INFO org.redisson.Version - Redisson 3.52.0
|
||||||
|
2026-04-24 08:34:32 [redisson-netty-1-6] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
||||||
|
2026-04-24 08:34:32 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
||||||
|
2026-04-24 08:34:33 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:34:33 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:34:33 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:34:33 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
||||||
|
2026-04-24 08:34:33 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
||||||
|
2026-04-24 08:34:33 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1bfe3203
|
||||||
|
2026-04-24 08:34:38 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
||||||
|
2026-04-24 08:34:39 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
||||||
|
2026-04-24 08:34:39 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
||||||
|
2026-04-24 08:34:39 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
||||||
|
2026-04-24 08:34:39 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
||||||
|
2026-04-24 08:34:39 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 14.862 seconds (process running for 15.581)
|
||||||
|
2026-04-24 08:34:39 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
||||||
|
2026-04-24 08:34:40 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||||
|
2026-04-24 08:34:40 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
||||||
|
2026-04-24 08:34:40 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
||||||
|
2026-04-24 08:34:40 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
||||||
|
2026-04-24 08:34:40 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
||||||
|
2026-04-24 08:34:41 [RMI TCP Connection(22)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||||
|
2026-04-24 08:39:11 [Thread-6] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||||
|
2026-04-24 08:39:11 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
||||||
|
2026-04-24 08:42:03 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.3.Final
|
||||||
|
2026-04-24 08:42:03 [main] INFO org.dromara.DromaraApplication - Starting DromaraApplication using Java 17.0.17 with PID 18948 (D:\code\water\water-admin\target\classes started by admin in D:\code\water)
|
||||||
|
2026-04-24 08:42:03 [main] INFO org.dromara.DromaraApplication - The following 1 profile is active: "dev"
|
||||||
|
2026-04-24 08:42:06 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||||
|
2026-04-24 08:42:06 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||||
|
2026-04-24 08:42:06 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||||
|
2026-04-24 08:42:06 [main] INFO com.zaxxer.hikari.pool.HikariPool - master - Added connection com.mysql.cj.jdbc.ConnectionImpl@5603632c
|
||||||
|
2026-04-24 08:42:06 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||||
|
2026-04-24 08:42:06 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||||
|
2026-04-24 08:42:06 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [1] datasource,primary datasource named [master]
|
||||||
|
2026-04-24 08:42:07 [main] INFO o.d.common.redis.config.RedisConfig - 初始化 redis 配置
|
||||||
|
2026-04-24 08:42:07 [main] INFO org.redisson.Version - Redisson 3.52.0
|
||||||
|
2026-04-24 08:42:08 [redisson-netty-1-5] INFO o.r.connection.ConnectionsHolder - 1 connections initialized for localhost/127.0.0.1:6379
|
||||||
|
2026-04-24 08:42:08 [redisson-netty-1-4] INFO o.r.connection.ConnectionsHolder - 8 connections initialized for localhost/127.0.0.1:6379
|
||||||
|
2026-04-24 08:42:08 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:42:08 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:42:08 [main] INFO c.a.s.c.j.c.e.b.AbstractScriptExecutor$SnailFileUtils - [FileUtils] [workspace] use user.home as workspace: C:\Users\admin/snailJob/worker
|
||||||
|
2026-04-24 08:42:09 [main] INFO o.d.common.json.config.JacksonConfig - 初始化 jackson 配置
|
||||||
|
2026-04-24 08:42:09 [main] INFO c.a.s.c.s.SnailJobClientJobCoreAutoConfiguration - Snail-Job 客户端IP为: 192.168.0.217
|
||||||
|
2026-04-24 08:42:09 [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware - Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@378bd86d
|
||||||
|
2026-04-24 08:42:13 [main] INFO o.d.w.p.modes.sb.config.BeanConfig - 【warm-flow】,加载完成
|
||||||
|
2026-04-24 08:42:14 [main] INFO io.undertow - starting server: Undertow - 2.3.23.Final
|
||||||
|
2026-04-24 08:42:14 [main] INFO org.xnio - XNIO version 3.8.16.Final
|
||||||
|
2026-04-24 08:42:14 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.16.Final
|
||||||
|
2026-04-24 08:42:14 [main] INFO org.jboss.threads - JBoss Threads version 3.7.0.Final
|
||||||
|
2026-04-24 08:42:14 [main] INFO org.dromara.DromaraApplication - Started DromaraApplication in 11.002 seconds (process running for 11.654)
|
||||||
|
2026-04-24 08:42:14 [main] INFO o.d.c.sse.listener.SseTopicListener - 初始化SSE主题订阅监听器成功
|
||||||
|
2026-04-24 08:42:14 [main] INFO o.d.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||||
|
2026-04-24 08:42:14 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client is preparing to start... v1.9.0
|
||||||
|
2026-04-24 08:42:14 [main] INFO c.a.s.c.c.r.c.g.SnailJobGrpcClient - gRPC client started connect to server
|
||||||
|
2026-04-24 08:42:14 [main] INFO c.a.s.c.c.rpc.server.SnailGrpcServer - ------> snail-job remoting server start success, grpc = com.aizuda.snailjob.client.common.rpc.server.SnailGrpcServer, port = 28081
|
||||||
|
2026-04-24 08:42:15 [main] INFO c.a.s.c.c.init.SnailJobStartListener - snail-job client started successfully v1.9.0
|
||||||
|
2026-04-24 08:42:15 [RMI TCP Connection(2)-192.168.111.1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||||
|
2026-04-24 10:08:38 [Thread-6] INFO c.a.s.c.c.window.SlidingRingWindow - JVM is about to exit, emitting data in the Window
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client about to shutdown v1.9.0
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log about to shutdown
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.a.s.c.c.window.SlidingRingWindow - Sliding window is about to exit, emitting data in the Window
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.a.s.c.c.l.report.AbstractLogReport - AsyncReport Log has been shutdown
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.a.s.c.c.init.SnailJobCloseListener - snail-job client closed successfully v1.9.0
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.3.23.Final
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO o.d.c.core.config.ThreadPoolConfig - ====关闭后台任务任务线程池====
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer - dynamic-datasource close the datasource named [master] success,
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||||
|
2026-04-24 10:08:38 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
||||||
499
pom.xml
Normal file
499
pom.xml
Normal file
@@ -0,0 +1,499 @@
|
|||||||
|
<?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>org.dromara</groupId>
|
||||||
|
<artifactId>water</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
|
||||||
|
<name>water-Vue-Plus</name>
|
||||||
|
<url>https://gitee.com/dromara/water-Vue-Plus</url>
|
||||||
|
<description>Dromara water-Vue-Plus多租户管理系统</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<revision>5.6.0</revision>
|
||||||
|
<spring-boot.version>3.5.12</spring-boot.version>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
<java.version>17</java.version>
|
||||||
|
<mybatis.version>3.5.19</mybatis.version>
|
||||||
|
<springdoc.version>2.8.15</springdoc.version>
|
||||||
|
<therapi-javadoc.version>0.15.0</therapi-javadoc.version>
|
||||||
|
<fastexcel.version>1.3.0</fastexcel.version>
|
||||||
|
<velocity.version>2.3</velocity.version>
|
||||||
|
<satoken.version>1.44.0</satoken.version>
|
||||||
|
<mybatis-plus.version>3.5.16</mybatis-plus.version>
|
||||||
|
<p6spy.version>3.9.1</p6spy.version>
|
||||||
|
<hutool.version>5.8.43</hutool.version>
|
||||||
|
<spring-boot-admin.version>3.5.6</spring-boot-admin.version>
|
||||||
|
<redisson.version>3.52.0</redisson.version>
|
||||||
|
<lock4j.version>2.2.7</lock4j.version>
|
||||||
|
<dynamic-ds.version>4.3.1</dynamic-ds.version>
|
||||||
|
<snailjob.version>1.9.0</snailjob.version>
|
||||||
|
<mapstruct-plus.version>1.5.0</mapstruct-plus.version>
|
||||||
|
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
|
||||||
|
<lombok.version>1.18.42</lombok.version>
|
||||||
|
<bouncycastle.version>1.83</bouncycastle.version>
|
||||||
|
<justauth.version>1.16.7</justauth.version>
|
||||||
|
<!-- 离线IP地址定位库 -->
|
||||||
|
<ip2region.version>3.3.4</ip2region.version>
|
||||||
|
<!-- OSS 配置 -->
|
||||||
|
<aws.sdk.version>2.28.22</aws.sdk.version>
|
||||||
|
<!-- SMS 配置 -->
|
||||||
|
<sms4j.version>3.3.5</sms4j.version>
|
||||||
|
<!-- 限制框架中的fastjson版本 -->
|
||||||
|
<fastjson.version>1.2.83</fastjson.version>
|
||||||
|
<!-- 面向运行时的D-ORM依赖 -->
|
||||||
|
<anyline.version>8.7.3-20251210</anyline.version>
|
||||||
|
<!-- 工作流配置 -->
|
||||||
|
<warm-flow.version>1.8.4</warm-flow.version>
|
||||||
|
|
||||||
|
<!-- 插件版本 -->
|
||||||
|
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
|
||||||
|
<maven-war-plugin.version>3.4.0</maven-war-plugin.version>
|
||||||
|
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
|
||||||
|
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
|
||||||
|
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
|
||||||
|
<!-- 打包默认跳过测试 -->
|
||||||
|
<skipTests>true</skipTests>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>local</id>
|
||||||
|
<properties>
|
||||||
|
<!-- 环境标识,需要与配置文件的名称相对应 -->
|
||||||
|
<profiles.active>local</profiles.active>
|
||||||
|
<logging.level>info</logging.level>
|
||||||
|
<monitor.username>water</monitor.username>
|
||||||
|
<monitor.password>123456</monitor.password>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>dev</id>
|
||||||
|
<properties>
|
||||||
|
<!-- 环境标识,需要与配置文件的名称相对应 -->
|
||||||
|
<profiles.active>dev</profiles.active>
|
||||||
|
<logging.level>info</logging.level>
|
||||||
|
<monitor.username>water</monitor.username>
|
||||||
|
<monitor.password>123456</monitor.password>
|
||||||
|
</properties>
|
||||||
|
<activation>
|
||||||
|
<!-- 默认环境 -->
|
||||||
|
<activeByDefault>true</activeByDefault>
|
||||||
|
</activation>
|
||||||
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>prod</id>
|
||||||
|
<properties>
|
||||||
|
<profiles.active>prod</profiles.active>
|
||||||
|
<logging.level>warn</logging.level>
|
||||||
|
<monitor.username>water</monitor.username>
|
||||||
|
<monitor.password>123456</monitor.password>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
|
<!-- 依赖声明 -->
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- SpringBoot的依赖配置-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-dependencies</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- hutool 的依赖配置-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-bom</artifactId>
|
||||||
|
<version>${hutool.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- common 的依赖配置-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-bom</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springdoc</groupId>
|
||||||
|
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
|
||||||
|
<version>${springdoc.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.therapi</groupId>
|
||||||
|
<artifactId>therapi-runtime-javadoc</artifactId>
|
||||||
|
<version>${therapi-javadoc.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.idev.excel</groupId>
|
||||||
|
<artifactId>fastexcel</artifactId>
|
||||||
|
<version>${fastexcel.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- velocity代码生成使用模板 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.velocity</groupId>
|
||||||
|
<artifactId>velocity-engine-core</artifactId>
|
||||||
|
<version>${velocity.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.dev33</groupId>
|
||||||
|
<artifactId>sa-token-spring-boot3-starter</artifactId>
|
||||||
|
<version>${satoken.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- Sa-Token 整合 jwt -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.dev33</groupId>
|
||||||
|
<artifactId>sa-token-jwt</artifactId>
|
||||||
|
<version>${satoken.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.dev33</groupId>
|
||||||
|
<artifactId>sa-token-core</artifactId>
|
||||||
|
<version>${satoken.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- dynamic-datasource 多数据源-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
|
||||||
|
<version>${dynamic-ds.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis</groupId>
|
||||||
|
<artifactId>mybatis</artifactId>
|
||||||
|
<version>${mybatis.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-annotation</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- sql性能分析插件 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>p6spy</groupId>
|
||||||
|
<artifactId>p6spy</artifactId>
|
||||||
|
<version>${p6spy.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- AWS SDK for Java 2.x -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>software.amazon.awssdk</groupId>
|
||||||
|
<artifactId>s3</artifactId>
|
||||||
|
<version>${aws.sdk.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- 客户端的性能增强传输管理器 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>software.amazon.awssdk</groupId>
|
||||||
|
<artifactId>s3-transfer-manager</artifactId>
|
||||||
|
<version>${aws.sdk.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- 适用于 Netty 的客户端 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>software.amazon.awssdk</groupId>
|
||||||
|
<artifactId>netty-nio-client</artifactId>
|
||||||
|
<version>${aws.sdk.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!--短信sms4j-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara.sms4j</groupId>
|
||||||
|
<artifactId>sms4j-spring-boot-starter</artifactId>
|
||||||
|
<version>${sms4j.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.codecentric</groupId>
|
||||||
|
<artifactId>spring-boot-admin-starter-server</artifactId>
|
||||||
|
<version>${spring-boot-admin.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.codecentric</groupId>
|
||||||
|
<artifactId>spring-boot-admin-starter-client</artifactId>
|
||||||
|
<version>${spring-boot-admin.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--redisson-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.redisson</groupId>
|
||||||
|
<artifactId>redisson-spring-boot-starter</artifactId>
|
||||||
|
<version>${redisson.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>
|
||||||
|
<version>${lock4j.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- SnailJob Client -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.aizuda</groupId>
|
||||||
|
<artifactId>snail-job-client-starter</artifactId>
|
||||||
|
<version>${snailjob.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.aizuda</groupId>
|
||||||
|
<artifactId>snail-job-client-job-core</artifactId>
|
||||||
|
<version>${snailjob.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 加密包引入 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
<artifactId>bcpkix-jdk18on</artifactId>
|
||||||
|
<version>${bouncycastle.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.github.linpeilie</groupId>
|
||||||
|
<artifactId>mapstruct-plus-spring-boot-starter</artifactId>
|
||||||
|
<version>${mapstruct-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Warm-Flow国产工作流引擎, 在线文档:http://warm-flow.cn/ -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara.warm</groupId>
|
||||||
|
<artifactId>warm-flow-mybatis-plus-sb3-starter</artifactId>
|
||||||
|
<version>${warm-flow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara.warm</groupId>
|
||||||
|
<artifactId>warm-flow-plugin-ui-sb-web</artifactId>
|
||||||
|
<version>${warm-flow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- JustAuth 的依赖配置-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>me.zhyd.oauth</groupId>
|
||||||
|
<artifactId>JustAuth</artifactId>
|
||||||
|
<version>${justauth.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 离线IP地址定位库 ip2region -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.lionsoul</groupId>
|
||||||
|
<artifactId>ip2region</artifactId>
|
||||||
|
<version>${ip2region.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
<version>${fastjson.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-system</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-job</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-generator</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-demo</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 工作流模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-workflow</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>water-admin</module>
|
||||||
|
<module>water-common</module>
|
||||||
|
<module>water-extend</module>
|
||||||
|
<module>water-modules</module>
|
||||||
|
</modules>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<release>${java.version}</release>
|
||||||
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
<annotationProcessorPaths>
|
||||||
|
<path>
|
||||||
|
<groupId>com.github.therapi</groupId>
|
||||||
|
<artifactId>therapi-runtime-javadoc-scribe</artifactId>
|
||||||
|
<version>${therapi-javadoc.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>io.github.linpeilie</groupId>
|
||||||
|
<artifactId>mapstruct-plus-processor</artifactId>
|
||||||
|
<version>${mapstruct-plus.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||||
|
<version>${mapstruct-plus.lombok.version}</version>
|
||||||
|
</path>
|
||||||
|
</annotationProcessorPaths>
|
||||||
|
<compilerArgs>
|
||||||
|
<arg>-parameters</arg>
|
||||||
|
</compilerArgs>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<!-- 单元测试使用 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<argLine>-Dfile.encoding=UTF-8</argLine>
|
||||||
|
<!-- 根据打包环境执行对应的@Tag测试方法 -->
|
||||||
|
<groups>${profiles.active}</groups>
|
||||||
|
<!-- 排除标签 -->
|
||||||
|
<excludedGroups>exclude</excludedGroups>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<!-- 统一版本号管理 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>flatten-maven-plugin</artifactId>
|
||||||
|
<version>${flatten-maven-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<updatePomFile>true</updatePomFile>
|
||||||
|
<flattenMode>resolveCiFriendliesOnly</flattenMode>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>flatten</id>
|
||||||
|
<phase>process-resources</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>flatten</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>flatten.clean</id>
|
||||||
|
<phase>clean</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>clean</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<!-- 关闭过滤 -->
|
||||||
|
<filtering>false</filtering>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<!-- 引入所有 匹配文件进行过滤 -->
|
||||||
|
<includes>
|
||||||
|
<include>application*</include>
|
||||||
|
<include>bootstrap*</include>
|
||||||
|
<include>banner*</include>
|
||||||
|
</includes>
|
||||||
|
<!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 -->
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>public</id>
|
||||||
|
<name>huawei nexus</name>
|
||||||
|
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<pluginRepositories>
|
||||||
|
<pluginRepository>
|
||||||
|
<id>public</id>
|
||||||
|
<name>huawei nexus</name>
|
||||||
|
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</pluginRepository>
|
||||||
|
</pluginRepositories>
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
||||||
|
|
||||||
68
script/bin/ry.bat
Normal file
68
script/bin/ry.bat
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
rem 使用者应根据自身平台编码自行转换 防止乱码 例如 win使用gbk编码
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
rem jar平级目录
|
||||||
|
set AppName=water-admin.jar
|
||||||
|
|
||||||
|
rem JVM参数
|
||||||
|
set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
|
||||||
|
|
||||||
|
|
||||||
|
ECHO.
|
||||||
|
ECHO. [1] 启动%AppName%
|
||||||
|
ECHO. [2] 关闭%AppName%
|
||||||
|
ECHO. [3] 重启%AppName%
|
||||||
|
ECHO. [4] 启动状态 %AppName%
|
||||||
|
ECHO. [5] 退 出
|
||||||
|
ECHO.
|
||||||
|
|
||||||
|
ECHO.请输入选择项目的序号:
|
||||||
|
set /p ID=
|
||||||
|
IF "%id%"=="1" GOTO start
|
||||||
|
IF "%id%"=="2" GOTO stop
|
||||||
|
IF "%id%"=="3" GOTO restart
|
||||||
|
IF "%id%"=="4" GOTO status
|
||||||
|
IF "%id%"=="5" EXIT
|
||||||
|
PAUSE
|
||||||
|
:start
|
||||||
|
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
|
||||||
|
set pid=%%a
|
||||||
|
set image_name=%%b
|
||||||
|
)
|
||||||
|
if defined pid (
|
||||||
|
echo %%is running
|
||||||
|
PAUSE
|
||||||
|
)
|
||||||
|
|
||||||
|
start javaw %JVM_OPTS% -jar %AppName%
|
||||||
|
|
||||||
|
echo starting……
|
||||||
|
echo Start %AppName% success...
|
||||||
|
goto:eof
|
||||||
|
|
||||||
|
rem 函数stop通过jps命令查找pid并结束进程
|
||||||
|
:stop
|
||||||
|
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
|
||||||
|
set pid=%%a
|
||||||
|
set image_name=%%b
|
||||||
|
)
|
||||||
|
if not defined pid (echo process %AppName% does not exists) else (
|
||||||
|
echo prepare to kill %image_name%
|
||||||
|
echo start kill %pid% ...
|
||||||
|
rem 根据进程ID,kill进程
|
||||||
|
taskkill /f /pid %pid%
|
||||||
|
)
|
||||||
|
goto:eof
|
||||||
|
:restart
|
||||||
|
call :stop
|
||||||
|
call :start
|
||||||
|
goto:eof
|
||||||
|
:status
|
||||||
|
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
|
||||||
|
set pid=%%a
|
||||||
|
set image_name=%%b
|
||||||
|
)
|
||||||
|
if not defined pid (echo process %AppName% is dead ) else (
|
||||||
|
echo %image_name% is running
|
||||||
|
)
|
||||||
|
goto:eof
|
||||||
86
script/bin/ry.sh
Normal file
86
script/bin/ry.sh
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# ./ry.sh start 启动 stop 停止 restart 重启 status 状态
|
||||||
|
AppName=water-admin.jar
|
||||||
|
|
||||||
|
# JVM参数
|
||||||
|
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
|
||||||
|
APP_HOME=`pwd`
|
||||||
|
LOG_PATH=$APP_HOME/logs/$AppName.log
|
||||||
|
|
||||||
|
if [ "$1" = "" ];
|
||||||
|
then
|
||||||
|
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$AppName" = "" ];
|
||||||
|
then
|
||||||
|
echo -e "\033[0;31m 未输入应用名 \033[0m"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function start()
|
||||||
|
{
|
||||||
|
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
|
||||||
|
|
||||||
|
if [ x"$PID" != x"" ]; then
|
||||||
|
echo "$AppName is running..."
|
||||||
|
else
|
||||||
|
nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 &
|
||||||
|
echo "Start $AppName success..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop()
|
||||||
|
{
|
||||||
|
echo "Stop $AppName"
|
||||||
|
|
||||||
|
PID=""
|
||||||
|
query(){
|
||||||
|
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
|
||||||
|
}
|
||||||
|
|
||||||
|
query
|
||||||
|
if [ x"$PID" != x"" ]; then
|
||||||
|
kill -TERM $PID
|
||||||
|
echo "$AppName (pid:$PID) exiting..."
|
||||||
|
while [ x"$PID" != x"" ]
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
query
|
||||||
|
done
|
||||||
|
echo "$AppName exited."
|
||||||
|
else
|
||||||
|
echo "$AppName already stopped."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function restart()
|
||||||
|
{
|
||||||
|
stop
|
||||||
|
sleep 2
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
function status()
|
||||||
|
{
|
||||||
|
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
|
||||||
|
if [ $PID != 0 ];then
|
||||||
|
echo "$AppName is running..."
|
||||||
|
else
|
||||||
|
echo "$AppName is not running..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
start)
|
||||||
|
start;;
|
||||||
|
stop)
|
||||||
|
stop;;
|
||||||
|
restart)
|
||||||
|
restart;;
|
||||||
|
status)
|
||||||
|
status;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
esac
|
||||||
59
script/docker/database.yml
Normal file
59
script/docker/database.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
services:
|
||||||
|
# 此镜像仅用于测试 正式环境需自行安装数据库
|
||||||
|
# SID: XE user: system password: oracle
|
||||||
|
oracle:
|
||||||
|
image: tekintian/oracle12c:latest
|
||||||
|
container_name: oracle
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
DBCA_TOTAL_MEMORY: 16192
|
||||||
|
ports:
|
||||||
|
- "18080:8080"
|
||||||
|
- "1521:1521"
|
||||||
|
volumes:
|
||||||
|
# 数据挂载
|
||||||
|
- "/docker/oracle/data:/u01/app/oracle"
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
# 此镜像仅用于测试 正式环境需自行安装数据库
|
||||||
|
sqlserver:
|
||||||
|
image: mcr.microsoft.com/mssql/server:2017-latest
|
||||||
|
container_name: sqlserver
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
ACCEPT_EULA: "Y"
|
||||||
|
SA_PASSWORD: "water@123"
|
||||||
|
ports:
|
||||||
|
- "1433:1433"
|
||||||
|
volumes:
|
||||||
|
# 数据挂载
|
||||||
|
- "/docker/sqlserver/data:/var/opt/mssql"
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:14.2
|
||||||
|
container_name: postgres
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: root
|
||||||
|
POSTGRES_PASSWORD: root
|
||||||
|
POSTGRES_DB: postgres
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
volumes:
|
||||||
|
- /docker/postgres/data:/var/lib/postgresql/data
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
postgres13:
|
||||||
|
image: postgres:13.6
|
||||||
|
container_name: postgres13
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: root
|
||||||
|
POSTGRES_PASSWORD: root
|
||||||
|
POSTGRES_DB: postgres
|
||||||
|
ports:
|
||||||
|
- "5433:5432"
|
||||||
|
volumes:
|
||||||
|
- /docker/postgres13/data:/var/lib/postgresql/data
|
||||||
|
network_mode: "host"
|
||||||
157
script/docker/docker-compose.yml
Normal file
157
script/docker/docker-compose.yml
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:8.0.42
|
||||||
|
container_name: mysql
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
# root 密码
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
# 初始化数据库(后续的初始化sql会在这个库执行)
|
||||||
|
MYSQL_DATABASE: ry-vue
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
volumes:
|
||||||
|
# 数据挂载
|
||||||
|
- /docker/mysql/data/:/var/lib/mysql/
|
||||||
|
# 配置挂载
|
||||||
|
- /docker/mysql/conf/:/etc/mysql/conf.d/
|
||||||
|
command:
|
||||||
|
# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
|
||||||
|
--default-authentication-plugin=mysql_native_password
|
||||||
|
--character-set-server=utf8mb4
|
||||||
|
--collation-server=utf8mb4_general_ci
|
||||||
|
--explicit_defaults_for_timestamp=true
|
||||||
|
--lower_case_table_names=1
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
nginx-web:
|
||||||
|
image: nginx:1.23.4
|
||||||
|
container_name: nginx-web
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
# 证书映射
|
||||||
|
- /docker/nginx/cert:/etc/nginx/cert
|
||||||
|
# 配置文件映射
|
||||||
|
- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||||
|
# 页面目录
|
||||||
|
- /docker/nginx/html:/usr/share/nginx/html
|
||||||
|
# 日志目录
|
||||||
|
- /docker/nginx/log:/var/log/nginx
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:7.2.8
|
||||||
|
container_name: redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
volumes:
|
||||||
|
# 配置文件
|
||||||
|
- /docker/redis/conf:/redis/config:rw
|
||||||
|
# 数据文件
|
||||||
|
- /docker/redis/data/:/redis/data/:rw
|
||||||
|
command: "redis-server /redis/config/redis.conf"
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
minio:
|
||||||
|
# pgsty 开源社区 fork 重新维护的最新版 minio
|
||||||
|
image: pgsty/minio:RELEASE.2026-02-14T12-00-00Z
|
||||||
|
container_name: minio
|
||||||
|
ports:
|
||||||
|
# api 端口
|
||||||
|
- "9000:9000"
|
||||||
|
# 控制台端口
|
||||||
|
- "9001:9001"
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
# 管理后台用户名
|
||||||
|
MINIO_ROOT_USER: water
|
||||||
|
# 管理后台密码,最小8个字符
|
||||||
|
MINIO_ROOT_PASSWORD: water123
|
||||||
|
# https需要指定域名
|
||||||
|
#MINIO_SERVER_URL: "https://xxx.com:9000"
|
||||||
|
#MINIO_BROWSER_REDIRECT_URL: "https://xxx.com:9001"
|
||||||
|
# 开启压缩 on 开启 off 关闭
|
||||||
|
MINIO_COMPRESS: "off"
|
||||||
|
# 扩展名 .pdf,.doc 为空 所有类型均压缩
|
||||||
|
MINIO_COMPRESS_EXTENSIONS: ""
|
||||||
|
# mime 类型 application/pdf 为空 所有类型均压缩
|
||||||
|
MINIO_COMPRESS_MIME_TYPES: ""
|
||||||
|
volumes:
|
||||||
|
# 映射当前目录下的data目录至容器内/data目录
|
||||||
|
- /docker/minio/data:/data
|
||||||
|
# 映射配置目录
|
||||||
|
- /docker/minio/config:/root/.minio/
|
||||||
|
command: server --address ':9000' --console-address ':9001' /data # 指定容器中的目录 /data
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
water-server1:
|
||||||
|
image: water/water-server:5.6.0
|
||||||
|
container_name: water-server1
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
SERVER_PORT: 8080
|
||||||
|
SNAIL_PORT: 28080
|
||||||
|
volumes:
|
||||||
|
# 配置文件
|
||||||
|
- /docker/server1/logs/:/water/server/logs/
|
||||||
|
# skywalking 探针
|
||||||
|
# - /docker/skywalking/agent/:/water/skywalking/agent
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
water-server2:
|
||||||
|
image: water/water-server:5.6.0
|
||||||
|
container_name: water-server2
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
SERVER_PORT: 8081
|
||||||
|
SNAIL_PORT: 28081
|
||||||
|
volumes:
|
||||||
|
# 配置文件
|
||||||
|
- /docker/server2/logs/:/water/server/logs/
|
||||||
|
# skywalking 探针
|
||||||
|
# - /docker/skywalking/agent/:/water/skywalking/agent
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
water-monitor-admin:
|
||||||
|
image: water/water-monitor-admin:5.6.0
|
||||||
|
container_name: water-monitor-admin
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
volumes:
|
||||||
|
# 配置文件
|
||||||
|
- /docker/monitor/logs/:/water/monitor/logs
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
water-snailjob-server:
|
||||||
|
image: water/water-snailjob-server:5.6.0
|
||||||
|
container_name: water-snailjob-server
|
||||||
|
environment:
|
||||||
|
# 时区上海
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
ports:
|
||||||
|
- "8800:8800"
|
||||||
|
- "17888:17888"
|
||||||
|
volumes:
|
||||||
|
- /docker/snailjob/logs/:/water/snailjob/logs
|
||||||
|
privileged: true
|
||||||
|
network_mode: "host"
|
||||||
156
script/docker/nginx/conf/nginx.conf
Normal file
156
script/docker/nginx/conf/nginx.conf
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log warn;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
# 可以根据业务并发量适当调高
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
# 高效传输文件
|
||||||
|
sendfile on;
|
||||||
|
# 长连接超时时间
|
||||||
|
keepalive_timeout 65;
|
||||||
|
# 单连接最大请求数,提高长连接复用率
|
||||||
|
keepalive_requests 100000;
|
||||||
|
# 限制body大小
|
||||||
|
client_max_body_size 100m;
|
||||||
|
client_header_buffer_size 32k;
|
||||||
|
client_body_buffer_size 512k;
|
||||||
|
# 开启静态资源压缩
|
||||||
|
gzip_static on;
|
||||||
|
# 连接数限制 (防御类配置) 10m 一般够用了,能存储上万 IP 的计数
|
||||||
|
limit_conn_zone $binary_remote_addr zone=perip:10m;
|
||||||
|
limit_conn_zone $server_name zone=perserver:10m;
|
||||||
|
# 隐藏 nginx 版本号,防止暴露版本信息
|
||||||
|
server_tokens off;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
upstream server {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8080;
|
||||||
|
server 127.0.0.1:8081;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream monitor-admin {
|
||||||
|
server 127.0.0.1:9090;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream snailjob-server {
|
||||||
|
server 127.0.0.1:8800;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
# https配置参考 start
|
||||||
|
#listen 443 ssl;
|
||||||
|
|
||||||
|
# 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径
|
||||||
|
#ssl on;
|
||||||
|
#ssl_certificate /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改
|
||||||
|
#ssl_certificate_key /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改
|
||||||
|
#ssl_session_timeout 5m;
|
||||||
|
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
|
||||||
|
#ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
|
||||||
|
#ssl_prefer_server_ciphers on;
|
||||||
|
# https配置参考 end
|
||||||
|
|
||||||
|
# 演示环境配置 拦截除 GET POST 之外的所有请求
|
||||||
|
# if ($request_method !~* GET|POST) {
|
||||||
|
# rewrite ^/(.*)$ /403;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# location = /403 {
|
||||||
|
# default_type application/json;
|
||||||
|
# return 200 '{"msg":"演示模式,不允许操作","code":500}';
|
||||||
|
# }
|
||||||
|
|
||||||
|
# 限制外网访问内网 actuator 相关路径
|
||||||
|
location ~ ^(/[^/]*)?/actuator.*(/.*)?$ {
|
||||||
|
return 403;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html; # docker映射路径 不允许更改
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /prod-api/ {
|
||||||
|
# 设置客户端请求头中的 Host 信息(保持原始 Host)
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
# 获取客户端真实 IP
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
# 自定义头 REMOTE-HOST,记录客户端 IP
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
# 获取完整的客户端 IP 链(经过多级代理时)
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
# 设置后端响应超时时间(这里是 24 小时,适合长连接/SSE)
|
||||||
|
proxy_read_timeout 86400s;
|
||||||
|
# SSE (Server-Sent Events) 与 WebSocket 支持参数
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
# 禁用代理缓冲,数据直接传给客户端
|
||||||
|
proxy_buffering off;
|
||||||
|
# 禁用代理缓存
|
||||||
|
proxy_cache off;
|
||||||
|
proxy_pass http://server/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# https 会拦截内链所有的 http 请求 造成功能无法使用
|
||||||
|
# 解决方案1 将 admin 服务 也配置成 https
|
||||||
|
# 解决方案2 将菜单配置为外链访问 走独立页面 http 访问
|
||||||
|
location /admin/ {
|
||||||
|
# 设置客户端请求头中的 Host 信息(保持原始 Host)
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
# 获取客户端真实 IP
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
# 自定义头 REMOTE-HOST,记录客户端 IP
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
# 获取完整的客户端 IP 链(经过多级代理时)
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
# 禁用代理缓冲,数据直接传给客户端
|
||||||
|
proxy_buffering off;
|
||||||
|
# 禁用代理缓存
|
||||||
|
proxy_cache off;
|
||||||
|
proxy_pass http://monitor-admin/admin/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /snail-job/ {
|
||||||
|
# 设置客户端请求头中的 Host 信息(保持原始 Host)
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
# 获取客户端真实 IP
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
# 自定义头 REMOTE-HOST,记录客户端 IP
|
||||||
|
proxy_set_header REMOTE-HOST $remote_addr;
|
||||||
|
# 获取完整的客户端 IP 链(经过多级代理时)
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
# SSE (Server-Sent Events) 与 WebSocket 支持参数
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
# 禁用代理缓冲,直接传输给客户端
|
||||||
|
proxy_buffering off;
|
||||||
|
# 禁用代理缓存
|
||||||
|
proxy_cache off;
|
||||||
|
proxy_pass http://snailjob-server/snail-job/;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
script/docker/redis/conf/redis.conf
Normal file
28
script/docker/redis/conf/redis.conf
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# redis 密码
|
||||||
|
requirepass water123
|
||||||
|
|
||||||
|
# key 监听器配置
|
||||||
|
# notify-keyspace-events Ex
|
||||||
|
|
||||||
|
# 配置持久化文件存储路径
|
||||||
|
dir /redis/data
|
||||||
|
# 配置rdb
|
||||||
|
# 15分钟内有至少1个key被更改则进行快照
|
||||||
|
save 900 1
|
||||||
|
# 5分钟内有至少10个key被更改则进行快照
|
||||||
|
save 300 10
|
||||||
|
# 1分钟内有至少10000个key被更改则进行快照
|
||||||
|
save 60 10000
|
||||||
|
# 开启压缩
|
||||||
|
rdbcompression yes
|
||||||
|
# rdb文件名 用默认的即可
|
||||||
|
dbfilename dump.rdb
|
||||||
|
|
||||||
|
# 开启aof
|
||||||
|
appendonly yes
|
||||||
|
# 文件名
|
||||||
|
appendfilename "appendonly.aof"
|
||||||
|
# 持久化策略,no:不同步,everysec:每秒一次,always:总是同步,速度比较慢
|
||||||
|
# appendfsync always
|
||||||
|
appendfsync everysec
|
||||||
|
# appendfsync no
|
||||||
1
script/docker/redis/data/README.md
Normal file
1
script/docker/redis/data/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
数据目录 请执行 `chmod 777 /docker/redis/data` 赋予读写权限 否则将无法写入数据
|
||||||
129
script/leave/leave1.json
Normal file
129
script/leave/leave1.json
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "d5ee3ddf-3968-4379-a86f-9ceabde5faac",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "200,200|200,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "d5ee3ddf-3968-4379-a86f-9ceabde5faac",
|
||||||
|
"nextNodeCode": "dd515cdd-59f6-446f-94ca-25ca062afb42",
|
||||||
|
"coordinate": "220,200;310,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "dd515cdd-59f6-446f-94ca-25ca062afb42",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,copy\"}]",
|
||||||
|
"coordinate": "360,200|360,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "dd515cdd-59f6-446f-94ca-25ca062afb42",
|
||||||
|
"nextNodeCode": "78fa8e5b-e809-44ed-978a-41092409ebcf",
|
||||||
|
"coordinate": "410,200;490,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "78fa8e5b-e809-44ed-978a-41092409ebcf",
|
||||||
|
"nodeName": "组长",
|
||||||
|
"permissionFlag": "role:1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,copy,transfer,trust,file\"}]",
|
||||||
|
"coordinate": "540,200|540,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "78fa8e5b-e809-44ed-978a-41092409ebcf",
|
||||||
|
"nextNodeCode": "a8abf15f-b83e-428a-86cc-033555ea9bbe",
|
||||||
|
"coordinate": "590,200;670,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "a8abf15f-b83e-428a-86cc-033555ea9bbe",
|
||||||
|
"nodeName": "部门主管",
|
||||||
|
"permissionFlag": "role:3@@role:4",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,copy,transfer,trust,file\"}]",
|
||||||
|
"coordinate": "720,200|720,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "a8abf15f-b83e-428a-86cc-033555ea9bbe",
|
||||||
|
"nextNodeCode": "8b82b7d7-8660-455e-b880-d6d22ea3eb6d",
|
||||||
|
"coordinate": "770,200;880,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "8b82b7d7-8660-455e-b880-d6d22ea3eb6d",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "900,200|900,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave1",
|
||||||
|
"flowName": "请假申请-普通",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
187
script/leave/leave2.json
Normal file
187
script/leave/leave2.json
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "cef3895c-f7d8-4598-8bf3-8ec2ef6ce84a",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "300,240|300,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "cef3895c-f7d8-4598-8bf3-8ec2ef6ce84a",
|
||||||
|
"nextNodeCode": "fdcae93b-b69c-498a-b231-09255e74bcbd",
|
||||||
|
"coordinate": "320,240;390,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "fdcae93b-b69c-498a-b231-09255e74bcbd",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file\"}]",
|
||||||
|
"coordinate": "440,240|440,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "fdcae93b-b69c-498a-b231-09255e74bcbd",
|
||||||
|
"nextNodeCode": "7b8c7ead-7dc8-4951-a7f3-f0c41995909e",
|
||||||
|
"coordinate": "490,240;535,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "3",
|
||||||
|
"nodeCode": "7b8c7ead-7dc8-4951-a7f3-f0c41995909e",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "560,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": "le@@leaveDays|2",
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "7b8c7ead-7dc8-4951-a7f3-f0c41995909e",
|
||||||
|
"nextNodeCode": "b3528155-dcb7-4445-bbdf-3d00e3499e86",
|
||||||
|
"coordinate": "560,265;560,320;670,320"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": "gt@@leaveDays|2",
|
||||||
|
"skipName": "大于两天",
|
||||||
|
"nowNodeCode": "7b8c7ead-7dc8-4951-a7f3-f0c41995909e",
|
||||||
|
"nextNodeCode": "5ed2362b-fc0c-4d52-831f-95208b830605",
|
||||||
|
"coordinate": "560,215;560,160;670,160|560,187"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "b3528155-dcb7-4445-bbdf-3d00e3499e86",
|
||||||
|
"nodeName": "组长",
|
||||||
|
"permissionFlag": "3@@4",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "720,320|720,320",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "b3528155-dcb7-4445-bbdf-3d00e3499e86",
|
||||||
|
"nextNodeCode": "c9fa6d7d-2a74-4e78-b947-0cad8a6af869",
|
||||||
|
"coordinate": "770,320;860,320;860,280"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "c9fa6d7d-2a74-4e78-b947-0cad8a6af869",
|
||||||
|
"nodeName": "总经理",
|
||||||
|
"permissionFlag": "role:1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "860,240|860,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "c9fa6d7d-2a74-4e78-b947-0cad8a6af869",
|
||||||
|
"nextNodeCode": "40aa65fd-0712-4d23-b6f7-d0432b920fd1",
|
||||||
|
"coordinate": "910,240;980,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "40aa65fd-0712-4d23-b6f7-d0432b920fd1",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1000,240|1000,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "5ed2362b-fc0c-4d52-831f-95208b830605",
|
||||||
|
"nodeName": "部门领导",
|
||||||
|
"permissionFlag": "role:1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "720,160|720,160",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "5ed2362b-fc0c-4d52-831f-95208b830605",
|
||||||
|
"nextNodeCode": "c9fa6d7d-2a74-4e78-b947-0cad8a6af869",
|
||||||
|
"nextNodeType": "1",
|
||||||
|
"coordinate": "770,160;860,160;860,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave2",
|
||||||
|
"flowName": "请假申请-排他网关",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
211
script/leave/leave3.json
Normal file
211
script/leave/leave3.json
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "a80ecf9f-f465-4ae5-a429-e30ec5d0f957",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "380,220|380,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "a80ecf9f-f465-4ae5-a429-e30ec5d0f957",
|
||||||
|
"nextNodeCode": "b7bbb571-06de-455c-8083-f83c07bf0b99",
|
||||||
|
"coordinate": "400,220;470,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "b7bbb571-06de-455c-8083-f83c07bf0b99",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file\"}]",
|
||||||
|
"coordinate": "520,220|520,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "b7bbb571-06de-455c-8083-f83c07bf0b99",
|
||||||
|
"nextNodeCode": "84d7ed24-bb44-4ba1-bf1f-e6f5092d3f0a",
|
||||||
|
"coordinate": "570,220;655,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "84d7ed24-bb44-4ba1-bf1f-e6f5092d3f0a",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "680,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "84d7ed24-bb44-4ba1-bf1f-e6f5092d3f0a",
|
||||||
|
"nextNodeCode": "4b7743cd-940c-431b-926f-e7b614fbf1fe",
|
||||||
|
"coordinate": "680,195;680,140;750,140"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "84d7ed24-bb44-4ba1-bf1f-e6f5092d3f0a",
|
||||||
|
"nextNodeCode": "762cb975-37d8-4276-b6db-79a4c3606394",
|
||||||
|
"coordinate": "680,245;680,300;750,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "4b7743cd-940c-431b-926f-e7b614fbf1fe",
|
||||||
|
"nodeName": "市场部",
|
||||||
|
"permissionFlag": "role:1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "800,140|800,140",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "4b7743cd-940c-431b-926f-e7b614fbf1fe",
|
||||||
|
"nextNodeCode": "b66b6563-f9fe-41cc-a782-f7837bb6f3d2",
|
||||||
|
"coordinate": "850,140;920,140;920,195"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "b66b6563-f9fe-41cc-a782-f7837bb6f3d2",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "920,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "b66b6563-f9fe-41cc-a782-f7837bb6f3d2",
|
||||||
|
"nextNodeCode": "23e7429e-2b47-4431-b93e-40db7c431ce6",
|
||||||
|
"coordinate": "945,220;975,220;975,220;960,220;960,220;990,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "23e7429e-2b47-4431-b93e-40db7c431ce6",
|
||||||
|
"nodeName": "CEO",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "1040,220|1040,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "23e7429e-2b47-4431-b93e-40db7c431ce6",
|
||||||
|
"nextNodeCode": "f5ace37f-5a5e-4e64-a6f6-913ab9a71cd1",
|
||||||
|
"coordinate": "1090,220;1140,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "f5ace37f-5a5e-4e64-a6f6-913ab9a71cd1",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1160,220|1160,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "762cb975-37d8-4276-b6db-79a4c3606394",
|
||||||
|
"nodeName": "综合部",
|
||||||
|
"permissionFlag": "role:3@@role:4",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "800,300|800,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "762cb975-37d8-4276-b6db-79a4c3606394",
|
||||||
|
"nextNodeCode": "b66b6563-f9fe-41cc-a782-f7837bb6f3d2",
|
||||||
|
"nextNodeType": "4",
|
||||||
|
"coordinate": "850,300;920,300;920,245"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave3",
|
||||||
|
"flowName": "请假申请-并行网关",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
154
script/leave/leave4.json
Normal file
154
script/leave/leave4.json
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "9ce8bf00-f25b-4fc6-91b8-827082fc4876",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "320,240|320,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "9ce8bf00-f25b-4fc6-91b8-827082fc4876",
|
||||||
|
"nextNodeCode": "e90b98ef-35b4-410c-a663-bae8b7624b9f",
|
||||||
|
"coordinate": "340,240;410,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "e90b98ef-35b4-410c-a663-bae8b7624b9f",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file\"}]",
|
||||||
|
"coordinate": "460,240|460,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "e90b98ef-35b4-410c-a663-bae8b7624b9f",
|
||||||
|
"nextNodeCode": "768b5b1a-6726-4d67-8853-4cc70d5b1045",
|
||||||
|
"coordinate": "510,240;590,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "768b5b1a-6726-4d67-8853-4cc70d5b1045",
|
||||||
|
"nodeName": "百分之60通过",
|
||||||
|
"permissionFlag": "${userList}",
|
||||||
|
"nodeRatio": "60.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,addSign,subSign\"}]",
|
||||||
|
"coordinate": "640,240|640,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "768b5b1a-6726-4d67-8853-4cc70d5b1045",
|
||||||
|
"nextNodeCode": "2f9f2e21-9bcf-42a3-a07c-13037aad22d1",
|
||||||
|
"coordinate": "690,240;770,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "2f9f2e21-9bcf-42a3-a07c-13037aad22d1",
|
||||||
|
"nodeName": "全部审批通过",
|
||||||
|
"permissionFlag": "role:1@@role:3",
|
||||||
|
"nodeRatio": "100.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,addSign,subSign\"}]",
|
||||||
|
"coordinate": "820,240|820,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "2f9f2e21-9bcf-42a3-a07c-13037aad22d1",
|
||||||
|
"nextNodeCode": "27461e01-3d9f-4530-8fe3-bd5ec7f9571f",
|
||||||
|
"coordinate": "870,240;950,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "27461e01-3d9f-4530-8fe3-bd5ec7f9571f",
|
||||||
|
"nodeName": "CEO",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "1000,240|1000,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "27461e01-3d9f-4530-8fe3-bd5ec7f9571f",
|
||||||
|
"nextNodeCode": "b62b88c3-8d8d-4969-911e-2aaea219e7fc",
|
||||||
|
"coordinate": "1050,240;1080,240;1080,240;1070,240;1070,240;1100,240"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "b62b88c3-8d8d-4969-911e-2aaea219e7fc",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1120,240|1120,240",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave4",
|
||||||
|
"flowName": "请假申请-会签",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
211
script/leave/leave5.json
Normal file
211
script/leave/leave5.json
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "ebebaf26-9cb6-497e-8119-4c9fed4c597c",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "300,220|300,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "ebebaf26-9cb6-497e-8119-4c9fed4c597c",
|
||||||
|
"nextNodeCode": "e1b04e96-dc81-4858-a309-2fe945d2f374",
|
||||||
|
"coordinate": "320,220;350,220;350,220;340,220;340,220;370,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "e1b04e96-dc81-4858-a309-2fe945d2f374",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file\"}]",
|
||||||
|
"coordinate": "420,220|420,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "e1b04e96-dc81-4858-a309-2fe945d2f374",
|
||||||
|
"nextNodeCode": "3e743f4f-51ca-41d4-8e94-21f5dd9b59c9",
|
||||||
|
"coordinate": "470,220;535,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "3e743f4f-51ca-41d4-8e94-21f5dd9b59c9",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "560,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "3e743f4f-51ca-41d4-8e94-21f5dd9b59c9",
|
||||||
|
"nextNodeCode": "c80f273e-1f17-4bd8-9ad1-04a4a94ea862",
|
||||||
|
"coordinate": "560,245;560,320;650,320"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "3e743f4f-51ca-41d4-8e94-21f5dd9b59c9",
|
||||||
|
"nextNodeCode": "1e3e8d3b-18ae-4d6c-a814-ce0d724adfa4",
|
||||||
|
"coordinate": "560,195;560,120;650,120"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "c80f273e-1f17-4bd8-9ad1-04a4a94ea862",
|
||||||
|
"nodeName": "会签",
|
||||||
|
"permissionFlag": "role:1@@role:3",
|
||||||
|
"nodeRatio": "100.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,addSign,subSign\"}]",
|
||||||
|
"coordinate": "700,320|700,320",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "c80f273e-1f17-4bd8-9ad1-04a4a94ea862",
|
||||||
|
"nextNodeCode": "1a20169e-3d82-4926-a151-e2daad28de1b",
|
||||||
|
"coordinate": "750,320;860,320;860,245"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "1a20169e-3d82-4926-a151-e2daad28de1b",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "860,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "1a20169e-3d82-4926-a151-e2daad28de1b",
|
||||||
|
"nextNodeCode": "7a8f0473-e409-442e-a843-5c2b813d00e9",
|
||||||
|
"coordinate": "885,220;950,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "7a8f0473-e409-442e-a843-5c2b813d00e9",
|
||||||
|
"nodeName": "CEO",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,transfer,trust,copy\"}]",
|
||||||
|
"coordinate": "1000,220|1000,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "7a8f0473-e409-442e-a843-5c2b813d00e9",
|
||||||
|
"nextNodeCode": "03c4d2bc-58b5-4408-a2e4-65afb046f169",
|
||||||
|
"coordinate": "1050,220;1120,220"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "03c4d2bc-58b5-4408-a2e4-65afb046f169",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1140,220|1140,220",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "1e3e8d3b-18ae-4d6c-a814-ce0d724adfa4",
|
||||||
|
"nodeName": "百分之60票签",
|
||||||
|
"permissionFlag": "${userList}",
|
||||||
|
"nodeRatio": "60.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file,addSign,subSign\"}]",
|
||||||
|
"coordinate": "700,120|700,120",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "1e3e8d3b-18ae-4d6c-a814-ce0d724adfa4",
|
||||||
|
"nextNodeCode": "1a20169e-3d82-4926-a151-e2daad28de1b",
|
||||||
|
"nextNodeType": "4",
|
||||||
|
"coordinate": "750,120;860,120;860,195"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave5",
|
||||||
|
"flowName": "请假申请-并行会签网关",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
368
script/leave/leave6.json
Normal file
368
script/leave/leave6.json
Normal file
@@ -0,0 +1,368 @@
|
|||||||
|
{
|
||||||
|
"nodeList": [
|
||||||
|
{
|
||||||
|
"nodeType": "0",
|
||||||
|
"nodeCode": "122b89a5-7c6f-40a3-aa09-7a263f902054",
|
||||||
|
"nodeName": "开始",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "240,300|240,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "122b89a5-7c6f-40a3-aa09-7a263f902054",
|
||||||
|
"nextNodeCode": "c25a0e86-fdd1-4f03-8e22-14db70389dbd",
|
||||||
|
"coordinate": "260,300;350,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "c25a0e86-fdd1-4f03-8e22-14db70389dbd",
|
||||||
|
"nodeName": "申请人",
|
||||||
|
"permissionFlag": "",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,file\"}]",
|
||||||
|
"coordinate": "400,300|400,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "c25a0e86-fdd1-4f03-8e22-14db70389dbd",
|
||||||
|
"nextNodeCode": "07ecda1d-7a0a-47b5-8a91-6186c9473742",
|
||||||
|
"coordinate": "450,300;510,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "2bfa3919-78cf-4bc1-b59b-df463a4546f9",
|
||||||
|
"nodeName": "副经理",
|
||||||
|
"permissionFlag": "role:1@@role:3@@role:4",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination\"}]",
|
||||||
|
"coordinate": "860,200|860,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "2bfa3919-78cf-4bc1-b59b-df463a4546f9",
|
||||||
|
"nextNodeCode": "394e1cc8-b8b2-4189-9f81-44448e88ac32",
|
||||||
|
"coordinate": "910,200;1000,200;1000,275"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "ec17f60e-94e0-4d96-a3ce-3417e9d32d60",
|
||||||
|
"nodeName": "组长",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination\"}]",
|
||||||
|
"coordinate": "860,400|860,400",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "ec17f60e-94e0-4d96-a3ce-3417e9d32d60",
|
||||||
|
"nextNodeCode": "394e1cc8-b8b2-4189-9f81-44448e88ac32",
|
||||||
|
"coordinate": "910,400;1000,400;1000,325"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "07ecda1d-7a0a-47b5-8a91-6186c9473742",
|
||||||
|
"nodeName": "副组长",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,transfer,copy,pop\"}]",
|
||||||
|
"coordinate": "560,300|560,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "07ecda1d-7a0a-47b5-8a91-6186c9473742",
|
||||||
|
"nextNodeCode": "48117e2c-6328-406b-b102-c4a9d115bb13",
|
||||||
|
"coordinate": "610,300;675,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "3",
|
||||||
|
"nodeCode": "48117e2c-6328-406b-b102-c4a9d115bb13",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "700,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": "default@@${leaveDays > 2}",
|
||||||
|
"skipName": "大于两天",
|
||||||
|
"nowNodeCode": "48117e2c-6328-406b-b102-c4a9d115bb13",
|
||||||
|
"nextNodeCode": "2bfa3919-78cf-4bc1-b59b-df463a4546f9",
|
||||||
|
"nextNodeType": "1",
|
||||||
|
"coordinate": "700,275;700,200;810,200|700,237"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": "spel@@#{@testLeaveServiceImpl.eval(#leaveDays)}",
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "48117e2c-6328-406b-b102-c4a9d115bb13",
|
||||||
|
"nextNodeCode": "ec17f60e-94e0-4d96-a3ce-3417e9d32d60",
|
||||||
|
"nextNodeType": "1",
|
||||||
|
"coordinate": "700,325;700,400;810,400"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "3",
|
||||||
|
"nodeCode": "394e1cc8-b8b2-4189-9f81-44448e88ac32",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1000,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "394e1cc8-b8b2-4189-9f81-44448e88ac32",
|
||||||
|
"nextNodeCode": "9c93a195-cff2-4e17-ab0a-a4f264191496",
|
||||||
|
"coordinate": "1025,300;1130,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "9c93a195-cff2-4e17-ab0a-a4f264191496",
|
||||||
|
"nodeName": "经理会签",
|
||||||
|
"permissionFlag": "1@@3",
|
||||||
|
"nodeRatio": "100.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination,pop,addSign,subSign\"}]",
|
||||||
|
"coordinate": "1180,300|1180,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "9c93a195-cff2-4e17-ab0a-a4f264191496",
|
||||||
|
"nextNodeCode": "a1a42056-afd1-4e90-88bc-36cbf5a66992",
|
||||||
|
"coordinate": "1230,300;1315,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "a1a42056-afd1-4e90-88bc-36cbf5a66992",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1340,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "a1a42056-afd1-4e90-88bc-36cbf5a66992",
|
||||||
|
"nextNodeCode": "fcfdd9f6-f526-4c1a-b71d-88afa31aebc5",
|
||||||
|
"coordinate": "1340,325;1340,400;1430,400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "a1a42056-afd1-4e90-88bc-36cbf5a66992",
|
||||||
|
"nextNodeCode": "350dfa0c-a77c-4efa-8527-10efa02d8be4",
|
||||||
|
"coordinate": "1340,275;1340,200;1430,200"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "350dfa0c-a77c-4efa-8527-10efa02d8be4",
|
||||||
|
"nodeName": "总经理",
|
||||||
|
"permissionFlag": "3@@1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination\"}]",
|
||||||
|
"coordinate": "1480,200|1480,200",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "350dfa0c-a77c-4efa-8527-10efa02d8be4",
|
||||||
|
"nextNodeCode": "c36a46ef-04f9-463f-bad7-4b395c818519",
|
||||||
|
"coordinate": "1530,200;1640,200;1640,275"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "fcfdd9f6-f526-4c1a-b71d-88afa31aebc5",
|
||||||
|
"nodeName": "副总经理",
|
||||||
|
"permissionFlag": "1@@3",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination\"}]",
|
||||||
|
"coordinate": "1480,400|1480,400",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "fcfdd9f6-f526-4c1a-b71d-88afa31aebc5",
|
||||||
|
"nextNodeCode": "c36a46ef-04f9-463f-bad7-4b395c818519",
|
||||||
|
"coordinate": "1530,400;1640,400;1640,325"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "4",
|
||||||
|
"nodeCode": "c36a46ef-04f9-463f-bad7-4b395c818519",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1640,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "c36a46ef-04f9-463f-bad7-4b395c818519",
|
||||||
|
"nextNodeCode": "3fcea762-b53a-4ae1-8365-7bec90444828",
|
||||||
|
"coordinate": "1665,300;1770,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "1",
|
||||||
|
"nodeCode": "3fcea762-b53a-4ae1-8365-7bec90444828",
|
||||||
|
"nodeName": "董事",
|
||||||
|
"permissionFlag": "1",
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": "",
|
||||||
|
"listenerPath": "",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[{\"code\":\"ButtonPermissionEnum\",\"value\":\"back,termination\"}]",
|
||||||
|
"coordinate": "1820,300|1820,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": [
|
||||||
|
{
|
||||||
|
"skipType": "PASS",
|
||||||
|
"skipCondition": null,
|
||||||
|
"skipName": null,
|
||||||
|
"nowNodeCode": "3fcea762-b53a-4ae1-8365-7bec90444828",
|
||||||
|
"nextNodeCode": "9cfbfd3e-6c04-41d6-9fc2-6787a7d2cd31",
|
||||||
|
"coordinate": "1870,300;1960,300"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeType": "2",
|
||||||
|
"nodeCode": "9cfbfd3e-6c04-41d6-9fc2-6787a7d2cd31",
|
||||||
|
"nodeName": "结束",
|
||||||
|
"permissionFlag": null,
|
||||||
|
"nodeRatio": "0.000",
|
||||||
|
"anyNodeSkip": null,
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null,
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": null,
|
||||||
|
"ext": "[]",
|
||||||
|
"coordinate": "1980,300|1980,300",
|
||||||
|
"version": "1",
|
||||||
|
"skipList": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"flowCode": "leave6",
|
||||||
|
"flowName": "请假申请-排他并行会签",
|
||||||
|
"modelValue": "CLASSICS",
|
||||||
|
"category": "103",
|
||||||
|
"version": "1",
|
||||||
|
"formCustom": "N",
|
||||||
|
"formPath": "/workflow/leaveEdit/index",
|
||||||
|
"listenerType": null,
|
||||||
|
"listenerPath": null
|
||||||
|
}
|
||||||
940
script/sql/oracle/oracle_ry_job.sql
Normal file
940
script/sql/oracle/oracle_ry_job.sql
Normal file
@@ -0,0 +1,940 @@
|
|||||||
|
/*
|
||||||
|
SnailJob Database Transfer Tool
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Target Server Type : Oracle
|
||||||
|
Date: 2025-06-21 23:33:11
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
-- sj_namespace
|
||||||
|
CREATE TABLE sj_namespace
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
name varchar2(64) NULL,
|
||||||
|
unique_id varchar2(64) NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_namespace
|
||||||
|
ADD CONSTRAINT pk_sj_namespace PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_namespace_01 ON sj_namespace (name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_namespace.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_namespace.name IS '名称';
|
||||||
|
COMMENT ON COLUMN sj_namespace.unique_id IS '唯一id';
|
||||||
|
COMMENT ON COLUMN sj_namespace.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_namespace.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_namespace.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_namespace.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_namespace IS '命名空间';
|
||||||
|
|
||||||
|
INSERT INTO sj_namespace(name, unique_id, description, deleted, create_dt, update_dt) VALUES ('Development', 'dev', '', 0, sysdate, sysdate);
|
||||||
|
INSERT INTO sj_namespace(name, unique_id, description, deleted, create_dt, update_dt) VALUES ('Production', 'prod', '', 0, sysdate, sysdate);
|
||||||
|
|
||||||
|
-- sj_group_config
|
||||||
|
CREATE TABLE sj_group_config
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) DEFAULT '' NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
token varchar2(64) DEFAULT 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT' NULL,
|
||||||
|
group_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
version number NOT NULL,
|
||||||
|
group_partition number NOT NULL,
|
||||||
|
id_generator_mode smallint DEFAULT 1 NOT NULL,
|
||||||
|
init_scene smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_group_config
|
||||||
|
ADD CONSTRAINT pk_sj_group_config PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_group_config_01 ON sj_group_config (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_group_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_group_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_group_config.description IS '组描述';
|
||||||
|
COMMENT ON COLUMN sj_group_config.token IS 'token';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_status IS '组状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_group_config.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_partition IS '分区';
|
||||||
|
COMMENT ON COLUMN sj_group_config.id_generator_mode IS '唯一id生成模式 默认号段模式';
|
||||||
|
COMMENT ON COLUMN sj_group_config.init_scene IS '是否初始化场景 0:否 1:是';
|
||||||
|
COMMENT ON COLUMN sj_group_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_group_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_group_config IS '组配置';
|
||||||
|
|
||||||
|
INSERT INTO sj_group_config (namespace_id, group_name, description, token, group_status, version, group_partition, id_generator_mode, init_scene, create_dt, update_dt) VALUES ('dev', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, sysdate, sysdate);
|
||||||
|
INSERT INTO sj_group_config (namespace_id, group_name, description, token, group_status, version, group_partition, id_generator_mode, init_scene, create_dt, update_dt) VALUES ('prod', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, sysdate, sysdate);
|
||||||
|
|
||||||
|
-- sj_notify_config
|
||||||
|
CREATE TABLE sj_notify_config
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
notify_name varchar2(64) DEFAULT '' NULL,
|
||||||
|
system_task_type smallint DEFAULT 3 NOT NULL,
|
||||||
|
notify_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
recipient_ids varchar2(128) NULL,
|
||||||
|
notify_threshold number DEFAULT 0 NOT NULL,
|
||||||
|
notify_scene smallint DEFAULT 0 NOT NULL,
|
||||||
|
rate_limiter_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
rate_limiter_threshold number DEFAULT 0 NOT NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_notify_config
|
||||||
|
ADD CONSTRAINT pk_sj_notify_config PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_notify_config_01 ON sj_notify_config (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_notify_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_name IS '通知名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.system_task_type IS '任务类型 1. 重试任务 2. 重试回调 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.recipient_ids IS '接收人id列表';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_threshold IS '通知阈值';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_scene IS '通知场景';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.rate_limiter_threshold IS '每秒限流阈值';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_notify_config IS '通知配置';
|
||||||
|
|
||||||
|
-- sj_notify_recipient
|
||||||
|
CREATE TABLE sj_notify_recipient
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
recipient_name varchar2(64) NULL,
|
||||||
|
notify_type smallint DEFAULT 0 NOT NULL,
|
||||||
|
notify_attribute varchar2(512) NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_notify_recipient
|
||||||
|
ADD CONSTRAINT pk_sj_notify_recipient PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_notify_recipient_01 ON sj_notify_recipient (namespace_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.recipient_name IS '接收人名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书 5 webhook';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.notify_attribute IS '配置属性';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_notify_recipient IS '告警通知接收人';
|
||||||
|
|
||||||
|
-- sj_retry_dead_letter
|
||||||
|
CREATE TABLE sj_retry_dead_letter
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
group_id number NOT NULL,
|
||||||
|
scene_name varchar2(64) NULL,
|
||||||
|
scene_id number NOT NULL,
|
||||||
|
idempotent_id varchar2(64) NULL,
|
||||||
|
biz_no varchar2(64) DEFAULT '' NULL,
|
||||||
|
executor_name varchar2(512) DEFAULT '' NULL,
|
||||||
|
serializer_name varchar2(32) DEFAULT 'jackson' NULL,
|
||||||
|
args_str clob NULL,
|
||||||
|
ext_attrs clob NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry_dead_letter
|
||||||
|
ADD CONSTRAINT pk_sj_retry_dead_letter PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_01 ON sj_retry_dead_letter (namespace_id, group_name, scene_name);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_02 ON sj_retry_dead_letter (idempotent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_03 ON sj_retry_dead_letter (biz_no);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_04 ON sj_retry_dead_letter (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_id IS '组Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.serializer_name IS '执行方法参数序列化器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_retry_dead_letter IS '死信队列表';
|
||||||
|
|
||||||
|
-- sj_retry
|
||||||
|
CREATE TABLE sj_retry
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
group_id number NOT NULL,
|
||||||
|
scene_name varchar2(64) NULL,
|
||||||
|
scene_id number NOT NULL,
|
||||||
|
idempotent_id varchar2(64) NULL,
|
||||||
|
biz_no varchar2(64) DEFAULT '' NULL,
|
||||||
|
executor_name varchar2(512) DEFAULT '' NULL,
|
||||||
|
args_str clob NULL,
|
||||||
|
ext_attrs clob NULL,
|
||||||
|
serializer_name varchar2(32) DEFAULT 'jackson' NULL,
|
||||||
|
next_trigger_at number NOT NULL,
|
||||||
|
retry_count number DEFAULT 0 NOT NULL,
|
||||||
|
retry_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
task_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
bucket_index number DEFAULT 0 NOT NULL,
|
||||||
|
parent_id number DEFAULT 0 NOT NULL,
|
||||||
|
deleted number DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry
|
||||||
|
ADD CONSTRAINT pk_sj_retry PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
|
||||||
|
CREATE INDEX idx_sj_retry_02 ON sj_retry (idempotent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_03 ON sj_retry (retry_status, bucket_index);
|
||||||
|
CREATE INDEX idx_sj_retry_04 ON sj_retry (parent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_05 ON sj_retry (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_id IS '组Id';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_id IS '场景ID';
|
||||||
|
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
||||||
|
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
||||||
|
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_retry.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry.serializer_name IS '执行方法参数序列化器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_retry.retry_count IS '重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry.task_type IS '任务类型 1、重试数据 2、回调数据';
|
||||||
|
COMMENT ON COLUMN sj_retry.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_retry.parent_id IS '父节点id';
|
||||||
|
COMMENT ON COLUMN sj_retry.deleted IS '逻辑删除';
|
||||||
|
COMMENT ON COLUMN sj_retry.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry IS '重试信息表';
|
||||||
|
|
||||||
|
-- sj_retry_task
|
||||||
|
CREATE TABLE sj_retry_task
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
scene_name varchar2(64) NULL,
|
||||||
|
retry_id number NOT NULL,
|
||||||
|
ext_attrs clob NULL,
|
||||||
|
task_status smallint DEFAULT 1 NOT NULL,
|
||||||
|
task_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
operation_reason smallint DEFAULT 0 NOT NULL,
|
||||||
|
client_info varchar2(128) DEFAULT NULL NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry_task
|
||||||
|
ADD CONSTRAINT pk_sj_retry_task PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_task_01 ON sj_retry_task (namespace_id, group_name, scene_name);
|
||||||
|
CREATE INDEX idx_sj_retry_task_02 ON sj_retry_task (task_status);
|
||||||
|
CREATE INDEX idx_sj_retry_task_03 ON sj_retry_task (create_dt);
|
||||||
|
CREATE INDEX idx_sj_retry_task_04 ON sj_retry_task (retry_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_task.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.retry_id IS '重试信息Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.task_status IS '重试状态';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.task_type IS '任务类型 1、重试数据 2、回调数据';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.client_info IS '客户端地址 clientId#ip:port';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_task IS '重试任务表';
|
||||||
|
|
||||||
|
-- sj_retry_task_log_message
|
||||||
|
CREATE TABLE sj_retry_task_log_message
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
retry_id number NOT NULL,
|
||||||
|
retry_task_id number NOT NULL,
|
||||||
|
message clob NULL,
|
||||||
|
log_num number DEFAULT 1 NOT NULL,
|
||||||
|
real_time number DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry_task_log_message
|
||||||
|
ADD CONSTRAINT pk_sj_retry_task_log_message PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_task_log_message_01 ON sj_retry_task_log_message (namespace_id, group_name, retry_task_id);
|
||||||
|
CREATE INDEX idx_sj_retry_task_log_message_02 ON sj_retry_task_log_message (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.retry_id IS '重试信息Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.retry_task_id IS '重试任务Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.message IS '异常信息';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.log_num IS '日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.real_time IS '上报时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_retry_task_log_message IS '任务调度日志信息记录表';
|
||||||
|
|
||||||
|
-- sj_retry_scene_config
|
||||||
|
CREATE TABLE sj_retry_scene_config
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
scene_name varchar2(64) NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
scene_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
max_retry_count number DEFAULT 5 NOT NULL,
|
||||||
|
back_off smallint DEFAULT 1 NOT NULL,
|
||||||
|
trigger_interval varchar2(16) DEFAULT '' NULL,
|
||||||
|
notify_ids varchar2(128) DEFAULT '' NULL,
|
||||||
|
deadline_request number DEFAULT 60000 NOT NULL,
|
||||||
|
executor_timeout number DEFAULT 5 NOT NULL,
|
||||||
|
route_key smallint DEFAULT 4 NOT NULL,
|
||||||
|
block_strategy smallint DEFAULT 1 NOT NULL,
|
||||||
|
cb_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
cb_trigger_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
cb_max_count number DEFAULT 16 NOT NULL,
|
||||||
|
cb_trigger_interval varchar2(16) DEFAULT '' NULL,
|
||||||
|
owner_id number DEFAULT NULL NULL,
|
||||||
|
labels varchar2(512) DEFAULT '' NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry_scene_config
|
||||||
|
ADD CONSTRAINT pk_sj_retry_scene_config PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_scene_config_01 ON sj_retry_scene_config (namespace_id, group_name, scene_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.scene_status IS '组状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.max_retry_count IS '最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.back_off IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.deadline_request IS 'Deadline Request 调用链超时 单位毫秒';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.route_key IS '路由策略';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_status IS '回调状态 0、不开启 1、开启';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_type IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_max_count IS '回调的最大执行次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_interval IS '回调的最大执行次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_scene_config IS '场景配置';
|
||||||
|
|
||||||
|
-- sj_server_node
|
||||||
|
CREATE TABLE sj_server_node
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
host_id varchar2(64) NULL,
|
||||||
|
host_ip varchar2(64) NULL,
|
||||||
|
host_port number NOT NULL,
|
||||||
|
expire_at date NOT NULL,
|
||||||
|
node_type smallint NOT NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
labels varchar2(512) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_server_node
|
||||||
|
ADD CONSTRAINT pk_sj_server_node PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_server_node_01 ON sj_server_node (host_id, host_ip);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_server_node_01 ON sj_server_node (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_server_node_02 ON sj_server_node (expire_at, node_type);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_server_node.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_server_node.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_server_node.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_id IS '主机id';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_ip IS '机器ip';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_port IS '机器端口';
|
||||||
|
COMMENT ON COLUMN sj_server_node.expire_at IS '过期时间';
|
||||||
|
COMMENT ON COLUMN sj_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
|
||||||
|
COMMENT ON COLUMN sj_server_node.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_server_node.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_server_node.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_server_node.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_server_node IS '服务器节点';
|
||||||
|
|
||||||
|
-- sj_distributed_lock
|
||||||
|
CREATE TABLE sj_distributed_lock
|
||||||
|
(
|
||||||
|
name varchar2(64) NOT NULL,
|
||||||
|
lock_until timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
||||||
|
locked_at timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
|
||||||
|
locked_by varchar2(255) NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_distributed_lock
|
||||||
|
ADD CONSTRAINT pk_sj_distributed_lock PRIMARY KEY (name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.name IS '锁名称';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.lock_until IS '锁定时长';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.locked_at IS '锁定时间';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.locked_by IS '锁定者';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_distributed_lock IS '锁定表';
|
||||||
|
|
||||||
|
-- sj_system_user
|
||||||
|
CREATE TABLE sj_system_user
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
username varchar2(64) NULL,
|
||||||
|
password varchar2(128) NULL,
|
||||||
|
role smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_system_user
|
||||||
|
ADD CONSTRAINT pk_sj_system_user PRIMARY KEY (id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_system_user.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_system_user.username IS '账号';
|
||||||
|
COMMENT ON COLUMN sj_system_user.password IS '密码';
|
||||||
|
COMMENT ON COLUMN sj_system_user.role IS '角色:1-普通用户、2-管理员';
|
||||||
|
COMMENT ON COLUMN sj_system_user.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_system_user.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_system_user IS '系统用户表';
|
||||||
|
|
||||||
|
INSERT INTO sj_system_user (username, password, role)
|
||||||
|
VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2);
|
||||||
|
|
||||||
|
-- sj_system_user_permission
|
||||||
|
CREATE TABLE sj_system_user_permission
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
system_user_id number NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_system_user_permission
|
||||||
|
ADD CONSTRAINT pk_sj_system_user_permission PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_system_user_permission_01 ON sj_system_user_permission (namespace_id, group_name, system_user_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.system_user_id IS '系统用户id';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_system_user_permission IS '系统用户权限表';
|
||||||
|
|
||||||
|
-- sj_job
|
||||||
|
CREATE TABLE sj_job
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
job_name varchar2(64) NULL,
|
||||||
|
args_str clob DEFAULT NULL NULL,
|
||||||
|
args_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
next_trigger_at number NOT NULL,
|
||||||
|
job_status smallint DEFAULT 1 NOT NULL,
|
||||||
|
task_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
route_key smallint DEFAULT 4 NOT NULL,
|
||||||
|
executor_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
executor_info varchar2(255) DEFAULT NULL NULL,
|
||||||
|
trigger_type smallint NOT NULL,
|
||||||
|
trigger_interval varchar2(255) NULL,
|
||||||
|
block_strategy smallint DEFAULT 1 NOT NULL,
|
||||||
|
executor_timeout number DEFAULT 0 NOT NULL,
|
||||||
|
max_retry_times number DEFAULT 0 NOT NULL,
|
||||||
|
parallel_num number DEFAULT 1 NOT NULL,
|
||||||
|
retry_interval number DEFAULT 0 NOT NULL,
|
||||||
|
bucket_index number DEFAULT 0 NOT NULL,
|
||||||
|
resident smallint DEFAULT 0 NOT NULL,
|
||||||
|
notify_ids varchar2(128) DEFAULT '' NULL,
|
||||||
|
owner_id number DEFAULT NULL NULL,
|
||||||
|
labels varchar2(512) DEFAULT '' NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job
|
||||||
|
ADD CONSTRAINT pk_sj_job PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_01 ON sj_job (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_02 ON sj_job (job_status, bucket_index);
|
||||||
|
CREATE INDEX idx_sj_job_03 ON sj_job (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job.job_name IS '名称';
|
||||||
|
COMMENT ON COLUMN sj_job.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_job.args_type IS '参数类型 ';
|
||||||
|
COMMENT ON COLUMN sj_job.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_job.job_status IS '任务状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_job.task_type IS '任务类型 1、集群 2、广播 3、切片';
|
||||||
|
COMMENT ON COLUMN sj_job.route_key IS '路由策略';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_type IS '执行器类型';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_info IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_job.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
|
||||||
|
COMMENT ON COLUMN sj_job.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_job.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行 4、恢复';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_job.max_retry_times IS '最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_job.parallel_num IS '并行数';
|
||||||
|
COMMENT ON COLUMN sj_job.retry_interval IS '重试间隔 ( s)';
|
||||||
|
COMMENT ON COLUMN sj_job.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_job.resident IS '是否是常驻任务';
|
||||||
|
COMMENT ON COLUMN sj_job.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_job.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_job.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_job.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_job.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_job.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job IS '任务信息';
|
||||||
|
|
||||||
|
INSERT INTO sj_job(namespace_id, group_name, job_name, args_str, args_type, next_trigger_at, job_status, task_type, route_key, executor_type, executor_info, trigger_type, trigger_interval, block_strategy,executor_timeout, max_retry_times, parallel_num, retry_interval, bucket_index, resident, notify_ids, owner_id, labels, description, ext_attrs, deleted, create_dt, update_dt) VALUES ('dev', 'water_group', 'demo-job', NULL, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '','', '', 0, sysdate, sysdate);
|
||||||
|
|
||||||
|
-- sj_job_log_message
|
||||||
|
CREATE TABLE sj_job_log_message
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
job_id number NOT NULL,
|
||||||
|
task_batch_id number NOT NULL,
|
||||||
|
task_id number NOT NULL,
|
||||||
|
message clob NULL,
|
||||||
|
log_num number DEFAULT 1 NOT NULL,
|
||||||
|
real_time number DEFAULT 0 NOT NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job_log_message
|
||||||
|
ADD CONSTRAINT pk_sj_job_log_message PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_log_message_01 ON sj_job_log_message (task_batch_id, task_id);
|
||||||
|
CREATE INDEX idx_sj_job_log_message_02 ON sj_job_log_message (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_log_message_03 ON sj_job_log_message (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.task_batch_id IS '任务批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.task_id IS '调度任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.message IS '调度信息';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.log_num IS '日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.real_time IS '上报时间';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_job_log_message IS '调度日志';
|
||||||
|
|
||||||
|
-- sj_job_task
|
||||||
|
CREATE TABLE sj_job_task
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
job_id number NOT NULL,
|
||||||
|
task_batch_id number NOT NULL,
|
||||||
|
parent_id number DEFAULT 0 NOT NULL,
|
||||||
|
task_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
retry_count number DEFAULT 0 NOT NULL,
|
||||||
|
mr_stage smallint DEFAULT NULL NULL,
|
||||||
|
leaf smallint DEFAULT '1' NOT NULL,
|
||||||
|
task_name varchar2(255) DEFAULT '' NULL,
|
||||||
|
client_info varchar2(128) DEFAULT NULL NULL,
|
||||||
|
wf_context clob DEFAULT NULL NULL,
|
||||||
|
result_message clob NULL,
|
||||||
|
args_str clob DEFAULT NULL NULL,
|
||||||
|
args_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job_task
|
||||||
|
ADD CONSTRAINT pk_sj_job_task PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_task_01 ON sj_job_task (task_batch_id, task_status);
|
||||||
|
CREATE INDEX idx_sj_job_task_02 ON sj_job_task (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_task_03 ON sj_job_task (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_task.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_task.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_batch_id IS '调度任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.parent_id IS '父执行器id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_status IS '执行的状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_job_task.retry_count IS '重试次数';
|
||||||
|
COMMENT ON COLUMN sj_job_task.mr_stage IS '动态分片所处阶段 1:map 2:reduce 3:mergeReduce';
|
||||||
|
COMMENT ON COLUMN sj_job_task.leaf IS '叶子节点';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_name IS '任务名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task.client_info IS '客户端地址 clientId#ip:port';
|
||||||
|
COMMENT ON COLUMN sj_job_task.wf_context IS '工作流全局上下文';
|
||||||
|
COMMENT ON COLUMN sj_job_task.result_message IS '执行结果';
|
||||||
|
COMMENT ON COLUMN sj_job_task.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_job_task.args_type IS '参数类型 ';
|
||||||
|
COMMENT ON COLUMN sj_job_task.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_task.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_task IS '任务实例';
|
||||||
|
|
||||||
|
-- sj_job_task_batch
|
||||||
|
CREATE TABLE sj_job_task_batch
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
job_id number NOT NULL,
|
||||||
|
workflow_node_id number DEFAULT 0 NOT NULL,
|
||||||
|
parent_workflow_node_id number DEFAULT 0 NOT NULL,
|
||||||
|
workflow_task_batch_id number DEFAULT 0 NOT NULL,
|
||||||
|
task_batch_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
operation_reason smallint DEFAULT 0 NOT NULL,
|
||||||
|
execution_at number DEFAULT 0 NOT NULL,
|
||||||
|
system_task_type smallint DEFAULT 3 NOT NULL,
|
||||||
|
parent_id varchar2(64) DEFAULT '' NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job_task_batch
|
||||||
|
ADD CONSTRAINT pk_sj_job_task_batch PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_01 ON sj_job_task_batch (job_id, task_batch_status);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_02 ON sj_job_task_batch (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_03 ON sj_job_task_batch (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_04 ON sj_job_task_batch (workflow_task_batch_id, workflow_node_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.job_id IS '任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.workflow_node_id IS '工作流节点id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.parent_workflow_node_id IS '工作流任务父批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.workflow_task_batch_id IS '工作流任务批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.execution_at IS '任务执行时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.parent_id IS '父节点';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_task_batch IS '任务批次';
|
||||||
|
|
||||||
|
-- sj_job_summary
|
||||||
|
CREATE TABLE sj_job_summary
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) DEFAULT '' NULL,
|
||||||
|
business_id number NOT NULL,
|
||||||
|
system_task_type smallint DEFAULT 3 NOT NULL,
|
||||||
|
trigger_at date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
success_num number DEFAULT 0 NOT NULL,
|
||||||
|
fail_num number DEFAULT 0 NOT NULL,
|
||||||
|
fail_reason varchar2(512) DEFAULT '' NULL,
|
||||||
|
stop_num number DEFAULT 0 NOT NULL,
|
||||||
|
stop_reason varchar2(512) DEFAULT '' NULL,
|
||||||
|
cancel_num number DEFAULT 0 NOT NULL,
|
||||||
|
cancel_reason varchar2(512) DEFAULT '' NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job_summary
|
||||||
|
ADD CONSTRAINT pk_sj_job_summary PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_job_summary_01 ON sj_job_summary (trigger_at, system_task_type, business_id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_summary_01 ON sj_job_summary (namespace_id, group_name, business_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_summary.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.business_id IS '业务id ( job_id或workflow_id)';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.trigger_at IS '统计时间';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.success_num IS '执行成功-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.fail_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.fail_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.stop_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.stop_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.cancel_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.cancel_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_summary IS 'DashBoard_Job';
|
||||||
|
|
||||||
|
-- sj_retry_summary
|
||||||
|
CREATE TABLE sj_retry_summary
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) DEFAULT '' NULL,
|
||||||
|
scene_name varchar2(64) DEFAULT '' NULL,
|
||||||
|
trigger_at date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
running_num number DEFAULT 0 NOT NULL,
|
||||||
|
finish_num number DEFAULT 0 NOT NULL,
|
||||||
|
max_count_num number DEFAULT 0 NOT NULL,
|
||||||
|
suspend_num number DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_retry_summary
|
||||||
|
ADD CONSTRAINT pk_sj_retry_summary PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_summary_01 ON sj_retry_summary (namespace_id, group_name, scene_name, trigger_at);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_summary_01 ON sj_retry_summary (trigger_at);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.trigger_at IS '统计时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.running_num IS '重试中-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.finish_num IS '重试完成-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.max_count_num IS '重试到达最大次数-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.suspend_num IS '暂停重试-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_summary IS 'DashBoard_Retry';
|
||||||
|
|
||||||
|
-- sj_workflow
|
||||||
|
CREATE TABLE sj_workflow
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
workflow_name varchar2(64) NULL,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
workflow_status smallint DEFAULT 1 NOT NULL,
|
||||||
|
trigger_type smallint NOT NULL,
|
||||||
|
trigger_interval varchar2(255) NULL,
|
||||||
|
next_trigger_at number NOT NULL,
|
||||||
|
block_strategy smallint DEFAULT 1 NOT NULL,
|
||||||
|
executor_timeout number DEFAULT 0 NOT NULL,
|
||||||
|
description varchar2(256) DEFAULT '' NULL,
|
||||||
|
flow_info clob DEFAULT NULL NULL,
|
||||||
|
wf_context clob DEFAULT NULL NULL,
|
||||||
|
notify_ids varchar2(128) DEFAULT '' NULL,
|
||||||
|
bucket_index number DEFAULT 0 NOT NULL,
|
||||||
|
version number NOT NULL,
|
||||||
|
owner_id number DEFAULT NULL NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_workflow
|
||||||
|
ADD CONSTRAINT pk_sj_workflow PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_01 ON sj_workflow (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_02 ON sj_workflow (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow.workflow_name IS '工作流名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow.workflow_status IS '工作流状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_workflow.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_workflow.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
|
||||||
|
COMMENT ON COLUMN sj_workflow.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_workflow.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_workflow.flow_info IS '流程信息';
|
||||||
|
COMMENT ON COLUMN sj_workflow.wf_context IS '上下文';
|
||||||
|
COMMENT ON COLUMN sj_workflow.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_workflow.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_workflow.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_workflow.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow IS '工作流';
|
||||||
|
|
||||||
|
-- sj_workflow_node
|
||||||
|
CREATE TABLE sj_workflow_node
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
node_name varchar2(64) NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
job_id number NOT NULL,
|
||||||
|
workflow_id number NOT NULL,
|
||||||
|
node_type smallint DEFAULT 1 NOT NULL,
|
||||||
|
expression_type smallint DEFAULT 0 NOT NULL,
|
||||||
|
fail_strategy smallint DEFAULT 1 NOT NULL,
|
||||||
|
workflow_node_status smallint DEFAULT 1 NOT NULL,
|
||||||
|
priority_level number DEFAULT 1 NOT NULL,
|
||||||
|
node_info clob DEFAULT NULL NULL,
|
||||||
|
version number NOT NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_workflow_node
|
||||||
|
ADD CONSTRAINT pk_sj_workflow_node PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_node_01 ON sj_workflow_node (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_node_02 ON sj_workflow_node (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_name IS '节点名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.workflow_id IS '工作流ID';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_type IS '1、任务节点 2、条件节点';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.expression_type IS '1、SpEl、2、Aviator 3、QL';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.fail_strategy IS '失败策略 1、跳过 2、阻塞';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.workflow_node_status IS '工作流节点状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.priority_level IS '优先级';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_info IS '节点信息 ';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow_node IS '工作流节点';
|
||||||
|
|
||||||
|
-- sj_workflow_task_batch
|
||||||
|
CREATE TABLE sj_workflow_task_batch
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
workflow_id number NOT NULL,
|
||||||
|
task_batch_status smallint DEFAULT 0 NOT NULL,
|
||||||
|
operation_reason smallint DEFAULT 0 NOT NULL,
|
||||||
|
flow_info clob DEFAULT NULL NULL,
|
||||||
|
wf_context clob DEFAULT NULL NULL,
|
||||||
|
execution_at number DEFAULT 0 NOT NULL,
|
||||||
|
ext_attrs varchar2(256) DEFAULT '' NULL,
|
||||||
|
version number DEFAULT 1 NOT NULL,
|
||||||
|
deleted smallint DEFAULT 0 NOT NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_workflow_task_batch
|
||||||
|
ADD CONSTRAINT pk_sj_workflow_task_batch PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_01 ON sj_workflow_task_batch (workflow_id, task_batch_status);
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_02 ON sj_workflow_task_batch (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_03 ON sj_workflow_task_batch (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.workflow_id IS '工作流任务id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.flow_info IS '流程信息';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.wf_context IS '全局上下文';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.execution_at IS '任务执行时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow_task_batch IS '工作流批次';
|
||||||
|
|
||||||
|
-- sj_job_executor
|
||||||
|
CREATE TABLE sj_job_executor
|
||||||
|
(
|
||||||
|
id number GENERATED ALWAYS AS IDENTITY,
|
||||||
|
namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
|
||||||
|
group_name varchar2(64) NULL,
|
||||||
|
executor_info varchar2(256) NULL,
|
||||||
|
executor_type varchar2(3) NULL,
|
||||||
|
create_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
update_dt date DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE sj_job_executor
|
||||||
|
ADD CONSTRAINT pk_sj_job_executor PRIMARY KEY (id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_executor_01 ON sj_job_executor (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_executor_02 ON sj_job_executor (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_executor.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.executor_info IS '任务执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.executor_type IS '1:java 2:python 3:go';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_executor IS '任务执行器信息';
|
||||||
1407
script/sql/oracle/oracle_ry_vue_5.X.sql
Normal file
1407
script/sql/oracle/oracle_ry_vue_5.X.sql
Normal file
File diff suppressed because it is too large
Load Diff
548
script/sql/oracle/oracle_ry_workflow.sql
Normal file
548
script/sql/oracle/oracle_ry_workflow.sql
Normal file
@@ -0,0 +1,548 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 0、warm-flow-all.sql,地址:https://gitee.com/dromara/warm-flow/blob/master/sql/oracle/oracle-wram-flow-all.sql
|
||||||
|
-- ----------------------------
|
||||||
|
create table FLOW_DEFINITION
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
FLOW_CODE VARCHAR2(40) not null,
|
||||||
|
FLOW_NAME VARCHAR2(100) not null,
|
||||||
|
MODEL_VALUE VARCHAR2(40) default 'CLASSICS' not null,
|
||||||
|
CATEGORY VARCHAR2(100),
|
||||||
|
VERSION VARCHAR2(20) not null,
|
||||||
|
IS_PUBLISH NUMBER(1) default 0 not null,
|
||||||
|
FORM_CUSTOM VARCHAR2(1) default 'N',
|
||||||
|
FORM_PATH VARCHAR2(100),
|
||||||
|
ACTIVITY_STATUS NUMBER(1) default 1,
|
||||||
|
LISTENER_TYPE VARCHAR2(100),
|
||||||
|
LISTENER_PATH VARCHAR2(500),
|
||||||
|
EXT VARCHAR2(500),
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_DEFINITION
|
||||||
|
add constraint PK_FLOW_DEFINITION primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_DEFINITION is '流程定义表';
|
||||||
|
comment on column FLOW_DEFINITION.ID is '主键id';
|
||||||
|
comment on column FLOW_DEFINITION.FLOW_CODE is '流程编码';
|
||||||
|
comment on column FLOW_DEFINITION.FLOW_NAME is '流程名称';
|
||||||
|
comment on column FLOW_DEFINITION.MODEL_VALUE is '设计器模型(CLASSICS经典模型 MIMIC仿钉钉模型)';
|
||||||
|
comment on column FLOW_DEFINITION.CATEGORY is '流程类别';
|
||||||
|
comment on column FLOW_DEFINITION.VERSION is '流程版本';
|
||||||
|
comment on column FLOW_DEFINITION.IS_PUBLISH is '是否发布 (0未发布 1已发布 9失效)';
|
||||||
|
comment on column FLOW_DEFINITION.FORM_CUSTOM is '审批表单是否自定义 (Y是 N否)';
|
||||||
|
comment on column FLOW_DEFINITION.FORM_PATH is '审批表单路径';
|
||||||
|
comment on column FLOW_DEFINITION.ACTIVITY_STATUS is '流程激活状态(0挂起 1激活)';
|
||||||
|
comment on column FLOW_DEFINITION.LISTENER_TYPE is '监听器类型';
|
||||||
|
comment on column FLOW_DEFINITION.LISTENER_PATH is '监听器路径';
|
||||||
|
comment on column FLOW_DEFINITION.EXT is '扩展字段,预留给业务系统使用';
|
||||||
|
comment on column FLOW_DEFINITION.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_DEFINITION.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_DEFINITION.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_DEFINITION.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_DEFINITION.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_DEFINITION.TENANT_ID is '租户id';
|
||||||
|
|
||||||
|
create table FLOW_NODE
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
NODE_TYPE NUMBER(1) not null,
|
||||||
|
DEFINITION_ID NUMBER(20) not null,
|
||||||
|
NODE_CODE VARCHAR2(100) not null,
|
||||||
|
NODE_NAME VARCHAR2(100),
|
||||||
|
PERMISSION_FLAG VARCHAR2(200),
|
||||||
|
NODE_RATIO VARCHAR2(200),
|
||||||
|
COORDINATE VARCHAR2(100),
|
||||||
|
ANY_NODE_SKIP VARCHAR2(100),
|
||||||
|
LISTENER_TYPE VARCHAR2(100),
|
||||||
|
LISTENER_PATH VARCHAR2(500),
|
||||||
|
FORM_CUSTOM VARCHAR2(1) default 'N',
|
||||||
|
FORM_PATH VARCHAR2(100),
|
||||||
|
VERSION VARCHAR2(20),
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
EXT CLOB,
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_NODE
|
||||||
|
add constraint PK_FLOW_NODE primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_NODE is '流程节点表';
|
||||||
|
comment on column FLOW_NODE.ID is '主键id';
|
||||||
|
comment on column FLOW_NODE.NODE_TYPE is '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_NODE.DEFINITION_ID is '对应flow_definition表的id';
|
||||||
|
comment on column FLOW_NODE.NODE_CODE is '流程节点编码';
|
||||||
|
comment on column FLOW_NODE.NODE_NAME is '流程节点名称';
|
||||||
|
comment on column FLOW_NODE.NODE_RATIO is '流程签署比例值';
|
||||||
|
comment on column FLOW_NODE.COORDINATE is '坐标';
|
||||||
|
comment on column FLOW_NODE.ANY_NODE_SKIP is '任意结点跳转';
|
||||||
|
comment on column FLOW_NODE.LISTENER_TYPE is '监听器类型';
|
||||||
|
comment on column FLOW_NODE.LISTENER_PATH is '监听器路径';
|
||||||
|
comment on column FLOW_NODE.FORM_CUSTOM is '审批表单是否自定义 (Y是 N否)';
|
||||||
|
comment on column FLOW_NODE.FORM_PATH is '审批表单路径';
|
||||||
|
comment on column FLOW_NODE.VERSION is '版本';
|
||||||
|
comment on column FLOW_NODE.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_NODE.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_NODE.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_NODE.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_NODE.EXT is '节点扩展属性';
|
||||||
|
comment on column FLOW_NODE.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_NODE.TENANT_ID is '租户id';
|
||||||
|
comment on column FLOW_NODE.PERMISSION_FLAG is '权限标识(权限类型:权限标识,可以多个,用@@隔开)';
|
||||||
|
|
||||||
|
create table FLOW_SKIP
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
DEFINITION_ID NUMBER(20) not null,
|
||||||
|
NOW_NODE_CODE VARCHAR2(100) not null,
|
||||||
|
NOW_NODE_TYPE NUMBER(1),
|
||||||
|
NEXT_NODE_CODE VARCHAR2(100) not null,
|
||||||
|
NEXT_NODE_TYPE NUMBER(1),
|
||||||
|
SKIP_NAME VARCHAR2(100),
|
||||||
|
SKIP_TYPE VARCHAR2(40),
|
||||||
|
SKIP_CONDITION VARCHAR2(200),
|
||||||
|
COORDINATE VARCHAR2(100),
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_SKIP
|
||||||
|
add constraint PK_FLOW_SKIP primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_SKIP is '节点跳转关联表';
|
||||||
|
comment on column FLOW_SKIP.ID is '主键id';
|
||||||
|
comment on column FLOW_SKIP.DEFINITION_ID is '流程定义id';
|
||||||
|
comment on column FLOW_SKIP.NOW_NODE_CODE is '当前流程节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_SKIP.NOW_NODE_TYPE is '下一个流程节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_SKIP.NEXT_NODE_CODE is '下一个流程节点编码';
|
||||||
|
comment on column FLOW_SKIP.NEXT_NODE_TYPE is '下一个流程节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_SKIP.SKIP_NAME is '跳转名称';
|
||||||
|
comment on column FLOW_SKIP.SKIP_TYPE is '跳转类型 (PASS审批通过 REJECT退回)';
|
||||||
|
comment on column FLOW_SKIP.SKIP_CONDITION is '跳转条件';
|
||||||
|
comment on column FLOW_SKIP.COORDINATE is '坐标';
|
||||||
|
comment on column FLOW_SKIP.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_SKIP.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_SKIP.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_SKIP.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_SKIP.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_SKIP.TENANT_ID is '租户id';
|
||||||
|
|
||||||
|
create table FLOW_INSTANCE
|
||||||
|
(
|
||||||
|
ID NUMBER not null,
|
||||||
|
DEFINITION_ID NUMBER not null,
|
||||||
|
BUSINESS_ID VARCHAR2(40) not null,
|
||||||
|
NODE_TYPE NUMBER(1),
|
||||||
|
NODE_CODE VARCHAR2(100),
|
||||||
|
NODE_NAME VARCHAR2(100),
|
||||||
|
VARIABLE CLOB,
|
||||||
|
FLOW_STATUS VARCHAR2(20),
|
||||||
|
ACTIVITY_STATUS NUMBER(1) default 1,
|
||||||
|
DEF_JSON CLOB,
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
EXT VARCHAR2(500),
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_INSTANCE
|
||||||
|
add constraint PK_FLOW_INSTANCE primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_INSTANCE is '流程实例表';
|
||||||
|
comment on column FLOW_INSTANCE.ID is '主键id';
|
||||||
|
comment on column FLOW_INSTANCE.DEFINITION_ID is '对应flow_definition表的id';
|
||||||
|
comment on column FLOW_INSTANCE.BUSINESS_ID is '业务id';
|
||||||
|
comment on column FLOW_INSTANCE.NODE_TYPE is '开始节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_INSTANCE.NODE_CODE is '开始节点编码';
|
||||||
|
comment on column FLOW_INSTANCE.NODE_NAME is '开始节点名称';
|
||||||
|
comment on column FLOW_INSTANCE.VARIABLE is '任务变量';
|
||||||
|
comment on column FLOW_INSTANCE.FLOW_STATUS is '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
comment on column FLOW_INSTANCE.ACTIVITY_STATUS is '流程激活状态(0挂起 1激活)';
|
||||||
|
comment on column FLOW_INSTANCE.DEF_JSON is '流程定义json';
|
||||||
|
comment on column FLOW_INSTANCE.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_INSTANCE.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_INSTANCE.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_INSTANCE.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_INSTANCE.EXT is '扩展字段,预留给业务系统使用';
|
||||||
|
comment on column FLOW_INSTANCE.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_INSTANCE.TENANT_ID is '租户id';
|
||||||
|
|
||||||
|
create table FLOW_TASK
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
DEFINITION_ID NUMBER(20) not null,
|
||||||
|
INSTANCE_ID NUMBER(20) not null,
|
||||||
|
NODE_CODE VARCHAR2(100),
|
||||||
|
NODE_NAME VARCHAR2(100),
|
||||||
|
NODE_TYPE NUMBER(1),
|
||||||
|
FLOW_STATUS VARCHAR2(20),
|
||||||
|
FORM_CUSTOM VARCHAR2(1) default 'N',
|
||||||
|
FORM_PATH VARCHAR2(100),
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_TASK
|
||||||
|
add constraint PK_FLOW_TASK primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_TASK is '待办任务表';
|
||||||
|
comment on column FLOW_TASK.ID is '主键id';
|
||||||
|
comment on column FLOW_TASK.DEFINITION_ID is '对应flow_definition表的id';
|
||||||
|
comment on column FLOW_TASK.INSTANCE_ID is '对应flow_instance表的id';
|
||||||
|
comment on column FLOW_TASK.NODE_CODE is '节点编码';
|
||||||
|
comment on column FLOW_TASK.NODE_NAME is '节点名称';
|
||||||
|
comment on column FLOW_TASK.NODE_TYPE is '节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_TASK.FLOW_STATUS is '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
comment on column FLOW_TASK.FORM_CUSTOM is '审批表单是否自定义 (Y是 N否)';
|
||||||
|
comment on column FLOW_TASK.FORM_PATH is '审批表单路径';
|
||||||
|
comment on column FLOW_TASK.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_TASK.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_TASK.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_TASK.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_TASK.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_TASK.TENANT_ID is '租户id';
|
||||||
|
|
||||||
|
create table FLOW_HIS_TASK
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
DEFINITION_ID NUMBER(20) not null,
|
||||||
|
INSTANCE_ID NUMBER(20) not null,
|
||||||
|
TASK_ID NUMBER(20) not null,
|
||||||
|
NODE_CODE VARCHAR2(100),
|
||||||
|
NODE_NAME VARCHAR2(100),
|
||||||
|
NODE_TYPE NUMBER(1),
|
||||||
|
TARGET_NODE_CODE VARCHAR2(200),
|
||||||
|
TARGET_NODE_NAME VARCHAR2(200),
|
||||||
|
APPROVER VARCHAR2(40),
|
||||||
|
COOPERATE_TYPE NUMBER(1) default 0,
|
||||||
|
COLLABORATOR VARCHAR2(500),
|
||||||
|
SKIP_TYPE VARCHAR2(10),
|
||||||
|
FLOW_STATUS VARCHAR2(20),
|
||||||
|
FORM_CUSTOM VARCHAR2(1) default 'N',
|
||||||
|
FORM_PATH VARCHAR2(100),
|
||||||
|
MESSAGE VARCHAR2(500),
|
||||||
|
VARIABLE CLOB,
|
||||||
|
EXT CLOB,
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_HIS_TASK
|
||||||
|
add constraint PK_FLOW_HIS_TASK primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_HIS_TASK is '历史任务记录表';
|
||||||
|
comment on column FLOW_HIS_TASK.ID is '主键id';
|
||||||
|
comment on column FLOW_HIS_TASK.DEFINITION_ID is '对应flow_definition表的id';
|
||||||
|
comment on column FLOW_HIS_TASK.INSTANCE_ID is '对应flow_instance表的id';
|
||||||
|
comment on column FLOW_HIS_TASK.TASK_ID is '对应flow_task表的id';
|
||||||
|
comment on column FLOW_HIS_TASK.NODE_CODE is '开始节点编码';
|
||||||
|
comment on column FLOW_HIS_TASK.NODE_NAME is '开始节点名称';
|
||||||
|
comment on column FLOW_HIS_TASK.NODE_TYPE is '开始节点类型 (0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
comment on column FLOW_HIS_TASK.TARGET_NODE_CODE is '目标节点编码';
|
||||||
|
comment on column FLOW_HIS_TASK.TARGET_NODE_NAME is '目标节点名称';
|
||||||
|
comment on column FLOW_HIS_TASK.SKIP_TYPE is '流转类型(PASS通过 REJECT退回 NONE无动作)';
|
||||||
|
comment on column FLOW_HIS_TASK.FLOW_STATUS is '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
comment on column FLOW_HIS_TASK.FORM_CUSTOM is '审批表单是否自定义 (Y是 N否)';
|
||||||
|
comment on column FLOW_HIS_TASK.FORM_PATH is '审批表单路径';
|
||||||
|
comment on column FLOW_HIS_TASK.MESSAGE is '审批意见';
|
||||||
|
comment on column FLOW_HIS_TASK.VARIABLE is '任务变量';
|
||||||
|
comment on column FLOW_HIS_TASK.EXT is '扩展字段,预留给业务系统使用';
|
||||||
|
comment on column FLOW_HIS_TASK.CREATE_TIME is '任务开始时间';
|
||||||
|
comment on column FLOW_HIS_TASK.UPDATE_TIME is '审批完成时间';
|
||||||
|
comment on column FLOW_HIS_TASK.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_HIS_TASK.TENANT_ID is '租户id';
|
||||||
|
comment on column FLOW_HIS_TASK.APPROVER is '审批者';
|
||||||
|
comment on column FLOW_HIS_TASK.COOPERATE_TYPE is '协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)';
|
||||||
|
comment on column FLOW_HIS_TASK.COLLABORATOR is '协作人';
|
||||||
|
|
||||||
|
create table FLOW_USER
|
||||||
|
(
|
||||||
|
ID NUMBER(20) not null,
|
||||||
|
TYPE VARCHAR2(1) not null,
|
||||||
|
PROCESSED_BY VARCHAR2(80),
|
||||||
|
ASSOCIATED NUMBER(20) not null,
|
||||||
|
CREATE_TIME DATE,
|
||||||
|
CREATE_BY VARCHAR2(64) default '',
|
||||||
|
UPDATE_TIME DATE,
|
||||||
|
UPDATE_BY VARCHAR2(64) default '',
|
||||||
|
DEL_FLAG VARCHAR2(1) default '0',
|
||||||
|
TENANT_ID VARCHAR2(40)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table FLOW_USER
|
||||||
|
add constraint PK_FLOW_USER primary key (ID);
|
||||||
|
|
||||||
|
comment on table FLOW_USER is '待办任务表';
|
||||||
|
comment on column FLOW_USER.ID is '主键id';
|
||||||
|
comment on column FLOW_USER.TYPE is '人员类型(1待办任务的审批人权限 2待办任务的转办人权限 3待办任务的委托人权限)';
|
||||||
|
comment on column FLOW_USER.PROCESSED_BY is '权限人)';
|
||||||
|
comment on column FLOW_USER.ASSOCIATED is '任务表id';
|
||||||
|
comment on column FLOW_USER.CREATE_TIME is '创建时间';
|
||||||
|
comment on column FLOW_USER.CREATE_BY is '创建人';
|
||||||
|
comment on column FLOW_USER.UPDATE_TIME is '更新时间';
|
||||||
|
comment on column FLOW_USER.UPDATE_BY is '更新人';
|
||||||
|
comment on column FLOW_USER.DEL_FLAG is '删除标志';
|
||||||
|
comment on column FLOW_USER.TENANT_ID is '租户id';
|
||||||
|
|
||||||
|
create index USER_PROCESSED_TYPE on FLOW_USER (PROCESSED_BY, TYPE);
|
||||||
|
create index USER_ASSOCIATED_IDX on FLOW_USER (ASSOCIATED);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程分类表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_category
|
||||||
|
(
|
||||||
|
category_id NUMBER(20) NOT NULL,
|
||||||
|
tenant_id VARCHAR2(20) DEFAULT '000000',
|
||||||
|
parent_id NUMBER(20) DEFAULT 0,
|
||||||
|
ancestors VARCHAR2(500) DEFAULT '',
|
||||||
|
category_name VARCHAR2(30) NOT NULL,
|
||||||
|
order_num NUMBER(4) DEFAULT 0,
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
create_dept NUMBER(20),
|
||||||
|
create_by NUMBER(20),
|
||||||
|
create_time DATE,
|
||||||
|
update_by NUMBER(20),
|
||||||
|
update_time DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table flow_category add constraint pk_flow_category primary key (category_id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_category IS '流程分类';
|
||||||
|
COMMENT ON COLUMN flow_category.category_id IS '流程分类ID';
|
||||||
|
COMMENT ON COLUMN flow_category.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_category.parent_id IS '父流程分类id';
|
||||||
|
COMMENT ON COLUMN flow_category.ancestors IS '祖级列表';
|
||||||
|
COMMENT ON COLUMN flow_category.category_name IS '流程分类名称';
|
||||||
|
COMMENT ON COLUMN flow_category.order_num IS '显示顺序';
|
||||||
|
COMMENT ON COLUMN flow_category.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_category.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_category.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_category.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_category.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_category.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_category VALUES (100, '000000', 0, '0', 'OA审批', 0, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (101, '000000', 100, '0,100', '假勤管理', 0, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (102, '000000', 100, '0,100', '人事管理', 1, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (103, '000000', 101, '0,100,101', '请假', 0, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (104, '000000', 101, '0,100,101', '出差', 1, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (105, '000000', 101, '0,100,101', '加班', 2, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (106, '000000', 101, '0,100,101', '换班', 3, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (107, '000000', 101, '0,100,101', '外出', 4, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (108, '000000', 102, '0,100,102', '转正', 1, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (109, '000000', 102, '0,100,102', '离职', 2, '0', 103, 1, SYSDATE, NULL, NULL);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id NUMBER(20) NOT NULL,
|
||||||
|
component_name VARCHAR2(255),
|
||||||
|
method_name VARCHAR2(255),
|
||||||
|
method_params VARCHAR2(255),
|
||||||
|
view_spel VARCHAR2(255),
|
||||||
|
remark VARCHAR2(255),
|
||||||
|
status CHAR(1) DEFAULT '0',
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
create_dept NUMBER(20),
|
||||||
|
create_by NUMBER(20),
|
||||||
|
create_time DATE,
|
||||||
|
update_by NUMBER(20),
|
||||||
|
update_time DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table flow_spel add constraint pk_flow_spel primary key (id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_spel IS '流程spel表达式定义表';
|
||||||
|
COMMENT ON COLUMN flow_spel.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_spel.component_name IS '组件名称';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_name IS '方法名';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_params IS '参数';
|
||||||
|
COMMENT ON COLUMN flow_spel.view_spel IS '预览spel表达式';
|
||||||
|
COMMENT ON COLUMN flow_spel.remark IS '备注';
|
||||||
|
COMMENT ON COLUMN flow_spel.status IS '状态(0正常 1停用)';
|
||||||
|
COMMENT ON COLUMN flow_spel.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, SYSDATE, 1, SYSDATE);
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, SYSDATE, 1, SYSDATE);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_instance_biz_ext (
|
||||||
|
id NUMBER(20),
|
||||||
|
tenant_id VARCHAR2(20) DEFAULT '000000',
|
||||||
|
create_dept NUMBER(20),
|
||||||
|
create_by NUMBER(20),
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by NUMBER(20),
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
business_code VARCHAR2(255),
|
||||||
|
business_title VARCHAR2(1000),
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
instance_id NUMBER(20),
|
||||||
|
business_id VARCHAR2(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table flow_instance_biz_ext add constraint pk_fi_biz_ext primary key (id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_instance_biz_ext IS '流程实例业务扩展表';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_code IS '业务编码';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_title IS '业务标题';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.instance_id IS '流程实例Id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_id IS '业务Id';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 请假单信息
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE test_leave
|
||||||
|
(
|
||||||
|
id NUMBER (20) NOT NULL,
|
||||||
|
tenant_id VARCHAR2 (20) DEFAULT '000000',
|
||||||
|
apply_code VARCHAR2 (50) NOT NULL,
|
||||||
|
leave_type VARCHAR2 (255) NOT NULL,
|
||||||
|
start_date DATE NOT NULL,
|
||||||
|
end_date DATE NOT NULL,
|
||||||
|
leave_days NUMBER (10) NOT NULL,
|
||||||
|
remark VARCHAR2 (255),
|
||||||
|
status VARCHAR2 (255),
|
||||||
|
create_dept NUMBER (20),
|
||||||
|
create_by NUMBER (20),
|
||||||
|
create_time DATE,
|
||||||
|
update_by NUMBER (20),
|
||||||
|
update_time DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table test_leave add constraint pk_test_leave primary key (id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE test_leave IS '请假申请表';
|
||||||
|
COMMENT ON COLUMN test_leave.id IS 'ID';
|
||||||
|
COMMENT ON COLUMN test_leave.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN test_leave.apply_code IS '申请编号';
|
||||||
|
COMMENT ON COLUMN test_leave.leave_type IS '请假类型';
|
||||||
|
COMMENT ON COLUMN test_leave.start_date IS '开始时间';
|
||||||
|
COMMENT ON COLUMN test_leave.end_date IS '结束时间';
|
||||||
|
COMMENT ON COLUMN test_leave.leave_days IS '请假天数';
|
||||||
|
COMMENT ON COLUMN test_leave.remark IS '请假原因';
|
||||||
|
COMMENT ON COLUMN test_leave.status IS '状态';
|
||||||
|
COMMENT ON COLUMN test_leave.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN test_leave.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN test_leave.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN test_leave.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN test_leave.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11616', '工作流', '0', '6', 'workflow', '', '', '1', '0', 'M', '0', '0', '', 'workflow', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11618', '我的任务', '0', '7', 'task', '', '', '1', '0', 'M', '0', '0', '', 'my-task', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11619', '我的待办', '11618', '2', 'taskWaiting', 'workflow/task/taskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11632', '我的已办', '11618', '3', 'taskFinish', 'workflow/task/taskFinish', '', '1', '1', 'C', '0', '0', '', 'finish', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11633', '我的抄送', '11618', '4', 'taskCopyList', 'workflow/task/taskCopyList', '', '1', '1', 'C', '0', '0', '', 'my-copy', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11620', '流程定义', '11616', '3', 'processDefinition', 'workflow/processDefinition/index', '', '1', '1', 'C', '0', '0', 'workflow:definition:list', 'process-definition', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11621', '流程实例', '11630', '1', 'processInstance', 'workflow/processInstance/index', '', '1', '1', 'C', '0', '0', 'workflow:instance:list', 'tree-table', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', 'workflow:instance:currentList', 'guide', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '/workflow/processDefinition');
|
||||||
|
INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11623', '流程分类查询', '11622', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11624', '流程分类新增', '11622', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11625', '流程分类修改', '11622', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11626', '流程分类删除', '11622', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11627', '流程分类导出', '11622', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11653', '流程实例查询', '11621', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11654', '流程变量查询', '11621', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11655', '流程变量修改', '11621', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11657', '流程实例删除', '11621', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11658', '流程实例作废', '11621', '6', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11659', '流程实例撤销', '11621', '7', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11644', '流程定义查询', '11620', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11645', '流程定义新增', '11620', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11646', '流程定义修改', '11620', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11647', '流程定义删除', '11620', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11648', '流程定义导出', '11620', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11649', '流程定义导入', '11620', '6', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11651', '流程定义复制', '11620', '8', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', 2, 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, SYSDATE, 1, SYSDATE, '流程达式定义菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程spel表达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程spel表达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程spel表达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程spel表达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程spel表达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11638', '请假申请', '5', '1', 'leave', 'workflow/leave/index', '', '1', '0', 'C', '0', '0', 'workflow:leave:list', '#', 103, 1, SYSDATE, NULL, NULL, '请假申请菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11639', '请假申请查询', '11638', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11640', '请假申请新增', '11638', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11641', '请假申请修改', '11638', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11642', '请假申请删除', '11638', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11643', '请假申请导出', '11638', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_dict_type VALUES (13, '000000', '业务状态', 'wf_business_status', 103, 1, SYSDATE, NULL, NULL, '业务状态列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (14, '000000', '表单类型', 'wf_form_type', 103, 1, SYSDATE, NULL, NULL, '表单类型列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (15, '000000', '任务状态', 'wf_task_status', 103, 1, SYSDATE, NULL, NULL, '任务状态');
|
||||||
|
INSERT INTO sys_dict_data VALUES (39, '000000', 1, '已撤销', 'cancel', 'wf_business_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '已撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (40, '000000', 2, '草稿', 'draft', 'wf_business_status', '', 'info', 'N', 103, 1, SYSDATE, NULL, NULL, '草稿');
|
||||||
|
INSERT INTO sys_dict_data VALUES (41, '000000', 3, '待审核', 'waiting', 'wf_business_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (42, '000000', 4, '已完成', 'finish', 'wf_business_status', '', 'success', 'N', 103, 1, SYSDATE, NULL, NULL, '已完成');
|
||||||
|
INSERT INTO sys_dict_data VALUES (43, '000000', 5, '已作废', 'invalid', 'wf_business_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '已作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (44, '000000', 6, '已退回', 'back', 'wf_business_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '已退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (45, '000000', 7, '已终止', 'termination', 'wf_business_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '已终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (46, '000000', 1, '自定义表单', 'static', 'wf_form_type', '', 'success', 'N', 103, 1, SYSDATE, NULL, NULL, '自定义表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (47, '000000', 2, '动态表单', 'dynamic', 'wf_form_type', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '动态表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (48, '000000', 1, '撤销', 'cancel', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (49, '000000', 2, '通过', 'pass', 'wf_task_status', '', 'success', 'N', 103, 1, SYSDATE, NULL, NULL, '通过');
|
||||||
|
INSERT INTO sys_dict_data VALUES (50, '000000', 3, '待审核', 'waiting', 'wf_task_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (51, '000000', 4, '作废', 'invalid', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (52, '000000', 5, '退回', 'back', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (53, '000000', 6, '终止', 'termination', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (54, '000000', 7, '转办', 'transfer', 'wf_task_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '转办');
|
||||||
|
INSERT INTO sys_dict_data VALUES (55, '000000', 8, '委托', 'depute', 'wf_task_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '委托');
|
||||||
|
INSERT INTO sys_dict_data VALUES (56, '000000', 9, '抄送', 'copy', 'wf_task_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '抄送');
|
||||||
|
INSERT INTO sys_dict_data VALUES (57, '000000', 10, '加签', 'sign', 'wf_task_status', '', 'primary', 'N', 103, 1, SYSDATE, NULL, NULL, '加签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (58, '000000', 11, '减签', 'sign_off', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '减签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (59, '000000', 11, '超时', 'timeout', 'wf_task_status', '', 'danger', 'N', 103, 1, SYSDATE, NULL, NULL, '超时');
|
||||||
871
script/sql/postgres/postgres_ry_job.sql
Normal file
871
script/sql/postgres/postgres_ry_job.sql
Normal file
@@ -0,0 +1,871 @@
|
|||||||
|
/*
|
||||||
|
SnailJob Database Transfer Tool
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Target Server Type : PostgreSQL
|
||||||
|
Date: 2025-06-21 23:23:10
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
-- sj_namespace
|
||||||
|
CREATE TABLE sj_namespace
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
name varchar(64) NOT NULL,
|
||||||
|
unique_id varchar(64) NOT NULL,
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_namespace_01 ON sj_namespace (name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_namespace.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_namespace.name IS '名称';
|
||||||
|
COMMENT ON COLUMN sj_namespace.unique_id IS '唯一id';
|
||||||
|
COMMENT ON COLUMN sj_namespace.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_namespace.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_namespace.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_namespace.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_namespace IS '命名空间';
|
||||||
|
|
||||||
|
INSERT INTO sj_namespace VALUES (1, 'Development', 'dev', '', 0, now(), now());
|
||||||
|
INSERT INTO sj_namespace VALUES (2, 'Production', 'prod', '', 0, now(), now());
|
||||||
|
|
||||||
|
-- sj_group_config
|
||||||
|
CREATE TABLE sj_group_config
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL DEFAULT '',
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
token varchar(64) NOT NULL DEFAULT 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT',
|
||||||
|
group_status smallint NOT NULL DEFAULT 0,
|
||||||
|
version int NOT NULL,
|
||||||
|
group_partition int NOT NULL,
|
||||||
|
id_generator_mode smallint NOT NULL DEFAULT 1,
|
||||||
|
init_scene smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_group_config_01 ON sj_group_config (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_group_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_group_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_group_config.description IS '组描述';
|
||||||
|
COMMENT ON COLUMN sj_group_config.token IS 'token';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_status IS '组状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_group_config.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_group_config.group_partition IS '分区';
|
||||||
|
COMMENT ON COLUMN sj_group_config.id_generator_mode IS '唯一id生成模式 默认号段模式';
|
||||||
|
COMMENT ON COLUMN sj_group_config.init_scene IS '是否初始化场景 0:否 1:是';
|
||||||
|
COMMENT ON COLUMN sj_group_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_group_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_group_config IS '组配置';
|
||||||
|
|
||||||
|
INSERT INTO sj_group_config VALUES (1, 'dev', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
|
||||||
|
INSERT INTO sj_group_config VALUES (2, 'prod', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
|
||||||
|
|
||||||
|
-- sj_notify_config
|
||||||
|
CREATE TABLE sj_notify_config
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
notify_name varchar(64) NOT NULL DEFAULT '',
|
||||||
|
system_task_type smallint NOT NULL DEFAULT 3,
|
||||||
|
notify_status smallint NOT NULL DEFAULT 0,
|
||||||
|
recipient_ids varchar(128) NOT NULL,
|
||||||
|
notify_threshold int NOT NULL DEFAULT 0,
|
||||||
|
notify_scene smallint NOT NULL DEFAULT 0,
|
||||||
|
rate_limiter_status smallint NOT NULL DEFAULT 0,
|
||||||
|
rate_limiter_threshold int NOT NULL DEFAULT 0,
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_notify_config_01 ON sj_notify_config (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_notify_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_name IS '通知名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.system_task_type IS '任务类型 1. 重试任务 2. 重试回调 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.recipient_ids IS '接收人id列表';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_threshold IS '通知阈值';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.notify_scene IS '通知场景';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.rate_limiter_threshold IS '每秒限流阈值';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_notify_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_notify_config IS '通知配置';
|
||||||
|
|
||||||
|
-- sj_notify_recipient
|
||||||
|
CREATE TABLE sj_notify_recipient
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
recipient_name varchar(64) NOT NULL,
|
||||||
|
notify_type smallint NOT NULL DEFAULT 0,
|
||||||
|
notify_attribute varchar(512) NOT NULL,
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_notify_recipient_01 ON sj_notify_recipient (namespace_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.recipient_name IS '接收人名称';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书 5 webhook';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.notify_attribute IS '配置属性';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_notify_recipient.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_notify_recipient IS '告警通知接收人';
|
||||||
|
|
||||||
|
-- sj_retry_dead_letter
|
||||||
|
CREATE TABLE sj_retry_dead_letter
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
|
scene_name varchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
|
idempotent_id varchar(64) NOT NULL,
|
||||||
|
biz_no varchar(64) NOT NULL DEFAULT '',
|
||||||
|
executor_name varchar(512) NOT NULL DEFAULT '',
|
||||||
|
serializer_name varchar(32) NOT NULL DEFAULT 'jackson',
|
||||||
|
args_str text NOT NULL,
|
||||||
|
ext_attrs text NOT NULL,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_01 ON sj_retry_dead_letter (namespace_id, group_name, scene_name);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_02 ON sj_retry_dead_letter (idempotent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_03 ON sj_retry_dead_letter (biz_no);
|
||||||
|
CREATE INDEX idx_sj_retry_dead_letter_04 ON sj_retry_dead_letter (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.group_id IS '组Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.serializer_name IS '执行方法参数序列化器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry_dead_letter.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_retry_dead_letter IS '死信队列表';
|
||||||
|
|
||||||
|
-- sj_retry
|
||||||
|
CREATE TABLE sj_retry
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
group_id bigint NOT NULL,
|
||||||
|
scene_name varchar(64) NOT NULL,
|
||||||
|
scene_id bigint NOT NULL,
|
||||||
|
idempotent_id varchar(64) NOT NULL,
|
||||||
|
biz_no varchar(64) NOT NULL DEFAULT '',
|
||||||
|
executor_name varchar(512) NOT NULL DEFAULT '',
|
||||||
|
args_str text NOT NULL,
|
||||||
|
ext_attrs text NOT NULL,
|
||||||
|
serializer_name varchar(32) NOT NULL DEFAULT 'jackson',
|
||||||
|
next_trigger_at bigint NOT NULL,
|
||||||
|
retry_count int NOT NULL DEFAULT 0,
|
||||||
|
retry_status smallint NOT NULL DEFAULT 0,
|
||||||
|
task_type smallint NOT NULL DEFAULT 1,
|
||||||
|
bucket_index int NOT NULL DEFAULT 0,
|
||||||
|
parent_id bigint NOT NULL DEFAULT 0,
|
||||||
|
deleted bigint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
|
||||||
|
CREATE INDEX idx_sj_retry_02 ON sj_retry (idempotent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_03 ON sj_retry (retry_status, bucket_index);
|
||||||
|
CREATE INDEX idx_sj_retry_04 ON sj_retry (parent_id);
|
||||||
|
CREATE INDEX idx_sj_retry_05 ON sj_retry (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.group_id IS '组Id';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.scene_id IS '场景ID';
|
||||||
|
COMMENT ON COLUMN sj_retry.idempotent_id IS '幂等id';
|
||||||
|
COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
|
||||||
|
COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_retry.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry.serializer_name IS '执行方法参数序列化器名称';
|
||||||
|
COMMENT ON COLUMN sj_retry.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_retry.retry_count IS '重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry.task_type IS '任务类型 1、重试数据 2、回调数据';
|
||||||
|
COMMENT ON COLUMN sj_retry.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_retry.parent_id IS '父节点id';
|
||||||
|
COMMENT ON COLUMN sj_retry.deleted IS '逻辑删除';
|
||||||
|
COMMENT ON COLUMN sj_retry.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry IS '重试信息表';
|
||||||
|
|
||||||
|
-- sj_retry_task
|
||||||
|
CREATE TABLE sj_retry_task
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
scene_name varchar(64) NOT NULL,
|
||||||
|
retry_id bigint NOT NULL,
|
||||||
|
ext_attrs text NOT NULL,
|
||||||
|
task_status smallint NOT NULL DEFAULT 1,
|
||||||
|
task_type smallint NOT NULL DEFAULT 1,
|
||||||
|
operation_reason smallint NOT NULL DEFAULT 0,
|
||||||
|
client_info varchar(128) NULL DEFAULT NULL,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_task_01 ON sj_retry_task (namespace_id, group_name, scene_name);
|
||||||
|
CREATE INDEX idx_sj_retry_task_02 ON sj_retry_task (task_status);
|
||||||
|
CREATE INDEX idx_sj_retry_task_03 ON sj_retry_task (create_dt);
|
||||||
|
CREATE INDEX idx_sj_retry_task_04 ON sj_retry_task (retry_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_task.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.retry_id IS '重试信息Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.task_status IS '重试状态';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.task_type IS '任务类型 1、重试数据 2、回调数据';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.client_info IS '客户端地址 clientId#ip:port';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_task.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_task IS '重试任务表';
|
||||||
|
|
||||||
|
-- sj_retry_task_log_message
|
||||||
|
CREATE TABLE sj_retry_task_log_message
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
retry_id bigint NOT NULL,
|
||||||
|
retry_task_id bigint NOT NULL,
|
||||||
|
message text NOT NULL,
|
||||||
|
log_num int NOT NULL DEFAULT 1,
|
||||||
|
real_time bigint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_task_log_message_01 ON sj_retry_task_log_message (namespace_id, group_name, retry_task_id);
|
||||||
|
CREATE INDEX idx_sj_retry_task_log_message_02 ON sj_retry_task_log_message (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.retry_id IS '重试信息Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.retry_task_id IS '重试任务Id';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.message IS '异常信息';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.log_num IS '日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.real_time IS '上报时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_task_log_message.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_retry_task_log_message IS '任务调度日志信息记录表';
|
||||||
|
|
||||||
|
-- sj_retry_scene_config
|
||||||
|
CREATE TABLE sj_retry_scene_config
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
scene_name varchar(64) NOT NULL,
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
scene_status smallint NOT NULL DEFAULT 0,
|
||||||
|
max_retry_count int NOT NULL DEFAULT 5,
|
||||||
|
back_off smallint NOT NULL DEFAULT 1,
|
||||||
|
trigger_interval varchar(16) NOT NULL DEFAULT '',
|
||||||
|
notify_ids varchar(128) NOT NULL DEFAULT '',
|
||||||
|
deadline_request bigint NOT NULL DEFAULT 60000,
|
||||||
|
executor_timeout int NOT NULL DEFAULT 5,
|
||||||
|
route_key smallint NOT NULL DEFAULT 4,
|
||||||
|
block_strategy smallint NOT NULL DEFAULT 1,
|
||||||
|
cb_status smallint NOT NULL DEFAULT 0,
|
||||||
|
cb_trigger_type smallint NOT NULL DEFAULT 1,
|
||||||
|
cb_max_count int NOT NULL DEFAULT 16,
|
||||||
|
cb_trigger_interval varchar(16) NOT NULL DEFAULT '',
|
||||||
|
owner_id bigint NULL DEFAULT NULL,
|
||||||
|
labels varchar(512) NULL DEFAULT '',
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_scene_config_01 ON sj_retry_scene_config (namespace_id, group_name, scene_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.scene_status IS '组状态 0、未启用 1、启用';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.max_retry_count IS '最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.back_off IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.deadline_request IS 'Deadline Request 调用链超时 单位毫秒';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.route_key IS '路由策略';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_status IS '回调状态 0、不开启 1、开启';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_type IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_max_count IS '回调的最大执行次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_interval IS '回调的最大执行次数';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_scene_config.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_scene_config IS '场景配置';
|
||||||
|
|
||||||
|
-- sj_server_node
|
||||||
|
CREATE TABLE sj_server_node
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
host_id varchar(64) NOT NULL,
|
||||||
|
host_ip varchar(64) NOT NULL,
|
||||||
|
host_port int NOT NULL,
|
||||||
|
expire_at timestamp NOT NULL,
|
||||||
|
node_type smallint NOT NULL,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
labels varchar(512) NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_server_node_01 ON sj_server_node (host_id, host_ip);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_server_node_01 ON sj_server_node (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_server_node_02 ON sj_server_node (expire_at, node_type);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_server_node.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_server_node.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_server_node.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_id IS '主机id';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_ip IS '机器ip';
|
||||||
|
COMMENT ON COLUMN sj_server_node.host_port IS '机器端口';
|
||||||
|
COMMENT ON COLUMN sj_server_node.expire_at IS '过期时间';
|
||||||
|
COMMENT ON COLUMN sj_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
|
||||||
|
COMMENT ON COLUMN sj_server_node.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_server_node.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_server_node.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_server_node.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_server_node IS '服务器节点';
|
||||||
|
|
||||||
|
-- sj_distributed_lock
|
||||||
|
CREATE TABLE sj_distributed_lock
|
||||||
|
(
|
||||||
|
name varchar(64) NOT NULL PRIMARY KEY,
|
||||||
|
lock_until timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||||
|
locked_at timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||||
|
locked_by varchar(255) NOT NULL,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.name IS '锁名称';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.lock_until IS '锁定时长';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.locked_at IS '锁定时间';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.locked_by IS '锁定者';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_distributed_lock.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_distributed_lock IS '锁定表';
|
||||||
|
|
||||||
|
-- sj_system_user
|
||||||
|
CREATE TABLE sj_system_user
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
username varchar(64) NOT NULL,
|
||||||
|
password varchar(128) NOT NULL,
|
||||||
|
role smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_system_user.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_system_user.username IS '账号';
|
||||||
|
COMMENT ON COLUMN sj_system_user.password IS '密码';
|
||||||
|
COMMENT ON COLUMN sj_system_user.role IS '角色:1-普通用户、2-管理员';
|
||||||
|
COMMENT ON COLUMN sj_system_user.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_system_user.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_system_user IS '系统用户表';
|
||||||
|
|
||||||
|
INSERT INTO sj_system_user (username, password, role)
|
||||||
|
VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2);
|
||||||
|
|
||||||
|
-- sj_system_user_permission
|
||||||
|
CREATE TABLE sj_system_user_permission
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
system_user_id bigint NOT NULL,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_system_user_permission_01 ON sj_system_user_permission (namespace_id, group_name, system_user_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.system_user_id IS '系统用户id';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_system_user_permission.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_system_user_permission IS '系统用户权限表';
|
||||||
|
|
||||||
|
-- sj_job
|
||||||
|
CREATE TABLE sj_job
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
job_name varchar(64) NOT NULL,
|
||||||
|
args_str text NULL DEFAULT NULL,
|
||||||
|
args_type smallint NOT NULL DEFAULT 1,
|
||||||
|
next_trigger_at bigint NOT NULL,
|
||||||
|
job_status smallint NOT NULL DEFAULT 1,
|
||||||
|
task_type smallint NOT NULL DEFAULT 1,
|
||||||
|
route_key smallint NOT NULL DEFAULT 4,
|
||||||
|
executor_type smallint NOT NULL DEFAULT 1,
|
||||||
|
executor_info varchar(255) NULL DEFAULT NULL,
|
||||||
|
trigger_type smallint NOT NULL,
|
||||||
|
trigger_interval varchar(255) NOT NULL,
|
||||||
|
block_strategy smallint NOT NULL DEFAULT 1,
|
||||||
|
executor_timeout int NOT NULL DEFAULT 0,
|
||||||
|
max_retry_times int NOT NULL DEFAULT 0,
|
||||||
|
parallel_num int NOT NULL DEFAULT 1,
|
||||||
|
retry_interval int NOT NULL DEFAULT 0,
|
||||||
|
bucket_index int NOT NULL DEFAULT 0,
|
||||||
|
resident smallint NOT NULL DEFAULT 0,
|
||||||
|
notify_ids varchar(128) NOT NULL DEFAULT '',
|
||||||
|
owner_id bigint NULL DEFAULT NULL,
|
||||||
|
labels varchar(512) NULL DEFAULT '',
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_01 ON sj_job (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_02 ON sj_job (job_status, bucket_index);
|
||||||
|
CREATE INDEX idx_sj_job_03 ON sj_job (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job.job_name IS '名称';
|
||||||
|
COMMENT ON COLUMN sj_job.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_job.args_type IS '参数类型 ';
|
||||||
|
COMMENT ON COLUMN sj_job.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_job.job_status IS '任务状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_job.task_type IS '任务类型 1、集群 2、广播 3、切片';
|
||||||
|
COMMENT ON COLUMN sj_job.route_key IS '路由策略';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_type IS '执行器类型';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_info IS '执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_job.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
|
||||||
|
COMMENT ON COLUMN sj_job.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_job.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行 4、恢复';
|
||||||
|
COMMENT ON COLUMN sj_job.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_job.max_retry_times IS '最大重试次数';
|
||||||
|
COMMENT ON COLUMN sj_job.parallel_num IS '并行数';
|
||||||
|
COMMENT ON COLUMN sj_job.retry_interval IS '重试间隔 ( s)';
|
||||||
|
COMMENT ON COLUMN sj_job.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_job.resident IS '是否是常驻任务';
|
||||||
|
COMMENT ON COLUMN sj_job.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_job.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_job.labels IS '标签';
|
||||||
|
COMMENT ON COLUMN sj_job.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_job.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_job.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job IS '任务信息';
|
||||||
|
|
||||||
|
INSERT INTO sj_job VALUES (1, 'dev', 'water_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '', '', '', 0, now(), now());
|
||||||
|
|
||||||
|
-- sj_job_log_message
|
||||||
|
CREATE TABLE sj_job_log_message
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
job_id bigint NOT NULL,
|
||||||
|
task_batch_id bigint NOT NULL,
|
||||||
|
task_id bigint NOT NULL,
|
||||||
|
message text NOT NULL,
|
||||||
|
log_num int NOT NULL DEFAULT 1,
|
||||||
|
real_time bigint NOT NULL DEFAULT 0,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_log_message_01 ON sj_job_log_message (task_batch_id, task_id);
|
||||||
|
CREATE INDEX idx_sj_job_log_message_02 ON sj_job_log_message (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_log_message_03 ON sj_job_log_message (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.task_batch_id IS '任务批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.task_id IS '调度任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.message IS '调度信息';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.log_num IS '日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.real_time IS '上报时间';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_log_message.create_dt IS '创建时间';
|
||||||
|
COMMENT ON TABLE sj_job_log_message IS '调度日志';
|
||||||
|
|
||||||
|
-- sj_job_task
|
||||||
|
CREATE TABLE sj_job_task
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
job_id bigint NOT NULL,
|
||||||
|
task_batch_id bigint NOT NULL,
|
||||||
|
parent_id bigint NOT NULL DEFAULT 0,
|
||||||
|
task_status smallint NOT NULL DEFAULT 0,
|
||||||
|
retry_count int NOT NULL DEFAULT 0,
|
||||||
|
mr_stage smallint NULL DEFAULT NULL,
|
||||||
|
leaf smallint NOT NULL DEFAULT '1',
|
||||||
|
task_name varchar(255) NOT NULL DEFAULT '',
|
||||||
|
client_info varchar(128) NULL DEFAULT NULL,
|
||||||
|
wf_context text NULL DEFAULT NULL,
|
||||||
|
result_message text NOT NULL,
|
||||||
|
args_str text NULL DEFAULT NULL,
|
||||||
|
args_type smallint NOT NULL DEFAULT 1,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_task_01 ON sj_job_task (task_batch_id, task_status);
|
||||||
|
CREATE INDEX idx_sj_job_task_02 ON sj_job_task (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_task_03 ON sj_job_task (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_task.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_task.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_batch_id IS '调度任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.parent_id IS '父执行器id';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_status IS '执行的状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_job_task.retry_count IS '重试次数';
|
||||||
|
COMMENT ON COLUMN sj_job_task.mr_stage IS '动态分片所处阶段 1:map 2:reduce 3:mergeReduce';
|
||||||
|
COMMENT ON COLUMN sj_job_task.leaf IS '叶子节点';
|
||||||
|
COMMENT ON COLUMN sj_job_task.task_name IS '任务名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task.client_info IS '客户端地址 clientId#ip:port';
|
||||||
|
COMMENT ON COLUMN sj_job_task.wf_context IS '工作流全局上下文';
|
||||||
|
COMMENT ON COLUMN sj_job_task.result_message IS '执行结果';
|
||||||
|
COMMENT ON COLUMN sj_job_task.args_str IS '执行方法参数';
|
||||||
|
COMMENT ON COLUMN sj_job_task.args_type IS '参数类型 ';
|
||||||
|
COMMENT ON COLUMN sj_job_task.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_task.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_task IS '任务实例';
|
||||||
|
|
||||||
|
-- sj_job_task_batch
|
||||||
|
CREATE TABLE sj_job_task_batch
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
job_id bigint NOT NULL,
|
||||||
|
workflow_node_id bigint NOT NULL DEFAULT 0,
|
||||||
|
parent_workflow_node_id bigint NOT NULL DEFAULT 0,
|
||||||
|
workflow_task_batch_id bigint NOT NULL DEFAULT 0,
|
||||||
|
task_batch_status smallint NOT NULL DEFAULT 0,
|
||||||
|
operation_reason smallint NOT NULL DEFAULT 0,
|
||||||
|
execution_at bigint NOT NULL DEFAULT 0,
|
||||||
|
system_task_type smallint NOT NULL DEFAULT 3,
|
||||||
|
parent_id varchar(64) NOT NULL DEFAULT '',
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_01 ON sj_job_task_batch (job_id, task_batch_status);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_02 ON sj_job_task_batch (create_dt);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_03 ON sj_job_task_batch (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_task_batch_04 ON sj_job_task_batch (workflow_task_batch_id, workflow_node_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.job_id IS '任务id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.workflow_node_id IS '工作流节点id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.parent_workflow_node_id IS '工作流任务父批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.workflow_task_batch_id IS '工作流任务批次id';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.execution_at IS '任务执行时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.parent_id IS '父节点';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_task_batch.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_task_batch IS '任务批次';
|
||||||
|
|
||||||
|
-- sj_job_summary
|
||||||
|
CREATE TABLE sj_job_summary
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL DEFAULT '',
|
||||||
|
business_id bigint NOT NULL,
|
||||||
|
system_task_type smallint NOT NULL DEFAULT 3,
|
||||||
|
trigger_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
success_num int NOT NULL DEFAULT 0,
|
||||||
|
fail_num int NOT NULL DEFAULT 0,
|
||||||
|
fail_reason varchar(512) NOT NULL DEFAULT '',
|
||||||
|
stop_num int NOT NULL DEFAULT 0,
|
||||||
|
stop_reason varchar(512) NOT NULL DEFAULT '',
|
||||||
|
cancel_num int NOT NULL DEFAULT 0,
|
||||||
|
cancel_reason varchar(512) NOT NULL DEFAULT '',
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_job_summary_01 ON sj_job_summary (trigger_at, system_task_type, business_id);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_summary_01 ON sj_job_summary (namespace_id, group_name, business_id);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_summary.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.business_id IS '业务id ( job_id或workflow_id)';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.trigger_at IS '统计时间';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.success_num IS '执行成功-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.fail_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.fail_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.stop_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.stop_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.cancel_num IS '执行失败-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.cancel_reason IS '失败原因';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_summary.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_summary IS 'DashBoard_Job';
|
||||||
|
|
||||||
|
-- sj_retry_summary
|
||||||
|
CREATE TABLE sj_retry_summary
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL DEFAULT '',
|
||||||
|
scene_name varchar(64) NOT NULL DEFAULT '',
|
||||||
|
trigger_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
running_num int NOT NULL DEFAULT 0,
|
||||||
|
finish_num int NOT NULL DEFAULT 0,
|
||||||
|
max_count_num int NOT NULL DEFAULT 0,
|
||||||
|
suspend_num int NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_sj_retry_summary_01 ON sj_retry_summary (namespace_id, group_name, scene_name, trigger_at);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_retry_summary_01 ON sj_retry_summary (trigger_at);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.scene_name IS '场景名称';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.trigger_at IS '统计时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.running_num IS '重试中-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.finish_num IS '重试完成-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.max_count_num IS '重试到达最大次数-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.suspend_num IS '暂停重试-日志数量';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_retry_summary.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_retry_summary IS 'DashBoard_Retry';
|
||||||
|
|
||||||
|
-- sj_workflow
|
||||||
|
CREATE TABLE sj_workflow
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
workflow_name varchar(64) NOT NULL,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
workflow_status smallint NOT NULL DEFAULT 1,
|
||||||
|
trigger_type smallint NOT NULL,
|
||||||
|
trigger_interval varchar(255) NOT NULL,
|
||||||
|
next_trigger_at bigint NOT NULL,
|
||||||
|
block_strategy smallint NOT NULL DEFAULT 1,
|
||||||
|
executor_timeout int NOT NULL DEFAULT 0,
|
||||||
|
description varchar(256) NOT NULL DEFAULT '',
|
||||||
|
flow_info text NULL DEFAULT NULL,
|
||||||
|
wf_context text NULL DEFAULT NULL,
|
||||||
|
notify_ids varchar(128) NOT NULL DEFAULT '',
|
||||||
|
bucket_index int NOT NULL DEFAULT 0,
|
||||||
|
version int NOT NULL,
|
||||||
|
owner_id bigint NULL DEFAULT NULL,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_01 ON sj_workflow (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_02 ON sj_workflow (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow.workflow_name IS '工作流名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow.workflow_status IS '工作流状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_workflow.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.trigger_interval IS '间隔时长';
|
||||||
|
COMMENT ON COLUMN sj_workflow.next_trigger_at IS '下次触发时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
|
||||||
|
COMMENT ON COLUMN sj_workflow.executor_timeout IS '任务执行超时时间,单位秒';
|
||||||
|
COMMENT ON COLUMN sj_workflow.description IS '描述';
|
||||||
|
COMMENT ON COLUMN sj_workflow.flow_info IS '流程信息';
|
||||||
|
COMMENT ON COLUMN sj_workflow.wf_context IS '上下文';
|
||||||
|
COMMENT ON COLUMN sj_workflow.notify_ids IS '通知告警场景配置id列表';
|
||||||
|
COMMENT ON COLUMN sj_workflow.bucket_index IS 'bucket';
|
||||||
|
COMMENT ON COLUMN sj_workflow.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow.owner_id IS '负责人id';
|
||||||
|
COMMENT ON COLUMN sj_workflow.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow IS '工作流';
|
||||||
|
|
||||||
|
-- sj_workflow_node
|
||||||
|
CREATE TABLE sj_workflow_node
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
node_name varchar(64) NOT NULL,
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
job_id bigint NOT NULL,
|
||||||
|
workflow_id bigint NOT NULL,
|
||||||
|
node_type smallint NOT NULL DEFAULT 1,
|
||||||
|
expression_type smallint NOT NULL DEFAULT 0,
|
||||||
|
fail_strategy smallint NOT NULL DEFAULT 1,
|
||||||
|
workflow_node_status smallint NOT NULL DEFAULT 1,
|
||||||
|
priority_level int NOT NULL DEFAULT 1,
|
||||||
|
node_info text NULL DEFAULT NULL,
|
||||||
|
version int NOT NULL,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_node_01 ON sj_workflow_node (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_node_02 ON sj_workflow_node (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_name IS '节点名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.job_id IS '任务信息id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.workflow_id IS '工作流ID';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_type IS '1、任务节点 2、条件节点';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.expression_type IS '1、SpEl、2、Aviator 3、QL';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.fail_strategy IS '失败策略 1、跳过 2、阻塞';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.workflow_node_status IS '工作流节点状态 0、关闭、1、开启';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.priority_level IS '优先级';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.node_info IS '节点信息 ';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_node.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow_node IS '工作流节点';
|
||||||
|
|
||||||
|
-- sj_workflow_task_batch
|
||||||
|
CREATE TABLE sj_workflow_task_batch
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
workflow_id bigint NOT NULL,
|
||||||
|
task_batch_status smallint NOT NULL DEFAULT 0,
|
||||||
|
operation_reason smallint NOT NULL DEFAULT 0,
|
||||||
|
flow_info text NULL DEFAULT NULL,
|
||||||
|
wf_context text NULL DEFAULT NULL,
|
||||||
|
execution_at bigint NOT NULL DEFAULT 0,
|
||||||
|
ext_attrs varchar(256) NULL DEFAULT '',
|
||||||
|
version int NOT NULL DEFAULT 1,
|
||||||
|
deleted smallint NOT NULL DEFAULT 0,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_01 ON sj_workflow_task_batch (workflow_id, task_batch_status);
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_02 ON sj_workflow_task_batch (create_dt);
|
||||||
|
CREATE INDEX idx_sj_workflow_task_batch_03 ON sj_workflow_task_batch (namespace_id, group_name);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.workflow_id IS '工作流任务id';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.operation_reason IS '操作原因';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.flow_info IS '流程信息';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.wf_context IS '全局上下文';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.execution_at IS '任务执行时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.ext_attrs IS '扩展字段';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.version IS '版本号';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.deleted IS '逻辑删除 1、删除';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_workflow_task_batch.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_workflow_task_batch IS '工作流批次';
|
||||||
|
|
||||||
|
-- sj_job_executor
|
||||||
|
CREATE TABLE sj_job_executor
|
||||||
|
(
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
|
||||||
|
group_name varchar(64) NOT NULL,
|
||||||
|
executor_info varchar(256) NOT NULL,
|
||||||
|
executor_type varchar(3) NOT NULL,
|
||||||
|
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_sj_job_executor_01 ON sj_job_executor (namespace_id, group_name);
|
||||||
|
CREATE INDEX idx_sj_job_executor_02 ON sj_job_executor (create_dt);
|
||||||
|
|
||||||
|
COMMENT ON COLUMN sj_job_executor.id IS '主键';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.namespace_id IS '命名空间id';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.group_name IS '组名称';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.executor_info IS '任务执行器名称';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.executor_type IS '1:java 2:python 3:go';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.create_dt IS '创建时间';
|
||||||
|
COMMENT ON COLUMN sj_job_executor.update_dt IS '修改时间';
|
||||||
|
COMMENT ON TABLE sj_job_executor IS '任务执行器信息';
|
||||||
1398
script/sql/postgres/postgres_ry_vue_5.X.sql
Normal file
1398
script/sql/postgres/postgres_ry_vue_5.X.sql
Normal file
File diff suppressed because it is too large
Load Diff
527
script/sql/postgres/postgres_ry_workflow.sql
Normal file
527
script/sql/postgres/postgres_ry_workflow.sql
Normal file
@@ -0,0 +1,527 @@
|
|||||||
|
CREATE TABLE flow_definition
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
flow_code varchar(40) NOT NULL,
|
||||||
|
flow_name varchar(100) NOT NULL,
|
||||||
|
model_value varchar(40) NOT NULL DEFAULT 'CLASSICS',
|
||||||
|
category varchar(100) NULL,
|
||||||
|
"version" varchar(20) NOT NULL,
|
||||||
|
is_publish int2 NOT NULL DEFAULT 0,
|
||||||
|
form_custom bpchar(1) NULL DEFAULT 'N':: character varying,
|
||||||
|
form_path varchar(100) NULL,
|
||||||
|
activity_status int2 NOT NULL DEFAULT 1,
|
||||||
|
listener_type varchar(100) NULL,
|
||||||
|
listener_path varchar(400) NULL,
|
||||||
|
ext varchar(500) NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_definition_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_definition IS '流程定义表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_definition.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_definition.flow_code IS '流程编码';
|
||||||
|
COMMENT ON COLUMN flow_definition.flow_name IS '流程名称';
|
||||||
|
COMMENT ON COLUMN flow_definition.model_value IS '设计器模型(CLASSICS经典模型 MIMIC仿钉钉模型)';
|
||||||
|
COMMENT ON COLUMN flow_definition.category IS '流程类别';
|
||||||
|
COMMENT ON COLUMN flow_definition."version" IS '流程版本';
|
||||||
|
COMMENT ON COLUMN flow_definition.is_publish IS '是否发布(0未发布 1已发布 9失效)';
|
||||||
|
COMMENT ON COLUMN flow_definition.form_custom IS '审批表单是否自定义(Y是 N否)';
|
||||||
|
COMMENT ON COLUMN flow_definition.form_path IS '审批表单路径';
|
||||||
|
COMMENT ON COLUMN flow_definition.activity_status IS '流程激活状态(0挂起 1激活)';
|
||||||
|
COMMENT ON COLUMN flow_definition.listener_type IS '监听器类型';
|
||||||
|
COMMENT ON COLUMN flow_definition.listener_path IS '监听器路径';
|
||||||
|
COMMENT ON COLUMN flow_definition.ext IS '扩展字段,预留给业务系统使用';
|
||||||
|
COMMENT ON COLUMN flow_definition.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_definition.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_definition.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_definition.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_definition.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_definition.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
CREATE TABLE flow_node
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
node_type int2 NOT NULL,
|
||||||
|
definition_id int8 NOT NULL,
|
||||||
|
node_code varchar(100) NOT NULL,
|
||||||
|
node_name varchar(100) NULL,
|
||||||
|
permission_flag varchar(200) NULL,
|
||||||
|
node_ratio varchar(200) NULL,
|
||||||
|
coordinate varchar(100) NULL,
|
||||||
|
any_node_skip varchar(100) NULL,
|
||||||
|
listener_type varchar(100) NULL,
|
||||||
|
listener_path varchar(400) NULL,
|
||||||
|
form_custom bpchar(1) NULL DEFAULT 'N':: character varying,
|
||||||
|
form_path varchar(100) NULL,
|
||||||
|
"version" varchar(20) NOT NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
ext text NULL,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_node_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_node IS '流程节点表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_node.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_node.node_type IS '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_node.definition_id IS '流程定义id';
|
||||||
|
COMMENT ON COLUMN flow_node.node_code IS '流程节点编码';
|
||||||
|
COMMENT ON COLUMN flow_node.node_name IS '流程节点名称';
|
||||||
|
COMMENT ON COLUMN flow_node.permission_flag IS '权限标识(权限类型:权限标识,可以多个,用@@隔开)';
|
||||||
|
COMMENT ON COLUMN flow_node.node_ratio IS '流程签署比例值';
|
||||||
|
COMMENT ON COLUMN flow_node.coordinate IS '坐标';
|
||||||
|
COMMENT ON COLUMN flow_node.any_node_skip IS '任意结点跳转';
|
||||||
|
COMMENT ON COLUMN flow_node.listener_type IS '监听器类型';
|
||||||
|
COMMENT ON COLUMN flow_node.listener_path IS '监听器路径';
|
||||||
|
COMMENT ON COLUMN flow_node.form_custom IS '审批表单是否自定义(Y是 N否)';
|
||||||
|
COMMENT ON COLUMN flow_node.form_path IS '审批表单路径';
|
||||||
|
COMMENT ON COLUMN flow_node."version" IS '版本';
|
||||||
|
COMMENT ON COLUMN flow_node.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_node.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_node.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_node.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_node.ext IS '节点扩展属性';
|
||||||
|
COMMENT ON COLUMN flow_node.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_node.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE flow_skip
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
definition_id int8 NOT NULL,
|
||||||
|
now_node_code varchar(100) NOT NULL,
|
||||||
|
now_node_type int2 NULL,
|
||||||
|
next_node_code varchar(100) NOT NULL,
|
||||||
|
next_node_type int2 NULL,
|
||||||
|
skip_name varchar(100) NULL,
|
||||||
|
skip_type varchar(40) NULL,
|
||||||
|
skip_condition varchar(200) NULL,
|
||||||
|
coordinate varchar(100) NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_skip_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_skip IS '节点跳转关联表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_skip.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_skip.definition_id IS '流程定义id';
|
||||||
|
COMMENT ON COLUMN flow_skip.now_node_code IS '当前流程节点的编码';
|
||||||
|
COMMENT ON COLUMN flow_skip.now_node_type IS '当前节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_skip.next_node_code IS '下一个流程节点的编码';
|
||||||
|
COMMENT ON COLUMN flow_skip.next_node_type IS '下一个节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_skip.skip_name IS '跳转名称';
|
||||||
|
COMMENT ON COLUMN flow_skip.skip_type IS '跳转类型(PASS审批通过 REJECT退回)';
|
||||||
|
COMMENT ON COLUMN flow_skip.skip_condition IS '跳转条件';
|
||||||
|
COMMENT ON COLUMN flow_skip.coordinate IS '坐标';
|
||||||
|
COMMENT ON COLUMN flow_skip.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_skip.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_skip.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_skip.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_skip.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_skip.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
CREATE TABLE flow_instance
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
definition_id int8 NOT NULL,
|
||||||
|
business_id varchar(40) NOT NULL,
|
||||||
|
node_type int2 NOT NULL,
|
||||||
|
node_code varchar(40) NOT NULL,
|
||||||
|
node_name varchar(100) NULL,
|
||||||
|
variable text NULL,
|
||||||
|
flow_status varchar(20) NOT NULL,
|
||||||
|
activity_status int2 NOT NULL DEFAULT 1,
|
||||||
|
def_json text NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
ext varchar(500) NULL,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_instance_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_instance IS '流程实例表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_instance.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_instance.definition_id IS '对应flow_definition表的id';
|
||||||
|
COMMENT ON COLUMN flow_instance.business_id IS '业务id';
|
||||||
|
COMMENT ON COLUMN flow_instance.node_type IS '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_instance.node_code IS '流程节点编码';
|
||||||
|
COMMENT ON COLUMN flow_instance.node_name IS '流程节点名称';
|
||||||
|
COMMENT ON COLUMN flow_instance.variable IS '任务变量';
|
||||||
|
COMMENT ON COLUMN flow_instance.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
COMMENT ON COLUMN flow_instance.activity_status IS '流程激活状态(0挂起 1激活)';
|
||||||
|
COMMENT ON COLUMN flow_instance.def_json IS '流程定义json';
|
||||||
|
COMMENT ON COLUMN flow_instance.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_instance.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_instance.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_instance.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_instance.ext IS '扩展字段,预留给业务系统使用';
|
||||||
|
COMMENT ON COLUMN flow_instance.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_instance.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
CREATE TABLE flow_task
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
definition_id int8 NOT NULL,
|
||||||
|
instance_id int8 NOT NULL,
|
||||||
|
node_code varchar(100) NOT NULL,
|
||||||
|
node_name varchar(100) NULL,
|
||||||
|
node_type int2 NOT NULL,
|
||||||
|
flow_status varchar(20) NOT NULL,
|
||||||
|
form_custom bpchar(1) NULL DEFAULT 'N':: character varying,
|
||||||
|
form_path varchar(100) NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_task_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_task IS '待办任务表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_task.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_task.definition_id IS '对应flow_definition表的id';
|
||||||
|
COMMENT ON COLUMN flow_task.instance_id IS '对应flow_instance表的id';
|
||||||
|
COMMENT ON COLUMN flow_task.node_code IS '节点编码';
|
||||||
|
COMMENT ON COLUMN flow_task.node_name IS '节点名称';
|
||||||
|
COMMENT ON COLUMN flow_task.node_type IS '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
COMMENT ON COLUMN flow_task.form_custom IS '审批表单是否自定义(Y是 N否)';
|
||||||
|
COMMENT ON COLUMN flow_task.form_path IS '审批表单路径';
|
||||||
|
COMMENT ON COLUMN flow_task.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_task.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_task.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_task.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_task.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_task.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
CREATE TABLE flow_his_task
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
definition_id int8 NOT NULL,
|
||||||
|
instance_id int8 NOT NULL,
|
||||||
|
task_id int8 NOT NULL,
|
||||||
|
node_code varchar(100) NULL,
|
||||||
|
node_name varchar(100) NULL,
|
||||||
|
node_type int2 NULL,
|
||||||
|
target_node_code varchar(200) NULL,
|
||||||
|
target_node_name varchar(200) NULL,
|
||||||
|
approver varchar(40) NULL,
|
||||||
|
cooperate_type int2 NOT NULL DEFAULT 0,
|
||||||
|
collaborator varchar(500) NULL,
|
||||||
|
skip_type varchar(10) NULL,
|
||||||
|
flow_status varchar(20) NOT NULL,
|
||||||
|
form_custom bpchar(1) NULL DEFAULT 'N':: character varying,
|
||||||
|
form_path varchar(100) NULL,
|
||||||
|
ext text NULL,
|
||||||
|
message varchar(500) NULL,
|
||||||
|
variable text NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_his_task_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE flow_his_task IS '历史任务记录表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_his_task.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_his_task.definition_id IS '对应flow_definition表的id';
|
||||||
|
COMMENT ON COLUMN flow_his_task.instance_id IS '对应flow_instance表的id';
|
||||||
|
COMMENT ON COLUMN flow_his_task.task_id IS '对应flow_task表的id';
|
||||||
|
COMMENT ON COLUMN flow_his_task.node_code IS '开始节点编码';
|
||||||
|
COMMENT ON COLUMN flow_his_task.node_name IS '开始节点名称';
|
||||||
|
COMMENT ON COLUMN flow_his_task.node_type IS '开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)';
|
||||||
|
COMMENT ON COLUMN flow_his_task.target_node_code IS '目标节点编码';
|
||||||
|
COMMENT ON COLUMN flow_his_task.target_node_name IS '结束节点名称';
|
||||||
|
COMMENT ON COLUMN flow_his_task.approver IS '审批者';
|
||||||
|
COMMENT ON COLUMN flow_his_task.cooperate_type IS '协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)';
|
||||||
|
COMMENT ON COLUMN flow_his_task.collaborator IS '协作人';
|
||||||
|
COMMENT ON COLUMN flow_his_task.skip_type IS '流转类型(PASS通过 REJECT退回 NONE无动作)';
|
||||||
|
COMMENT ON COLUMN flow_his_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
COMMENT ON COLUMN flow_his_task.form_custom IS '审批表单是否自定义(Y是 N否)';
|
||||||
|
COMMENT ON COLUMN flow_his_task.form_path IS '审批表单路径';
|
||||||
|
COMMENT ON COLUMN flow_his_task.message IS '审批意见';
|
||||||
|
COMMENT ON COLUMN flow_his_task.variable IS '任务变量';
|
||||||
|
COMMENT ON COLUMN flow_his_task.ext IS '扩展字段,预留给业务系统使用';
|
||||||
|
COMMENT ON COLUMN flow_his_task.create_time IS '任务开始时间';
|
||||||
|
COMMENT ON COLUMN flow_his_task.update_time IS '审批完成时间';
|
||||||
|
COMMENT ON COLUMN flow_his_task.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_his_task.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
CREATE TABLE flow_user
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
"type" bpchar(1) NOT NULL,
|
||||||
|
processed_by varchar(80) NULL,
|
||||||
|
associated int8 NOT NULL,
|
||||||
|
create_time timestamp NULL,
|
||||||
|
create_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
update_time timestamp NULL,
|
||||||
|
update_by varchar(64) NULL DEFAULT '':: character varying,
|
||||||
|
del_flag bpchar(1) NULL DEFAULT '0':: character varying,
|
||||||
|
tenant_id varchar(40) NULL,
|
||||||
|
CONSTRAINT flow_user_pk PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
CREATE INDEX user_processed_type ON flow_user USING btree (processed_by, type);
|
||||||
|
CREATE INDEX user_associated_idx ON FLOW_USER USING btree (associated);
|
||||||
|
COMMENT ON TABLE flow_user IS '流程用户表';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_user.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_user."type" IS '人员类型(1待办任务的审批人权限 2待办任务的转办人权限 3待办任务的委托人权限)';
|
||||||
|
COMMENT ON COLUMN flow_user.processed_by IS '权限人';
|
||||||
|
COMMENT ON COLUMN flow_user.associated IS '任务表id';
|
||||||
|
COMMENT ON COLUMN flow_user.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_user.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_user.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_user.update_by IS '更新人';
|
||||||
|
COMMENT ON COLUMN flow_user.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_user.tenant_id IS '租户id';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程分类表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_category
|
||||||
|
(
|
||||||
|
category_id int8 NOT NULL,
|
||||||
|
tenant_id VARCHAR(20) DEFAULT '000000'::varchar,
|
||||||
|
parent_id int8 DEFAULT 0,
|
||||||
|
ancestors VARCHAR(500) DEFAULT ''::varchar,
|
||||||
|
category_name VARCHAR(30) NOT NULL,
|
||||||
|
order_num INT DEFAULT 0,
|
||||||
|
del_flag CHAR DEFAULT '0'::bpchar,
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by int8,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
PRIMARY KEY (category_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_category IS '流程分类';
|
||||||
|
COMMENT ON COLUMN flow_category.category_id IS '流程分类ID';
|
||||||
|
COMMENT ON COLUMN flow_category.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_category.parent_id IS '父流程分类id';
|
||||||
|
COMMENT ON COLUMN flow_category.ancestors IS '祖级列表';
|
||||||
|
COMMENT ON COLUMN flow_category.category_name IS '流程分类名称';
|
||||||
|
COMMENT ON COLUMN flow_category.order_num IS '显示顺序';
|
||||||
|
COMMENT ON COLUMN flow_category.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_category.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_category.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_category.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_category.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_category.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_category VALUES (100, '000000', 0, '0', 'OA审批', 0, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (101, '000000', 100, '0,100', '假勤管理', 0, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (102, '000000', 100, '0,100', '人事管理', 1, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (103, '000000', 101, '0,100,101', '请假', 0, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (104, '000000', 101, '0,100,101', '出差', 1, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (105, '000000', 101, '0,100,101', '加班', 2, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (106, '000000', 101, '0,100,101', '换班', 3, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (107, '000000', 101, '0,100,101', '外出', 4, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (108, '000000', 102, '0,100,102', '转正', 1, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
INSERT INTO flow_category VALUES (109, '000000', 102, '0,100,102', '离职', 2, '0', 103, 1, now(), NULL, NULL);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id int8 NOT NULL,
|
||||||
|
component_name VARCHAR(255),
|
||||||
|
method_name VARCHAR(255),
|
||||||
|
method_params VARCHAR(255),
|
||||||
|
view_spel VARCHAR(255),
|
||||||
|
remark VARCHAR(255),
|
||||||
|
status CHAR(1) DEFAULT '0',
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by int8,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_spel IS '流程spel表达式定义表';
|
||||||
|
COMMENT ON COLUMN flow_spel.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_spel.component_name IS '组件名称';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_name IS '方法名';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_params IS '参数';
|
||||||
|
COMMENT ON COLUMN flow_spel.view_spel IS '预览spel表达式';
|
||||||
|
COMMENT ON COLUMN flow_spel.remark IS '备注';
|
||||||
|
COMMENT ON COLUMN flow_spel.status IS '状态(0正常 1停用)';
|
||||||
|
COMMENT ON COLUMN flow_spel.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, now(), 1, now());
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, now(), 1, now());
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_instance_biz_ext (
|
||||||
|
id int8,
|
||||||
|
tenant_id VARCHAR(20) DEFAULT '000000',
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by int8,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
business_code VARCHAR(255),
|
||||||
|
business_title VARCHAR(1000),
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
instance_id int8,
|
||||||
|
business_id VARCHAR(255),
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_instance_biz_ext IS '流程实例业务扩展表';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_code IS '业务编码';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_title IS '业务标题';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.instance_id IS '流程实例Id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_id IS '业务Id';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 请假单信息
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE test_leave
|
||||||
|
(
|
||||||
|
id int8 NOT NULL,
|
||||||
|
tenant_id VARCHAR(20) DEFAULT '000000'::varchar,
|
||||||
|
apply_code VARCHAR(50) NOT NULL,
|
||||||
|
leave_type VARCHAR(255) NOT NULL,
|
||||||
|
start_date TIMESTAMP NOT NULL,
|
||||||
|
end_date TIMESTAMP NOT NULL,
|
||||||
|
leave_days int2 NOT NULL,
|
||||||
|
remark VARCHAR(255),
|
||||||
|
status VARCHAR(255),
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by int8,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE test_leave IS '请假申请表';
|
||||||
|
COMMENT ON COLUMN test_leave.id IS 'id';
|
||||||
|
COMMENT ON COLUMN test_leave.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN test_leave.apply_code IS '申请编号';
|
||||||
|
COMMENT ON COLUMN test_leave.leave_type IS '请假类型';
|
||||||
|
COMMENT ON COLUMN test_leave.start_date IS '开始时间';
|
||||||
|
COMMENT ON COLUMN test_leave.end_date IS '结束时间';
|
||||||
|
COMMENT ON COLUMN test_leave.leave_days IS '请假天数';
|
||||||
|
COMMENT ON COLUMN test_leave.remark IS '请假原因';
|
||||||
|
COMMENT ON COLUMN test_leave.status IS '状态';
|
||||||
|
COMMENT ON COLUMN test_leave.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN test_leave.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN test_leave.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN test_leave.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN test_leave.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11616', '工作流', '0', '6', 'workflow', '', '', '1', '0', 'M', '0', '0', '', 'workflow', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11618', '我的任务', '0', '7', 'task', '', '', '1', '0', 'M', '0', '0', '', 'my-task', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11619', '我的待办', '11618', '2', 'taskWaiting', 'workflow/task/taskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11632', '我的已办', '11618', '3', 'taskFinish', 'workflow/task/taskFinish', '', '1', '1', 'C', '0', '0', '', 'finish', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11633', '我的抄送', '11618', '4', 'taskCopyList', 'workflow/task/taskCopyList', '', '1', '1', 'C', '0', '0', '', 'my-copy', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11620', '流程定义', '11616', '3', 'processDefinition', 'workflow/processDefinition/index', '', '1', '1', 'C', '0', '0', 'workflow:definition:list', 'process-definition', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11621', '流程实例', '11630', '1', 'processInstance', 'workflow/processInstance/index', '', '1', '1', 'C', '0', '0', 'workflow:instance:list', 'tree-table', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', 'workflow:instance:currentList', 'guide', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '/workflow/processDefinition');
|
||||||
|
INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11623', '流程分类查询', '11622', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11624', '流程分类新增', '11622', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11625', '流程分类修改', '11622', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11626', '流程分类删除', '11622', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11627', '流程分类导出', '11622', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:category:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11653', '流程实例查询', '11621', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11654', '流程变量查询', '11621', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11655', '流程变量修改', '11621', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11657', '流程实例删除', '11621', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11658', '流程实例作废', '11621', '6', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11659', '流程实例撤销', '11621', '7', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11644', '流程定义查询', '11620', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11645', '流程定义新增', '11620', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11646', '流程定义修改', '11620', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11647', '流程定义删除', '11620', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11648', '流程定义导出', '11620', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11649', '流程定义导入', '11620', '6', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11651', '流程定义复制', '11620', '8', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', 2, 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, now(), 1, now(), '流程达式定义菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程spel表达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程spel表达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程spel表达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程spel表达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程spel表达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11638', '请假申请', '5', '1', 'leave', 'workflow/leave/index', '', '1', '0', 'C', '0', '0', 'workflow:leave:list', '#', 103, 1, now(), NULL, NULL, '请假申请菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11639', '请假申请查询', '11638', '1', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11640', '请假申请新增', '11638', '2', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11641', '请假申请修改', '11638', '3', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11642', '请假申请删除', '11638', '4', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11643', '请假申请导出', '11638', '5', '#', '', '', '1', '0', 'F', '0', '0', 'workflow:leave:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_dict_type VALUES (13, '000000', '业务状态', 'wf_business_status', 103, 1, now(), NULL, NULL, '业务状态列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (14, '000000', '表单类型', 'wf_form_type', 103, 1, now(), NULL, NULL, '表单类型列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (15, '000000', '任务状态', 'wf_task_status', 103, 1, now(), NULL, NULL, '任务状态');
|
||||||
|
INSERT INTO sys_dict_data VALUES (39, '000000', 1, '已撤销', 'cancel', 'wf_business_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '已撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (40, '000000', 2, '草稿', 'draft', 'wf_business_status', '', 'info', 'N', 103, 1, now(), NULL, NULL, '草稿');
|
||||||
|
INSERT INTO sys_dict_data VALUES (41, '000000', 3, '待审核', 'waiting', 'wf_business_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (42, '000000', 4, '已完成', 'finish', 'wf_business_status', '', 'success', 'N', 103, 1, now(), NULL, NULL, '已完成');
|
||||||
|
INSERT INTO sys_dict_data VALUES (43, '000000', 5, '已作废', 'invalid', 'wf_business_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '已作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (44, '000000', 6, '已退回', 'back', 'wf_business_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '已退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (45, '000000', 7, '已终止', 'termination', 'wf_business_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '已终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (46, '000000', 1, '自定义表单', 'static', 'wf_form_type', '', 'success', 'N', 103, 1, now(), NULL, NULL, '自定义表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (47, '000000', 2, '动态表单', 'dynamic', 'wf_form_type', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '动态表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (48, '000000', 1, '撤销', 'cancel', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (49, '000000', 2, '通过', 'pass', 'wf_task_status', '', 'success', 'N', 103, 1, now(), NULL, NULL, '通过');
|
||||||
|
INSERT INTO sys_dict_data VALUES (50, '000000', 3, '待审核', 'waiting', 'wf_task_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (51, '000000', 4, '作废', 'invalid', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (52, '000000', 5, '退回', 'back', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (53, '000000', 6, '终止', 'termination', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (54, '000000', 7, '转办', 'transfer', 'wf_task_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '转办');
|
||||||
|
INSERT INTO sys_dict_data VALUES (55, '000000', 8, '委托', 'depute', 'wf_task_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '委托');
|
||||||
|
INSERT INTO sys_dict_data VALUES (56, '000000', 9, '抄送', 'copy', 'wf_task_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '抄送');
|
||||||
|
INSERT INTO sys_dict_data VALUES (57, '000000', 10, '加签', 'sign', 'wf_task_status', '', 'primary', 'N', 103, 1, now(), NULL, NULL, '加签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (58, '000000', 11, '减签', 'sign_off', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '减签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (59, '000000', 11, '超时', 'timeout', 'wf_task_status', '', 'danger', 'N', 103, 1, now(), NULL, NULL, '超时');
|
||||||
|
|
||||||
535
script/sql/ry_job.sql
Normal file
535
script/sql/ry_job.sql
Normal file
@@ -0,0 +1,535 @@
|
|||||||
|
SET NAMES utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE `sj_namespace`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`name` varchar(64) NOT NULL COMMENT '名称',
|
||||||
|
`unique_id` varchar(64) NOT NULL COMMENT '唯一id',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_name` (`name`),
|
||||||
|
UNIQUE KEY `uk_unique_id` (`unique_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='命名空间';
|
||||||
|
|
||||||
|
INSERT INTO `sj_namespace` VALUES (1, 'Development', 'dev', '', 0, now(), now());
|
||||||
|
INSERT INTO `sj_namespace` VALUES (2, 'Production', 'prod', '', 0, now(), now());
|
||||||
|
|
||||||
|
CREATE TABLE `sj_group_config`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '组描述',
|
||||||
|
`token` varchar(64) NOT NULL DEFAULT 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT' COMMENT 'token',
|
||||||
|
`group_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '组状态 0、未启用 1、启用',
|
||||||
|
`version` int(11) NOT NULL COMMENT '版本号',
|
||||||
|
`group_partition` int(11) NOT NULL COMMENT '分区',
|
||||||
|
`id_generator_mode` tinyint(4) NOT NULL DEFAULT 1 COMMENT '唯一id生成模式 默认号段模式',
|
||||||
|
`init_scene` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否初始化场景 0:否 1:是',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='组配置';
|
||||||
|
|
||||||
|
INSERT INTO `sj_group_config` VALUES (1, 'dev', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
|
||||||
|
INSERT INTO `sj_group_config` VALUES (2, 'prod', 'water_group', '', 'SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, now(), now());
|
||||||
|
|
||||||
|
CREATE TABLE `sj_notify_config`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`notify_name` varchar(64) NOT NULL DEFAULT '' COMMENT '通知名称',
|
||||||
|
`system_task_type` tinyint(4) NOT NULL DEFAULT 3 COMMENT '任务类型 1. 重试任务 2. 重试回调 3、JOB任务 4、WORKFLOW任务',
|
||||||
|
`notify_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '通知状态 0、未启用 1、启用',
|
||||||
|
`recipient_ids` varchar(128) NOT NULL COMMENT '接收人id列表',
|
||||||
|
`notify_threshold` int(11) NOT NULL DEFAULT 0 COMMENT '通知阈值',
|
||||||
|
`notify_scene` tinyint(4) NOT NULL DEFAULT 0 COMMENT '通知场景',
|
||||||
|
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '限流状态 0、未启用 1、启用',
|
||||||
|
`rate_limiter_threshold` int(11) NOT NULL DEFAULT 0 COMMENT '每秒限流阈值',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='通知配置';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_notify_recipient`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`recipient_name` varchar(64) NOT NULL COMMENT '接收人名称',
|
||||||
|
`notify_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书 5 webhook',
|
||||||
|
`notify_attribute` varchar(512) NOT NULL COMMENT '配置属性',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id` (`namespace_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='告警通知接收人';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry_dead_letter`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`group_id` bigint(20) NOT NULL COMMENT '组Id',
|
||||||
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`scene_id` bigint(20) NOT NULL COMMENT '场景ID',
|
||||||
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
||||||
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
||||||
|
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
||||||
|
-- jackson 兼容历史数据 预计1.8.0默认改为fury
|
||||||
|
`serializer_name` varchar(32) NOT NULL DEFAULT 'jackson' COMMENT '执行方法参数序列化器名称',
|
||||||
|
`args_str` text NOT NULL COMMENT '执行方法参数',
|
||||||
|
`ext_attrs` text NOT NULL COMMENT '扩展字段',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
|
||||||
|
KEY `idx_idempotent_id` (`idempotent_id`),
|
||||||
|
KEY `idx_biz_no` (`biz_no`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='死信队列表';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`group_id` bigint(20) NOT NULL COMMENT '组Id',
|
||||||
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`scene_id` bigint(20) NOT NULL COMMENT '场景ID',
|
||||||
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
||||||
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
||||||
|
`executor_name` varchar(512) NOT NULL DEFAULT '' COMMENT '执行器名称',
|
||||||
|
`args_str` text NOT NULL COMMENT '执行方法参数',
|
||||||
|
`ext_attrs` text NOT NULL COMMENT '扩展字段',
|
||||||
|
-- jackson 兼容历史数据 预计1.8.0默认改为fury
|
||||||
|
`serializer_name` varchar(32) NOT NULL DEFAULT 'jackson' COMMENT '执行方法参数序列化器名称',
|
||||||
|
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
|
||||||
|
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
|
||||||
|
`retry_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '重试状态 0、重试中 1、成功 2、最大重试次数',
|
||||||
|
`task_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务类型 1、重试数据 2、回调数据',
|
||||||
|
`bucket_index` int(11) NOT NULL DEFAULT 0 COMMENT 'bucket',
|
||||||
|
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '父节点id',
|
||||||
|
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_biz_no` (`biz_no`),
|
||||||
|
KEY `idx_idempotent_id` (`idempotent_id`),
|
||||||
|
KEY `idx_retry_status_bucket_index` (`retry_status`, `bucket_index`),
|
||||||
|
KEY `idx_parent_id` (`parent_id`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
UNIQUE KEY `uk_scene_tasktype_idempotentid_deleted` (`scene_id`, `task_type`, `idempotent_id`, `deleted`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='重试信息表';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry_task`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`retry_id` bigint(20) NOT NULL COMMENT '重试信息Id',
|
||||||
|
`ext_attrs` text NOT NULL COMMENT '扩展字段',
|
||||||
|
`task_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '重试状态',
|
||||||
|
`task_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务类型 1、重试数据 2、回调数据',
|
||||||
|
`operation_reason` tinyint(4) NOT NULL DEFAULT 0 COMMENT '操作原因',
|
||||||
|
`client_info` varchar(128) DEFAULT NULL COMMENT '客户端地址 clientId#ip:port',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
|
||||||
|
KEY `task_status` (`task_status`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_retry_id` (`retry_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='重试任务表';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry_task_log_message`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`retry_id` bigint(20) NOT NULL COMMENT '重试信息Id',
|
||||||
|
`retry_task_id` bigint(20) NOT NULL COMMENT '重试任务Id',
|
||||||
|
`message` longtext NOT NULL COMMENT '异常信息',
|
||||||
|
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
|
||||||
|
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name_retry_task_id` (`namespace_id`, `group_name`, `retry_task_id`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='任务调度日志信息记录表';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry_scene_config`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`scene_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '组状态 0、未启用 1、启用',
|
||||||
|
`max_retry_count` int(11) NOT NULL DEFAULT 5 COMMENT '最大重试次数',
|
||||||
|
`back_off` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式',
|
||||||
|
`trigger_interval` varchar(16) NOT NULL DEFAULT '' COMMENT '间隔时长',
|
||||||
|
`notify_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
|
||||||
|
`deadline_request` bigint(20) unsigned NOT NULL DEFAULT 60000 COMMENT 'Deadline Request 调用链超时 单位毫秒',
|
||||||
|
`executor_timeout` int(11) unsigned NOT NULL DEFAULT 5 COMMENT '任务执行超时时间,单位秒',
|
||||||
|
`route_key` tinyint(4) NOT NULL DEFAULT 4 COMMENT '路由策略',
|
||||||
|
`block_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
|
||||||
|
`cb_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '回调状态 0、不开启 1、开启',
|
||||||
|
`cb_trigger_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式',
|
||||||
|
`cb_max_count` int(11) NOT NULL DEFAULT 16 COMMENT '回调的最大执行次数',
|
||||||
|
`cb_trigger_interval` varchar(16) NOT NULL DEFAULT '' COMMENT '回调的最大执行次数',
|
||||||
|
`owner_id` bigint(20) NULL DEFAULT NULL COMMENT '负责人id',
|
||||||
|
`labels` varchar(512) NULL DEFAULT '' COMMENT '标签',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='场景配置';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_server_node`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`host_id` varchar(64) NOT NULL COMMENT '主机id',
|
||||||
|
`host_ip` varchar(64) NOT NULL COMMENT '机器ip',
|
||||||
|
`host_port` int(16) NOT NULL COMMENT '机器端口',
|
||||||
|
`expire_at` datetime NOT NULL COMMENT '过期时间',
|
||||||
|
`node_type` tinyint(4) NOT NULL COMMENT '节点类型 1、客户端 2、是服务端',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`labels` varchar(512) NULL DEFAULT '' COMMENT '标签',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
|
||||||
|
KEY `idx_expire_at_node_type` (`expire_at`, `node_type`),
|
||||||
|
UNIQUE KEY `uk_host_id_host_ip` (`host_id`, `host_ip`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='服务器节点';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_distributed_lock`
|
||||||
|
(
|
||||||
|
`name` varchar(64) NOT NULL COMMENT '锁名称',
|
||||||
|
`lock_until` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '锁定时长',
|
||||||
|
`locked_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '锁定时间',
|
||||||
|
`locked_by` varchar(255) NOT NULL COMMENT '锁定者',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='锁定表';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_system_user`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`username` varchar(64) NOT NULL COMMENT '账号',
|
||||||
|
`password` varchar(128) NOT NULL COMMENT '密码',
|
||||||
|
`role` tinyint(4) NOT NULL DEFAULT 0 COMMENT '角色:1-普通用户、2-管理员',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_username` (`username`) USING BTREE
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户表';
|
||||||
|
|
||||||
|
-- pwd: admin
|
||||||
|
INSERT INTO `sj_system_user` (username, password, role)
|
||||||
|
VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2);
|
||||||
|
|
||||||
|
CREATE TABLE `sj_system_user_permission`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`system_user_id` bigint(20) NOT NULL COMMENT '系统用户id',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_namespace_id_group_name_system_user_id` (`namespace_id`, `group_name`, `system_user_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户权限表';
|
||||||
|
|
||||||
|
-- 分布式调度DDL
|
||||||
|
CREATE TABLE `sj_job`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`job_name` varchar(64) NOT NULL COMMENT '名称',
|
||||||
|
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
|
||||||
|
`args_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '参数类型 ',
|
||||||
|
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
|
||||||
|
`job_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务状态 0、关闭、1、开启',
|
||||||
|
`task_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '任务类型 1、集群 2、广播 3、切片',
|
||||||
|
`route_key` tinyint(4) NOT NULL DEFAULT 4 COMMENT '路由策略',
|
||||||
|
`executor_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '执行器类型',
|
||||||
|
`executor_info` varchar(255) DEFAULT NULL COMMENT '执行器名称',
|
||||||
|
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
|
||||||
|
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
|
||||||
|
`block_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行 4、恢复',
|
||||||
|
`executor_timeout` int(11) NOT NULL DEFAULT 0 COMMENT '任务执行超时时间,单位秒',
|
||||||
|
`max_retry_times` int(11) NOT NULL DEFAULT 0 COMMENT '最大重试次数',
|
||||||
|
`parallel_num` int(11) NOT NULL DEFAULT 1 COMMENT '并行数',
|
||||||
|
`retry_interval` int(11) NOT NULL DEFAULT 0 COMMENT '重试间隔(s)',
|
||||||
|
`bucket_index` int(11) NOT NULL DEFAULT 0 COMMENT 'bucket',
|
||||||
|
`resident` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否是常驻任务',
|
||||||
|
`notify_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
|
||||||
|
`owner_id` bigint(20) NULL DEFAULT NULL COMMENT '负责人id',
|
||||||
|
`labels` varchar(512) NULL DEFAULT '' COMMENT '标签',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
|
||||||
|
KEY `idx_job_status_bucket_index` (`job_status`, `bucket_index`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='任务信息';
|
||||||
|
|
||||||
|
INSERT INTO `sj_job` VALUES (1, 'dev', 'water_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '','', '', 0 , now(), now());
|
||||||
|
|
||||||
|
CREATE TABLE `sj_job_log_message`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
|
||||||
|
`task_batch_id` bigint(20) NOT NULL COMMENT '任务批次id',
|
||||||
|
`task_id` bigint(20) NOT NULL COMMENT '调度任务id',
|
||||||
|
`message` longtext NOT NULL COMMENT '调度信息',
|
||||||
|
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
|
||||||
|
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_task_batch_id_task_id` (`task_batch_id`, `task_id`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='调度日志';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_job_task`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
|
||||||
|
`task_batch_id` bigint(20) NOT NULL COMMENT '调度任务id',
|
||||||
|
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '父执行器id',
|
||||||
|
`task_status` tinyint NOT NULL DEFAULT 0 COMMENT '执行的状态 0、失败 1、成功',
|
||||||
|
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
|
||||||
|
`mr_stage` tinyint DEFAULT NULL COMMENT '动态分片所处阶段 1:map 2:reduce 3:mergeReduce',
|
||||||
|
`leaf` tinyint NOT NULL DEFAULT '1' COMMENT '叶子节点',
|
||||||
|
`task_name` varchar(255) NOT NULL DEFAULT '' COMMENT '任务名称',
|
||||||
|
`client_info` varchar(128) DEFAULT NULL COMMENT '客户端地址 clientId#ip:port',
|
||||||
|
`wf_context` text DEFAULT NULL COMMENT '工作流全局上下文',
|
||||||
|
`result_message` text NOT NULL COMMENT '执行结果',
|
||||||
|
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
|
||||||
|
`args_type` tinyint NOT NULL DEFAULT 1 COMMENT '参数类型 ',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_task_batch_id_task_status` (`task_batch_id`, `task_status`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='任务实例';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_job_task_batch`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`job_id` bigint(20) NOT NULL COMMENT '任务id',
|
||||||
|
`workflow_node_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '工作流节点id',
|
||||||
|
`parent_workflow_node_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '工作流任务父批次id',
|
||||||
|
`workflow_task_batch_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '工作流任务批次id',
|
||||||
|
`task_batch_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '任务批次状态 0、失败 1、成功',
|
||||||
|
`operation_reason` tinyint(4) NOT NULL DEFAULT 0 COMMENT '操作原因',
|
||||||
|
`execution_at` bigint(13) NOT NULL DEFAULT 0 COMMENT '任务执行时间',
|
||||||
|
`system_task_type` tinyint(4) NOT NULL DEFAULT 3 COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
|
||||||
|
`parent_id` varchar(64) NOT NULL DEFAULT '' COMMENT '父节点',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_job_id_task_batch_status` (`job_id`, `task_batch_status`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
|
||||||
|
KEY `idx_workflow_task_batch_id_workflow_node_id` (`workflow_task_batch_id`, `workflow_node_id`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='任务批次';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_job_summary`
|
||||||
|
(
|
||||||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
||||||
|
`business_id` bigint NOT NULL COMMENT '业务id (job_id或workflow_id)',
|
||||||
|
`system_task_type` tinyint(4) NOT NULL DEFAULT 3 COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
|
||||||
|
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
|
||||||
|
`success_num` int NOT NULL DEFAULT 0 COMMENT '执行成功-日志数量',
|
||||||
|
`fail_num` int NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量',
|
||||||
|
`fail_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
|
||||||
|
`stop_num` int NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量',
|
||||||
|
`stop_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
|
||||||
|
`cancel_num` int NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量',
|
||||||
|
`cancel_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name_business_id` (`namespace_id`, `group_name`, business_id),
|
||||||
|
UNIQUE KEY `uk_trigger_at_system_task_type_business_id` (`trigger_at`, `system_task_type`, `business_id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 1
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Job';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_retry_summary`
|
||||||
|
(
|
||||||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
||||||
|
`scene_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '场景名称',
|
||||||
|
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
|
||||||
|
`running_num` int NOT NULL DEFAULT 0 COMMENT '重试中-日志数量',
|
||||||
|
`finish_num` int NOT NULL DEFAULT 0 COMMENT '重试完成-日志数量',
|
||||||
|
`max_count_num` int NOT NULL DEFAULT 0 COMMENT '重试到达最大次数-日志数量',
|
||||||
|
`suspend_num` int NOT NULL DEFAULT 0 COMMENT '暂停重试-日志数量',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_trigger_at` (`trigger_at`),
|
||||||
|
UNIQUE KEY `uk_scene_name_trigger_at` (`namespace_id`, `group_name`, `scene_name`, `trigger_at`) USING BTREE
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 1
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Retry';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_workflow`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`workflow_name` varchar(64) NOT NULL COMMENT '工作流名称',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`workflow_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '工作流状态 0、关闭、1、开启',
|
||||||
|
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
|
||||||
|
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
|
||||||
|
`next_trigger_at` bigint NOT NULL COMMENT '下次触发时间',
|
||||||
|
`block_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
|
||||||
|
`executor_timeout` int(11) NOT NULL DEFAULT 0 COMMENT '任务执行超时时间,单位秒',
|
||||||
|
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
|
||||||
|
`flow_info` text DEFAULT NULL COMMENT '流程信息',
|
||||||
|
`wf_context` text DEFAULT NULL COMMENT '上下文',
|
||||||
|
`notify_ids` varchar(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
|
||||||
|
`bucket_index` int(11) NOT NULL DEFAULT 0 COMMENT 'bucket',
|
||||||
|
`version` int(11) NOT NULL COMMENT '版本号',
|
||||||
|
`owner_id` bigint(20) NULL DEFAULT NULL COMMENT '负责人id',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_workflow_node`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`node_name` varchar(64) NOT NULL COMMENT '节点名称',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
|
||||||
|
`workflow_id` bigint(20) NOT NULL COMMENT '工作流ID',
|
||||||
|
`node_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、任务节点 2、条件节点',
|
||||||
|
`expression_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1、SpEl、2、Aviator 3、QL',
|
||||||
|
`fail_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '失败策略 1、跳过 2、阻塞',
|
||||||
|
`workflow_node_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '工作流节点状态 0、关闭、1、开启',
|
||||||
|
`priority_level` int(11) NOT NULL DEFAULT 1 COMMENT '优先级',
|
||||||
|
`node_info` text DEFAULT NULL COMMENT '节点信息 ',
|
||||||
|
`version` int(11) NOT NULL COMMENT '版本号',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流节点';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_workflow_task_batch`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`workflow_id` bigint(20) NOT NULL COMMENT '工作流任务id',
|
||||||
|
`task_batch_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '任务批次状态 0、失败 1、成功',
|
||||||
|
`operation_reason` tinyint(4) NOT NULL DEFAULT 0 COMMENT '操作原因',
|
||||||
|
`flow_info` text DEFAULT NULL COMMENT '流程信息',
|
||||||
|
`wf_context` text DEFAULT NULL COMMENT '全局上下文',
|
||||||
|
`execution_at` bigint(13) NOT NULL DEFAULT 0 COMMENT '任务执行时间',
|
||||||
|
`ext_attrs` varchar(256) NULL DEFAULT '' COMMENT '扩展字段',
|
||||||
|
`version` int(11) NOT NULL DEFAULT 1 COMMENT '版本号',
|
||||||
|
`deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_job_id_task_batch_status` (`workflow_id`, `task_batch_status`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流批次';
|
||||||
|
|
||||||
|
CREATE TABLE `sj_job_executor`
|
||||||
|
(
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
|
||||||
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
||||||
|
`executor_info` varchar(256) NOT NULL COMMENT '任务执行器名称',
|
||||||
|
`executor_type` varchar(3) NOT NULL COMMENT '1:java 2:python 3:go',
|
||||||
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
|
||||||
|
KEY `idx_create_dt` (`create_dt`)
|
||||||
|
) ENGINE = InnoDB
|
||||||
|
AUTO_INCREMENT = 0
|
||||||
|
DEFAULT CHARSET = utf8mb4 COMMENT ='任务执行器信息';
|
||||||
976
script/sql/ry_vue_5.X.sql
Normal file
976
script/sql/ry_vue_5.X.sql
Normal file
@@ -0,0 +1,976 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 第三方平台授权表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_social
|
||||||
|
(
|
||||||
|
id bigint not null comment '主键',
|
||||||
|
user_id bigint not null comment '用户ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户id',
|
||||||
|
auth_id varchar(255) not null comment '平台+平台唯一id',
|
||||||
|
source varchar(255) not null comment '用户来源',
|
||||||
|
open_id varchar(255) default null comment '平台编号唯一id',
|
||||||
|
user_name varchar(30) not null comment '登录账号',
|
||||||
|
nick_name varchar(30) default '' comment '用户昵称',
|
||||||
|
email varchar(255) default '' comment '用户邮箱',
|
||||||
|
avatar varchar(500) default '' comment '头像地址',
|
||||||
|
access_token varchar(2000) not null comment '用户的授权令牌',
|
||||||
|
expire_in int default null comment '用户的授权令牌的有效期,部分平台可能没有',
|
||||||
|
refresh_token varchar(255) default null comment '刷新令牌,部分平台可能没有',
|
||||||
|
access_code varchar(2000) default null comment '平台的授权信息,部分平台可能没有',
|
||||||
|
union_id varchar(255) default null comment '用户的 unionid',
|
||||||
|
scope varchar(255) default null comment '授予的权限,部分平台可能没有',
|
||||||
|
token_type varchar(255) default null comment '个别平台的授权信息,部分平台可能没有',
|
||||||
|
id_token varchar(2000) default null comment 'id token,部分平台可能没有',
|
||||||
|
mac_algorithm varchar(255) default null comment '小米平台用户的附带属性,部分平台可能没有',
|
||||||
|
mac_key varchar(255) default null comment '小米平台用户的附带属性,部分平台可能没有',
|
||||||
|
code varchar(255) default null comment '用户的授权code,部分平台可能没有',
|
||||||
|
oauth_token varchar(255) default null comment 'Twitter平台用户的附带属性,部分平台可能没有',
|
||||||
|
oauth_token_secret varchar(255) default null comment 'Twitter平台用户的附带属性,部分平台可能没有',
|
||||||
|
create_dept bigint(20) comment '创建部门',
|
||||||
|
create_by bigint(20) comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) engine=innodb comment = '社会化关系表';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 租户表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_tenant
|
||||||
|
(
|
||||||
|
id bigint(20) not null comment 'id',
|
||||||
|
tenant_id varchar(20) not null comment '租户编号',
|
||||||
|
contact_user_name varchar(20) comment '联系人',
|
||||||
|
contact_phone varchar(20) comment '联系电话',
|
||||||
|
company_name varchar(30) comment '企业名称',
|
||||||
|
license_number varchar(30) comment '统一社会信用代码',
|
||||||
|
address varchar(200) comment '地址',
|
||||||
|
intro varchar(200) comment '企业简介',
|
||||||
|
domain varchar(200) comment '域名',
|
||||||
|
remark varchar(200) comment '备注',
|
||||||
|
package_id bigint(20) comment '租户套餐编号',
|
||||||
|
expire_time datetime comment '过期时间',
|
||||||
|
account_count int default -1 comment '用户数量(-1不限制)',
|
||||||
|
status char(1) default '0' comment '租户状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) comment '创建部门',
|
||||||
|
create_by bigint(20) comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
primary key (id)
|
||||||
|
) engine=innodb comment = '租户表';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-租户表数据
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
insert into sys_tenant values(1, '000000', '管理组', '15888888888', 'XXX有限公司', null, null, '多租户通用后台管理管理系统', null, null, null, null, -1, '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 租户套餐表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_tenant_package (
|
||||||
|
package_id bigint(20) not null comment '租户套餐id',
|
||||||
|
package_name varchar(20) comment '套餐名称',
|
||||||
|
menu_ids varchar(3000) comment '关联菜单id',
|
||||||
|
remark varchar(200) comment '备注',
|
||||||
|
menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示',
|
||||||
|
status char(1) default '0' comment '状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) comment '创建部门',
|
||||||
|
create_by bigint(20) comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
primary key (package_id)
|
||||||
|
) engine=innodb comment = '租户套餐表';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 1、部门表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_dept (
|
||||||
|
dept_id bigint(20) not null comment '部门id',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
parent_id bigint(20) default 0 comment '父部门id',
|
||||||
|
ancestors varchar(500) default '' comment '祖级列表',
|
||||||
|
dept_name varchar(30) default '' comment '部门名称',
|
||||||
|
dept_category varchar(100) default null comment '部门类别编码',
|
||||||
|
order_num int(4) default 0 comment '显示顺序',
|
||||||
|
leader bigint(20) default null comment '负责人',
|
||||||
|
phone varchar(11) default null comment '联系电话',
|
||||||
|
email varchar(50) default null comment '邮箱',
|
||||||
|
status char(1) default '0' comment '部门状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
primary key (dept_id)
|
||||||
|
) engine=innodb comment = '部门表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-部门表数据
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
|
||||||
|
insert into sys_dept values(100, '000000', 0, '0', 'XXX科技', null,0, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(101, '000000', 100, '0,100', '深圳总公司', null,1, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(102, '000000', 100, '0,100', '长沙分公司', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(103, '000000', 101, '0,100,101', '研发部门', null,1, 1, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(104, '000000', 101, '0,100,101', '市场部门', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(105, '000000', 101, '0,100,101', '测试部门', null,3, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(106, '000000', 101, '0,100,101', '财务部门', null,4, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(107, '000000', 101, '0,100,101', '运维部门', null,5, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(108, '000000', 102, '0,100,102', '市场部门', null,1, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
insert into sys_dept values(109, '000000', 102, '0,100,102', '财务部门', null,2, null, '15888888888', 'xxx@qq.com', '0', '0', 103, 1, sysdate(), null, null);
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 2、用户信息表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_user (
|
||||||
|
user_id bigint(20) not null comment '用户ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
dept_id bigint(20) default null comment '部门ID',
|
||||||
|
user_name varchar(30) not null comment '用户账号',
|
||||||
|
nick_name varchar(30) not null comment '用户昵称',
|
||||||
|
user_type varchar(10) default 'sys_user' comment '用户类型(sys_user系统用户)',
|
||||||
|
email varchar(50) default '' comment '用户邮箱',
|
||||||
|
phonenumber varchar(11) default '' comment '手机号码',
|
||||||
|
sex char(1) default '0' comment '用户性别(0男 1女 2未知)',
|
||||||
|
avatar bigint(20) comment '头像地址',
|
||||||
|
password varchar(100) default '' comment '密码',
|
||||||
|
status char(1) default '0' comment '账号状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
login_ip varchar(128) default '' comment '最后登录IP',
|
||||||
|
login_date datetime comment '最后登录时间',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (user_id)
|
||||||
|
) engine=innodb comment = '用户信息表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-用户信息表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_user values(1, '000000', 103, 'admin', '疯狂的狮子Li', 'sys_user', 'crazyLionLi@163.com', '15888888888', '1', null, '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), null, null, '管理员');
|
||||||
|
insert into sys_user values(3, '000000', 108, 'test', '本部门及以下 密码666666', 'sys_user', '', '', '0', null, '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), 3, sysdate(), null);
|
||||||
|
insert into sys_user values(4, '000000', 102, 'test1', '仅本人 密码666666', 'sys_user', '', '', '0', null, '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne', '0', '0', '127.0.0.1', sysdate(), 103, 1, sysdate(), 4, sysdate(), null);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 3、岗位信息表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_post
|
||||||
|
(
|
||||||
|
post_id bigint(20) not null comment '岗位ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
dept_id bigint(20) not null comment '部门id',
|
||||||
|
post_code varchar(64) not null comment '岗位编码',
|
||||||
|
post_category varchar(100) default null comment '岗位类别编码',
|
||||||
|
post_name varchar(50) not null comment '岗位名称',
|
||||||
|
post_sort int(4) not null comment '显示顺序',
|
||||||
|
status char(1) not null comment '状态(0正常 1停用)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (post_id)
|
||||||
|
) engine=innodb comment = '岗位信息表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-岗位信息表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_post values(1, '000000', 103, 'ceo', null, '董事长', 1, '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_post values(2, '000000', 100, 'se', null, '项目经理', 2, '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_post values(3, '000000', 100, 'hr', null, '人力资源', 3, '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_post values(4, '000000', 100, 'user', null, '普通员工', 4, '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 4、角色信息表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_role (
|
||||||
|
role_id bigint(20) not null comment '角色ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
role_name varchar(30) not null comment '角色名称',
|
||||||
|
role_key varchar(100) not null comment '角色权限字符串',
|
||||||
|
role_sort int(4) not null comment '显示顺序',
|
||||||
|
data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)',
|
||||||
|
menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示',
|
||||||
|
dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示',
|
||||||
|
status char(1) not null comment '角色状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (role_id)
|
||||||
|
) engine=innodb comment = '角色信息表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-角色信息表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_role values(1, '000000', '超级管理员', 'superadmin', 1, 1, 1, 1, '0', '0', 103, 1, sysdate(), null, null, '超级管理员');
|
||||||
|
insert into sys_role values(3, '000000', '本部门及以下', 'test1', 3, 4, 1, 1, '0', '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_role values(4, '000000', '仅本人', 'test2', 4, 5, 1, 1, '0', '0', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 5、菜单权限表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_menu (
|
||||||
|
menu_id bigint(20) not null comment '菜单ID',
|
||||||
|
menu_name varchar(50) not null comment '菜单名称',
|
||||||
|
parent_id bigint(20) default 0 comment '父菜单ID',
|
||||||
|
order_num int(4) default 0 comment '显示顺序',
|
||||||
|
path varchar(200) default '' comment '路由地址',
|
||||||
|
component varchar(255) default null comment '组件路径',
|
||||||
|
query_param varchar(255) default null comment '路由参数',
|
||||||
|
is_frame int(1) default 1 comment '是否为外链(0是 1否)',
|
||||||
|
is_cache int(1) default 0 comment '是否缓存(0缓存 1不缓存)',
|
||||||
|
menu_type char(1) default '' comment '菜单类型(M目录 C菜单 F按钮)',
|
||||||
|
visible char(1) default 0 comment '显示状态(0显示 1隐藏)',
|
||||||
|
status char(1) default 0 comment '菜单状态(0正常 1停用)',
|
||||||
|
perms varchar(100) default null comment '权限标识',
|
||||||
|
icon varchar(100) default '#' comment '菜单图标',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default '' comment '备注',
|
||||||
|
primary key (menu_id)
|
||||||
|
) engine=innodb comment = '菜单权限表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-菜单信息表数据
|
||||||
|
-- ----------------------------
|
||||||
|
-- 一级菜单
|
||||||
|
insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 103, 1, sysdate(), null, null, '系统管理目录');
|
||||||
|
insert into sys_menu values('6', '租户管理', '0', '2', 'tenant', null, '', 1, 0, 'M', '0', '0', '', 'chart', 103, 1, sysdate(), null, null, '租户管理目录');
|
||||||
|
insert into sys_menu values('2', '系统监控', '0', '3', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 103, 1, sysdate(), null, null, '系统监控目录');
|
||||||
|
insert into sys_menu values('3', '系统工具', '0', '4', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 103, 1, sysdate(), null, null, '系统工具目录');
|
||||||
|
insert into sys_menu values('4', 'PLUS官网', '0', '5', 'https://gitee.com/dromara/water-Vue-Plus', null, '', 0, 0, 'M', '0', '0', '', 'guide', 103, 1, sysdate(), null, null, 'water-Vue-Plus官网地址');
|
||||||
|
insert into sys_menu values('5', '测试菜单', '0', '5', 'demo', null, '', 1, 0, 'M', '0', '0', '', 'star', 103, 1, sysdate(), null, null, '测试菜单');
|
||||||
|
-- 二级菜单
|
||||||
|
insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 103, 1, sysdate(), null, null, '用户管理菜单');
|
||||||
|
insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 103, 1, sysdate(), null, null, '角色管理菜单');
|
||||||
|
insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 103, 1, sysdate(), null, null, '菜单管理菜单');
|
||||||
|
insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 103, 1, sysdate(), null, null, '部门管理菜单');
|
||||||
|
insert into sys_menu values('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 103, 1, sysdate(), null, null, '岗位管理菜单');
|
||||||
|
insert into sys_menu values('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 103, 1, sysdate(), null, null, '字典管理菜单');
|
||||||
|
insert into sys_menu values('106', '参数设置', '1', '7', 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 103, 1, sysdate(), null, null, '参数设置菜单');
|
||||||
|
insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 103, 1, sysdate(), null, null, '通知公告菜单');
|
||||||
|
insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 103, 1, sysdate(), null, null, '日志管理菜单');
|
||||||
|
insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 103, 1, sysdate(), null, null, '在线用户菜单');
|
||||||
|
insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 103, 1, sysdate(), null, null, '缓存监控菜单');
|
||||||
|
insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 103, 1, sysdate(), null, null, '代码生成菜单');
|
||||||
|
insert into sys_menu values('121', '租户管理', '6', '1', 'tenant', 'system/tenant/index', '', 1, 0, 'C', '0', '0', 'system:tenant:list', 'list', 103, 1, sysdate(), null, null, '租户管理菜单');
|
||||||
|
insert into sys_menu values('122', '租户套餐管理', '6', '2', 'tenantPackage', 'system/tenantPackage/index', '', 1, 0, 'C', '0', '0', 'system:tenantPackage:list', 'form', 103, 1, sysdate(), null, null, '租户套餐管理菜单');
|
||||||
|
insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client:list', 'international', 103, 1, sysdate(), null, null, '客户端管理菜单');
|
||||||
|
insert into sys_menu values('116', '修改生成配置', '3', '2', 'gen-edit/index/:tableId', 'tool/gen/editTable', '', 1, 1, 'C', '1', '0', 'tool:gen:edit', '#', 103, 1, sysdate(), null, null, '/tool/gen');
|
||||||
|
insert into sys_menu values('130', '分配用户', '1', '2', 'role-auth/user/:roleId', 'system/role/authUser', '', 1, 1, 'C', '1', '0', 'system:role:edit', '#', 103, 1, sysdate(), null, null, '/system/role');
|
||||||
|
insert into sys_menu values('131', '分配角色', '1', '1', 'user-auth/role/:userId', 'system/user/authRole', '', 1, 1, 'C', '1', '0', 'system:user:edit', '#', 103, 1, sysdate(), null, null, '/system/user');
|
||||||
|
insert into sys_menu values('132', '字典数据', '1', '6', 'dict-data/index/:dictId', 'system/dict/data', '', 1, 1, 'C', '1', '0', 'system:dict:list', '#', 103, 1, sysdate(), null, null, '/system/dict');
|
||||||
|
insert into sys_menu values('133', '文件配置管理', '1', '10', 'oss-config/index', 'system/oss/config', '', 1, 1, 'C', '1', '0', 'system:ossConfig:list', '#', 103, 1, sysdate(), null, null, '/system/oss');
|
||||||
|
|
||||||
|
-- springboot-admin监控
|
||||||
|
insert into sys_menu values('117', 'Admin监控', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 103, 1, sysdate(), null, null, 'Admin监控菜单');
|
||||||
|
-- oss菜单
|
||||||
|
insert into sys_menu values('118', '文件管理', '1', '10', 'oss', 'system/oss/index', '', 1, 0, 'C', '0', '0', 'system:oss:list', 'upload', 103, 1, sysdate(), null, null, '文件管理菜单');
|
||||||
|
-- snail-job server控制台
|
||||||
|
insert into sys_menu values('120', '任务调度中心', '2', '6', 'snailjob', 'monitor/snailjob/index', '', 1, 0, 'C', '0', '0', 'monitor:snailjob:list', 'job', 103, 1, sysdate(), null, null, 'SnailJob控制台菜单');
|
||||||
|
|
||||||
|
-- 三级菜单
|
||||||
|
insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 103, 1, sysdate(), null, null, '操作日志菜单');
|
||||||
|
insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 103, 1, sysdate(), null, null, '登录日志菜单');
|
||||||
|
-- 用户管理按钮
|
||||||
|
insert into sys_menu values('1001', '用户查询', '100', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1002', '用户新增', '100', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1003', '用户修改', '100', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1004', '用户删除', '100', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1005', '用户导出', '100', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1006', '用户导入', '100', '6', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1007', '重置密码', '100', '7', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 角色管理按钮
|
||||||
|
insert into sys_menu values('1008', '角色查询', '101', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1009', '角色新增', '101', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1010', '角色修改', '101', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1011', '角色删除', '101', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1012', '角色导出', '101', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 菜单管理按钮
|
||||||
|
insert into sys_menu values('1013', '菜单查询', '102', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1014', '菜单新增', '102', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1015', '菜单修改', '102', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1016', '菜单删除', '102', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 部门管理按钮
|
||||||
|
insert into sys_menu values('1017', '部门查询', '103', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1018', '部门新增', '103', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1019', '部门修改', '103', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1020', '部门删除', '103', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 岗位管理按钮
|
||||||
|
insert into sys_menu values('1021', '岗位查询', '104', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1022', '岗位新增', '104', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1023', '岗位修改', '104', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1024', '岗位删除', '104', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1025', '岗位导出', '104', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 字典管理按钮
|
||||||
|
insert into sys_menu values('1026', '字典查询', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1027', '字典新增', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1028', '字典修改', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1029', '字典删除', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1030', '字典导出', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 参数设置按钮
|
||||||
|
insert into sys_menu values('1031', '参数查询', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1032', '参数新增', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1033', '参数修改', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1034', '参数删除', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1035', '参数导出', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 通知公告按钮
|
||||||
|
insert into sys_menu values('1036', '公告查询', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1037', '公告新增', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1038', '公告修改', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1039', '公告删除', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 操作日志按钮
|
||||||
|
insert into sys_menu values('1040', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1041', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1042', '日志导出', '500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 登录日志按钮
|
||||||
|
insert into sys_menu values('1043', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1044', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1045', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1050', '账户解锁', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 在线用户按钮
|
||||||
|
insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 代码生成按钮
|
||||||
|
insert into sys_menu values('1055', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1056', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1057', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1058', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1059', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1060', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- oss相关按钮
|
||||||
|
insert into sys_menu values('1600', '文件查询', '118', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1601', '文件上传', '118', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:upload', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1602', '文件下载', '118', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:download', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1603', '文件删除', '118', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1620', '配置列表', '118', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:list', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1621', '配置添加', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1622', '配置编辑', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1623', '配置删除', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- 租户管理相关按钮
|
||||||
|
insert into sys_menu values ('1606', '租户查询', '121', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1607', '租户新增', '121', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1608', '租户修改', '121', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1609', '租户删除', '121', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1610', '租户导出', '121', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenant:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 租户套餐管理相关按钮
|
||||||
|
insert into sys_menu values ('1611', '租户套餐查询', '122', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1612', '租户套餐新增', '122', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1613', '租户套餐修改', '122', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1614', '租户套餐删除', '122', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('1615', '租户套餐导出', '122', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:tenantPackage:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 客户端管理按钮
|
||||||
|
insert into sys_menu values('1061', '客户端管理查询', '123', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 测试菜单
|
||||||
|
insert into sys_menu values('1500', '测试单表', '5', '1', 'demo', 'demo/demo/index', '', 1, 0, 'C', '0', '0', 'demo:demo:list', '#', 103, 1, sysdate(), null, null, '测试单表菜单');
|
||||||
|
insert into sys_menu values('1501', '测试单表查询', '1500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1502', '测试单表新增', '1500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1503', '测试单表修改', '1500', '3', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1504', '测试单表删除', '1500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1505', '测试单表导出', '1500', '5', '#', '', '', 1, 0, 'F', '0', '0', 'demo:demo:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1506', '测试树表', '5', '1', 'tree', 'demo/tree/index', '', 1, 0, 'C', '0', '0', 'demo:tree:list', '#', 103, 1, sysdate(), null, null, '测试树表菜单');
|
||||||
|
insert into sys_menu values('1507', '测试树表查询', '1506', '1', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1508', '测试树表新增', '1506', '2', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1509', '测试树表修改', '1506', '3', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1510', '测试树表删除', '1506', '4', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1511', '测试树表导出', '1506', '5', '#', '', '', 1, 0, 'F', '0', '0', 'demo:tree:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 6、用户和角色关联表 用户N-1角色
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_user_role (
|
||||||
|
user_id bigint(20) not null comment '用户ID',
|
||||||
|
role_id bigint(20) not null comment '角色ID',
|
||||||
|
primary key(user_id, role_id)
|
||||||
|
) engine=innodb comment = '用户和角色关联表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-用户和角色关联表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_user_role values ('1', '1');
|
||||||
|
insert into sys_user_role values ('3', '3');
|
||||||
|
insert into sys_user_role values ('4', '4');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 7、角色和菜单关联表 角色1-N菜单
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_role_menu (
|
||||||
|
role_id bigint(20) not null comment '角色ID',
|
||||||
|
menu_id bigint(20) not null comment '菜单ID',
|
||||||
|
primary key(role_id, menu_id)
|
||||||
|
) engine=innodb comment = '角色和菜单关联表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-角色和菜单关联表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_role_menu values ('3', '1');
|
||||||
|
insert into sys_role_menu values ('3', '5');
|
||||||
|
insert into sys_role_menu values ('3', '100');
|
||||||
|
insert into sys_role_menu values ('3', '101');
|
||||||
|
insert into sys_role_menu values ('3', '102');
|
||||||
|
insert into sys_role_menu values ('3', '103');
|
||||||
|
insert into sys_role_menu values ('3', '104');
|
||||||
|
insert into sys_role_menu values ('3', '105');
|
||||||
|
insert into sys_role_menu values ('3', '106');
|
||||||
|
insert into sys_role_menu values ('3', '107');
|
||||||
|
insert into sys_role_menu values ('3', '108');
|
||||||
|
insert into sys_role_menu values ('3', '118');
|
||||||
|
insert into sys_role_menu values ('3', '123');
|
||||||
|
insert into sys_role_menu values ('3', '130');
|
||||||
|
insert into sys_role_menu values ('3', '131');
|
||||||
|
insert into sys_role_menu values ('3', '132');
|
||||||
|
insert into sys_role_menu values ('3', '133');
|
||||||
|
insert into sys_role_menu values ('3', '500');
|
||||||
|
insert into sys_role_menu values ('3', '501');
|
||||||
|
insert into sys_role_menu values ('3', '1001');
|
||||||
|
insert into sys_role_menu values ('3', '1002');
|
||||||
|
insert into sys_role_menu values ('3', '1003');
|
||||||
|
insert into sys_role_menu values ('3', '1004');
|
||||||
|
insert into sys_role_menu values ('3', '1005');
|
||||||
|
insert into sys_role_menu values ('3', '1006');
|
||||||
|
insert into sys_role_menu values ('3', '1007');
|
||||||
|
insert into sys_role_menu values ('3', '1008');
|
||||||
|
insert into sys_role_menu values ('3', '1009');
|
||||||
|
insert into sys_role_menu values ('3', '1010');
|
||||||
|
insert into sys_role_menu values ('3', '1011');
|
||||||
|
insert into sys_role_menu values ('3', '1012');
|
||||||
|
insert into sys_role_menu values ('3', '1013');
|
||||||
|
insert into sys_role_menu values ('3', '1014');
|
||||||
|
insert into sys_role_menu values ('3', '1015');
|
||||||
|
insert into sys_role_menu values ('3', '1016');
|
||||||
|
insert into sys_role_menu values ('3', '1017');
|
||||||
|
insert into sys_role_menu values ('3', '1018');
|
||||||
|
insert into sys_role_menu values ('3', '1019');
|
||||||
|
insert into sys_role_menu values ('3', '1020');
|
||||||
|
insert into sys_role_menu values ('3', '1021');
|
||||||
|
insert into sys_role_menu values ('3', '1022');
|
||||||
|
insert into sys_role_menu values ('3', '1023');
|
||||||
|
insert into sys_role_menu values ('3', '1024');
|
||||||
|
insert into sys_role_menu values ('3', '1025');
|
||||||
|
insert into sys_role_menu values ('3', '1026');
|
||||||
|
insert into sys_role_menu values ('3', '1027');
|
||||||
|
insert into sys_role_menu values ('3', '1028');
|
||||||
|
insert into sys_role_menu values ('3', '1029');
|
||||||
|
insert into sys_role_menu values ('3', '1030');
|
||||||
|
insert into sys_role_menu values ('3', '1031');
|
||||||
|
insert into sys_role_menu values ('3', '1032');
|
||||||
|
insert into sys_role_menu values ('3', '1033');
|
||||||
|
insert into sys_role_menu values ('3', '1034');
|
||||||
|
insert into sys_role_menu values ('3', '1035');
|
||||||
|
insert into sys_role_menu values ('3', '1036');
|
||||||
|
insert into sys_role_menu values ('3', '1037');
|
||||||
|
insert into sys_role_menu values ('3', '1038');
|
||||||
|
insert into sys_role_menu values ('3', '1039');
|
||||||
|
insert into sys_role_menu values ('3', '1040');
|
||||||
|
insert into sys_role_menu values ('3', '1041');
|
||||||
|
insert into sys_role_menu values ('3', '1042');
|
||||||
|
insert into sys_role_menu values ('3', '1043');
|
||||||
|
insert into sys_role_menu values ('3', '1044');
|
||||||
|
insert into sys_role_menu values ('3', '1045');
|
||||||
|
insert into sys_role_menu values ('3', '1050');
|
||||||
|
insert into sys_role_menu values ('3', '1061');
|
||||||
|
insert into sys_role_menu values ('3', '1062');
|
||||||
|
insert into sys_role_menu values ('3', '1063');
|
||||||
|
insert into sys_role_menu values ('3', '1064');
|
||||||
|
insert into sys_role_menu values ('3', '1065');
|
||||||
|
insert into sys_role_menu values ('3', '1500');
|
||||||
|
insert into sys_role_menu values ('3', '1501');
|
||||||
|
insert into sys_role_menu values ('3', '1502');
|
||||||
|
insert into sys_role_menu values ('3', '1503');
|
||||||
|
insert into sys_role_menu values ('3', '1504');
|
||||||
|
insert into sys_role_menu values ('3', '1505');
|
||||||
|
insert into sys_role_menu values ('3', '1506');
|
||||||
|
insert into sys_role_menu values ('3', '1507');
|
||||||
|
insert into sys_role_menu values ('3', '1508');
|
||||||
|
insert into sys_role_menu values ('3', '1509');
|
||||||
|
insert into sys_role_menu values ('3', '1510');
|
||||||
|
insert into sys_role_menu values ('3', '1511');
|
||||||
|
insert into sys_role_menu values ('3', '1600');
|
||||||
|
insert into sys_role_menu values ('3', '1601');
|
||||||
|
insert into sys_role_menu values ('3', '1602');
|
||||||
|
insert into sys_role_menu values ('3', '1603');
|
||||||
|
insert into sys_role_menu values ('3', '1620');
|
||||||
|
insert into sys_role_menu values ('3', '1621');
|
||||||
|
insert into sys_role_menu values ('3', '1622');
|
||||||
|
insert into sys_role_menu values ('3', '1623');
|
||||||
|
insert into sys_role_menu values ('3', '11616');
|
||||||
|
insert into sys_role_menu values ('3', '11618');
|
||||||
|
insert into sys_role_menu values ('3', '11619');
|
||||||
|
insert into sys_role_menu values ('3', '11622');
|
||||||
|
insert into sys_role_menu values ('3', '11623');
|
||||||
|
insert into sys_role_menu values ('3', '11629');
|
||||||
|
insert into sys_role_menu values ('3', '11632');
|
||||||
|
insert into sys_role_menu values ('3', '11633');
|
||||||
|
insert into sys_role_menu values ('3', '11638');
|
||||||
|
insert into sys_role_menu values ('3', '11639');
|
||||||
|
insert into sys_role_menu values ('3', '11640');
|
||||||
|
insert into sys_role_menu values ('3', '11641');
|
||||||
|
insert into sys_role_menu values ('3', '11642');
|
||||||
|
insert into sys_role_menu values ('3', '11643');
|
||||||
|
insert into sys_role_menu values ('3', '11701');
|
||||||
|
insert into sys_role_menu values ('4', '5');
|
||||||
|
insert into sys_role_menu values ('4', '1500');
|
||||||
|
insert into sys_role_menu values ('4', '1501');
|
||||||
|
insert into sys_role_menu values ('4', '1502');
|
||||||
|
insert into sys_role_menu values ('4', '1503');
|
||||||
|
insert into sys_role_menu values ('4', '1504');
|
||||||
|
insert into sys_role_menu values ('4', '1505');
|
||||||
|
insert into sys_role_menu values ('4', '1506');
|
||||||
|
insert into sys_role_menu values ('4', '1507');
|
||||||
|
insert into sys_role_menu values ('4', '1508');
|
||||||
|
insert into sys_role_menu values ('4', '1509');
|
||||||
|
insert into sys_role_menu values ('4', '1510');
|
||||||
|
insert into sys_role_menu values ('4', '1511');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 8、角色和部门关联表 角色1-N部门
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_role_dept (
|
||||||
|
role_id bigint(20) not null comment '角色ID',
|
||||||
|
dept_id bigint(20) not null comment '部门ID',
|
||||||
|
primary key(role_id, dept_id)
|
||||||
|
) engine=innodb comment = '角色和部门关联表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 9、用户与岗位关联表 用户1-N岗位
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_user_post
|
||||||
|
(
|
||||||
|
user_id bigint(20) not null comment '用户ID',
|
||||||
|
post_id bigint(20) not null comment '岗位ID',
|
||||||
|
primary key (user_id, post_id)
|
||||||
|
) engine=innodb comment = '用户与岗位关联表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-用户与岗位关联表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_user_post values ('1', '1');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 10、操作日志记录
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_oper_log (
|
||||||
|
oper_id bigint(20) not null comment '日志主键',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
title varchar(50) default '' comment '模块标题',
|
||||||
|
business_type int(2) default 0 comment '业务类型(0其它 1新增 2修改 3删除)',
|
||||||
|
method varchar(100) default '' comment '方法名称',
|
||||||
|
request_method varchar(10) default '' comment '请求方式',
|
||||||
|
operator_type int(1) default 0 comment '操作类别(0其它 1后台用户 2手机端用户)',
|
||||||
|
oper_name varchar(50) default '' comment '操作人员',
|
||||||
|
dept_name varchar(50) default '' comment '部门名称',
|
||||||
|
oper_url varchar(255) default '' comment '请求URL',
|
||||||
|
oper_ip varchar(128) default '' comment '主机地址',
|
||||||
|
oper_location varchar(255) default '' comment '操作地点',
|
||||||
|
oper_param varchar(4000) default '' comment '请求参数',
|
||||||
|
json_result varchar(4000) default '' comment '返回参数',
|
||||||
|
status int(1) default 0 comment '操作状态(0正常 1异常)',
|
||||||
|
error_msg varchar(4000) default '' comment '错误消息',
|
||||||
|
oper_time datetime comment '操作时间',
|
||||||
|
cost_time bigint(20) default 0 comment '消耗时间',
|
||||||
|
primary key (oper_id),
|
||||||
|
key idx_sys_oper_log_bt (business_type),
|
||||||
|
key idx_sys_oper_log_s (status),
|
||||||
|
key idx_sys_oper_log_ot (oper_time)
|
||||||
|
) engine=innodb comment = '操作日志记录';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 11、字典类型表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_dict_type
|
||||||
|
(
|
||||||
|
dict_id bigint(20) not null comment '字典主键',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
dict_name varchar(100) default '' comment '字典名称',
|
||||||
|
dict_type varchar(100) default '' comment '字典类型',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (dict_id),
|
||||||
|
unique (tenant_id, dict_type)
|
||||||
|
) engine=innodb comment = '字典类型表';
|
||||||
|
|
||||||
|
insert into sys_dict_type values(1, '000000', '用户性别', 'sys_user_sex', 103, 1, sysdate(), null, null, '用户性别列表');
|
||||||
|
insert into sys_dict_type values(2, '000000', '菜单状态', 'sys_show_hide', 103, 1, sysdate(), null, null, '菜单状态列表');
|
||||||
|
insert into sys_dict_type values(3, '000000', '系统开关', 'sys_normal_disable', 103, 1, sysdate(), null, null, '系统开关列表');
|
||||||
|
insert into sys_dict_type values(6, '000000', '系统是否', 'sys_yes_no', 103, 1, sysdate(), null, null, '系统是否列表');
|
||||||
|
insert into sys_dict_type values(7, '000000', '通知类型', 'sys_notice_type', 103, 1, sysdate(), null, null, '通知类型列表');
|
||||||
|
insert into sys_dict_type values(8, '000000', '通知状态', 'sys_notice_status', 103, 1, sysdate(), null, null, '通知状态列表');
|
||||||
|
insert into sys_dict_type values(9, '000000', '操作类型', 'sys_oper_type', 103, 1, sysdate(), null, null, '操作类型列表');
|
||||||
|
insert into sys_dict_type values(10, '000000', '系统状态', 'sys_common_status', 103, 1, sysdate(), null, null, '登录状态列表');
|
||||||
|
insert into sys_dict_type values(11, '000000', '授权类型', 'sys_grant_type', 103, 1, sysdate(), null, null, '认证授权类型');
|
||||||
|
insert into sys_dict_type values(12, '000000', '设备类型', 'sys_device_type', 103, 1, sysdate(), null, null, '客户端设备类型');
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 12、字典数据表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_dict_data
|
||||||
|
(
|
||||||
|
dict_code bigint(20) not null comment '字典编码',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
dict_sort int(4) default 0 comment '字典排序',
|
||||||
|
dict_label varchar(100) default '' comment '字典标签',
|
||||||
|
dict_value varchar(100) default '' comment '字典键值',
|
||||||
|
dict_type varchar(100) default '' comment '字典类型',
|
||||||
|
css_class varchar(100) default null comment '样式属性(其他样式扩展)',
|
||||||
|
list_class varchar(100) default null comment '表格回显样式',
|
||||||
|
is_default char(1) default 'N' comment '是否默认(Y是 N否)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (dict_code)
|
||||||
|
) engine=innodb comment = '字典数据表';
|
||||||
|
|
||||||
|
insert into sys_dict_data values(1, '000000', 1, '男', '0', 'sys_user_sex', '', '', 'Y', 103, 1, sysdate(), null, null, '性别男');
|
||||||
|
insert into sys_dict_data values(2, '000000', 2, '女', '1', 'sys_user_sex', '', '', 'N', 103, 1, sysdate(), null, null, '性别女');
|
||||||
|
insert into sys_dict_data values(3, '000000', 3, '未知', '2', 'sys_user_sex', '', '', 'N', 103, 1, sysdate(), null, null, '性别未知');
|
||||||
|
insert into sys_dict_data values(4, '000000', 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', 103, 1, sysdate(), null, null, '显示菜单');
|
||||||
|
insert into sys_dict_data values(5, '000000', 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', 103, 1, sysdate(), null, null, '隐藏菜单');
|
||||||
|
insert into sys_dict_data values(6, '000000', 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', 103, 1, sysdate(), null, null, '正常状态');
|
||||||
|
insert into sys_dict_data values(7, '000000', 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', 103, 1, sysdate(), null, null, '停用状态');
|
||||||
|
insert into sys_dict_data values(12, '000000', 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', 103, 1, sysdate(), null, null, '系统默认是');
|
||||||
|
insert into sys_dict_data values(13, '000000', 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', 103, 1, sysdate(), null, null, '系统默认否');
|
||||||
|
insert into sys_dict_data values(14, '000000', 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', 103, 1, sysdate(), null, null, '通知');
|
||||||
|
insert into sys_dict_data values(15, '000000', 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', 103, 1, sysdate(), null, null, '公告');
|
||||||
|
insert into sys_dict_data values(16, '000000', 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', 103, 1, sysdate(), null, null, '正常状态');
|
||||||
|
insert into sys_dict_data values(17, '000000', 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', 103, 1, sysdate(), null, null, '关闭状态');
|
||||||
|
insert into sys_dict_data values(29, '000000', 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', 103, 1, sysdate(), null, null, '其他操作');
|
||||||
|
insert into sys_dict_data values(18, '000000', 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', 103, 1, sysdate(), null, null, '新增操作');
|
||||||
|
insert into sys_dict_data values(19, '000000', 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', 103, 1, sysdate(), null, null, '修改操作');
|
||||||
|
insert into sys_dict_data values(20, '000000', 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', 103, 1, sysdate(), null, null, '删除操作');
|
||||||
|
insert into sys_dict_data values(21, '000000', 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', 103, 1, sysdate(), null, null, '授权操作');
|
||||||
|
insert into sys_dict_data values(22, '000000', 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', 103, 1, sysdate(), null, null, '导出操作');
|
||||||
|
insert into sys_dict_data values(23, '000000', 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', 103, 1, sysdate(), null, null, '导入操作');
|
||||||
|
insert into sys_dict_data values(24, '000000', 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', 103, 1, sysdate(), null, null, '强退操作');
|
||||||
|
insert into sys_dict_data values(25, '000000', 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', 103, 1, sysdate(), null, null, '生成操作');
|
||||||
|
insert into sys_dict_data values(26, '000000', 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', 103, 1, sysdate(), null, null, '清空操作');
|
||||||
|
insert into sys_dict_data values(27, '000000', 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', 103, 1, sysdate(), null, null, '正常状态');
|
||||||
|
insert into sys_dict_data values(28, '000000', 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', 103, 1, sysdate(), null, null, '停用状态');
|
||||||
|
insert into sys_dict_data values(30, '000000', 0, '密码认证', 'password', 'sys_grant_type', 'el-check-tag', 'default', 'N', 103, 1, sysdate(), null, null, '密码认证');
|
||||||
|
insert into sys_dict_data values(31, '000000', 0, '短信认证', 'sms', 'sys_grant_type', 'el-check-tag', 'default', 'N', 103, 1, sysdate(), null, null, '短信认证');
|
||||||
|
insert into sys_dict_data values(32, '000000', 0, '邮件认证', 'email', 'sys_grant_type', 'el-check-tag', 'default', 'N', 103, 1, sysdate(), null, null, '邮件认证');
|
||||||
|
insert into sys_dict_data values(33, '000000', 0, '小程序认证', 'xcx', 'sys_grant_type', 'el-check-tag', 'default', 'N', 103, 1, sysdate(), null, null, '小程序认证');
|
||||||
|
insert into sys_dict_data values(34, '000000', 0, '三方登录认证', 'social', 'sys_grant_type', 'el-check-tag', 'default', 'N', 103, 1, sysdate(), null, null, '三方登录认证');
|
||||||
|
insert into sys_dict_data values(35, '000000', 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, 'PC');
|
||||||
|
insert into sys_dict_data values(36, '000000', 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '安卓');
|
||||||
|
insert into sys_dict_data values(37, '000000', 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, 'iOS');
|
||||||
|
insert into sys_dict_data values(38, '000000', 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '小程序');
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 13、参数配置表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_config (
|
||||||
|
config_id bigint(20) not null comment '参数主键',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
config_name varchar(100) default '' comment '参数名称',
|
||||||
|
config_key varchar(100) default '' comment '参数键名',
|
||||||
|
config_value varchar(500) default '' comment '参数键值',
|
||||||
|
config_type char(1) default 'N' comment '系统内置(Y是 N否)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (config_id)
|
||||||
|
) engine=innodb comment = '参数配置表';
|
||||||
|
|
||||||
|
insert into sys_config values(1, '000000', '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 103, 1, sysdate(), null, null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' );
|
||||||
|
insert into sys_config values(2, '000000', '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 103, 1, sysdate(), null, null, '初始化密码 123456' );
|
||||||
|
insert into sys_config values(3, '000000', '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 103, 1, sysdate(), null, null, '深色主题theme-dark,浅色主题theme-light' );
|
||||||
|
insert into sys_config values(5, '000000', '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 103, 1, sysdate(), null, null, '是否开启注册用户功能(true开启,false关闭)');
|
||||||
|
insert into sys_config values(11, '000000', 'OSS预览列表资源开关', 'sys.oss.previewListResource', 'true', 'Y', 103, 1, sysdate(), null, null, 'true:开启, false:关闭');
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 14、系统访问记录
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_logininfor (
|
||||||
|
info_id bigint(20) not null comment '访问ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
user_name varchar(50) default '' comment '用户账号',
|
||||||
|
client_key varchar(32) default '' comment '客户端',
|
||||||
|
device_type varchar(32) default '' comment '设备类型',
|
||||||
|
ipaddr varchar(128) default '' comment '登录IP地址',
|
||||||
|
login_location varchar(255) default '' comment '登录地点',
|
||||||
|
browser varchar(50) default '' comment '浏览器类型',
|
||||||
|
os varchar(50) default '' comment '操作系统',
|
||||||
|
status char(1) default '0' comment '登录状态(0成功 1失败)',
|
||||||
|
msg varchar(255) default '' comment '提示消息',
|
||||||
|
login_time datetime comment '访问时间',
|
||||||
|
primary key (info_id),
|
||||||
|
key idx_sys_logininfor_s (status),
|
||||||
|
key idx_sys_logininfor_lt (login_time)
|
||||||
|
) engine=innodb comment = '系统访问记录';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 17、通知公告表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_notice (
|
||||||
|
notice_id bigint(20) not null comment '公告ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
notice_title varchar(50) not null comment '公告标题',
|
||||||
|
notice_type char(1) not null comment '公告类型(1通知 2公告)',
|
||||||
|
notice_content longblob default null comment '公告内容',
|
||||||
|
status char(1) default '0' comment '公告状态(0正常 1关闭)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(255) default null comment '备注',
|
||||||
|
primary key (notice_id)
|
||||||
|
) engine=innodb comment = '通知公告表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 初始化-公告信息表数据
|
||||||
|
-- ----------------------------
|
||||||
|
insert into sys_notice values('1', '000000', '温馨提醒:2018-07-01 新版本发布啦', '2', '新版本内容', '0', 103, 1, sysdate(), null, null, '管理员');
|
||||||
|
insert into sys_notice values('2', '000000', '维护通知:2018-07-01 系统凌晨维护', '1', '维护内容', '0', 103, 1, sysdate(), null, null, '管理员');
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 18、代码生成业务表
|
||||||
|
-- ----------------------------
|
||||||
|
create table gen_table (
|
||||||
|
table_id bigint(20) not null comment '编号',
|
||||||
|
data_name varchar(200) default '' comment '数据源名称',
|
||||||
|
table_name varchar(200) default '' comment '表名称',
|
||||||
|
table_comment varchar(500) default '' comment '表描述',
|
||||||
|
sub_table_name varchar(64) default null comment '关联子表的表名',
|
||||||
|
sub_table_fk_name varchar(64) default null comment '子表关联的外键名',
|
||||||
|
class_name varchar(100) default '' comment '实体类名称',
|
||||||
|
tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)',
|
||||||
|
package_name varchar(100) comment '生成包路径',
|
||||||
|
module_name varchar(30) comment '生成模块名',
|
||||||
|
business_name varchar(30) comment '生成业务名',
|
||||||
|
function_name varchar(50) comment '生成功能名',
|
||||||
|
function_author varchar(50) comment '生成功能作者',
|
||||||
|
gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)',
|
||||||
|
gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)',
|
||||||
|
options varchar(1000) comment '其它生成选项',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (table_id)
|
||||||
|
) engine=innodb comment = '代码生成业务表';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 19、代码生成业务表字段
|
||||||
|
-- ----------------------------
|
||||||
|
create table gen_table_column (
|
||||||
|
column_id bigint(20) not null comment '编号',
|
||||||
|
table_id bigint(20) comment '归属表编号',
|
||||||
|
column_name varchar(200) comment '列名称',
|
||||||
|
column_comment varchar(500) comment '列描述',
|
||||||
|
column_type varchar(100) comment '列类型',
|
||||||
|
java_type varchar(500) comment 'JAVA类型',
|
||||||
|
java_field varchar(200) comment 'JAVA字段名',
|
||||||
|
is_pk char(1) comment '是否主键(1是)',
|
||||||
|
is_increment char(1) comment '是否自增(1是)',
|
||||||
|
is_required char(1) comment '是否必填(1是)',
|
||||||
|
is_insert char(1) comment '是否为插入字段(1是)',
|
||||||
|
is_edit char(1) comment '是否编辑字段(1是)',
|
||||||
|
is_list char(1) comment '是否列表字段(1是)',
|
||||||
|
is_query char(1) comment '是否查询字段(1是)',
|
||||||
|
query_type varchar(200) default 'EQ' comment '查询方式(等于、不等于、大于、小于、范围)',
|
||||||
|
html_type varchar(200) comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
|
||||||
|
dict_type varchar(200) default '' comment '字典类型',
|
||||||
|
sort int comment '排序',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
primary key (column_id)
|
||||||
|
) engine=innodb comment = '代码生成业务表字段';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- OSS对象存储表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_oss (
|
||||||
|
oss_id bigint(20) not null comment '对象存储主键',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
file_name varchar(255) not null default '' comment '文件名',
|
||||||
|
original_name varchar(255) not null default '' comment '原名',
|
||||||
|
file_suffix varchar(10) not null default '' comment '文件后缀名',
|
||||||
|
url varchar(500) not null comment 'URL地址',
|
||||||
|
ext1 text default null comment '扩展字段',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_time datetime default null comment '创建时间',
|
||||||
|
create_by bigint(20) default null comment '上传人',
|
||||||
|
update_time datetime default null comment '更新时间',
|
||||||
|
update_by bigint(20) default null comment '更新人',
|
||||||
|
service varchar(20) not null default 'minio' comment '服务商',
|
||||||
|
primary key (oss_id)
|
||||||
|
) engine=innodb comment ='OSS对象存储表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- OSS对象存储动态配置表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_oss_config (
|
||||||
|
oss_config_id bigint(20) not null comment '主键',
|
||||||
|
tenant_id varchar(20) default '000000'comment '租户编号',
|
||||||
|
config_key varchar(20) not null default '' comment '配置key',
|
||||||
|
access_key varchar(255) default '' comment 'accessKey',
|
||||||
|
secret_key varchar(255) default '' comment '秘钥',
|
||||||
|
bucket_name varchar(255) default '' comment '桶名称',
|
||||||
|
prefix varchar(255) default '' comment '前缀',
|
||||||
|
endpoint varchar(255) default '' comment '访问站点',
|
||||||
|
domain varchar(255) default '' comment '自定义域名',
|
||||||
|
is_https char(1) default 'N' comment '是否https(Y=是,N=否)',
|
||||||
|
region varchar(255) default '' comment '域',
|
||||||
|
access_policy char(1) not null default '1' comment '桶权限类型(0=private 1=public 2=custom)',
|
||||||
|
status char(1) default '1' comment '是否默认(0=是,1=否)',
|
||||||
|
ext1 varchar(255) default '' comment '扩展字段',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime default null comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime default null comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (oss_config_id)
|
||||||
|
) engine=innodb comment='对象存储配置表';
|
||||||
|
|
||||||
|
insert into sys_oss_config values (1, '000000', 'minio', 'water', 'water123', 'water', '', '127.0.0.1:9000', '','N', '', '1' ,'0', '', 103, 1, sysdate(), 1, sysdate(), null);
|
||||||
|
insert into sys_oss_config values (2, '000000', 'qiniu', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'water', '', 's3-cn-north-1.qiniucs.com', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null);
|
||||||
|
insert into sys_oss_config values (3, '000000', 'aliyun', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'water', '', 'oss-cn-beijing.aliyuncs.com', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null);
|
||||||
|
insert into sys_oss_config values (4, '000000', 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'water-1240000000', '', 'cos.ap-beijing.myqcloud.com', '','N', 'ap-beijing', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null);
|
||||||
|
insert into sys_oss_config values (5, '000000', 'image', 'water', 'water123', 'water', 'image', '127.0.0.1:9000', '','N', '', '1' ,'1', '', 103, 1, sysdate(), 1, sysdate(), null);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 系统授权表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_client (
|
||||||
|
id bigint(20) not null comment 'id',
|
||||||
|
client_id varchar(64) default null comment '客户端id',
|
||||||
|
client_key varchar(32) default null comment '客户端key',
|
||||||
|
client_secret varchar(255) default null comment '客户端秘钥',
|
||||||
|
grant_type varchar(255) default null comment '授权类型',
|
||||||
|
device_type varchar(32) default null comment '设备类型',
|
||||||
|
active_timeout int(11) default 1800 comment 'token活跃超时时间',
|
||||||
|
timeout int(11) default 604800 comment 'token固定超时',
|
||||||
|
status char(1) default '0' comment '状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime default null comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime default null comment '更新时间',
|
||||||
|
primary key (id)
|
||||||
|
) engine=innodb comment='系统授权表';
|
||||||
|
|
||||||
|
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||||
|
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE test_demo
|
||||||
|
(
|
||||||
|
id bigint(0) NOT NULL COMMENT '主键',
|
||||||
|
tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号',
|
||||||
|
dept_id bigint(0) NULL DEFAULT NULL COMMENT '部门id',
|
||||||
|
user_id bigint(0) NULL DEFAULT NULL COMMENT '用户id',
|
||||||
|
order_num int(0) NULL DEFAULT 0 COMMENT '排序号',
|
||||||
|
test_key varchar(255) NULL DEFAULT NULL COMMENT 'key键',
|
||||||
|
value varchar(255) NULL DEFAULT NULL COMMENT '值',
|
||||||
|
version int(0) NULL DEFAULT 0 COMMENT '版本',
|
||||||
|
create_dept bigint(0) NULL DEFAULT NULL COMMENT '创建部门',
|
||||||
|
create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
create_by bigint(0) NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
update_by bigint(0) NULL DEFAULT NULL COMMENT '更新人',
|
||||||
|
del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志',
|
||||||
|
PRIMARY KEY (id) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT = '测试单表';
|
||||||
|
|
||||||
|
CREATE TABLE test_tree
|
||||||
|
(
|
||||||
|
id bigint(0) NOT NULL COMMENT '主键',
|
||||||
|
tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号',
|
||||||
|
parent_id bigint(0) NULL DEFAULT 0 COMMENT '父id',
|
||||||
|
dept_id bigint(0) NULL DEFAULT NULL COMMENT '部门id',
|
||||||
|
user_id bigint(0) NULL DEFAULT NULL COMMENT '用户id',
|
||||||
|
tree_name varchar(255) NULL DEFAULT NULL COMMENT '值',
|
||||||
|
version int(0) NULL DEFAULT 0 COMMENT '版本',
|
||||||
|
create_dept bigint(0) NULL DEFAULT NULL COMMENT '创建部门',
|
||||||
|
create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
create_by bigint(0) NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
|
update_by bigint(0) NULL DEFAULT NULL COMMENT '更新人',
|
||||||
|
del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志',
|
||||||
|
PRIMARY KEY (id) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT = '测试树表';
|
||||||
|
|
||||||
|
INSERT INTO test_demo VALUES (1, '000000', 102, 4, 1, '测试数据权限', '测试', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (2, '000000', 102, 3, 2, '子节点1', '111', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (3, '000000', 102, 3, 3, '子节点2', '222', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (4, '000000', 108, 4, 4, '测试数据', 'demo', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (5, '000000', 108, 3, 13, '子节点11', '1111', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (6, '000000', 108, 3, 12, '子节点22', '2222', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (7, '000000', 108, 3, 11, '子节点33', '3333', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (8, '000000', 108, 3, 10, '子节点44', '4444', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (9, '000000', 108, 3, 9, '子节点55', '5555', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (10, '000000', 108, 3, 8, '子节点66', '6666', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (11, '000000', 108, 3, 7, '子节点77', '7777', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (12, '000000', 108, 3, 6, '子节点88', '8888', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_demo VALUES (13, '000000', 108, 3, 5, '子节点99', '9999', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
|
||||||
|
INSERT INTO test_tree VALUES (1, '000000', 0, 102, 4, '测试数据权限', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (2, '000000', 1, 102, 3, '子节点1', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (3, '000000', 2, 102, 3, '子节点2', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (4, '000000', 0, 108, 4, '测试树1', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (5, '000000', 4, 108, 3, '子节点11', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (6, '000000', 4, 108, 3, '子节点22', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (7, '000000', 4, 108, 3, '子节点33', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (8, '000000', 5, 108, 3, '子节点44', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (9, '000000', 6, 108, 3, '子节点55', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (10, '000000', 7, 108, 3, '子节点66', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (11, '000000', 7, 108, 3, '子节点77', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (12, '000000', 10, 108, 3, '子节点88', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
|
INSERT INTO test_tree VALUES (13, '000000', 10, 108, 3, '子节点99', 0, 103, sysdate(), 1, NULL, NULL, 0);
|
||||||
339
script/sql/ry_workflow.sql
Normal file
339
script/sql/ry_workflow.sql
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 0、warm-flow-all.sql,地址:https://gitee.com/dromara/warm-flow/blob/master/sql/mysql/warm-flow-all.sql
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE `flow_definition`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`flow_code` varchar(40) NOT NULL COMMENT '流程编码',
|
||||||
|
`flow_name` varchar(100) NOT NULL COMMENT '流程名称',
|
||||||
|
`model_value` varchar(40) NOT NULL DEFAULT 'CLASSICS' COMMENT '设计器模型(CLASSICS经典模型 MIMIC仿钉钉模型)',
|
||||||
|
`category` varchar(100) DEFAULT NULL COMMENT '流程类别',
|
||||||
|
`version` varchar(20) NOT NULL COMMENT '流程版本',
|
||||||
|
`is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)',
|
||||||
|
`form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
|
||||||
|
`form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
|
||||||
|
`activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)',
|
||||||
|
`listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
|
||||||
|
`listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
|
||||||
|
`ext` varchar(500) DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='流程定义表';
|
||||||
|
|
||||||
|
CREATE TABLE `flow_node`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`definition_id` bigint NOT NULL COMMENT '流程定义id',
|
||||||
|
`node_code` varchar(100) NOT NULL COMMENT '流程节点编码',
|
||||||
|
`node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
|
||||||
|
`permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,用@@隔开)',
|
||||||
|
`node_ratio` varchar(200) DEFAULT NULL COMMENT '流程签署比例值',
|
||||||
|
`coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
|
||||||
|
`any_node_skip` varchar(100) DEFAULT NULL COMMENT '任意结点跳转',
|
||||||
|
`listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
|
||||||
|
`listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
|
||||||
|
`form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
|
||||||
|
`form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
|
||||||
|
`version` varchar(20) NOT NULL COMMENT '版本',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
||||||
|
`ext` text COMMENT '节点扩展属性',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='流程节点表';
|
||||||
|
|
||||||
|
CREATE TABLE `flow_skip`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`definition_id` bigint NOT NULL COMMENT '流程定义id',
|
||||||
|
`now_node_code` varchar(100) NOT NULL COMMENT '当前流程节点的编码',
|
||||||
|
`now_node_type` tinyint(1) DEFAULT NULL COMMENT '当前节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`next_node_code` varchar(100) NOT NULL COMMENT '下一个流程节点的编码',
|
||||||
|
`next_node_type` tinyint(1) DEFAULT NULL COMMENT '下一个节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`skip_name` varchar(100) DEFAULT NULL COMMENT '跳转名称',
|
||||||
|
`skip_type` varchar(40) DEFAULT NULL COMMENT '跳转类型(PASS审批通过 REJECT退回)',
|
||||||
|
`skip_condition` varchar(200) DEFAULT NULL COMMENT '跳转条件',
|
||||||
|
`coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='节点跳转关联表';
|
||||||
|
|
||||||
|
CREATE TABLE `flow_instance`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id',
|
||||||
|
`business_id` varchar(40) NOT NULL COMMENT '业务id',
|
||||||
|
`node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`node_code` varchar(40) NOT NULL COMMENT '流程节点编码',
|
||||||
|
`node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
|
||||||
|
`variable` text COMMENT '任务变量',
|
||||||
|
`flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
`activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)',
|
||||||
|
`def_json` text COMMENT '流程定义json',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
||||||
|
`ext` varchar(500) DEFAULT NULL COMMENT '扩展字段,预留给业务系统使用',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='流程实例表';
|
||||||
|
|
||||||
|
CREATE TABLE `flow_task`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id',
|
||||||
|
`instance_id` bigint NOT NULL COMMENT '对应flow_instance表的id',
|
||||||
|
`node_code` varchar(100) NOT NULL COMMENT '节点编码',
|
||||||
|
`node_name` varchar(100) DEFAULT NULL COMMENT '节点名称',
|
||||||
|
`node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
`form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
|
||||||
|
`form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新人',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='待办任务表';
|
||||||
|
|
||||||
|
CREATE TABLE `flow_his_task`
|
||||||
|
(
|
||||||
|
`id` bigint(20) NOT NULL COMMENT '主键id',
|
||||||
|
`definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id',
|
||||||
|
`instance_id` bigint(20) NOT NULL COMMENT '对应flow_instance表的id',
|
||||||
|
`task_id` bigint(20) NOT NULL COMMENT '对应flow_task表的id',
|
||||||
|
`node_code` varchar(100) DEFAULT NULL COMMENT '开始节点编码',
|
||||||
|
`node_name` varchar(100) DEFAULT NULL COMMENT '开始节点名称',
|
||||||
|
`node_type` tinyint(1) DEFAULT NULL COMMENT '开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
|
||||||
|
`target_node_code` varchar(200) DEFAULT NULL COMMENT '目标节点编码',
|
||||||
|
`target_node_name` varchar(200) DEFAULT NULL COMMENT '结束节点名称',
|
||||||
|
`approver` varchar(40) DEFAULT NULL COMMENT '审批人',
|
||||||
|
`cooperate_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)',
|
||||||
|
`collaborator` varchar(500) DEFAULT NULL COMMENT '协作人',
|
||||||
|
`skip_type` varchar(10) NOT NULL COMMENT '流转类型(PASS通过 REJECT退回 NONE无动作)',
|
||||||
|
`flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
`form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
|
||||||
|
`form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
|
||||||
|
`message` varchar(500) DEFAULT NULL COMMENT '审批意见',
|
||||||
|
`variable` TEXT DEFAULT NULL COMMENT '任务变量',
|
||||||
|
`ext` TEXT DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '任务开始时间',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '审批完成时间',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='历史任务记录表';
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `flow_user`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL COMMENT '主键id',
|
||||||
|
`type` char(1) NOT NULL COMMENT '人员类型(1待办任务的审批人权限 2待办任务的转办人权限 3待办任务的委托人权限)',
|
||||||
|
`processed_by` varchar(80) DEFAULT NULL COMMENT '权限人',
|
||||||
|
`associated` bigint NOT NULL COMMENT '任务表id',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`create_by` varchar(80) DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`update_by` varchar(64) DEFAULT '' COMMENT '创建人',
|
||||||
|
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
`tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
KEY `user_processed_type` (`processed_by`, `type`),
|
||||||
|
KEY `user_associated` (`associated`) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT ='流程用户表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程分类表
|
||||||
|
-- ----------------------------
|
||||||
|
create table flow_category
|
||||||
|
(
|
||||||
|
category_id bigint(20) not null comment '流程分类ID',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
parent_id bigint(20) default 0 comment '父流程分类id',
|
||||||
|
ancestors varchar(500) default '' comment '祖级列表',
|
||||||
|
category_name varchar(30) not null comment '流程分类名称',
|
||||||
|
order_num int(4) default 0 comment '显示顺序',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
create_dept bigint(20) null comment '创建部门',
|
||||||
|
create_by bigint(20) null comment '创建者',
|
||||||
|
create_time datetime null comment '创建时间',
|
||||||
|
update_by bigint(20) null comment '更新者',
|
||||||
|
update_time datetime null comment '更新时间',
|
||||||
|
primary key (category_id)
|
||||||
|
) engine = innodb comment = '流程分类';
|
||||||
|
|
||||||
|
INSERT INTO flow_category values (100, '000000', 0, '0', 'OA审批', 0, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (101, '000000', 100, '0,100', '假勤管理', 0, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (102, '000000', 100, '0,100', '人事管理', 1, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (103, '000000', 101, '0,100,101', '请假', 0, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (104, '000000', 101, '0,100,101', '出差', 1, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (105, '000000', 101, '0,100,101', '加班', 2, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (106, '000000', 101, '0,100,101', '换班', 3, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (107, '000000', 101, '0,100,101', '外出', 4, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (108, '000000', 102, '0,100,102', '转正', 1, '0', 103, 1, sysdate(), null, null);
|
||||||
|
INSERT INTO flow_category values (109, '000000', 102, '0,100,102', '离职', 2, '0', 103, 1, sysdate(), null, null);
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id bigint(20) NOT NULL COMMENT '主键id',
|
||||||
|
component_name varchar(255) DEFAULT NULL COMMENT '组件名称',
|
||||||
|
method_name varchar(255) DEFAULT NULL COMMENT '方法名',
|
||||||
|
method_params varchar(255) DEFAULT NULL COMMENT '参数',
|
||||||
|
view_spel varchar(255) DEFAULT NULL COMMENT '预览spel表达式',
|
||||||
|
remark varchar(255) DEFAULT NULL COMMENT '备注',
|
||||||
|
status char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||||
|
del_flag char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
create_dept bigint(20) DEFAULT NULL COMMENT '创建部门',
|
||||||
|
create_by bigint(20) DEFAULT NULL COMMENT '创建者',
|
||||||
|
create_time datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
update_by bigint(20) DEFAULT NULL COMMENT '更新者',
|
||||||
|
update_time datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE = InnoDB COMMENT='流程spel表达式定义表';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, sysdate(), 1, sysdate());
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, sysdate(), 1, sysdate());
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
create table flow_instance_biz_ext (
|
||||||
|
id bigint not null comment '主键id',
|
||||||
|
tenant_id varchar(20) default '000000' null comment '租户编号',
|
||||||
|
create_dept bigint null comment '创建部门',
|
||||||
|
create_by bigint null comment '创建者',
|
||||||
|
create_time datetime null comment '创建时间',
|
||||||
|
update_by bigint null comment '更新者',
|
||||||
|
update_time datetime null comment '更新时间',
|
||||||
|
business_code varchar(255) null comment '业务编码',
|
||||||
|
business_title varchar(1000) null comment '业务标题',
|
||||||
|
del_flag char default '0' null comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
instance_id bigint null comment '流程实例Id',
|
||||||
|
business_id varchar(255) null comment '业务Id',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE = InnoDB COMMENT '流程实例业务扩展表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 请假单信息
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
create table test_leave
|
||||||
|
(
|
||||||
|
id bigint(20) not null comment 'id',
|
||||||
|
tenant_id varchar(20) default '000000' comment '租户编号',
|
||||||
|
apply_code varchar(50) not null comment '申请编号',
|
||||||
|
leave_type varchar(255) not null comment '请假类型',
|
||||||
|
start_date datetime not null comment '开始时间',
|
||||||
|
end_date datetime not null comment '结束时间',
|
||||||
|
leave_days int(10) not null comment '请假天数',
|
||||||
|
remark varchar(255) null comment '请假原因',
|
||||||
|
status varchar(255) null comment '状态',
|
||||||
|
create_dept bigint null comment '创建部门',
|
||||||
|
create_by bigint null comment '创建者',
|
||||||
|
create_time datetime null comment '创建时间',
|
||||||
|
update_by bigint null comment '更新者',
|
||||||
|
update_time datetime null comment '更新时间',
|
||||||
|
PRIMARY KEY (id) USING BTREE
|
||||||
|
) ENGINE = InnoDB COMMENT = '请假申请表';
|
||||||
|
|
||||||
|
insert into sys_menu values ('11616', '工作流', '0', '6', 'workflow', '', '', '1', '0', 'M', '0', '0', '', 'workflow', 103, 1, sysdate(),NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11618', '我的任务', '0', '7', 'task', '', '', '1', '0', 'M', '0', '0', '', 'my-task', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11619', '我的待办', '11618', '2', 'taskWaiting', 'workflow/task/taskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11632', '我的已办', '11618', '3', 'taskFinish', 'workflow/task/taskFinish', '', '1', '1', 'C', '0', '0', '', 'finish', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11633', '我的抄送', '11618', '4', 'taskCopyList', 'workflow/task/taskCopyList', '', '1', '1', 'C', '0', '0', '', 'my-copy', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11620', '流程定义', '11616', '3', 'processDefinition', 'workflow/processDefinition/index', '', '1', '1', 'C', '0', '0', 'workflow:definition:list', 'process-definition', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11621', '流程实例', '11630', '1', 'processInstance', 'workflow/processInstance/index', '', '1', '1', 'C', '0', '0', 'workflow:instance:list', 'tree-table', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', '2', 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, sysdate(), 1, sysdate(), '流程达式定义菜单');
|
||||||
|
insert into sys_menu values ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', 'workflow:instance:currentList', 'guide', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu values ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, '/workflow/processDefinition');
|
||||||
|
insert into sys_menu values ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 流程分类管理相关按钮
|
||||||
|
insert into sys_menu values ('11623', '流程分类查询', '11622', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:category:query', '#', 103, 1,sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11624', '流程分类新增', '11622', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:category:add', '#', 103, 1,sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11625', '流程分类修改', '11622', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:category:edit', '#', 103, 1,sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11626', '流程分类删除', '11622', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:category:remove', '#', 103,1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11627', '流程分类导出', '11622', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:category:export', '#', 103,1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
insert into sys_menu values ('11653', '流程实例查询', '11621', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11654', '流程变量查询', '11621', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11655', '流程变量修改', '11621', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11657', '流程实例删除', '11621', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11658', '流程实例作废', '11621', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11659', '流程实例撤销', '11621', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
insert into sys_menu values ('11644', '流程定义查询', '11620', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11645', '流程定义新增', '11620', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11646', '流程定义修改', '11620', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11647', '流程定义删除', '11620', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11648', '流程定义导出', '11620', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11649', '流程定义导入', '11620', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11651', '流程定义复制', '11620', '8', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
-- 流程表达式管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
-- 请假测试相关按钮
|
||||||
|
insert into sys_menu VALUES ('11638', '请假申请', 5, 1, 'leave', 'workflow/leave/index', '', 1, 0, 'C', '0', '0', 'workflow:leave:list', '#', 103, 1, sysdate(), NULL, NULL, '请假申请菜单');
|
||||||
|
insert into sys_menu VALUES ('11639', '请假申请查询', '11638', 1, '#', '', '', 1, 0, 'F', '0', '0', 'workflow:leave:query', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu VALUES ('11640', '请假申请新增', '11638', 2, '#', '', '', 1, 0, 'F', '0', '0', 'workflow:leave:add', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu VALUES ('11641', '请假申请修改', '11638', 3, '#', '', '', 1, 0, 'F', '0', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu VALUES ('11642', '请假申请删除', '11638', 4, '#', '', '', 1, 0, 'F', '0', '0', 'workflow:leave:remove', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
insert into sys_menu VALUES ('11643', '请假申请导出', '11638', 5, '#', '', '', 1, 0, 'F', '0', '0', 'workflow:leave:export', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
|
||||||
|
INSERT INTO sys_dict_type VALUES (13, '000000', '业务状态', 'wf_business_status', 103, 1, sysdate(), NULL, NULL, '业务状态列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (14, '000000', '表单类型', 'wf_form_type', 103, 1, sysdate(), NULL, NULL, '表单类型列表');
|
||||||
|
INSERT INTO sys_dict_type VALUES (15, '000000', '任务状态', 'wf_task_status', 103, 1, sysdate(), NULL, NULL, '任务状态');
|
||||||
|
INSERT INTO sys_dict_data VALUES (39, '000000', 1, '已撤销', 'cancel', 'wf_business_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL,'已撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (40, '000000', 2, '草稿', 'draft', 'wf_business_status', '', 'info', 'N', 103, 1, sysdate(), NULL, NULL, '草稿');
|
||||||
|
INSERT INTO sys_dict_data VALUES (41, '000000', 3, '待审核', 'waiting', 'wf_business_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL,'待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (42, '000000', 4, '已完成', 'finish', 'wf_business_status', '', 'success', 'N', 103, 1, sysdate(), NULL, NULL,'已完成');
|
||||||
|
INSERT INTO sys_dict_data VALUES (43, '000000', 5, '已作废', 'invalid', 'wf_business_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL,'已作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (44, '000000', 6, '已退回', 'back', 'wf_business_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL,'已退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (45, '000000', 7, '已终止', 'termination', 'wf_business_status', '', 'danger', 'N', 103, 1, sysdate(), NULL,NULL, '已终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (46, '000000', 1, '自定义表单', 'static', 'wf_form_type', '', 'success', 'N', 103, 1, sysdate(), NULL, NULL,'自定义表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (47, '000000', 2, '动态表单', 'dynamic', 'wf_form_type', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL,'动态表单');
|
||||||
|
INSERT INTO sys_dict_data VALUES (48, '000000', 1, '撤销', 'cancel', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '撤销');
|
||||||
|
INSERT INTO sys_dict_data VALUES (49, '000000', 2, '通过', 'pass', 'wf_task_status', '', 'success', 'N', 103, 1, sysdate(), NULL, NULL, '通过');
|
||||||
|
INSERT INTO sys_dict_data VALUES (50, '000000', 3, '待审核', 'waiting', 'wf_task_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL, '待审核');
|
||||||
|
INSERT INTO sys_dict_data VALUES (51, '000000', 4, '作废', 'invalid', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '作废');
|
||||||
|
INSERT INTO sys_dict_data VALUES (52, '000000', 5, '退回', 'back', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '退回');
|
||||||
|
INSERT INTO sys_dict_data VALUES (53, '000000', 6, '终止', 'termination', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '终止');
|
||||||
|
INSERT INTO sys_dict_data VALUES (54, '000000', 7, '转办', 'transfer', 'wf_task_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL, '转办');
|
||||||
|
INSERT INTO sys_dict_data VALUES (55, '000000', 8, '委托', 'depute', 'wf_task_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL, '委托');
|
||||||
|
INSERT INTO sys_dict_data VALUES (56, '000000', 9, '抄送', 'copy', 'wf_task_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL, '抄送');
|
||||||
|
INSERT INTO sys_dict_data VALUES (57, '000000', 10, '加签', 'sign', 'wf_task_status', '', 'primary', 'N', 103, 1, sysdate(), NULL, NULL, '加签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (58, '000000', 11, '减签', 'sign_off', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '减签');
|
||||||
|
INSERT INTO sys_dict_data VALUES (59, '000000', 11, '超时', 'timeout', 'wf_task_status', '', 'danger', 'N', 103, 1, sysdate(), NULL, NULL, '超时');
|
||||||
|
|
||||||
2891
script/sql/sqlserver/sqlserver_ry_job.sql
Normal file
2891
script/sql/sqlserver/sqlserver_ry_job.sql
Normal file
File diff suppressed because it is too large
Load Diff
3641
script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
Normal file
3641
script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
Normal file
File diff suppressed because it is too large
Load Diff
1693
script/sql/sqlserver/sqlserver_ry_workflow.sql
Normal file
1693
script/sql/sqlserver/sqlserver_ry_workflow.sql
Normal file
File diff suppressed because it is too large
Load Diff
151
script/sql/update/oracle/update_5.0-5.1.sql
Normal file
151
script/sql/update/oracle/update_5.0-5.1.sql
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
ALTER TABLE gen_table ADD (data_name VARCHAR2(200) DEFAULT '');
|
||||||
|
|
||||||
|
COMMENT ON COLUMN gen_table.data_name IS '数据源名称';
|
||||||
|
|
||||||
|
UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 第三方平台授权表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_social
|
||||||
|
(
|
||||||
|
id number(20) not null,
|
||||||
|
user_id number(20) not null,
|
||||||
|
tenant_id varchar2(20) default null,
|
||||||
|
auth_id varchar2(255) not null,
|
||||||
|
source varchar2(255) not null,
|
||||||
|
open_id varchar2(255) default null,
|
||||||
|
user_name varchar2(30) not null,
|
||||||
|
nick_name varchar2(30) default '',
|
||||||
|
email varchar2(255) default '',
|
||||||
|
avatar varchar2(500) default '',
|
||||||
|
access_token varchar2(255) not null,
|
||||||
|
expire_in number(20) default null,
|
||||||
|
refresh_token varchar2(255) default null,
|
||||||
|
access_code varchar2(255) default null,
|
||||||
|
union_id varchar2(255) default null,
|
||||||
|
scope varchar2(255) default null,
|
||||||
|
token_type varchar2(255) default null,
|
||||||
|
id_token varchar2(255) default null,
|
||||||
|
mac_algorithm varchar2(255) default null,
|
||||||
|
mac_key varchar2(255) default null,
|
||||||
|
code varchar2(255) default null,
|
||||||
|
oauth_token varchar2(255) default null,
|
||||||
|
oauth_token_secret varchar2(255) default null,
|
||||||
|
create_dept number(20),
|
||||||
|
create_by number(20),
|
||||||
|
create_time date,
|
||||||
|
update_by number(20),
|
||||||
|
update_time date,
|
||||||
|
del_flag char(1) default '0'
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table sys_social add constraint pk_sys_social primary key (id);
|
||||||
|
|
||||||
|
comment on table sys_social is '社会化关系表';
|
||||||
|
comment on column sys_social.id is '主键';
|
||||||
|
comment on column sys_social.user_id is '用户ID';
|
||||||
|
comment on column sys_social.tenant_id is '租户id';
|
||||||
|
comment on column sys_social.auth_id is '平台+平台唯一id';
|
||||||
|
comment on column sys_social.source is '用户来源';
|
||||||
|
comment on column sys_social.open_id is '平台编号唯一id';
|
||||||
|
comment on column sys_social.user_name is '登录账号';
|
||||||
|
comment on column sys_social.nick_name is '用户昵称';
|
||||||
|
comment on column sys_social.email is '用户邮箱';
|
||||||
|
comment on column sys_social.avatar is '头像地址';
|
||||||
|
comment on column sys_social.access_token is '用户的授权令牌';
|
||||||
|
comment on column sys_social.expire_in is '用户的授权令牌的有效期,部分平台可能没有';
|
||||||
|
comment on column sys_social.refresh_token is '刷新令牌,部分平台可能没有';
|
||||||
|
comment on column sys_social.access_code is '平台的授权信息,部分平台可能没有';
|
||||||
|
comment on column sys_social.union_id is '用户的 unionid';
|
||||||
|
comment on column sys_social.scope is '授予的权限,部分平台可能没有';
|
||||||
|
comment on column sys_social.token_type is '个别平台的授权信息,部分平台可能没有';
|
||||||
|
comment on column sys_social.id_token is 'id token,部分平台可能没有';
|
||||||
|
comment on column sys_social.mac_algorithm is '小米平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.mac_key is '小米平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.code is '用户的授权code,部分平台可能没有';
|
||||||
|
comment on column sys_social.oauth_token is 'Twitter平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.create_dept is '创建部门';
|
||||||
|
comment on column sys_social.create_by is '创建者';
|
||||||
|
comment on column sys_social.create_time is '创建时间';
|
||||||
|
comment on column sys_social.update_by is '更新者';
|
||||||
|
comment on column sys_social.update_time is '更新时间';
|
||||||
|
comment on column sys_social.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 系统授权表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_client (
|
||||||
|
id number(20) not null,
|
||||||
|
client_id varchar2(64) default null,
|
||||||
|
client_key varchar2(32) default null,
|
||||||
|
client_secret varchar2(255) default null,
|
||||||
|
grant_type varchar2(255) default null,
|
||||||
|
device_type varchar2(32) default null,
|
||||||
|
active_timeout number(11) default 1800,
|
||||||
|
timeout number(11) default 604800,
|
||||||
|
status char(1) default '0',
|
||||||
|
del_flag char(1) default '0',
|
||||||
|
create_dept number(20) default null,
|
||||||
|
create_by number(20) default null,
|
||||||
|
create_time date,
|
||||||
|
update_by number(20) default null,
|
||||||
|
update_time date
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table sys_client add constraint pk_sys_client primary key (id);
|
||||||
|
|
||||||
|
comment on table sys_client is '系统授权表';
|
||||||
|
comment on column sys_client.id is '主键';
|
||||||
|
comment on column sys_client.client_id is '客户端id';
|
||||||
|
comment on column sys_client.client_key is '客户端key';
|
||||||
|
comment on column sys_client.client_secret is '客户端秘钥';
|
||||||
|
comment on column sys_client.grant_type is '授权类型';
|
||||||
|
comment on column sys_client.device_type is '设备类型';
|
||||||
|
comment on column sys_client.active_timeout is 'token活跃超时时间';
|
||||||
|
comment on column sys_client.timeout is 'token固定超时';
|
||||||
|
comment on column sys_client.status is '状态(0正常 1停用)';
|
||||||
|
comment on column sys_client.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||||
|
comment on column sys_client.create_dept is '创建部门';
|
||||||
|
comment on column sys_client.create_by is '创建者';
|
||||||
|
comment on column sys_client.create_time is '创建时间';
|
||||||
|
comment on column sys_client.update_by is '更新者';
|
||||||
|
comment on column sys_client.update_time is '更新时间';
|
||||||
|
|
||||||
|
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||||
|
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||||
|
|
||||||
|
insert into sys_dict_type values(11, '000000', '授权类型', 'sys_grant_type', '0', 103, 1, sysdate, null, null, '认证授权类型');
|
||||||
|
insert into sys_dict_type values(12, '000000', '设备类型', 'sys_device_type', '0', 103, 1, sysdate, null, null, '客户端设备类型');
|
||||||
|
|
||||||
|
insert into sys_dict_data values(30, '000000', 0, '密码认证', 'password', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '密码认证');
|
||||||
|
insert into sys_dict_data values(31, '000000', 0, '短信认证', 'sms', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '短信认证');
|
||||||
|
insert into sys_dict_data values(32, '000000', 0, '邮件认证', 'email', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '邮件认证');
|
||||||
|
insert into sys_dict_data values(33, '000000', 0, '小程序认证', 'xcx', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '小程序认证');
|
||||||
|
insert into sys_dict_data values(34, '000000', 0, '三方登录认证', 'social', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '三方登录认证');
|
||||||
|
insert into sys_dict_data values(35, '000000', 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, 'PC');
|
||||||
|
insert into sys_dict_data values(36, '000000', 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '安卓');
|
||||||
|
insert into sys_dict_data values(37, '000000', 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, 'iOS');
|
||||||
|
insert into sys_dict_data values(38, '000000', 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', '0', 103, 1, sysdate, null, null, '小程序');
|
||||||
|
|
||||||
|
-- 二级菜单
|
||||||
|
insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client:list', 'international', 103, 1, sysdate, null, null, '客户端管理菜单');
|
||||||
|
-- 客户端管理按钮
|
||||||
|
insert into sys_menu values('1061', '客户端管理查询', '123', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:query', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:add', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
|
||||||
|
-- 角色菜单权限
|
||||||
|
insert into sys_role_menu values ('2', '1061');
|
||||||
|
insert into sys_role_menu values ('2', '1062');
|
||||||
|
insert into sys_role_menu values ('2', '1063');
|
||||||
|
insert into sys_role_menu values ('2', '1064');
|
||||||
|
insert into sys_role_menu values ('2', '1065');
|
||||||
|
|
||||||
|
|
||||||
|
update sys_dept set leader = null;
|
||||||
|
ALTER TABLE sys_dept MODIFY (leader NUMBER(20))
|
||||||
5
script/sql/update/oracle/update_5.1.0-5.1.1.sql
Normal file
5
script/sql/update/oracle/update_5.1.0-5.1.1.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE sys_logininfor ADD (client_key varchar2(32) DEFAULT '');
|
||||||
|
COMMENT ON COLUMN sys_logininfor.client_key IS '客户端';
|
||||||
|
|
||||||
|
ALTER TABLE sys_logininfor ADD (device_type varchar2(32) DEFAULT '');
|
||||||
|
COMMENT ON COLUMN sys_logininfor.device_type IS '设备类型';
|
||||||
6
script/sql/update/oracle/update_5.1.1-5.1.2.sql
Normal file
6
script/sql/update/oracle/update_5.1.1-5.1.2.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
delete from sys_menu where menu_id in (1604, 1605);
|
||||||
|
insert into sys_menu values('1620', '配置列表', '118', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:list', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1621', '配置添加', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:add', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1622', '配置编辑', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:edit', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
insert into sys_menu values('1623', '配置删除', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:remove', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
|
||||||
9
script/sql/update/oracle/update_5.1.2-5.2.0.sql
Normal file
9
script/sql/update/oracle/update_5.1.2-5.2.0.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ALTER TABLE sys_dept ADD (dept_category varchar2(100) DEFAULT NULL) COMMENT '部门类别编码';
|
||||||
|
COMMENT ON COLUMN sys_dept.dept_category IS '部门类别编码';
|
||||||
|
ALTER TABLE sys_post ADD (dept_id number(20) NOT NULL) COMMENT '部门id';
|
||||||
|
COMMENT ON COLUMN sys_post.dept_id IS '部门id';
|
||||||
|
ALTER TABLE sys_post ADD (post_category VARCHAR2(100) DEFAULT NULL) COMMENT '岗位类别编码';
|
||||||
|
COMMENT ON COLUMN sys_post.post_category IS '岗位类别编码';
|
||||||
|
UPDATE sys_post SET dept_id = 100;
|
||||||
|
UPDATE sys_post SET dept_id = 103 where post_id = 1;
|
||||||
|
UPDATE sys_menu SET menu_name = 'SnailJob控制台', path = 'snailjob', component = 'monitor/snailjob/index', perms = 'monitor:snailjob:list', remark = 'SnailJob控制台菜单' WHERE menu_id = 120;
|
||||||
7
script/sql/update/oracle/update_5.3.0-5.3.1.sql
Normal file
7
script/sql/update/oracle/update_5.3.0-5.3.1.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
ALTER TABLE flow_node DROP COLUMN skip_any_node;
|
||||||
|
ALTER TABLE flow_node ADD (ext VARCHAR2(500));
|
||||||
|
COMMENT ON COLUMN flow_node.ext IS '扩展属性';
|
||||||
|
create index USER_ASSOCIATED_IDX on FLOW_USER (ASSOCIATED);
|
||||||
|
|
||||||
|
ALTER TABLE sys_oss ADD (ext1 VARCHAR2(500));
|
||||||
|
COMMENT ON COLUMN sys_oss.ext1 IS '扩展属性';
|
||||||
18
script/sql/update/oracle/update_5.3.1-5.4.0.sql
Normal file
18
script/sql/update/oracle/update_5.3.1-5.4.0.sql
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ALTER TABLE flow_task ADD (flow_status VARCHAR2(20));
|
||||||
|
COMMENT ON COLUMN flow_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_instance.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_his_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
ALTER TABLE sys_social
|
||||||
|
MODIFY (access_token VARCHAR2(2000 BYTE))
|
||||||
|
MODIFY (refresh_token VARCHAR2(2000 BYTE));
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('116', '修改生成配置', '3', '2', 'gen-edit/index/:tableId', 'tool/gen/editTable', '', 1, 1, 'C', '1', '0', 'tool:gen:edit', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('130', '分配用户', '1', '2', 'role-auth/user/:roleId', 'system/role/authUser', '', 1, 1, 'C', '1', '0', 'system:role:edit', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('131', '分配角色', '1', '1', 'user-auth/role/:userId', 'system/user/authRole', '', 1, 1, 'C', '1', '0', 'system:user:edit', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('132', '字典数据', '1', '6', 'dict-data/index/:dictId', 'system/dict/data', '', 1, 1, 'C', '1', '0', 'system:dict:list', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('133', '文件配置管理', '1', '10', 'oss-config/index', 'system/oss/config', '', 1, 1, 'C', '1', '0', 'system:ossConfig:list', '#', 103, 1, sysdate, null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
97
script/sql/update/oracle/update_5.4.1-5.5.0.sql
Normal file
97
script/sql/update/oracle/update_5.4.1-5.5.0.sql
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id NUMBER(20) NOT NULL,
|
||||||
|
component_name VARCHAR2(255),
|
||||||
|
method_name VARCHAR2(255),
|
||||||
|
method_params VARCHAR2(255),
|
||||||
|
view_spel VARCHAR2(255),
|
||||||
|
remark VARCHAR2(255),
|
||||||
|
status CHAR(1) DEFAULT '0',
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
create_dept NUMBER(20),
|
||||||
|
create_by NUMBER(20),
|
||||||
|
create_time DATE,
|
||||||
|
update_by NUMBER(20),
|
||||||
|
update_time DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table flow_spel add constraint pk_flow_spel primary key (id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_spel IS '流程spel表达式定义表';
|
||||||
|
COMMENT ON COLUMN flow_spel.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_spel.component_name IS '组件名称';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_name IS '方法名';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_params IS '参数';
|
||||||
|
COMMENT ON COLUMN flow_spel.view_spel IS '预览spel表达式';
|
||||||
|
COMMENT ON COLUMN flow_spel.remark IS '备注';
|
||||||
|
COMMENT ON COLUMN flow_spel.status IS '状态(0正常 1停用)';
|
||||||
|
COMMENT ON COLUMN flow_spel.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, SYSDATE, 1, SYSDATE);
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, SYSDATE, 1, SYSDATE);
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', 2, 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, SYSDATE, 1, SYSDATE, '流程达式定义菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程spel表达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程spel表达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程spel表达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程spel表达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程spel表达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
ALTER TABLE flow_definition ADD model_value VARCHAR2(40) DEFAULT 'CLASSICS' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_definition.model_value IS '设计器模式(CLASSICS经典模式 MIMIC仿钉钉模式)';
|
||||||
|
|
||||||
|
UPDATE flow_skip SET skip_condition = REPLACE(skip_condition, 'notNike', 'notLike');
|
||||||
|
|
||||||
|
ALTER TABLE flow_his_task MODIFY (collaborator VARCHAR2(500) DEFAULT NULL NULL);
|
||||||
|
COMMENT ON COLUMN flow_his_task.collaborator IS '协作人';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_instance_biz_ext (
|
||||||
|
id NUMBER(20),
|
||||||
|
tenant_id VARCHAR2(20) DEFAULT '000000',
|
||||||
|
create_dept NUMBER(20),
|
||||||
|
create_by NUMBER(20),
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by NUMBER(20),
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
business_code VARCHAR2(255),
|
||||||
|
business_title VARCHAR2(1000),
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
instance_id NUMBER(20),
|
||||||
|
business_id VARCHAR2(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table flow_instance_biz_ext add constraint pk_fi_biz_ext primary key (id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_instance_biz_ext IS '流程实例业务扩展表';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_code IS '业务编码';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_title IS '业务标题';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.instance_id IS '流程实例Id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_id IS '业务Id';
|
||||||
|
|
||||||
|
ALTER TABLE test_leave ADD COLUMN apply_code VARCHAR2(50) NOT NULL;
|
||||||
|
COMMENT ON COLUMN test_leave.apply_code IS '申请编号';
|
||||||
|
|
||||||
|
update sys_menu set remark = '/tool/gen' where menu_id = 116;
|
||||||
|
update sys_menu set remark = '/system/role' where menu_id = 130;
|
||||||
|
update sys_menu set remark = '/system/user' where menu_id = 131;
|
||||||
|
update sys_menu set remark = '/system/dict' where menu_id = 132;
|
||||||
|
update sys_menu set remark = '/system/oss' where menu_id = 133;
|
||||||
|
update sys_menu set remark = '/workflow/processDefinition' where menu_id = 11700;
|
||||||
25
script/sql/update/oracle/update_5.5.0-5.5.1.sql
Normal file
25
script/sql/update/oracle/update_5.5.0-5.5.1.sql
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
ALTER TABLE flow_definition ADD create_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_definition ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_definition.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_definition.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_node ADD create_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_node ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_node.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_node.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_skip ADD create_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_skip ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_skip.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_skip.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_instance ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_instance.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_task ADD create_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_task ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_task.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_task.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_user ADD update_by VARCHAR2(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_user.update_by IS '更新人';
|
||||||
4
script/sql/update/oracle/update_5.5.1-5.5.2.sql
Normal file
4
script/sql/update/oracle/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
ALTER TABLE flow_node MODIFY (node_ratio VARCHAR2(200) DEFAULT NULL NULL);
|
||||||
|
COMMENT ON COLUMN flow_node.node_ratio IS '流程签署比例值';
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||||
24
script/sql/update/oracle/update_5.5.3_5.6.0.sql
Normal file
24
script/sql/update/oracle/update_5.5.3_5.6.0.sql
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- 修正已有菜单权限标识
|
||||||
|
update sys_menu set perms = 'workflow:definition:list' where menu_id = '11620';
|
||||||
|
update sys_menu set perms = 'workflow:instance:list' where menu_id = '11621';
|
||||||
|
update sys_menu set perms = 'workflow:instance:currentList' where menu_id = '11629';
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11644', '流程定义查询', '11620', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11645', '流程定义新增', '11620', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11646', '流程定义修改', '11620', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11647', '流程定义删除', '11620', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11648', '流程定义导出', '11620', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11649', '流程定义导入', '11620', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11651', '流程定义复制', '11620', '8', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11653', '流程实例查询', '11621', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11654', '流程变量查询', '11621', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11655', '流程变量修改', '11621', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11657', '流程实例删除', '11621', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11658', '流程实例作废', '11621', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11659', '流程实例撤销', '11621', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, SYSDATE, NULL, NULL, '');
|
||||||
150
script/sql/update/postgres/update_5.0-5.1.sql
Normal file
150
script/sql/update/postgres/update_5.0-5.1.sql
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
ALTER TABLE gen_table ADD data_name varchar(200) default ''::varchar;
|
||||||
|
|
||||||
|
COMMENT ON COLUMN gen_table.data_name IS '数据源名称';
|
||||||
|
|
||||||
|
UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 第三方平台授权表
|
||||||
|
-- ----------------------------
|
||||||
|
create table sys_social
|
||||||
|
(
|
||||||
|
id int8 not null,
|
||||||
|
user_id int8 not null,
|
||||||
|
tenant_id varchar(20) default null::varchar,
|
||||||
|
auth_id varchar(255) not null,
|
||||||
|
source varchar(255) not null,
|
||||||
|
open_id varchar(255) default null::varchar,
|
||||||
|
user_name varchar(30) not null,
|
||||||
|
nick_name varchar(30) default ''::varchar,
|
||||||
|
email varchar(255) default ''::varchar,
|
||||||
|
avatar varchar(500) default ''::varchar,
|
||||||
|
access_token varchar(255) not null,
|
||||||
|
expire_in int8 default null,
|
||||||
|
refresh_token varchar(255) default null::varchar,
|
||||||
|
access_code varchar(255) default null::varchar,
|
||||||
|
union_id varchar(255) default null::varchar,
|
||||||
|
scope varchar(255) default null::varchar,
|
||||||
|
token_type varchar(255) default null::varchar,
|
||||||
|
id_token varchar(255) default null::varchar,
|
||||||
|
mac_algorithm varchar(255) default null::varchar,
|
||||||
|
mac_key varchar(255) default null::varchar,
|
||||||
|
code varchar(255) default null::varchar,
|
||||||
|
oauth_token varchar(255) default null::varchar,
|
||||||
|
oauth_token_secret varchar(255) default null::varchar,
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time timestamp,
|
||||||
|
update_by int8,
|
||||||
|
update_time timestamp,
|
||||||
|
del_flag char default '0'::bpchar,
|
||||||
|
constraint "pk_sys_social" primary key (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
comment on table sys_social is '社会化关系表';
|
||||||
|
comment on column sys_social.id is '主键';
|
||||||
|
comment on column sys_social.user_id is '用户ID';
|
||||||
|
comment on column sys_social.tenant_id is '租户id';
|
||||||
|
comment on column sys_social.auth_id is '平台+平台唯一id';
|
||||||
|
comment on column sys_social.source is '用户来源';
|
||||||
|
comment on column sys_social.open_id is '平台编号唯一id';
|
||||||
|
comment on column sys_social.user_name is '登录账号';
|
||||||
|
comment on column sys_social.nick_name is '用户昵称';
|
||||||
|
comment on column sys_social.email is '用户邮箱';
|
||||||
|
comment on column sys_social.avatar is '头像地址';
|
||||||
|
comment on column sys_social.access_token is '用户的授权令牌';
|
||||||
|
comment on column sys_social.expire_in is '用户的授权令牌的有效期,部分平台可能没有';
|
||||||
|
comment on column sys_social.refresh_token is '刷新令牌,部分平台可能没有';
|
||||||
|
comment on column sys_social.access_code is '平台的授权信息,部分平台可能没有';
|
||||||
|
comment on column sys_social.union_id is '用户的 unionid';
|
||||||
|
comment on column sys_social.scope is '授予的权限,部分平台可能没有';
|
||||||
|
comment on column sys_social.token_type is '个别平台的授权信息,部分平台可能没有';
|
||||||
|
comment on column sys_social.id_token is 'id token,部分平台可能没有';
|
||||||
|
comment on column sys_social.mac_algorithm is '小米平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.mac_key is '小米平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.code is '用户的授权code,部分平台可能没有';
|
||||||
|
comment on column sys_social.oauth_token is 'Twitter平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.oauth_token_secret is 'Twitter平台用户的附带属性,部分平台可能没有';
|
||||||
|
comment on column sys_social.create_dept is '创建部门';
|
||||||
|
comment on column sys_social.create_by is '创建者';
|
||||||
|
comment on column sys_social.create_time is '创建时间';
|
||||||
|
comment on column sys_social.update_by is '更新者';
|
||||||
|
comment on column sys_social.update_time is '更新时间';
|
||||||
|
comment on column sys_social.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 系统授权表
|
||||||
|
-- ----------------------------
|
||||||
|
drop table if exists sys_client;
|
||||||
|
create table sys_client (
|
||||||
|
id int8,
|
||||||
|
client_id varchar(64) default ''::varchar,
|
||||||
|
client_key varchar(32) default ''::varchar,
|
||||||
|
client_secret varchar(255) default ''::varchar,
|
||||||
|
grant_type varchar(255) default ''::varchar,
|
||||||
|
device_type varchar(32) default ''::varchar,
|
||||||
|
active_timeout int4 default 1800,
|
||||||
|
timeout int4 default 604800,
|
||||||
|
status char(1) default '0'::bpchar,
|
||||||
|
del_flag char(1) default '0'::bpchar,
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time timestamp,
|
||||||
|
update_by int8,
|
||||||
|
update_time timestamp,
|
||||||
|
constraint sys_client_pk primary key (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
comment on table sys_client is '系统授权表';
|
||||||
|
comment on column sys_client.id is '主键';
|
||||||
|
comment on column sys_client.client_id is '客户端id';
|
||||||
|
comment on column sys_client.client_key is '客户端key';
|
||||||
|
comment on column sys_client.client_secret is '客户端秘钥';
|
||||||
|
comment on column sys_client.grant_type is '授权类型';
|
||||||
|
comment on column sys_client.device_type is '设备类型';
|
||||||
|
comment on column sys_client.active_timeout is 'token活跃超时时间';
|
||||||
|
comment on column sys_client.timeout is 'token固定超时';
|
||||||
|
comment on column sys_client.status is '状态(0正常 1停用)';
|
||||||
|
comment on column sys_client.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||||
|
comment on column sys_client.create_dept is '创建部门';
|
||||||
|
comment on column sys_client.create_by is '创建者';
|
||||||
|
comment on column sys_client.create_time is '创建时间';
|
||||||
|
comment on column sys_client.update_by is '更新者';
|
||||||
|
comment on column sys_client.update_time is '更新时间';
|
||||||
|
|
||||||
|
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||||
|
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||||
|
|
||||||
|
insert into sys_dict_type values(11, '000000', '授权类型', 'sys_grant_type', '0', 103, 1, now(), null, null, '认证授权类型');
|
||||||
|
insert into sys_dict_type values(12, '000000', '设备类型', 'sys_device_type', '0', 103, 1, now(), null, null, '客户端设备类型');
|
||||||
|
|
||||||
|
insert into sys_dict_data values(30, '000000', 0, '密码认证', 'password', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '密码认证');
|
||||||
|
insert into sys_dict_data values(31, '000000', 0, '短信认证', 'sms', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '短信认证');
|
||||||
|
insert into sys_dict_data values(32, '000000', 0, '邮件认证', 'email', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '邮件认证');
|
||||||
|
insert into sys_dict_data values(33, '000000', 0, '小程序认证', 'xcx', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '小程序认证');
|
||||||
|
insert into sys_dict_data values(34, '000000', 0, '三方登录认证', 'social', 'sys_grant_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '三方登录认证');
|
||||||
|
insert into sys_dict_data values(35, '000000', 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', '0', 103, 1, now(), null, null, 'PC');
|
||||||
|
insert into sys_dict_data values(36, '000000', 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '安卓');
|
||||||
|
insert into sys_dict_data values(37, '000000', 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', '0', 103, 1, now(), null, null, 'iOS');
|
||||||
|
insert into sys_dict_data values(38, '000000', 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', '0', 103, 1, now(), null, null, '小程序');
|
||||||
|
|
||||||
|
-- 二级菜单
|
||||||
|
insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', '1', '0', 'C', '0', '0', 'system:client:list', 'international', 103, 1, now(), null, null, '客户端管理菜单');
|
||||||
|
-- 客户端管理按钮
|
||||||
|
insert into sys_menu values('1061', '客户端管理查询', '123', '1', '#', '', '', '1', '0', 'F', '0', '0', 'system:client:query', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', '', '', '1', '0', 'F', '0', '0', 'system:client:add', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', '1', '0', 'F', '0', '0', 'system:client:edit', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', '1', '0', 'F', '0', '0', 'system:client:remove', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', '1', '0', 'F', '0', '0', 'system:client:export', '#', 103, 1, now(), null, null, '');
|
||||||
|
|
||||||
|
-- 角色菜单权限
|
||||||
|
insert into sys_role_menu values ('2', '1061');
|
||||||
|
insert into sys_role_menu values ('2', '1062');
|
||||||
|
insert into sys_role_menu values ('2', '1063');
|
||||||
|
insert into sys_role_menu values ('2', '1064');
|
||||||
|
insert into sys_role_menu values ('2', '1065');
|
||||||
|
|
||||||
|
|
||||||
|
update sys_dept set leader = null;
|
||||||
|
ALTER TABLE sys_dept ALTER COLUMN leader TYPE int8;
|
||||||
5
script/sql/update/postgres/update_5.1.0-5.1.1.sql
Normal file
5
script/sql/update/postgres/update_5.1.0-5.1.1.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE sys_logininfor ADD client_key varchar(32) default ''::varchar;
|
||||||
|
COMMENT ON COLUMN sys_logininfor.client_key IS '客户端';
|
||||||
|
|
||||||
|
ALTER TABLE sys_logininfor ADD device_type varchar(32) default ''::varchar;
|
||||||
|
COMMENT ON COLUMN sys_logininfor.device_type IS '设备类型';
|
||||||
5
script/sql/update/postgres/update_5.1.1-5.1.2.sql
Normal file
5
script/sql/update/postgres/update_5.1.1-5.1.2.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
delete from sys_menu where menu_id in (1604, 1605);
|
||||||
|
insert into sys_menu values('1620', '配置列表', '118', '5', '#', '', '', '1', '0', 'F', '0', '0', 'system:ossConfig:list', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1621', '配置添加', '118', '6', '#', '', '', '1', '0', 'F', '0', '0', 'system:ossConfig:add', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1622', '配置编辑', '118', '6', '#', '', '', '1', '0', 'F', '0', '0', 'system:ossConfig:edit', '#', 103, 1, now(), null, null, '');
|
||||||
|
insert into sys_menu values('1623', '配置删除', '118', '6', '#', '', '', '1', '0', 'F', '0', '0', 'system:ossConfig:remove', '#', 103, 1, now(), null, null, '');
|
||||||
9
script/sql/update/postgres/update_5.1.2-5.2.0.sql
Normal file
9
script/sql/update/postgres/update_5.1.2-5.2.0.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ALTER TABLE sys_dept ADD COLUMN dept_category varchar(100) default null::varchar;
|
||||||
|
COMMENT ON COLUMN sys_dept.dept_category IS '客户端';
|
||||||
|
ALTER TABLE sys_post ADD COLUMN dept_id int8 NOT NULL;
|
||||||
|
COMMENT ON COLUMN sys_post.dept_id IS '部门id';
|
||||||
|
ALTER TABLE sys_post ADD COLUMN post_category varchar(100) default null::varchar;
|
||||||
|
COMMENT ON COLUMN sys_post.post_category IS '岗位类别编码';
|
||||||
|
UPDATE sys_post SET dept_id = 100;
|
||||||
|
UPDATE sys_post SET dept_id = 103 where post_id = 1;
|
||||||
|
UPDATE sys_menu SET menu_name = 'SnailJob控制台', path = 'snailjob', component = 'monitor/snailjob/index', perms = 'monitor:snailjob:list', remark = 'SnailJob控制台菜单' WHERE menu_id = 120;
|
||||||
7
script/sql/update/postgres/update_5.3.0-5.3.1.sql
Normal file
7
script/sql/update/postgres/update_5.3.0-5.3.1.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
ALTER TABLE flow_node DROP COLUMN skip_any_node;
|
||||||
|
ALTER TABLE flow_node ADD COLUMN ext varchar(500);
|
||||||
|
COMMENT ON COLUMN flow_node.ext IS '扩展属性';
|
||||||
|
CREATE INDEX user_associated_idx ON FLOW_USER USING btree (associated);
|
||||||
|
|
||||||
|
ALTER TABLE sys_oss ADD COLUMN ext1 varchar(500));
|
||||||
|
COMMENT ON COLUMN sys_oss.ext1 IS '扩展属性';
|
||||||
18
script/sql/update/postgres/update_5.3.1-5.4.0.sql
Normal file
18
script/sql/update/postgres/update_5.3.1-5.4.0.sql
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ALTER TABLE flow_task ADD COLUMN flow_status varchar(20);
|
||||||
|
COMMENT ON COLUMN flow_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_instance.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN flow_his_task.flow_status IS '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)';
|
||||||
|
|
||||||
|
ALTER TABLE sys_social
|
||||||
|
ALTER COLUMN access_token TYPE varchar(2000),
|
||||||
|
ALTER COLUMN refresh_token TYPE varchar(2000);
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('116', '修改生成配置', '3', '2', 'gen-edit/index/:tableId', 'tool/gen/editTable', '', '1', '1', 'C', '1', '0', 'tool:gen:edit', '#', 103, 1, now(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('130', '分配用户', '1', '2', 'role-auth/user/:roleId', 'system/role/authUser', '', '1', '1', 'C', '1', '0', 'system:role:edit', '#', 103, 1, now(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('131', '分配角色', '1', '1', 'user-auth/role/:userId', 'system/user/authRole', '', '1', '1', 'C', '1', '0', 'system:user:edit', '#', 103, 1, now(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('132', '字典数据', '1', '6', 'dict-data/index/:dictId', 'system/dict/data', '', '1', '1', 'C', '1', '0', 'system:dict:list', '#', 103, 1, now(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('133', '文件配置管理', '1', '10', 'oss-config/index', 'system/oss/config', '', '1', '1', 'C', '1', '0', 'system:ossConfig:list', '#', 103, 1, now(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
99
script/sql/update/postgres/update_5.4.1-5.5.0.sql
Normal file
99
script/sql/update/postgres/update_5.4.1-5.5.0.sql
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
component_name VARCHAR(255),
|
||||||
|
method_name VARCHAR(255),
|
||||||
|
method_params VARCHAR(255),
|
||||||
|
view_spel VARCHAR(255),
|
||||||
|
remark VARCHAR(255),
|
||||||
|
status CHAR(1) DEFAULT '0',
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
create_dept BIGINT,
|
||||||
|
create_by BIGINT,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by BIGINT,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_spel IS '流程spel表达式定义表';
|
||||||
|
COMMENT ON COLUMN flow_spel.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_spel.component_name IS '组件名称';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_name IS '方法名';
|
||||||
|
COMMENT ON COLUMN flow_spel.method_params IS '参数';
|
||||||
|
COMMENT ON COLUMN flow_spel.view_spel IS '预览spel表达式';
|
||||||
|
COMMENT ON COLUMN flow_spel.remark IS '备注';
|
||||||
|
COMMENT ON COLUMN flow_spel.status IS '状态(0正常 1停用)';
|
||||||
|
COMMENT ON COLUMN flow_spel.del_flag IS '删除标志';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_spel.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_spel.update_time IS '更新时间';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, now(), 1, now());
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, now(), 1, now());
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', 2, 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, now(), 1, now(), '流程达式定义菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程spel表达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程spel表达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程spel表达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程spel表达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程spel表达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
ALTER TABLE flow_definition ADD COLUMN model_value VARCHAR(40) NOT NULL DEFAULT 'CLASSICS';
|
||||||
|
COMMENT ON COLUMN flow_definition.model_value IS '设计器模式(CLASSICS经典模式 MIMIC仿钉钉模式)';
|
||||||
|
|
||||||
|
UPDATE flow_skip SET skip_condition = REPLACE(skip_condition, 'notNike', 'notLike');
|
||||||
|
|
||||||
|
ALTER TABLE flow_his_task
|
||||||
|
ALTER COLUMN collaborator DROP NOT NULL,
|
||||||
|
ALTER COLUMN collaborator SET DEFAULT NULL,
|
||||||
|
ALTER COLUMN collaborator TYPE VARCHAR(500);
|
||||||
|
COMMENT ON COLUMN flow_his_task.collaborator IS '协作人';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_instance_biz_ext (
|
||||||
|
id int8,
|
||||||
|
tenant_id VARCHAR(20) DEFAULT '000000',
|
||||||
|
create_dept int8,
|
||||||
|
create_by int8,
|
||||||
|
create_time TIMESTAMP,
|
||||||
|
update_by int8,
|
||||||
|
update_time TIMESTAMP,
|
||||||
|
business_code VARCHAR(255),
|
||||||
|
business_title VARCHAR(1000),
|
||||||
|
del_flag CHAR(1) DEFAULT '0',
|
||||||
|
instance_id int8,
|
||||||
|
business_id VARCHAR(255),
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE flow_instance_biz_ext IS '流程实例业务扩展表';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.id IS '主键id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_dept IS '创建部门';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_by IS '创建者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_by IS '更新者';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_code IS '业务编码';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_title IS '业务标题';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.del_flag IS '删除标志(0代表存在 1代表删除)';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.instance_id IS '流程实例Id';
|
||||||
|
COMMENT ON COLUMN flow_instance_biz_ext.business_id IS '业务Id';
|
||||||
|
|
||||||
|
ALTER TABLE test_leave ADD COLUMN apply_code VARCHAR(50) NOT NULL;
|
||||||
|
COMMENT ON COLUMN test_leave.apply_code IS '申请编号';
|
||||||
|
|
||||||
|
update sys_menu set remark = '/tool/gen' where menu_id = 116;
|
||||||
|
update sys_menu set remark = '/system/role' where menu_id = 130;
|
||||||
|
update sys_menu set remark = '/system/user' where menu_id = 131;
|
||||||
|
update sys_menu set remark = '/system/dict' where menu_id = 132;
|
||||||
|
update sys_menu set remark = '/system/oss' where menu_id = 133;
|
||||||
|
update sys_menu set remark = '/workflow/processDefinition' where menu_id = 11700;
|
||||||
25
script/sql/update/postgres/update_5.5.0-5.5.1.sql
Normal file
25
script/sql/update/postgres/update_5.5.0-5.5.1.sql
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
ALTER TABLE flow_definition ADD create_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_definition ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_definition.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_definition.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_node ADD create_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_node ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_node.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_node.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_skip ADD create_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_skip ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_skip.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_skip.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_instance ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_instance.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_task ADD create_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE flow_task ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_task.create_by IS '创建人';
|
||||||
|
COMMENT ON COLUMN flow_task.update_by IS '更新人';
|
||||||
|
|
||||||
|
ALTER TABLE flow_user ADD update_by VARCHAR(64) DEFAULT '' NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_user.update_by IS '更新人';
|
||||||
6
script/sql/update/postgres/update_5.5.1-5.5.2.sql
Normal file
6
script/sql/update/postgres/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
ALTER TABLE flow_node
|
||||||
|
ALTER COLUMN node_ratio TYPE VARCHAR(200),
|
||||||
|
ALTER COLUMN node_ratio DROP NOT NULL;
|
||||||
|
COMMENT ON COLUMN flow_node.node_ratio IS '流程签署比例值';
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||||
24
script/sql/update/postgres/update_5.5.3_5.6.0.sql
Normal file
24
script/sql/update/postgres/update_5.5.3_5.6.0.sql
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- 修正已有菜单权限标识
|
||||||
|
update sys_menu set perms = 'workflow:definition:list' where menu_id = '11620';
|
||||||
|
update sys_menu set perms = 'workflow:instance:list' where menu_id = '11621';
|
||||||
|
update sys_menu set perms = 'workflow:instance:currentList' where menu_id = '11629';
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11644', '流程定义查询', '11620', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11645', '流程定义新增', '11620', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11646', '流程定义修改', '11620', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11647', '流程定义删除', '11620', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11648', '流程定义导出', '11620', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11649', '流程定义导入', '11620', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11651', '流程定义复制', '11620', '8', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11653', '流程实例查询', '11621', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11654', '流程变量查询', '11621', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11655', '流程变量修改', '11621', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11657', '流程实例删除', '11621', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11658', '流程实例作废', '11621', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11659', '流程实例撤销', '11621', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, now(), NULL, NULL, '');
|
||||||
409
script/sql/update/sqlserver/update_5.0-5.1.sql
Normal file
409
script/sql/update/sqlserver/update_5.0-5.1.sql
Normal file
@@ -0,0 +1,409 @@
|
|||||||
|
ALTER TABLE gen_table ADD data_name nvarchar(200) DEFAULT '' NULL
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'数据源名称',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'gen_table',
|
||||||
|
'COLUMN', N'data_name'
|
||||||
|
GO
|
||||||
|
|
||||||
|
UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120
|
||||||
|
GO
|
||||||
|
|
||||||
|
create table sys_social
|
||||||
|
(
|
||||||
|
id bigint NOT NULL,
|
||||||
|
user_id bigint NOT NULL,
|
||||||
|
tenant_id nvarchar(20) NULL,
|
||||||
|
auth_id nvarchar(255) NOT NULL,
|
||||||
|
source nvarchar(255) NOT NULL,
|
||||||
|
open_id nvarchar(255) NULL,
|
||||||
|
user_name nvarchar(30) NOT NULL,
|
||||||
|
nick_name nvarchar(30) DEFAULT ('') NULL,
|
||||||
|
email nvarchar(255) DEFAULT ('') NULL,
|
||||||
|
avatar nvarchar(500) DEFAULT ('') NULL,
|
||||||
|
access_token nvarchar(255) NOT NULL,
|
||||||
|
expire_in bigint NULL,
|
||||||
|
refresh_token nvarchar(255) NULL,
|
||||||
|
access_code nvarchar(255) NULL,
|
||||||
|
union_id nvarchar(255) NULL,
|
||||||
|
scope nvarchar(255) NULL,
|
||||||
|
token_type nvarchar(255) NULL,
|
||||||
|
id_token nvarchar(255) NULL,
|
||||||
|
mac_algorithm nvarchar(255) NULL,
|
||||||
|
mac_key nvarchar(255) NULL,
|
||||||
|
code nvarchar(255) NULL,
|
||||||
|
oauth_token nvarchar(255) NULL,
|
||||||
|
oauth_token_secret nvarchar(255) NULL,
|
||||||
|
create_dept bigint,
|
||||||
|
create_by bigint,
|
||||||
|
create_time datetime2(7),
|
||||||
|
update_by bigint,
|
||||||
|
update_time datetime2(7),
|
||||||
|
del_flag nchar DEFAULT ('0') NULL,
|
||||||
|
CONSTRAINT PK__sys_social__B21E8F2427725F8A PRIMARY KEY CLUSTERED (id)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
ON [PRIMARY]
|
||||||
|
)
|
||||||
|
ON [PRIMARY]
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'id' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户ID' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'user_id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'租户id' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'tenant_id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'平台+平台唯一id' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'auth_id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户来源' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'source'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'平台编号唯一id' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'open_id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'登录账号' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'user_name'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户昵称' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'nick_name'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户邮箱' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'email'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'头像地址' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'avatar'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户的授权令牌' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'access_token'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户的授权令牌的有效期,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'expire_in'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'刷新令牌,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'refresh_token'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'平台的授权信息,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'access_code'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户的 unionid' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'union_id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'授予的权限,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'scope'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'个别平台的授权信息,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'token_type'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'id token,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'id_token'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'mac_algorithm'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'小米平台用户的附带属性,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'mac_key'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'用户的授权code,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'code'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'oauth_token'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'Twitter平台用户的附带属性,部分平台可能没有' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'oauth_token_secret'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'删除标志(0代表存在 2代表删除)' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'del_flag'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建部门' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'create_dept'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建者' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建时间' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'create_time'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新者' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新时间' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_social',
|
||||||
|
'COLUMN', N'update_time'
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE sys_client
|
||||||
|
(
|
||||||
|
id bigint NOT NULL,
|
||||||
|
client_id nvarchar(64) DEFAULT '' NULL,
|
||||||
|
client_key nvarchar(32) DEFAULT '' NULL,
|
||||||
|
client_secret nvarchar(255) DEFAULT '' NULL,
|
||||||
|
grant_type nvarchar(255) DEFAULT '' NULL,
|
||||||
|
device_type nvarchar(32) DEFAULT '' NULL,
|
||||||
|
active_timeout int DEFAULT ((1800)) NULL,
|
||||||
|
timeout int DEFAULT ((604800)) NULL,
|
||||||
|
status nchar(1) DEFAULT ('0') NULL,
|
||||||
|
del_flag nchar(1) DEFAULT ('0') NULL,
|
||||||
|
create_dept bigint NULL,
|
||||||
|
create_by bigint NULL,
|
||||||
|
create_time datetime2(7) NULL,
|
||||||
|
update_by bigint NULL,
|
||||||
|
update_time datetime2(7) NULL
|
||||||
|
CONSTRAINT PK__sys_client___BFBDE87009ED2882 PRIMARY KEY CLUSTERED (id)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
ON [PRIMARY]
|
||||||
|
)
|
||||||
|
ON [PRIMARY]
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'主键',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'id'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'客户端id' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'client_id'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'客户端key',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'client_key'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'客户端秘钥',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'client_secret'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'授权类型',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'grant_type'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'设备类型',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'device_type'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'token活跃超时时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'active_timeout'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'token固定超时',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'timeout'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'状态(0正常 1停用)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'status'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'删除标志(0代表存在 2代表删除)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'del_flag'
|
||||||
|
GO
|
||||||
|
EXEC sys.sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建部门' ,
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'create_dept'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'create_time'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client',
|
||||||
|
'COLUMN', N'update_time'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'系统授权表',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_client'
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT INTO sys_client VALUES (N'1', N'e5cd7e4891bf95d1d19206ce24a7b32e', N'pc', N'pc123', N'password,social', N'pc', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||||
|
GO
|
||||||
|
INSERT INTO sys_client VALUES (N'2', N'428a8310cd442757ae699df5d894f051', N'app', N'app123', N'password,sms,social', N'android', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT sys_dict_type VALUES (11, N'000000', N'授权类型', N'sys_grant_type', N'0', 103, 1, getdate(), NULL, NULL, N'认证授权类型')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_type VALUES (12, N'000000', N'设备类型', N'sys_device_type', N'0', 103, 1, getdate(), NULL, NULL, N'客户端设备类型')
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT sys_dict_data VALUES (30, N'000000', 0, N'密码认证', N'password', N'sys_grant_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'密码认证');
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (31, N'000000', 0, N'短信认证', N'sms', N'sys_grant_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'短信认证')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (32, N'000000', 0, N'邮件认证', N'email', N'sys_grant_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'邮件认证')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (33, N'000000', 0, N'小程序认证', N'xcx', N'sys_grant_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'小程序认证')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (34, N'000000', 0, N'三方登录认证', N'social', N'sys_grant_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'三方登录认证')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (35, N'000000', 0, N'PC', N'`pc`', N'sys_device_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'PC')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (36, N'000000', 0, N'安卓', N'`android`', N'sys_device_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'安卓')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (37, N'000000', 0, N'iOS', N'`ios`', N'sys_device_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'iOS')
|
||||||
|
GO
|
||||||
|
INSERT sys_dict_data VALUES (38, N'000000', 0, N'小程序', N'`xcx`', N'sys_device_type', N'', N'default', N'N', N'0', 103, 1, getdate(), NULL, NULL, N'小程序')
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- 二级菜单
|
||||||
|
INSERT sys_menu VALUES (123, N'客户端管理', 1, 11, N'client', N'system/client/index', N'', 1, 0, N'C', N'0', N'0', N'system:client:list', N'international', 103, 1, getdate(), NULL, NULL, N'客户端管理菜单')
|
||||||
|
GO
|
||||||
|
-- 客户端管理按钮
|
||||||
|
INSERT sys_menu VALUES (1061, N'客户端管理查询', 123, 1, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:client:query', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1062, N'客户端管理新增', 123, 2, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:client:add', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1063, N'客户端管理修改', 123, 3, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:client:edit', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1064, N'客户端管理删除', 123, 4, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:client:remove', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1065, N'客户端管理导出', 123, 5, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:client:export', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
-- 角色菜单权限
|
||||||
|
INSERT sys_role_menu VALUES (2, 1061)
|
||||||
|
GO
|
||||||
|
INSERT sys_role_menu VALUES (2, 1062)
|
||||||
|
GO
|
||||||
|
INSERT sys_role_menu VALUES (2, 1063)
|
||||||
|
GO
|
||||||
|
INSERT sys_role_menu VALUES (2, 1064)
|
||||||
|
GO
|
||||||
|
INSERT sys_role_menu VALUES (2, 1065)
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE sys_dept SET leader = null
|
||||||
|
GO
|
||||||
|
ALTER TABLE sys_dept ALTER COLUMN leader bigint NULL
|
||||||
|
GO
|
||||||
19
script/sql/update/sqlserver/update_5.1.0-5.1.1.sql
Normal file
19
script/sql/update/sqlserver/update_5.1.0-5.1.1.sql
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
ALTER TABLE sys_logininfor ADD client_key nvarchar(32) DEFAULT '' NULL
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'客户端',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_logininfor',
|
||||||
|
'COLUMN', N'client_key'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE sys_logininfor ADD device_type nvarchar(32) DEFAULT '' NULL
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'设备类型',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_logininfor',
|
||||||
|
'COLUMN', N'device_type'
|
||||||
|
GO
|
||||||
10
script/sql/update/sqlserver/update_5.1.1-5.1.2.sql
Normal file
10
script/sql/update/sqlserver/update_5.1.1-5.1.2.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
DELETE FROM sys_menu WHERE menu_id IN (1604, 1605);
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1620, N'配置列表', 118, 5, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:ossConfig:list', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1621, N'配置添加', 118, 6, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:ossConfig:add', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1622, N'配置编辑', 118, 6, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:ossConfig:edit', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (1623, N'配置删除', 118, 6, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'system:ossConfig:remove', N'#', 103, 1, getdate(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
29
script/sql/update/sqlserver/update_5.1.2-5.2.0.sql
Normal file
29
script/sql/update/sqlserver/update_5.1.2-5.2.0.sql
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
ALTER TABLE sys_dept ADD dept_category nvarchar(100) DEFAULT NULL
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'部门类别编码',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_dept',
|
||||||
|
'COLUMN', N'dept_category'
|
||||||
|
GO
|
||||||
|
ALTER TABLE sys_post ADD dept_id bigint NOT NULL
|
||||||
|
GO
|
||||||
|
ALTER TABLE sys_post ADD post_category nvarchar(100) DEFAULT NULL
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'部门id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_post',
|
||||||
|
'COLUMN', N'dept_id'
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'岗位类别编码',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_post',
|
||||||
|
'COLUMN', N'post_category'
|
||||||
|
GO
|
||||||
|
UPDATE sys_post SET dept_id = 100
|
||||||
|
GO
|
||||||
|
UPDATE sys_post SET dept_id = 103 where post_id = 1
|
||||||
|
GO
|
||||||
|
UPDATE sys_menu SET menu_name = N'SnailJob控制台', path = N'snailjob', component = N'monitor/snailjob/index', perms = N'monitor:snailjob:list', remark = N'SnailJob控制台菜单' WHERE menu_id = 120
|
||||||
|
GO
|
||||||
21
script/sql/update/sqlserver/update_5.3.0-5.3.1.sql
Normal file
21
script/sql/update/sqlserver/update_5.3.0-5.3.1.sql
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ALTER TABLE flow_node DROP COLUMN skip_any_node;
|
||||||
|
ALTER TABLE flow_node ADD ext nvarchar(500) NULL;
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'扩展属性',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_node',
|
||||||
|
'COLUMN', N'ext'
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE NONCLUSTERED INDEX user_associated_idx ON flow_user (associated ASC)
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE sys_oss ADD ext1 nvarchar(500) NULL;
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'扩展属性',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'sys_oss',
|
||||||
|
'COLUMN', N'ext1'
|
||||||
|
GO
|
||||||
63
script/sql/update/sqlserver/update_5.3.1-5.4.0.sql
Normal file
63
script/sql/update/sqlserver/update_5.3.1-5.4.0.sql
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
ALTER TABLE flow_task ADD flow_status nvarchar(20) NULL;
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_task',
|
||||||
|
'COLUMN', N'flow_status'
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance',
|
||||||
|
'COLUMN', N'flow_status')) > 0)
|
||||||
|
EXEC sp_updateextendedproperty
|
||||||
|
'MS_Description', N'流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance',
|
||||||
|
'COLUMN', N'flow_status'
|
||||||
|
ELSE
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance',
|
||||||
|
'COLUMN', N'flow_status'
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'flow_status')) > 0)
|
||||||
|
EXEC sp_updateextendedproperty
|
||||||
|
'MS_Description', N'流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'flow_status'
|
||||||
|
ELSE
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'flow_status'
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- sys_social 表修改列
|
||||||
|
ALTER TABLE sys_social ALTER COLUMN access_token VARCHAR(2000) NOT NULL
|
||||||
|
GO
|
||||||
|
ALTER TABLE sys_social ALTER COLUMN refresh_token VARCHAR(2000) NULL
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT sys_menu VALUES (116, N'修改生成配置', 3, 2, N'gen-edit/index/:tableId', N'tool/gen/editTable', N'', 1, 1, N'C', N'1', N'0', N'tool:gen:edit', N'#', 103, 1, getdate(), null, null, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (130, N'分配用户', 1, 2, N'role-auth/user/:roleId', N'system/role/authUser', N'', 1, 1, N'C', N'1', N'0', N'system:role:edit', N'#', 103, 1, getdate(), null, null, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (131, N'分配角色', 1, 1, N'user-auth/role/:userId', N'system/user/authRole', N'', 1, 1, N'C', N'1', N'0', N'system:user:edit', N'#', 103, 1, getdate(), null, null, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (132, N'字典数据', 1, 6, N'dict-data/index/:dictId', N'system/dict/data', N'', 1, 1, N'C', N'1', N'0', N'system:dict:list', N'#', 103, 1, getdate(), null, null, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (133, N'文件配置管理', 1, 10, N'oss-config/index', N'system/oss/config', N'', 1, 1, N'C', N'1', N'0', N'system:ossConfig:list', N'#', 103, 1, getdate(), null, null, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11700, N'流程设计', 11616, 5, N'design/index', N'workflow/processDefinition/design', N'', 1, 1, N'C', N'1', N'0', N'workflow:leave:edit', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11701, N'请假申请', 11616, 6, N'leaveEdit/index', N'workflow/leave/leaveEdit', N'', 1, 1, N'C', N'1', N'0', N'workflow:leave:edit', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
294
script/sql/update/sqlserver/update_5.4.1-5.5.0.sql
Normal file
294
script/sql/update/sqlserver/update_5.4.1-5.5.0.sql
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
component_name VARCHAR(255),
|
||||||
|
method_name VARCHAR(255),
|
||||||
|
method_params VARCHAR(255),
|
||||||
|
view_spel VARCHAR(255),
|
||||||
|
remark VARCHAR(255),
|
||||||
|
status CHAR(1) DEFAULT ('0'),
|
||||||
|
del_flag CHAR(1) DEFAULT ('0'),
|
||||||
|
create_dept BIGINT,
|
||||||
|
create_by BIGINT,
|
||||||
|
create_time DATETIME,
|
||||||
|
update_by BIGINT,
|
||||||
|
update_time DATETIME,
|
||||||
|
CONSTRAINT PK_flow_spel PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程spel表达式定义表',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'主键id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'id'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'组件名称',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'component_name'
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- method_name 字段注释
|
||||||
|
'MS_Description', N'方法名',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'method_name'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'参数',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'method_params'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'预览spel表达式',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'view_spel'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'备注',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'remark'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'状态(0正常 1停用)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'status'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'删除标志',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'del_flag'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建部门',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'create_dept'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'create_time'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_spel',
|
||||||
|
'COLUMN', N'update_time'
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT flow_spel VALUES (1, N'spelRuleComponent', N'selectDeptLeaderById', N'initiatorDeptId', N'#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', N'根据部门id获取部门负责人', N'0', N'0', 103, 1, GETDATE(), 1, GETDATE());
|
||||||
|
GO
|
||||||
|
INSERT flow_spel VALUES (2, NULL, NULL, N'initiator', N'${initiator}', N'流程发起人', N'0', N'0', 103, 1, GETDATE(), 1, GETDATE());
|
||||||
|
GO
|
||||||
|
|
||||||
|
INSERT sys_menu VALUES (11801, N'流程表达式', N'11616', 2, N'spel', N'workflow/spel/index', N'', 1, 0, N'C', N'0', N'0', N'workflow:spel:list', N'input', 103, 1, GETDATE(), 1, GETDATE(), N'流程达式定义菜单');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11802, N'流程spel表达式定义查询', N'11801', 1, N'#', N'', NULL, 1, 0, N'F', N'0', N'0', N'workflow:spel:query', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11803, N'流程spel表达式定义新增', N'11801', 2, N'#', N'', NULL, 1, 0, N'F', N'0', N'0', N'workflow:spel:add', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11804, N'流程spel表达式定义修改', N'11801', 3, N'#', N'', NULL, 1, 0, N'F', N'0', N'0', N'workflow:spel:edit', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11805, N'流程spel表达式定义删除', N'11801', 4, N'#', N'', NULL, 1, 0, N'F', N'0', N'0', N'workflow:spel:remove', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11806, N'流程spel表达式定义导出', N'11801', 5, N'#', N'', NULL, 1, 0, N'F', N'0', N'0', N'workflow:spel:export', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_definition ADD model_value VARCHAR(40) NOT NULL CONSTRAINT DF_flow_definition_model_value DEFAULT 'CLASSICS';
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'设计器模型(CLASSICS经典模型 MIMIC仿钉钉模型)',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_definition',
|
||||||
|
'COLUMN', N'model_value'
|
||||||
|
GO
|
||||||
|
UPDATE flow_skip SET skip_condition = REPLACE(skip_condition, 'notNike', 'notLike');
|
||||||
|
GO
|
||||||
|
ALTER TABLE flow_his_task ALTER COLUMN collaborator VARCHAR(500) NULL;
|
||||||
|
GO
|
||||||
|
IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'collaborator')) > 0)
|
||||||
|
EXEC sp_updateextendedproperty
|
||||||
|
'MS_Description', N'协作人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'collaborator'
|
||||||
|
ELSE
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'协作人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'collaborator'
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE TABLE flow_instance_biz_ext (
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
tenant_id VARCHAR(20) DEFAULT ('000000'),
|
||||||
|
create_dept BIGINT,
|
||||||
|
create_by BIGINT,
|
||||||
|
create_time DATETIME,
|
||||||
|
update_by BIGINT,
|
||||||
|
update_time DATETIME,
|
||||||
|
business_code VARCHAR(255),
|
||||||
|
business_title VARCHAR(1000),
|
||||||
|
del_flag CHAR(1) DEFAULT ('0'),
|
||||||
|
instance_id BIGINT,
|
||||||
|
business_id VARCHAR(255),
|
||||||
|
CONSTRAINT PK__fi_biz_ext__D54EE9B4AE98B9C1 PRIMARY KEY CLUSTERED (id)
|
||||||
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
ON [PRIMARY]
|
||||||
|
);
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程实例业务扩展表',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'主键id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'id'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'租户编号',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'tenant_id'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建部门',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'create_dept'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'create_time'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新者',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新时间',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'update_time'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'删除标志',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'del_flag'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'业务编码',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'business_code'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'业务标题',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'business_title'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程实例Id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'instance_id'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'业务Id',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance_biz_ext',
|
||||||
|
'COLUMN', N'business_id'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE test_leave ADD apply_code nvarchar(50) NOT NULL;
|
||||||
|
GO
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'申请编号',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'test_leave',
|
||||||
|
'COLUMN', N'apply_code'
|
||||||
|
GO
|
||||||
|
|
||||||
|
update sys_menu set remark = N'/tool/gen' where menu_id = 116;
|
||||||
|
GO
|
||||||
|
update sys_menu set remark = N'/system/role' where menu_id = 130;
|
||||||
|
GO
|
||||||
|
update sys_menu set remark = N'/system/user' where menu_id = 131;
|
||||||
|
GO
|
||||||
|
update sys_menu set remark = N'/system/dict' where menu_id = 132;
|
||||||
|
GO
|
||||||
|
update sys_menu set remark = N'/system/oss' where menu_id = 133;
|
||||||
|
GO
|
||||||
|
update sys_menu set remark = N'/workflow/processDefinition' where menu_id = 11700;
|
||||||
|
GO
|
||||||
99
script/sql/update/sqlserver/update_5.5.0-5.5.1.sql
Normal file
99
script/sql/update/sqlserver/update_5.5.0-5.5.1.sql
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
ALTER TABLE flow_definition ADD create_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_definition_create_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_definition ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_definition_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_definition',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_definition',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_node ADD create_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_node_create_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_node ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_node_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_node',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_node',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_skip ADD create_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_skip_create_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_skip ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_skip_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_skip',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_skip',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_instance ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_instance_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_instance',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_task ADD create_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_task_create_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_task ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_task_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'创建人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_task',
|
||||||
|
'COLUMN', N'create_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_task',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE flow_user ADD update_by nvarchar(64) NOT NULL CONSTRAINT DF_flow_user_update_by DEFAULT '';
|
||||||
|
GO
|
||||||
|
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'更新人',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_user',
|
||||||
|
'COLUMN', N'update_by'
|
||||||
|
GO
|
||||||
22
script/sql/update/sqlserver/update_5.5.1-5.5.2.sql
Normal file
22
script/sql/update/sqlserver/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
ALTER TABLE flow_node ALTER COLUMN node_ratio nvarchar(200) NULL;
|
||||||
|
GO
|
||||||
|
IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_his_task',
|
||||||
|
'COLUMN', N'collaborator')) > 0)
|
||||||
|
EXEC sp_updateextendedproperty
|
||||||
|
'MS_Description', N'流程签署比例值',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_node',
|
||||||
|
'COLUMN', N'node_ratio'
|
||||||
|
ELSE
|
||||||
|
EXEC sp_addextendedproperty
|
||||||
|
'MS_Description', N'流程签署比例值',
|
||||||
|
'SCHEMA', N'dbo',
|
||||||
|
'TABLE', N'flow_node',
|
||||||
|
'COLUMN', N'node_ratio'
|
||||||
|
GO
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||||
|
GO
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||||
|
GO
|
||||||
43
script/sql/update/sqlserver/update_5.5.3_5.6.0.sql
Normal file
43
script/sql/update/sqlserver/update_5.5.3_5.6.0.sql
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
-- 修正已有菜单权限标识
|
||||||
|
update sys_menu set perms = N'workflow:definition:list' where menu_id = 11620;
|
||||||
|
GO
|
||||||
|
update sys_menu set perms = N'workflow:instance:list' where menu_id = 11621;
|
||||||
|
GO
|
||||||
|
update sys_menu set perms = N'workflow:instance:currentList' where menu_id = 11629;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT sys_menu VALUES (11644, N'流程定义查询', N'11620', 1, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:query', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11645, N'流程定义新增', N'11620', 2, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:add', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11646, N'流程定义修改', N'11620', 3, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:edit', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11647, N'流程定义删除', N'11620', 4, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:remove', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11648, N'流程定义导出', N'11620', 5, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:export', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11649, N'流程定义导入', N'11620', 6, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:import', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11650, N'流程定义发布/取消发布', N'11620', 7, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:publish', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11651, N'流程定义复制', N'11620', 8, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:copy', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11652, N'流程定义激活/挂起', N'11620', 9, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:definition:active', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT sys_menu VALUES (11653, N'流程实例查询', N'11621', 1, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:query', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11654, N'流程变量查询', N'11621', 2, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:variableQuery', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11655, N'流程变量修改', N'11621', 3, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:variable', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11656, N'流程实例激活/挂起', N'11621', 4, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:active', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11657, N'流程实例删除', N'11621', 5, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:remove', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11658, N'流程实例作废', N'11621', 6, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:invalid', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
|
INSERT sys_menu VALUES (11659, N'流程实例撤销', N'11621', 7, N'#', N'', N'', 1, 0, N'F', N'0', N'0', N'workflow:instance:cancel', N'#', 103, 1, GETDATE(), NULL, NULL, N'');
|
||||||
|
GO
|
||||||
101
script/sql/update/update_5.0-5.1.sql
Normal file
101
script/sql/update/update_5.0-5.1.sql
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
ALTER TABLE gen_table ADD COLUMN data_name varchar(200) NULL DEFAULT '' COMMENT '数据源名称' AFTER table_id;
|
||||||
|
|
||||||
|
UPDATE sys_menu SET path = 'powerjob', component = 'monitor/powerjob/index', perms = 'monitor:powerjob:list', remark = 'powerjob控制台菜单' WHERE menu_id = 120;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 第三方平台授权表
|
||||||
|
-- ----------------------------
|
||||||
|
drop table if exists sys_social;
|
||||||
|
create table sys_social
|
||||||
|
(
|
||||||
|
id bigint not null comment '主键',
|
||||||
|
user_id bigint not null comment '用户ID',
|
||||||
|
tenant_id varchar(20) default null comment '租户id',
|
||||||
|
auth_id varchar(255) not null comment '平台+平台唯一id',
|
||||||
|
source varchar(255) not null comment '用户来源',
|
||||||
|
open_id varchar(255) default null comment '平台编号唯一id',
|
||||||
|
user_name varchar(30) not null comment '登录账号',
|
||||||
|
nick_name varchar(30) default '' comment '用户昵称',
|
||||||
|
email varchar(255) default '' comment '用户邮箱',
|
||||||
|
avatar varchar(500) default '' comment '头像地址',
|
||||||
|
access_token varchar(255) not null comment '用户的授权令牌',
|
||||||
|
expire_in int default null comment '用户的授权令牌的有效期,部分平台可能没有',
|
||||||
|
refresh_token varchar(255) default null comment '刷新令牌,部分平台可能没有',
|
||||||
|
access_code varchar(255) default null comment '平台的授权信息,部分平台可能没有',
|
||||||
|
union_id varchar(255) default null comment '用户的 unionid',
|
||||||
|
scope varchar(255) default null comment '授予的权限,部分平台可能没有',
|
||||||
|
token_type varchar(255) default null comment '个别平台的授权信息,部分平台可能没有',
|
||||||
|
id_token varchar(255) default null comment 'id token,部分平台可能没有',
|
||||||
|
mac_algorithm varchar(255) default null comment '小米平台用户的附带属性,部分平台可能没有',
|
||||||
|
mac_key varchar(255) default null comment '小米平台用户的附带属性,部分平台可能没有',
|
||||||
|
code varchar(255) default null comment '用户的授权code,部分平台可能没有',
|
||||||
|
oauth_token varchar(255) default null comment 'Twitter平台用户的附带属性,部分平台可能没有',
|
||||||
|
oauth_token_secret varchar(255) default null comment 'Twitter平台用户的附带属性,部分平台可能没有',
|
||||||
|
create_dept bigint(20) comment '创建部门',
|
||||||
|
create_by bigint(20) comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by bigint(20) comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) engine=innodb comment = '社会化关系表';
|
||||||
|
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 系统授权表
|
||||||
|
-- ----------------------------
|
||||||
|
drop table if exists sys_client;
|
||||||
|
create table sys_client (
|
||||||
|
id bigint(20) not null comment 'id',
|
||||||
|
client_id varchar(64) default null comment '客户端id',
|
||||||
|
client_key varchar(32) default null comment '客户端key',
|
||||||
|
client_secret varchar(255) default null comment '客户端秘钥',
|
||||||
|
grant_type varchar(255) default null comment '授权类型',
|
||||||
|
device_type varchar(32) default null comment '设备类型',
|
||||||
|
active_timeout int(11) default 1800 comment 'token活跃超时时间',
|
||||||
|
timeout int(11) default 604800 comment 'token固定超时',
|
||||||
|
status char(1) default '0' comment '状态(0正常 1停用)',
|
||||||
|
del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
|
||||||
|
create_dept bigint(20) default null comment '创建部门',
|
||||||
|
create_by bigint(20) default null comment '创建者',
|
||||||
|
create_time datetime default null comment '创建时间',
|
||||||
|
update_by bigint(20) default null comment '更新者',
|
||||||
|
update_time datetime default null comment '更新时间',
|
||||||
|
primary key (id)
|
||||||
|
) engine=innodb comment='系统授权表';
|
||||||
|
|
||||||
|
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||||
|
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||||
|
|
||||||
|
insert into sys_dict_type values(11, '000000', '授权类型', 'sys_grant_type', 103, 1, sysdate(), null, null, '认证授权类型');
|
||||||
|
insert into sys_dict_type values(12, '000000', '设备类型', 'sys_device_type', 103, 1, sysdate(), null, null, '客户端设备类型');
|
||||||
|
|
||||||
|
insert into sys_dict_data values(30, '000000', 0, '密码认证', 'password', 'sys_grant_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '密码认证');
|
||||||
|
insert into sys_dict_data values(31, '000000', 0, '短信认证', 'sms', 'sys_grant_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '短信认证');
|
||||||
|
insert into sys_dict_data values(32, '000000', 0, '邮件认证', 'email', 'sys_grant_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '邮件认证');
|
||||||
|
insert into sys_dict_data values(33, '000000', 0, '小程序认证', 'xcx', 'sys_grant_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '小程序认证');
|
||||||
|
insert into sys_dict_data values(34, '000000', 0, '三方登录认证', 'social', 'sys_grant_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '三方登录认证');
|
||||||
|
insert into sys_dict_data values(35, '000000', 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, 'PC');
|
||||||
|
insert into sys_dict_data values(36, '000000', 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '安卓');
|
||||||
|
insert into sys_dict_data values(37, '000000', 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, 'iOS');
|
||||||
|
insert into sys_dict_data values(38, '000000', 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', 103, 1, sysdate(), null, null, '小程序');
|
||||||
|
|
||||||
|
-- 二级菜单
|
||||||
|
insert into sys_menu values('123', '客户端管理', '1', '11', 'client', 'system/client/index', '', 1, 0, 'C', '0', '0', 'system:client:list', 'international', 103, 1, sysdate(), null, null, '客户端管理菜单');
|
||||||
|
-- 客户端管理按钮
|
||||||
|
insert into sys_menu values('1061', '客户端管理查询', '123', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1062', '客户端管理新增', '123', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1063', '客户端管理修改', '123', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1064', '客户端管理删除', '123', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1065', '客户端管理导出', '123', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:client:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- 角色菜单权限
|
||||||
|
insert into sys_role_menu values ('2', '1061');
|
||||||
|
insert into sys_role_menu values ('2', '1062');
|
||||||
|
insert into sys_role_menu values ('2', '1063');
|
||||||
|
insert into sys_role_menu values ('2', '1064');
|
||||||
|
insert into sys_role_menu values ('2', '1065');
|
||||||
|
|
||||||
|
|
||||||
|
update sys_dept set leader = null;
|
||||||
|
alter table sys_dept modify column leader bigint null default null comment '负责人' after order_num;
|
||||||
3
script/sql/update/update_5.1.0-5.1.1.sql
Normal file
3
script/sql/update/update_5.1.0-5.1.1.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE sys_logininfor
|
||||||
|
ADD COLUMN client_key VARCHAR(32) NULL DEFAULT NULL COMMENT '客户端' AFTER `user_name`,
|
||||||
|
ADD COLUMN device_type VARCHAR(32) NULL DEFAULT NULL COMMENT '设备类型' AFTER `client_key`;
|
||||||
5
script/sql/update/update_5.1.1-5.1.2.sql
Normal file
5
script/sql/update/update_5.1.1-5.1.2.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
delete from sys_menu where menu_id in (1604, 1605);
|
||||||
|
insert into sys_menu values('1620', '配置列表', '118', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:list', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1621', '配置添加', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1622', '配置编辑', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('1623', '配置删除', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:ossConfig:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
5
script/sql/update/update_5.1.2-5.2.0.sql
Normal file
5
script/sql/update/update_5.1.2-5.2.0.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE sys_dept ADD dept_category VARCHAR(100) DEFAULT NULL COMMENT '部门类别编码';
|
||||||
|
ALTER TABLE sys_post ADD dept_id BIGINT(20) NOT NULL COMMENT '部门id', ADD post_category VARCHAR(100) DEFAULT NULL COMMENT '岗位类别编码';
|
||||||
|
UPDATE sys_post SET dept_id = 100;
|
||||||
|
UPDATE sys_post SET dept_id = 103 where post_id = 1;
|
||||||
|
UPDATE sys_menu SET menu_name = 'SnailJob控制台', path = 'snailjob', component = 'monitor/snailjob/index', perms = 'monitor:snailjob:list', remark = 'SnailJob控制台菜单' WHERE menu_id = 120;
|
||||||
7
script/sql/update/update_5.3.0-5.3.1.sql
Normal file
7
script/sql/update/update_5.3.0-5.3.1.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
ALTER TABLE `flow_node` DROP COLUMN `skip_any_node`;
|
||||||
|
ALTER TABLE `flow_node`
|
||||||
|
ADD COLUMN `ext` text NULL COMMENT '扩展属性' AFTER `update_time`;
|
||||||
|
ALTER TABLE `flow_user` ADD INDEX `user_associated`(`associated`) USING BTREE
|
||||||
|
|
||||||
|
ALTER TABLE `sys_oss`
|
||||||
|
ADD COLUMN `ext1` text NULL COMMENT '扩展属性' AFTER `url`;
|
||||||
21
script/sql/update/update_5.3.1-5.4.0.sql
Normal file
21
script/sql/update/update_5.3.1-5.4.0.sql
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ALTER TABLE `flow_task`
|
||||||
|
ADD COLUMN `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)' AFTER `node_type`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_instance`
|
||||||
|
MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)' AFTER `variable`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_his_task`
|
||||||
|
MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)' AFTER `skip_type`;
|
||||||
|
|
||||||
|
ALTER TABLE `sys_social`
|
||||||
|
MODIFY COLUMN `access_token` varchar(2000) NOT NULL COMMENT '用户的授权令牌' AFTER `avatar`;
|
||||||
|
ALTER TABLE `sys_social`
|
||||||
|
MODIFY COLUMN `refresh_token` varchar(2000) DEFAULT NULL COMMENT '刷新令牌,部分平台可能没有' AFTER `expire_in`;
|
||||||
|
|
||||||
|
insert into sys_menu values('116', '修改生成配置', '3', '2', 'gen-edit/index/:tableId', 'tool/gen/editTable', '', 1, 1, 'C', '1', '0', 'tool:gen:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('130', '分配用户', '1', '2', 'role-auth/user/:roleId', 'system/role/authUser', '', 1, 1, 'C', '1', '0', 'system:role:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('131', '分配角色', '1', '1', 'user-auth/role/:userId', 'system/user/authRole', '', 1, 1, 'C', '1', '0', 'system:user:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('132', '字典数据', '1', '6', 'dict-data/index/:dictId', 'system/dict/data', '', 1, 1, 'C', '1', '0', 'system:dict:list', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('133', '文件配置管理', '1', '10', 'oss-config/index', 'system/oss/config', '', 1, 1, 'C', '1', '0', 'system:ossConfig:list', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
insert into sys_menu values('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
67
script/sql/update/update_5.4.1-5.5.0.sql
Normal file
67
script/sql/update/update_5.4.1-5.5.0.sql
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 流程spel表达式定义表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE flow_spel (
|
||||||
|
id bigint(20) NOT NULL COMMENT '主键id',
|
||||||
|
component_name varchar(255) DEFAULT NULL COMMENT '组件名称',
|
||||||
|
method_name varchar(255) DEFAULT NULL COMMENT '方法名',
|
||||||
|
method_params varchar(255) DEFAULT NULL COMMENT '参数',
|
||||||
|
view_spel varchar(255) DEFAULT NULL COMMENT '预览spel表达式',
|
||||||
|
remark varchar(255) DEFAULT NULL COMMENT '备注',
|
||||||
|
status char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||||
|
del_flag char(1) DEFAULT '0' COMMENT '删除标志',
|
||||||
|
create_dept bigint(20) DEFAULT NULL COMMENT '创建部门',
|
||||||
|
create_by bigint(20) DEFAULT NULL COMMENT '创建者',
|
||||||
|
create_time datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
update_by bigint(20) DEFAULT NULL COMMENT '更新者',
|
||||||
|
update_time datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE = InnoDB COMMENT='流程spel表达式定义表';
|
||||||
|
|
||||||
|
INSERT INTO flow_spel VALUES (1, 'spelRuleComponent', 'selectDeptLeaderById', 'initiatorDeptId', '#{@spelRuleComponent.selectDeptLeaderById(#initiatorDeptId)}', '根据部门id获取部门负责人', '0', '0', 103, 1, sysdate(), 1, sysdate());
|
||||||
|
INSERT INTO flow_spel VALUES (2, NULL, NULL, 'initiator', '${initiator}', '流程发起人', '0', '0', 103, 1, sysdate(), 1, sysdate());
|
||||||
|
|
||||||
|
INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', '2', 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, sysdate(), 1, sysdate(), '流程达式定义菜单');
|
||||||
|
INSERT INTO sys_menu VALUES ('11802', '流程spel表达式定义查询', '11801', 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:query', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11803', '流程spel表达式定义新增', '11801', 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:add', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11804', '流程spel表达式定义修改', '11801', 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:edit', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11805', '流程spel表达式定义删除', '11801', 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:remove', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11806', '流程spel表达式定义导出', '11801', 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'workflow:spel:export', '#', 103, 1, sysdate(), NULL, NULL, '');
|
||||||
|
|
||||||
|
ALTER TABLE `flow_definition`
|
||||||
|
ADD COLUMN `model_value` varchar(40) NOT NULL DEFAULT 'CLASSICS' COMMENT '设计器模式(CLASSICS经典模式 MIMIC仿钉钉模式)' AFTER `flow_name`;
|
||||||
|
|
||||||
|
update flow_skip set skip_condition = REPLACE(skip_condition,'notNike','notLike');
|
||||||
|
|
||||||
|
ALTER TABLE `flow_his_task`
|
||||||
|
MODIFY COLUMN `collaborator` varchar(500) NULL DEFAULT NULL COMMENT '协作人' AFTER `cooperate_type`;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 流程实例业务扩展表
|
||||||
|
-- ----------------------------
|
||||||
|
|
||||||
|
create table flow_instance_biz_ext (
|
||||||
|
id bigint not null comment '主键id',
|
||||||
|
tenant_id varchar(20) default '000000' null comment '租户编号',
|
||||||
|
create_dept bigint null comment '创建部门',
|
||||||
|
create_by bigint null comment '创建者',
|
||||||
|
create_time datetime null comment '创建时间',
|
||||||
|
update_by bigint null comment '更新者',
|
||||||
|
update_time datetime null comment '更新时间',
|
||||||
|
business_code varchar(255) null comment '业务编码',
|
||||||
|
business_title varchar(1000) null comment '业务标题',
|
||||||
|
del_flag char default '0' null comment '删除标志(0代表存在 1代表删除)',
|
||||||
|
instance_id bigint null comment '流程实例Id',
|
||||||
|
business_id varchar(255) null comment '业务Id',
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE = InnoDB COMMENT '流程实例业务扩展表';
|
||||||
|
|
||||||
|
ALTER TABLE `test_leave`
|
||||||
|
ADD COLUMN `apply_code` varchar(50) NOT NULL COMMENT '申请编号' AFTER `tenant_id`;
|
||||||
|
|
||||||
|
update sys_menu set remark = '/tool/gen' where menu_id = 116;
|
||||||
|
update sys_menu set remark = '/system/role' where menu_id = 130;
|
||||||
|
update sys_menu set remark = '/system/user' where menu_id = 131;
|
||||||
|
update sys_menu set remark = '/system/dict' where menu_id = 132;
|
||||||
|
update sys_menu set remark = '/system/oss' where menu_id = 133;
|
||||||
|
update sys_menu set remark = '/workflow/processDefinition' where menu_id = 11700;
|
||||||
21
script/sql/update/update_5.5.0-5.5.1.sql
Normal file
21
script/sql/update/update_5.5.0-5.5.1.sql
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ALTER TABLE `flow_definition`
|
||||||
|
ADD COLUMN `create_by` varchar(64) NULL DEFAULT NULL COMMENT '创建人' AFTER `create_time`,
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_node`
|
||||||
|
ADD COLUMN `create_by` varchar(64) NULL DEFAULT NULL COMMENT '创建人' AFTER `create_time`,
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_skip`
|
||||||
|
ADD COLUMN `create_by` varchar(64) NULL DEFAULT NULL COMMENT '创建人' AFTER `create_time`,
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_instance`
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_task`
|
||||||
|
ADD COLUMN `create_by` varchar(64) NULL DEFAULT NULL COMMENT '创建人' AFTER `create_time`,
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
|
|
||||||
|
ALTER TABLE `flow_user`
|
||||||
|
ADD COLUMN `update_by` varchar(64) NULL DEFAULT NULL COMMENT '更新人' AFTER `update_time`;
|
||||||
3
script/sql/update/update_5.5.1-5.5.2.sql
Normal file
3
script/sql/update/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE flow_node MODIFY COLUMN node_ratio varchar(200) NULL COMMENT '流程签署比例值';
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||||
|
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||||
24
script/sql/update/update_5.5.3_5.6.0.sql
Normal file
24
script/sql/update/update_5.5.3_5.6.0.sql
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- 修正已有菜单权限标识
|
||||||
|
update sys_menu set perms = 'workflow:definition:list' where menu_id = '11620';
|
||||||
|
update sys_menu set perms = 'workflow:instance:list' where menu_id = '11621';
|
||||||
|
update sys_menu set perms = 'workflow:instance:currentList' where menu_id = '11629';
|
||||||
|
|
||||||
|
-- 流程定义管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11644', '流程定义查询', '11620', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11645', '流程定义新增', '11620', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:add', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11646', '流程定义修改', '11620', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:edit', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11647', '流程定义删除', '11620', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11648', '流程定义导出', '11620', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:export', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11649', '流程定义导入', '11620', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:import', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11650', '流程定义发布/取消发布', '11620', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:publish', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11651', '流程定义复制', '11620', '8', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:copy', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11652', '流程定义激活/挂起', '11620', '9', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:definition:active', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
|
||||||
|
-- 流程实例管理相关按钮
|
||||||
|
INSERT INTO sys_menu VALUES ('11653', '流程实例查询', '11621', '1', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:query', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11654', '流程变量查询', '11621', '2', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variableQuery', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11655', '流程变量修改', '11621', '3', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:variable', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11656', '流程实例激活/挂起', '11621', '4', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:active', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11657', '流程实例删除', '11621', '5', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:remove', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11658', '流程实例作废', '11621', '6', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:invalid', '#', 103, 1, sysdate(), null, null, '');
|
||||||
|
INSERT INTO sys_menu VALUES ('11659', '流程实例撤销', '11621', '7', '#', '', '', 1, 0, 'F', '0', '0', 'workflow:instance:cancel', '#', 103, 1, sysdate(), null, null, '');
|
||||||
31
water-admin/Dockerfile
Normal file
31
water-admin/Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
|
||||||
|
FROM bellsoft/liberica-openjdk-rocky:17.0.16-cds
|
||||||
|
#FROM bellsoft/liberica-openjdk-rocky:21.0.8-cds
|
||||||
|
#FROM findepi/graalvm:java17-native
|
||||||
|
|
||||||
|
LABEL maintainer="Lion Li"
|
||||||
|
|
||||||
|
RUN mkdir -p /water/server/logs \
|
||||||
|
/water/server/temp \
|
||||||
|
/water/skywalking/agent
|
||||||
|
|
||||||
|
WORKDIR /water/server
|
||||||
|
|
||||||
|
ENV SERVER_PORT=8080 SNAIL_PORT=28080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
|
||||||
|
|
||||||
|
EXPOSE ${SERVER_PORT}
|
||||||
|
# 暴露 snail job 客户端端口 用于定时任务调度中心通信
|
||||||
|
EXPOSE ${SNAIL_PORT}
|
||||||
|
|
||||||
|
ADD ./target/water-admin.jar ./app.jar
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
|
||||||
|
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
|
||||||
|
-Dsnail-job.port=${SNAIL_PORT} \
|
||||||
|
# 应用名称 如果想区分集群节点监控 改成不同的名称即可
|
||||||
|
#-Dskywalking.agent.service_name=water-server \
|
||||||
|
#-javaagent:/water/skywalking/agent/skywalking-agent.jar \
|
||||||
|
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
|
||||||
|
-jar app.jar
|
||||||
|
|
||||||
153
water-admin/pom.xml
Normal file
153
water-admin/pom.xml
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
<?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>water</artifactId>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<artifactId>water-admin</artifactId>
|
||||||
|
|
||||||
|
<description>
|
||||||
|
web服务入口
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- Mysql驱动包 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- <!– mp支持的数据库均支持 只需要增加对应的jdbc依赖即可 –>-->
|
||||||
|
<!-- <!– Oracle –>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.oracle.database.jdbc</groupId>-->
|
||||||
|
<!-- <artifactId>ojdbc8</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <!– 兼容oracle低版本 –>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.oracle.database.nls</groupId>-->
|
||||||
|
<!-- <artifactId>orai18n</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <!– PostgreSql –>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.postgresql</groupId>-->
|
||||||
|
<!-- <artifactId>postgresql</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <!– SqlServer –>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.microsoft.sqlserver</groupId>-->
|
||||||
|
<!-- <artifactId>mssql-jdbc</artifactId>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-doc</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-social</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-ratelimiter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-common-mail</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-system</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-job</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 代码生成-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-generator</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- demo模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-demo</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 工作流模块 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>water-workflow</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.codecentric</groupId>
|
||||||
|
<artifactId>spring-boot-admin-starter-client</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- skywalking 整合 logback -->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.apache.skywalking</groupId>-->
|
||||||
|
<!-- <artifactId>apm-toolkit-logback-1.x</artifactId>-->
|
||||||
|
<!-- <version>${与你的agent探针版本保持一致}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.apache.skywalking</groupId>-->
|
||||||
|
<!-- <artifactId>apm-toolkit-trace</artifactId>-->
|
||||||
|
<!-- <version>${与你的agent探针版本保持一致}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>${project.artifactId}</finalName>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<version>${maven-jar-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>${maven-war-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||||
|
<warName>${project.artifactId}</warName>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package org.dromara;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启动程序
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
public class DromaraApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication application = new SpringApplication(DromaraApplication.class);
|
||||||
|
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||||
|
application.run(args);
|
||||||
|
System.out.println("(♥◠‿◠)ノ゙ water-Vue-Plus启动成功 ლ(´ڡ`ლ)゙");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package org.dromara;
|
||||||
|
|
||||||
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web容器中进行部署
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
public class DromaraServletInitializer extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||||
|
return application.sources(DromaraApplication.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,243 @@
|
|||||||
|
package org.dromara.web.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import cn.dev33.satoken.exception.NotLoginException;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.hutool.core.codec.Base64;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
import me.zhyd.oauth.request.AuthRequest;
|
||||||
|
import me.zhyd.oauth.utils.AuthStateUtils;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.domain.model.LoginBody;
|
||||||
|
import org.dromara.common.core.domain.model.RegisterBody;
|
||||||
|
import org.dromara.common.core.domain.model.SocialLoginBody;
|
||||||
|
import org.dromara.common.core.utils.*;
|
||||||
|
import org.dromara.common.encrypt.annotation.ApiEncrypt;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.ratelimiter.annotation.RateLimiter;
|
||||||
|
import org.dromara.common.ratelimiter.enums.LimitType;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
|
||||||
|
import org.dromara.common.social.config.properties.SocialProperties;
|
||||||
|
import org.dromara.common.social.utils.SocialUtils;
|
||||||
|
import org.dromara.common.sse.dto.SseMessageDto;
|
||||||
|
import org.dromara.common.sse.utils.SseMessageUtils;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.bo.SysTenantBo;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysTenantVo;
|
||||||
|
import org.dromara.system.service.ISysClientService;
|
||||||
|
import org.dromara.system.service.ISysConfigService;
|
||||||
|
import org.dromara.system.service.ISysSocialService;
|
||||||
|
import org.dromara.system.service.ISysTenantService;
|
||||||
|
import org.dromara.web.domain.vo.LoginTenantVo;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.domain.vo.TenantListVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.dromara.web.service.SysRegisterService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 认证
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@SaIgnore
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/auth")
|
||||||
|
public class AuthController {
|
||||||
|
|
||||||
|
private final SocialProperties socialProperties;
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
private final SysRegisterService registerService;
|
||||||
|
private final ISysConfigService configService;
|
||||||
|
private final ISysTenantService tenantService;
|
||||||
|
private final ISysSocialService socialUserService;
|
||||||
|
private final ISysClientService clientService;
|
||||||
|
private final ScheduledExecutorService scheduledExecutorService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录方法
|
||||||
|
*
|
||||||
|
* @param body 登录信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@ApiEncrypt
|
||||||
|
@PostMapping("/login")
|
||||||
|
public R<LoginVo> login(@RequestBody String body) {
|
||||||
|
LoginBody loginBody = JsonUtils.parseObject(body, LoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
// 授权类型和客户端id
|
||||||
|
String clientId = loginBody.getClientId();
|
||||||
|
String grantType = loginBody.getGrantType();
|
||||||
|
SysClientVo client = clientService.queryByClientId(clientId);
|
||||||
|
// 查询不到 client 或 client 内不包含 grantType
|
||||||
|
if (ObjectUtil.isNull(client) || !StringUtils.contains(client.getGrantType(), grantType)) {
|
||||||
|
log.info("客户端id: {} 认证类型:{} 异常!.", clientId, grantType);
|
||||||
|
return R.fail(MessageUtils.message("auth.grant.type.error"));
|
||||||
|
} else if (!SystemConstants.NORMAL.equals(client.getStatus())) {
|
||||||
|
return R.fail(MessageUtils.message("auth.grant.type.blocked"));
|
||||||
|
}
|
||||||
|
// 校验租户
|
||||||
|
loginService.checkTenant(loginBody.getTenantId());
|
||||||
|
// 登录
|
||||||
|
LoginVo loginVo = IAuthStrategy.login(body, client, grantType);
|
||||||
|
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
scheduledExecutorService.schedule(() -> {
|
||||||
|
SseMessageDto dto = new SseMessageDto();
|
||||||
|
dto.setMessage(DateUtils.getTodayHour(new Date()) + "好,欢迎登录 water-Vue-Plus 后台管理系统");
|
||||||
|
dto.setUserIds(List.of(userId));
|
||||||
|
SseMessageUtils.publishMessage(dto);
|
||||||
|
}, 5, TimeUnit.SECONDS);
|
||||||
|
return R.ok(loginVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取跳转URL
|
||||||
|
*
|
||||||
|
* @param source 登录来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/binding/{source}")
|
||||||
|
public R<String> authBinding(@PathVariable("source") String source,
|
||||||
|
@RequestParam String tenantId, @RequestParam String domain) {
|
||||||
|
SocialLoginConfigProperties obj = socialProperties.getType().get(source);
|
||||||
|
if (ObjectUtil.isNull(obj)) {
|
||||||
|
return R.fail(source + "平台账号暂不支持");
|
||||||
|
}
|
||||||
|
AuthRequest authRequest = SocialUtils.getAuthRequest(source, socialProperties);
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
map.put("tenantId", tenantId);
|
||||||
|
map.put("domain", domain);
|
||||||
|
map.put("state", AuthStateUtils.createState());
|
||||||
|
String authorizeUrl = authRequest.authorize(Base64.encode(JsonUtils.toJsonString(map), StandardCharsets.UTF_8));
|
||||||
|
return R.ok("操作成功", authorizeUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前端回调绑定授权(需要token)
|
||||||
|
*
|
||||||
|
* @param loginBody 请求体
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/social/callback")
|
||||||
|
public R<Void> socialCallback(@RequestBody SocialLoginBody loginBody) {
|
||||||
|
// 校验token
|
||||||
|
StpUtil.checkLogin();
|
||||||
|
// 获取第三方登录信息
|
||||||
|
AuthResponse<AuthUser> response = SocialUtils.loginAuth(
|
||||||
|
loginBody.getSource(), loginBody.getSocialCode(),
|
||||||
|
loginBody.getSocialState(), socialProperties);
|
||||||
|
AuthUser authUserData = response.getData();
|
||||||
|
// 判断授权响应是否成功
|
||||||
|
if (!response.ok()) {
|
||||||
|
return R.fail(response.getMsg());
|
||||||
|
}
|
||||||
|
loginService.socialRegister(authUserData);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消授权(需要token)
|
||||||
|
*
|
||||||
|
* @param socialId socialId
|
||||||
|
*/
|
||||||
|
@DeleteMapping(value = "/unlock/{socialId}")
|
||||||
|
public R<Void> unlockSocial(@PathVariable Long socialId) {
|
||||||
|
// 校验token
|
||||||
|
StpUtil.checkLogin();
|
||||||
|
Boolean rows = socialUserService.deleteWithValidById(socialId);
|
||||||
|
return rows ? R.ok() : R.fail("取消授权失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出登录
|
||||||
|
*/
|
||||||
|
@PostMapping("/logout")
|
||||||
|
public R<Void> logout() {
|
||||||
|
loginService.logout();
|
||||||
|
return R.ok("退出成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户注册
|
||||||
|
*/
|
||||||
|
@ApiEncrypt
|
||||||
|
@PostMapping("/register")
|
||||||
|
public R<Void> register(@Validated @RequestBody RegisterBody user) {
|
||||||
|
if (!configService.selectRegisterEnabled(user.getTenantId())) {
|
||||||
|
return R.fail("当前系统没有开启注册功能!");
|
||||||
|
}
|
||||||
|
registerService.register(user);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录页面租户下拉框
|
||||||
|
*
|
||||||
|
* @return 租户列表
|
||||||
|
*/
|
||||||
|
@RateLimiter(time = 60, count = 20, limitType = LimitType.IP)
|
||||||
|
@GetMapping("/tenant/list")
|
||||||
|
public R<LoginTenantVo> tenantList(HttpServletRequest request) throws Exception {
|
||||||
|
// 返回对象
|
||||||
|
LoginTenantVo result = new LoginTenantVo();
|
||||||
|
boolean enable = TenantHelper.isEnable();
|
||||||
|
result.setTenantEnabled(enable);
|
||||||
|
// 如果未开启租户这直接返回
|
||||||
|
if (!enable) {
|
||||||
|
return R.ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo());
|
||||||
|
List<TenantListVo> voList = MapstructUtils.convert(tenantList, TenantListVo.class);
|
||||||
|
try {
|
||||||
|
// 如果只超管返回所有租户
|
||||||
|
if (LoginHelper.isSuperAdmin()) {
|
||||||
|
result.setVoList(voList);
|
||||||
|
return R.ok(result);
|
||||||
|
}
|
||||||
|
} catch (NotLoginException ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取域名
|
||||||
|
String host;
|
||||||
|
String referer = request.getHeader("referer");
|
||||||
|
if (StringUtils.isNotBlank(referer)) {
|
||||||
|
// 这里从referer中取值是为了本地使用hosts添加虚拟域名,方便本地环境调试
|
||||||
|
host = referer.split("//")[1].split("/")[0];
|
||||||
|
} else {
|
||||||
|
host = new URL(request.getRequestURL().toString()).getHost();
|
||||||
|
}
|
||||||
|
// 根据域名进行筛选
|
||||||
|
List<TenantListVo> list = StreamUtils.filter(voList, vo ->
|
||||||
|
StringUtils.equalsIgnoreCase(vo.getDomain(), host));
|
||||||
|
result.setVoList(CollUtil.isNotEmpty(list) ? list : voList);
|
||||||
|
return R.ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
package org.dromara.web.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import cn.hutool.captcha.generator.CodeGenerator;
|
||||||
|
import cn.hutool.captcha.generator.MathGenerator;
|
||||||
|
import cn.hutool.captcha.generator.RandomGenerator;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.GlobalConstants;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mail.config.properties.MailProperties;
|
||||||
|
import org.dromara.common.mail.utils.MailUtils;
|
||||||
|
import org.dromara.common.ratelimiter.annotation.RateLimiter;
|
||||||
|
import org.dromara.common.ratelimiter.enums.LimitType;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.web.core.WaveAndCircleCaptcha;
|
||||||
|
import org.dromara.common.web.config.properties.CaptchaProperties;
|
||||||
|
import org.dromara.sms4j.api.SmsBlend;
|
||||||
|
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||||
|
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||||
|
import org.dromara.web.domain.vo.CaptchaVo;
|
||||||
|
import org.springframework.expression.Expression;
|
||||||
|
import org.springframework.expression.ExpressionParser;
|
||||||
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码操作处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@SaIgnore
|
||||||
|
@Slf4j
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
public class CaptchaController {
|
||||||
|
|
||||||
|
private final CaptchaProperties captchaProperties;
|
||||||
|
private final MailProperties mailProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码
|
||||||
|
*
|
||||||
|
* @param phonenumber 用户手机号
|
||||||
|
*/
|
||||||
|
@RateLimiter(key = "#phonenumber", time = 60, count = 1)
|
||||||
|
@GetMapping("/resource/sms/code")
|
||||||
|
public R<Void> smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
|
||||||
|
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
|
||||||
|
String code = RandomUtil.randomNumbers(4);
|
||||||
|
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||||
|
// 验证码模板id 自行处理 (查数据库或写死均可)
|
||||||
|
String templateId = "";
|
||||||
|
LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
|
||||||
|
map.put("code", code);
|
||||||
|
SmsBlend smsBlend = SmsFactory.getSmsBlend("config1");
|
||||||
|
SmsResponse smsResponse = smsBlend.sendMessage(phonenumber, templateId, map);
|
||||||
|
if (!smsResponse.isSuccess()) {
|
||||||
|
log.error("验证码短信发送异常 => {}", smsResponse);
|
||||||
|
return R.fail(smsResponse.getData().toString());
|
||||||
|
}
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱验证码
|
||||||
|
*
|
||||||
|
* @param email 邮箱
|
||||||
|
*/
|
||||||
|
@GetMapping("/resource/email/code")
|
||||||
|
public R<Void> emailCode(@NotBlank(message = "{user.email.not.blank}") String email) {
|
||||||
|
if (!mailProperties.getEnabled()) {
|
||||||
|
return R.fail("当前系统没有开启邮箱功能!");
|
||||||
|
}
|
||||||
|
SpringUtils.getAopProxy(this).emailCodeImpl(email);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱验证码
|
||||||
|
* 独立方法避免验证码关闭之后仍然走限流
|
||||||
|
*/
|
||||||
|
@RateLimiter(key = "#email", time = 60, count = 1)
|
||||||
|
public void emailCodeImpl(String email) {
|
||||||
|
String key = GlobalConstants.CAPTCHA_CODE_KEY + email;
|
||||||
|
String code = RandomUtil.randomNumbers(4);
|
||||||
|
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||||
|
try {
|
||||||
|
MailUtils.sendText(email, "登录验证码", "您本次验证码为:" + code + ",有效性为" + Constants.CAPTCHA_EXPIRATION + "分钟,请尽快填写。");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("验证码短信发送异常 => {}", e.getMessage());
|
||||||
|
throw new ServiceException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成验证码
|
||||||
|
*/
|
||||||
|
@GetMapping("/auth/code")
|
||||||
|
public R<CaptchaVo> getCode() {
|
||||||
|
boolean captchaEnabled = captchaProperties.getEnable();
|
||||||
|
if (!captchaEnabled) {
|
||||||
|
CaptchaVo captchaVo = new CaptchaVo();
|
||||||
|
captchaVo.setCaptchaEnabled(false);
|
||||||
|
return R.ok(captchaVo);
|
||||||
|
}
|
||||||
|
return R.ok(SpringUtils.getAopProxy(this).getCodeImpl());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成验证码
|
||||||
|
* 独立方法避免验证码关闭之后仍然走限流
|
||||||
|
*/
|
||||||
|
@RateLimiter(time = 60, count = 10, limitType = LimitType.IP)
|
||||||
|
public CaptchaVo getCodeImpl() {
|
||||||
|
// 保存验证码信息
|
||||||
|
String uuid = IdUtil.simpleUUID();
|
||||||
|
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + uuid;
|
||||||
|
// 生成验证码
|
||||||
|
String captchaType = captchaProperties.getType();
|
||||||
|
CodeGenerator codeGenerator;
|
||||||
|
if ("math".equals(captchaType)) {
|
||||||
|
codeGenerator = new MathGenerator(captchaProperties.getNumberLength(), false);
|
||||||
|
} else {
|
||||||
|
codeGenerator = new RandomGenerator(captchaProperties.getCharLength());
|
||||||
|
}
|
||||||
|
WaveAndCircleCaptcha captcha = new WaveAndCircleCaptcha(160, 60);
|
||||||
|
// captcha.setBackground(Color.WHITE); // 不设置就是透明底
|
||||||
|
captcha.setFont(new Font("Arial", Font.BOLD, 45));
|
||||||
|
captcha.setGenerator(codeGenerator);
|
||||||
|
captcha.createCode();
|
||||||
|
// 如果是数学验证码,使用SpEL表达式处理验证码结果
|
||||||
|
String code = captcha.getCode();
|
||||||
|
if ("math".equals(captchaType)) {
|
||||||
|
ExpressionParser parser = new SpelExpressionParser();
|
||||||
|
Expression exp = parser.parseExpression(StringUtils.remove(code, "="));
|
||||||
|
code = exp.getValue(String.class);
|
||||||
|
}
|
||||||
|
RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||||
|
CaptchaVo captchaVo = new CaptchaVo();
|
||||||
|
captchaVo.setUuid(uuid);
|
||||||
|
captchaVo.setImg(captcha.getImageBase64());
|
||||||
|
return captchaVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package org.dromara.web.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@SaIgnore
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
public class IndexController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 访问首页,提示语
|
||||||
|
*/
|
||||||
|
@GetMapping("/")
|
||||||
|
public String index() {
|
||||||
|
return StringUtils.format("欢迎使用{}后台管理框架,请通过前端地址访问。", SpringUtils.getApplicationName());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.dromara.web.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码信息
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CaptchaVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否开启验证码
|
||||||
|
*/
|
||||||
|
private Boolean captchaEnabled = true;
|
||||||
|
|
||||||
|
private String uuid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码图片
|
||||||
|
*/
|
||||||
|
private String img;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.dromara.web.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录租户对象
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LoginTenantVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户开关
|
||||||
|
*/
|
||||||
|
private Boolean tenantEnabled;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户对象列表
|
||||||
|
*/
|
||||||
|
private List<TenantListVo> voList;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package org.dromara.web.domain.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录验证信息
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LoginVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 授权令牌
|
||||||
|
*/
|
||||||
|
@JsonProperty("access_token")
|
||||||
|
private String accessToken;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新令牌
|
||||||
|
*/
|
||||||
|
@JsonProperty("refresh_token")
|
||||||
|
private String refreshToken;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 授权令牌 access_token 的有效期
|
||||||
|
*/
|
||||||
|
@JsonProperty("expire_in")
|
||||||
|
private Long expireIn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新令牌 refresh_token 的有效期
|
||||||
|
*/
|
||||||
|
@JsonProperty("refresh_expire_in")
|
||||||
|
private Long refreshExpireIn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用id
|
||||||
|
*/
|
||||||
|
@JsonProperty("client_id")
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 令牌权限
|
||||||
|
*/
|
||||||
|
private String scope;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户 openid
|
||||||
|
*/
|
||||||
|
private String openid;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package org.dromara.web.domain.vo;
|
||||||
|
|
||||||
|
import org.dromara.system.domain.vo.SysTenantVo;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户列表
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AutoMapper(target = SysTenantVo.class)
|
||||||
|
public class TenantListVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户编号
|
||||||
|
*/
|
||||||
|
private String tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业名称
|
||||||
|
*/
|
||||||
|
private String companyName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 域名
|
||||||
|
*/
|
||||||
|
private String domain;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,163 @@
|
|||||||
|
package org.dromara.web.listener;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.listener.SaTokenListener;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.http.useragent.UserAgent;
|
||||||
|
import cn.hutool.http.useragent.UserAgentUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.constant.CacheConstants;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.domain.dto.UserOnlineDTO;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.ServletUtils;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.ip.AddressUtils;
|
||||||
|
import org.dromara.common.log.event.LogininforEvent;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户行为 侦听器的实现
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class UserActionListener implements SaTokenListener {
|
||||||
|
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次登录时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginParameter loginParameter) {
|
||||||
|
UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent"));
|
||||||
|
String ip = ServletUtils.getClientIP();
|
||||||
|
UserOnlineDTO dto = new UserOnlineDTO();
|
||||||
|
dto.setIpaddr(ip);
|
||||||
|
dto.setLoginLocation(AddressUtils.getRealAddressByIP(ip));
|
||||||
|
dto.setBrowser(userAgent.getBrowser().getName());
|
||||||
|
dto.setOs(userAgent.getOs().getName());
|
||||||
|
dto.setLoginTime(System.currentTimeMillis());
|
||||||
|
dto.setTokenId(tokenValue);
|
||||||
|
String username = (String) loginParameter.getExtra(LoginHelper.USER_NAME_KEY);
|
||||||
|
String tenantId = (String) loginParameter.getExtra(LoginHelper.TENANT_KEY);
|
||||||
|
dto.setUserName(username);
|
||||||
|
dto.setClientKey((String) loginParameter.getExtra(LoginHelper.CLIENT_KEY));
|
||||||
|
dto.setDeviceType(loginParameter.getDeviceType());
|
||||||
|
dto.setDeptName((String) loginParameter.getExtra(LoginHelper.DEPT_NAME_KEY));
|
||||||
|
TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
if(loginParameter.getTimeout() == -1) {
|
||||||
|
RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto);
|
||||||
|
} else {
|
||||||
|
RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(loginParameter.getTimeout()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 记录登录日志
|
||||||
|
LogininforEvent logininforEvent = new LogininforEvent();
|
||||||
|
logininforEvent.setTenantId(tenantId);
|
||||||
|
logininforEvent.setUsername(username);
|
||||||
|
logininforEvent.setStatus(Constants.LOGIN_SUCCESS);
|
||||||
|
logininforEvent.setMessage(MessageUtils.message("user.login.success"));
|
||||||
|
logininforEvent.setRequest(ServletUtils.getRequest());
|
||||||
|
SpringUtils.context().publishEvent(logininforEvent);
|
||||||
|
// 更新登录信息
|
||||||
|
loginService.recordLoginInfo((Long) loginParameter.getExtra(LoginHelper.USER_KEY), ip);
|
||||||
|
log.info("user doLogin, userId:{}, token:{}", loginId, tokenValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次注销时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doLogout(String loginType, Object loginId, String tokenValue) {
|
||||||
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
||||||
|
TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
||||||
|
});
|
||||||
|
log.info("user doLogout, userId:{}, token:{}", loginId, tokenValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次被踢下线时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doKickout(String loginType, Object loginId, String tokenValue) {
|
||||||
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
||||||
|
TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
||||||
|
});
|
||||||
|
log.info("user doKickout, userId:{}, token:{}", loginId, tokenValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次被顶下线时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doReplaced(String loginType, Object loginId, String tokenValue) {
|
||||||
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
||||||
|
TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
||||||
|
});
|
||||||
|
log.info("user doReplaced, userId:{}, token:{}", loginId, tokenValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次被封禁时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次被解封时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doUntieDisable(String loginType, Object loginId, String service) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次打开二级认证时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doOpenSafe(String loginType, String tokenValue, String service, long safeTime) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次创建Session时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doCloseSafe(String loginType, String tokenValue, String service) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次创建Session时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doCreateSession(String id) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次注销Session时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doLogoutSession(String id) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每次Token续期时触发
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void doRenewTimeout(String loginType, Object loginId, String tokenValue, long timeout) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package org.dromara.web.service;
|
||||||
|
|
||||||
|
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.system.domain.SysClient;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 授权策略
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
public interface IAuthStrategy {
|
||||||
|
|
||||||
|
String BASE_NAME = "AuthStrategy";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录
|
||||||
|
*
|
||||||
|
* @param body 登录对象
|
||||||
|
* @param client 授权管理视图对象
|
||||||
|
* @param grantType 授权类型
|
||||||
|
* @return 登录验证信息
|
||||||
|
*/
|
||||||
|
static LoginVo login(String body, SysClientVo client, String grantType) {
|
||||||
|
// 授权类型和客户端id
|
||||||
|
String beanName = grantType + BASE_NAME;
|
||||||
|
if (!SpringUtils.containsBean(beanName)) {
|
||||||
|
throw new ServiceException("授权类型不正确!");
|
||||||
|
}
|
||||||
|
IAuthStrategy instance = SpringUtils.getBean(beanName);
|
||||||
|
return instance.login(body, client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录
|
||||||
|
*
|
||||||
|
* @param body 登录对象
|
||||||
|
* @param client 授权管理视图对象
|
||||||
|
* @return 登录验证信息
|
||||||
|
*/
|
||||||
|
LoginVo login(String body, SysClientVo client);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
package org.dromara.web.service;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.exception.NotLoginException;
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.lang.Opt;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.lock.annotation.Lock4j;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
import org.dromara.common.core.constant.CacheConstants;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.constant.TenantConstants;
|
||||||
|
import org.dromara.common.core.domain.dto.PostDTO;
|
||||||
|
import org.dromara.common.core.domain.dto.RoleDTO;
|
||||||
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.enums.LoginType;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.*;
|
||||||
|
import org.dromara.common.log.event.LogininforEvent;
|
||||||
|
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.tenant.exception.TenantException;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.bo.SysSocialBo;
|
||||||
|
import org.dromara.system.domain.vo.*;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.service.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录校验方法
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class SysLoginService {
|
||||||
|
|
||||||
|
@Value("${user.password.maxRetryCount}")
|
||||||
|
private Integer maxRetryCount;
|
||||||
|
|
||||||
|
@Value("${user.password.lockTime}")
|
||||||
|
private Integer lockTime;
|
||||||
|
|
||||||
|
private final ISysTenantService tenantService;
|
||||||
|
private final ISysPermissionService permissionService;
|
||||||
|
private final ISysSocialService sysSocialService;
|
||||||
|
private final ISysRoleService roleService;
|
||||||
|
private final ISysDeptService deptService;
|
||||||
|
private final ISysPostService postService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定第三方用户
|
||||||
|
*
|
||||||
|
* @param authUserData 授权响应实体
|
||||||
|
*/
|
||||||
|
@Lock4j
|
||||||
|
public void socialRegister(AuthUser authUserData) {
|
||||||
|
String authId = authUserData.getSource() + authUserData.getUuid();
|
||||||
|
// 第三方用户信息
|
||||||
|
SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
|
||||||
|
BeanUtil.copyProperties(authUserData.getToken(), bo);
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
bo.setUserId(userId);
|
||||||
|
bo.setAuthId(authId);
|
||||||
|
bo.setOpenId(authUserData.getUuid());
|
||||||
|
bo.setUserName(authUserData.getUsername());
|
||||||
|
bo.setNickName(authUserData.getNickname());
|
||||||
|
List<SysSocialVo> checkList = sysSocialService.selectByAuthId(authId);
|
||||||
|
if (CollUtil.isNotEmpty(checkList)) {
|
||||||
|
throw new ServiceException("此三方账号已经被绑定!");
|
||||||
|
}
|
||||||
|
// 查询是否已经绑定用户
|
||||||
|
SysSocialBo params = new SysSocialBo();
|
||||||
|
params.setUserId(userId);
|
||||||
|
params.setSource(bo.getSource());
|
||||||
|
List<SysSocialVo> list = sysSocialService.queryList(params);
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
// 没有绑定用户, 新增用户信息
|
||||||
|
sysSocialService.insertByBo(bo);
|
||||||
|
} else {
|
||||||
|
// 更新用户信息
|
||||||
|
bo.setId(list.get(0).getId());
|
||||||
|
sysSocialService.updateByBo(bo);
|
||||||
|
// 如果要绑定的平台账号已经被绑定过了 是否抛异常自行决断
|
||||||
|
// throw new ServiceException("此平台账号已经被绑定!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出登录
|
||||||
|
*/
|
||||||
|
public void logout() {
|
||||||
|
try {
|
||||||
|
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||||
|
if (ObjectUtil.isNull(loginUser)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) {
|
||||||
|
// 超级管理员 登出清除动态租户
|
||||||
|
TenantHelper.clearDynamic();
|
||||||
|
}
|
||||||
|
recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGOUT, MessageUtils.message("user.logout.success"));
|
||||||
|
} catch (NotLoginException ignored) {
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
StpUtil.logout();
|
||||||
|
} catch (NotLoginException ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录登录信息
|
||||||
|
*
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @param username 用户名
|
||||||
|
* @param status 状态
|
||||||
|
* @param message 消息内容
|
||||||
|
*/
|
||||||
|
public void recordLogininfor(String tenantId, String username, String status, String message) {
|
||||||
|
LogininforEvent logininforEvent = new LogininforEvent();
|
||||||
|
logininforEvent.setTenantId(tenantId);
|
||||||
|
logininforEvent.setUsername(username);
|
||||||
|
logininforEvent.setStatus(status);
|
||||||
|
logininforEvent.setMessage(message);
|
||||||
|
logininforEvent.setRequest(ServletUtils.getRequest());
|
||||||
|
SpringUtils.context().publishEvent(logininforEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建登录用户
|
||||||
|
*/
|
||||||
|
public LoginUser buildLoginUser(SysUserVo user) {
|
||||||
|
LoginUser loginUser = new LoginUser();
|
||||||
|
Long userId = user.getUserId();
|
||||||
|
loginUser.setTenantId(user.getTenantId());
|
||||||
|
loginUser.setUserId(userId);
|
||||||
|
loginUser.setDeptId(user.getDeptId());
|
||||||
|
loginUser.setUsername(user.getUserName());
|
||||||
|
loginUser.setNickname(user.getNickName());
|
||||||
|
loginUser.setUserType(user.getUserType());
|
||||||
|
loginUser.setMenuPermission(permissionService.getMenuPermission(userId));
|
||||||
|
loginUser.setRolePermission(permissionService.getRolePermission(userId));
|
||||||
|
if (ObjectUtil.isNotNull(user.getDeptId())) {
|
||||||
|
Opt<SysDeptVo> deptOpt = Opt.of(user.getDeptId()).map(deptService::selectDeptById);
|
||||||
|
loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
|
||||||
|
loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
|
||||||
|
}
|
||||||
|
List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
|
||||||
|
List<SysPostVo> posts = postService.selectPostsByUserId(userId);
|
||||||
|
loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
|
||||||
|
loginUser.setPosts(BeanUtil.copyToList(posts, PostDTO.class));
|
||||||
|
return loginUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录登录信息
|
||||||
|
*
|
||||||
|
* @param userId 用户ID
|
||||||
|
*/
|
||||||
|
public void recordLoginInfo(Long userId, String ip) {
|
||||||
|
SysUser sysUser = new SysUser();
|
||||||
|
sysUser.setUserId(userId);
|
||||||
|
sysUser.setLoginIp(ip);
|
||||||
|
sysUser.setLoginDate(DateUtils.getNowDate());
|
||||||
|
sysUser.setUpdateBy(userId);
|
||||||
|
DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录校验
|
||||||
|
*/
|
||||||
|
public void checkLogin(LoginType loginType, String tenantId, String username, Supplier<Boolean> supplier) {
|
||||||
|
String errorKey = CacheConstants.PWD_ERR_CNT_KEY + username;
|
||||||
|
String loginFail = Constants.LOGIN_FAIL;
|
||||||
|
|
||||||
|
// 获取用户登录错误次数,默认为0 (可自定义限制策略 例如: key + username + ip)
|
||||||
|
int errorNumber = ObjectUtil.defaultIfNull(RedisUtils.getCacheObject(errorKey), 0);
|
||||||
|
// 锁定时间内登录 则踢出
|
||||||
|
if (errorNumber >= maxRetryCount) {
|
||||||
|
recordLogininfor(tenantId, username, loginFail, MessageUtils.message(loginType.getRetryLimitExceed(), maxRetryCount, lockTime));
|
||||||
|
throw new UserException(loginType.getRetryLimitExceed(), maxRetryCount, lockTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supplier.get()) {
|
||||||
|
// 错误次数递增
|
||||||
|
errorNumber++;
|
||||||
|
RedisUtils.setCacheObject(errorKey, errorNumber, Duration.ofMinutes(lockTime));
|
||||||
|
// 达到规定错误次数 则锁定登录
|
||||||
|
if (errorNumber >= maxRetryCount) {
|
||||||
|
recordLogininfor(tenantId, username, loginFail, MessageUtils.message(loginType.getRetryLimitExceed(), maxRetryCount, lockTime));
|
||||||
|
throw new UserException(loginType.getRetryLimitExceed(), maxRetryCount, lockTime);
|
||||||
|
} else {
|
||||||
|
// 未达到规定错误次数
|
||||||
|
recordLogininfor(tenantId, username, loginFail, MessageUtils.message(loginType.getRetryLimitCount(), errorNumber));
|
||||||
|
throw new UserException(loginType.getRetryLimitCount(), errorNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 登录成功 清空错误次数
|
||||||
|
RedisUtils.deleteObject(errorKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验租户
|
||||||
|
*
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
*/
|
||||||
|
public void checkTenant(String tenantId) {
|
||||||
|
if (!TenantHelper.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(tenantId)) {
|
||||||
|
throw new TenantException("tenant.number.not.blank");
|
||||||
|
}
|
||||||
|
if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SysTenantVo tenant = tenantService.queryByTenantId(tenantId);
|
||||||
|
if (ObjectUtil.isNull(tenant)) {
|
||||||
|
log.info("登录租户:{} 不存在.", tenantId);
|
||||||
|
throw new TenantException("tenant.not.exists");
|
||||||
|
} else if (SystemConstants.DISABLE.equals(tenant.getStatus())) {
|
||||||
|
log.info("登录租户:{} 已被停用.", tenantId);
|
||||||
|
throw new TenantException("tenant.blocked");
|
||||||
|
} else if (ObjectUtil.isNotNull(tenant.getExpireTime())
|
||||||
|
&& new Date().after(tenant.getExpireTime())) {
|
||||||
|
log.info("登录租户:{} 已超过有效期.", tenantId);
|
||||||
|
throw new TenantException("tenant.expired");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
package org.dromara.web.service;
|
||||||
|
|
||||||
|
import cn.hutool.crypto.digest.BCrypt;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.GlobalConstants;
|
||||||
|
import org.dromara.common.core.domain.model.RegisterBody;
|
||||||
|
import org.dromara.common.core.enums.UserType;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaException;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.ServletUtils;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.log.event.LogininforEvent;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.common.web.config.properties.CaptchaProperties;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.service.ISysUserService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册校验方法
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class SysRegisterService {
|
||||||
|
|
||||||
|
private final ISysUserService userService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
private final CaptchaProperties captchaProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册
|
||||||
|
*/
|
||||||
|
public void register(RegisterBody registerBody) {
|
||||||
|
String tenantId = registerBody.getTenantId();
|
||||||
|
String username = registerBody.getUsername();
|
||||||
|
String password = registerBody.getPassword();
|
||||||
|
// 校验用户类型是否存在
|
||||||
|
String userType = UserType.getUserType(registerBody.getUserType()).getUserType();
|
||||||
|
|
||||||
|
boolean captchaEnabled = captchaProperties.getEnable();
|
||||||
|
// 验证码开关
|
||||||
|
if (captchaEnabled) {
|
||||||
|
validateCaptcha(tenantId, username, registerBody.getCode(), registerBody.getUuid());
|
||||||
|
}
|
||||||
|
SysUserBo sysUser = new SysUserBo();
|
||||||
|
sysUser.setUserName(username);
|
||||||
|
sysUser.setNickName(username);
|
||||||
|
sysUser.setPassword(BCrypt.hashpw(password));
|
||||||
|
sysUser.setUserType(userType);
|
||||||
|
|
||||||
|
boolean exist = TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
return userMapper.exists(new LambdaQueryWrapper<SysUser>()
|
||||||
|
.eq(SysUser::getUserName, sysUser.getUserName()));
|
||||||
|
});
|
||||||
|
if (exist) {
|
||||||
|
throw new UserException("user.register.save.error", username);
|
||||||
|
}
|
||||||
|
boolean regFlag = userService.registerUser(sysUser, tenantId);
|
||||||
|
if (!regFlag) {
|
||||||
|
throw new UserException("user.register.error");
|
||||||
|
}
|
||||||
|
recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.register.success"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验验证码
|
||||||
|
*
|
||||||
|
* @param username 用户名
|
||||||
|
* @param code 验证码
|
||||||
|
* @param uuid 唯一标识
|
||||||
|
*/
|
||||||
|
public void validateCaptcha(String tenantId, String username, String code, String uuid) {
|
||||||
|
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.blankToDefault(uuid, "");
|
||||||
|
String captcha = RedisUtils.getCacheObject(verifyKey);
|
||||||
|
RedisUtils.deleteObject(verifyKey);
|
||||||
|
if (captcha == null) {
|
||||||
|
recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||||
|
throw new CaptchaExpireException();
|
||||||
|
}
|
||||||
|
if (!StringUtils.equalsIgnoreCase(code, captcha)) {
|
||||||
|
recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"));
|
||||||
|
throw new CaptchaException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录登录信息
|
||||||
|
*
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @param username 用户名
|
||||||
|
* @param status 状态
|
||||||
|
* @param message 消息内容
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private void recordLogininfor(String tenantId, String username, String status, String message) {
|
||||||
|
LogininforEvent logininforEvent = new LogininforEvent();
|
||||||
|
logininforEvent.setTenantId(tenantId);
|
||||||
|
logininforEvent.setUsername(username);
|
||||||
|
logininforEvent.setStatus(status);
|
||||||
|
logininforEvent.setMessage(message);
|
||||||
|
logininforEvent.setRequest(ServletUtils.getRequest());
|
||||||
|
SpringUtils.context().publishEvent(logininforEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
package org.dromara.web.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.GlobalConstants;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.model.EmailLoginBody;
|
||||||
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.enums.LoginType;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮件认证策略
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("email" + IAuthStrategy.BASE_NAME)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class EmailAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginVo login(String body, SysClientVo client) {
|
||||||
|
EmailLoginBody loginBody = JsonUtils.parseObject(body, EmailLoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
String tenantId = loginBody.getTenantId();
|
||||||
|
String email = loginBody.getEmail();
|
||||||
|
String emailCode = loginBody.getEmailCode();
|
||||||
|
LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
SysUserVo user = loadUserByEmail(email);
|
||||||
|
loginService.checkLogin(LoginType.EMAIL, tenantId, user.getUserName(), () -> !validateEmailCode(tenantId, email, emailCode));
|
||||||
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
|
return loginService.buildLoginUser(user);
|
||||||
|
});
|
||||||
|
loginUser.setClientKey(client.getClientKey());
|
||||||
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
|
model.setDeviceType(client.getDeviceType());
|
||||||
|
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||||
|
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||||
|
model.setTimeout(client.getTimeout());
|
||||||
|
model.setActiveTimeout(client.getActiveTimeout());
|
||||||
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
// 生成token
|
||||||
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||||
|
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||||
|
loginVo.setClientId(client.getClientId());
|
||||||
|
return loginVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验邮箱验证码
|
||||||
|
*/
|
||||||
|
private boolean validateEmailCode(String tenantId, String email, String emailCode) {
|
||||||
|
String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + email);
|
||||||
|
if (StringUtils.isBlank(code)) {
|
||||||
|
loginService.recordLogininfor(tenantId, email, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||||
|
throw new CaptchaExpireException();
|
||||||
|
}
|
||||||
|
return code.equals(emailCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SysUserVo loadUserByEmail(String email) {
|
||||||
|
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getEmail, email));
|
||||||
|
if (ObjectUtil.isNull(user)) {
|
||||||
|
log.info("登录用户:{} 不存在.", email);
|
||||||
|
throw new UserException("user.not.exists", email);
|
||||||
|
} else if (SystemConstants.DISABLE.equals(user.getStatus())) {
|
||||||
|
log.info("登录用户:{} 已被停用.", email);
|
||||||
|
throw new UserException("user.blocked", email);
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
package org.dromara.web.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.crypto.digest.BCrypt;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.GlobalConstants;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.domain.model.PasswordLoginBody;
|
||||||
|
import org.dromara.common.core.enums.LoginType;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaException;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.common.web.config.properties.CaptchaProperties;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码认证策略
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("password" + IAuthStrategy.BASE_NAME)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class PasswordAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
private final CaptchaProperties captchaProperties;
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginVo login(String body, SysClientVo client) {
|
||||||
|
PasswordLoginBody loginBody = JsonUtils.parseObject(body, PasswordLoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
String tenantId = loginBody.getTenantId();
|
||||||
|
String username = loginBody.getUsername();
|
||||||
|
String password = loginBody.getPassword();
|
||||||
|
String code = loginBody.getCode();
|
||||||
|
String uuid = loginBody.getUuid();
|
||||||
|
|
||||||
|
boolean captchaEnabled = captchaProperties.getEnable();
|
||||||
|
// 验证码开关
|
||||||
|
if (captchaEnabled) {
|
||||||
|
validateCaptcha(tenantId, username, code, uuid);
|
||||||
|
}
|
||||||
|
LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
SysUserVo user = loadUserByUsername(username);
|
||||||
|
loginService.checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, user.getPassword()));
|
||||||
|
// 此处可根据登录用户的数据不同 自行创建 loginUser
|
||||||
|
return loginService.buildLoginUser(user);
|
||||||
|
});
|
||||||
|
loginUser.setClientKey(client.getClientKey());
|
||||||
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
|
model.setDeviceType(client.getDeviceType());
|
||||||
|
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||||
|
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||||
|
model.setTimeout(client.getTimeout());
|
||||||
|
model.setActiveTimeout(client.getActiveTimeout());
|
||||||
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
// 生成token
|
||||||
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||||
|
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||||
|
loginVo.setClientId(client.getClientId());
|
||||||
|
return loginVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验验证码
|
||||||
|
*
|
||||||
|
* @param username 用户名
|
||||||
|
* @param code 验证码
|
||||||
|
* @param uuid 唯一标识
|
||||||
|
*/
|
||||||
|
private void validateCaptcha(String tenantId, String username, String code, String uuid) {
|
||||||
|
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.blankToDefault(uuid, "");
|
||||||
|
String captcha = RedisUtils.getCacheObject(verifyKey);
|
||||||
|
RedisUtils.deleteObject(verifyKey);
|
||||||
|
if (captcha == null) {
|
||||||
|
loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||||
|
throw new CaptchaExpireException();
|
||||||
|
}
|
||||||
|
if (!StringUtils.equalsIgnoreCase(code, captcha)) {
|
||||||
|
loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"));
|
||||||
|
throw new CaptchaException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private SysUserVo loadUserByUsername(String username) {
|
||||||
|
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username));
|
||||||
|
if (ObjectUtil.isNull(user)) {
|
||||||
|
log.info("登录用户:{} 不存在.", username);
|
||||||
|
throw new UserException("user.not.exists", username);
|
||||||
|
} else if (SystemConstants.DISABLE.equals(user.getStatus())) {
|
||||||
|
log.info("登录用户:{} 已被停用.", username);
|
||||||
|
throw new UserException("user.blocked", username);
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
package org.dromara.web.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.constant.Constants;
|
||||||
|
import org.dromara.common.core.constant.GlobalConstants;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.domain.model.SmsLoginBody;
|
||||||
|
import org.dromara.common.core.enums.LoginType;
|
||||||
|
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信认证策略
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("sms" + IAuthStrategy.BASE_NAME)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SmsAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginVo login(String body, SysClientVo client) {
|
||||||
|
SmsLoginBody loginBody = JsonUtils.parseObject(body, SmsLoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
String tenantId = loginBody.getTenantId();
|
||||||
|
String phonenumber = loginBody.getPhonenumber();
|
||||||
|
String smsCode = loginBody.getSmsCode();
|
||||||
|
LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
|
||||||
|
SysUserVo user = loadUserByPhonenumber(phonenumber);
|
||||||
|
loginService.checkLogin(LoginType.SMS, tenantId, user.getUserName(), () -> !validateSmsCode(tenantId, phonenumber, smsCode));
|
||||||
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
|
return loginService.buildLoginUser(user);
|
||||||
|
});
|
||||||
|
loginUser.setClientKey(client.getClientKey());
|
||||||
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
|
model.setDeviceType(client.getDeviceType());
|
||||||
|
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||||
|
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||||
|
model.setTimeout(client.getTimeout());
|
||||||
|
model.setActiveTimeout(client.getActiveTimeout());
|
||||||
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
// 生成token
|
||||||
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||||
|
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||||
|
loginVo.setClientId(client.getClientId());
|
||||||
|
return loginVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验短信验证码
|
||||||
|
*/
|
||||||
|
private boolean validateSmsCode(String tenantId, String phonenumber, String smsCode) {
|
||||||
|
String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + phonenumber);
|
||||||
|
if (StringUtils.isBlank(code)) {
|
||||||
|
loginService.recordLogininfor(tenantId, phonenumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||||
|
throw new CaptchaExpireException();
|
||||||
|
}
|
||||||
|
return code.equals(smsCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SysUserVo loadUserByPhonenumber(String phonenumber) {
|
||||||
|
SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phonenumber));
|
||||||
|
if (ObjectUtil.isNull(user)) {
|
||||||
|
log.info("登录用户:{} 不存在.", phonenumber);
|
||||||
|
throw new UserException("user.not.exists", phonenumber);
|
||||||
|
} else if (SystemConstants.DISABLE.equals(user.getStatus())) {
|
||||||
|
log.info("登录用户:{} 已被停用.", phonenumber);
|
||||||
|
throw new UserException("user.blocked", phonenumber);
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
package org.dromara.web.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.domain.model.SocialLoginBody;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.exception.user.UserException;
|
||||||
|
import org.dromara.common.core.utils.StreamUtils;
|
||||||
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.common.social.config.properties.SocialProperties;
|
||||||
|
import org.dromara.common.social.utils.SocialUtils;
|
||||||
|
import org.dromara.common.tenant.helper.TenantHelper;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysSocialVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.service.ISysSocialService;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方授权策略
|
||||||
|
*
|
||||||
|
* @author thiszhc is 三三
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("social" + IAuthStrategy.BASE_NAME)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SocialAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
private final SocialProperties socialProperties;
|
||||||
|
private final ISysSocialService sysSocialService;
|
||||||
|
private final SysUserMapper userMapper;
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录-第三方授权登录
|
||||||
|
*
|
||||||
|
* @param body 登录信息
|
||||||
|
* @param client 客户端信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public LoginVo login(String body, SysClientVo client) {
|
||||||
|
SocialLoginBody loginBody = JsonUtils.parseObject(body, SocialLoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
AuthResponse<AuthUser> response = SocialUtils.loginAuth(
|
||||||
|
loginBody.getSource(), loginBody.getSocialCode(),
|
||||||
|
loginBody.getSocialState(), socialProperties);
|
||||||
|
if (!response.ok()) {
|
||||||
|
throw new ServiceException(response.getMsg());
|
||||||
|
}
|
||||||
|
AuthUser authUserData = response.getData();
|
||||||
|
|
||||||
|
List<SysSocialVo> list = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
throw new ServiceException("你还没有绑定第三方账号,绑定后才可以登录!");
|
||||||
|
}
|
||||||
|
SysSocialVo social;
|
||||||
|
if (TenantHelper.isEnable()) {
|
||||||
|
Optional<SysSocialVo> opt = StreamUtils.findAny(list, x -> x.getTenantId().equals(loginBody.getTenantId()));
|
||||||
|
if (opt.isEmpty()) {
|
||||||
|
throw new ServiceException("对不起,你没有权限登录当前租户!");
|
||||||
|
}
|
||||||
|
social = opt.get();
|
||||||
|
} else {
|
||||||
|
social = list.get(0);
|
||||||
|
}
|
||||||
|
LoginUser loginUser = TenantHelper.dynamic(social.getTenantId(), () -> {
|
||||||
|
SysUserVo user = loadUser(social.getUserId());
|
||||||
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
|
return loginService.buildLoginUser(user);
|
||||||
|
});
|
||||||
|
loginUser.setClientKey(client.getClientKey());
|
||||||
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
|
model.setDeviceType(client.getDeviceType());
|
||||||
|
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||||
|
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||||
|
model.setTimeout(client.getTimeout());
|
||||||
|
model.setActiveTimeout(client.getActiveTimeout());
|
||||||
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
// 生成token
|
||||||
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||||
|
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||||
|
loginVo.setClientId(client.getClientId());
|
||||||
|
return loginVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SysUserVo loadUser(Long userId) {
|
||||||
|
SysUserVo user = userMapper.selectVoById(userId);
|
||||||
|
if (ObjectUtil.isNull(user)) {
|
||||||
|
log.info("登录用户:{} 不存在.", "");
|
||||||
|
throw new UserException("user.not.exists", "");
|
||||||
|
} else if (SystemConstants.DISABLE.equals(user.getStatus())) {
|
||||||
|
log.info("登录用户:{} 已被停用.", "");
|
||||||
|
throw new UserException("user.blocked", "");
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
package org.dromara.web.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import me.zhyd.oauth.config.AuthConfig;
|
||||||
|
import me.zhyd.oauth.model.AuthCallback;
|
||||||
|
import me.zhyd.oauth.model.AuthResponse;
|
||||||
|
import me.zhyd.oauth.model.AuthToken;
|
||||||
|
import me.zhyd.oauth.model.AuthUser;
|
||||||
|
import me.zhyd.oauth.request.AuthRequest;
|
||||||
|
import me.zhyd.oauth.request.AuthWechatMiniProgramRequest;
|
||||||
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.model.XcxLoginBody;
|
||||||
|
import org.dromara.common.core.domain.model.XcxLoginUser;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.utils.ValidatorUtils;
|
||||||
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.system.domain.vo.SysClientVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.web.domain.vo.LoginVo;
|
||||||
|
import org.dromara.web.service.IAuthStrategy;
|
||||||
|
import org.dromara.web.service.SysLoginService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序认证策略
|
||||||
|
*
|
||||||
|
* @author Michelle.Chung
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service("xcx" + IAuthStrategy.BASE_NAME)
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class XcxAuthStrategy implements IAuthStrategy {
|
||||||
|
|
||||||
|
private final SysLoginService loginService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginVo login(String body, SysClientVo client) {
|
||||||
|
XcxLoginBody loginBody = JsonUtils.parseObject(body, XcxLoginBody.class);
|
||||||
|
ValidatorUtils.validate(loginBody);
|
||||||
|
// xcxCode 为 小程序调用 wx.login 授权后获取
|
||||||
|
String xcxCode = loginBody.getXcxCode();
|
||||||
|
// 多个小程序识别使用
|
||||||
|
String appid = loginBody.getAppid();
|
||||||
|
|
||||||
|
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
|
||||||
|
AuthRequest authRequest = new AuthWechatMiniProgramRequest(AuthConfig.builder()
|
||||||
|
.clientId(appid).clientSecret("自行填写密钥 可根据不同appid填入不同密钥")
|
||||||
|
.ignoreCheckRedirectUri(true).ignoreCheckState(true).build());
|
||||||
|
AuthCallback authCallback = new AuthCallback();
|
||||||
|
authCallback.setCode(xcxCode);
|
||||||
|
AuthResponse<AuthUser> resp = authRequest.login(authCallback);
|
||||||
|
String openid, unionId;
|
||||||
|
if (resp.ok()) {
|
||||||
|
AuthToken token = resp.getData().getToken();
|
||||||
|
openid = token.getOpenId();
|
||||||
|
// 微信小程序只有关联到微信开放平台下之后才能获取到 unionId,因此unionId不一定能返回。
|
||||||
|
unionId = token.getUnionId();
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(resp.getMsg());
|
||||||
|
}
|
||||||
|
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
|
||||||
|
SysUserVo user = loadUserByOpenid(openid);
|
||||||
|
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||||
|
XcxLoginUser loginUser = new XcxLoginUser();
|
||||||
|
loginUser.setTenantId(user.getTenantId());
|
||||||
|
loginUser.setUserId(user.getUserId());
|
||||||
|
loginUser.setUsername(user.getUserName());
|
||||||
|
loginUser.setNickname(user.getNickName());
|
||||||
|
loginUser.setUserType(user.getUserType());
|
||||||
|
loginUser.setClientKey(client.getClientKey());
|
||||||
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
loginUser.setOpenid(openid);
|
||||||
|
|
||||||
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
|
model.setDeviceType(client.getDeviceType());
|
||||||
|
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||||
|
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||||
|
model.setTimeout(client.getTimeout());
|
||||||
|
model.setActiveTimeout(client.getActiveTimeout());
|
||||||
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
// 生成token
|
||||||
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
LoginVo loginVo = new LoginVo();
|
||||||
|
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||||
|
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||||
|
loginVo.setClientId(client.getClientId());
|
||||||
|
loginVo.setOpenid(openid);
|
||||||
|
return loginVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SysUserVo loadUserByOpenid(String openid) {
|
||||||
|
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
|
||||||
|
// todo 自行实现 userService.selectUserByOpenid(openid);
|
||||||
|
SysUserVo user = new SysUserVo();
|
||||||
|
if (ObjectUtil.isNull(user)) {
|
||||||
|
log.info("登录用户:{} 不存在.", openid);
|
||||||
|
// todo 用户不存在 业务逻辑自行实现
|
||||||
|
} else if (SystemConstants.DISABLE.equals(user.getStatus())) {
|
||||||
|
log.info("登录用户:{} 已被停用.", openid);
|
||||||
|
// todo 用户已被停用 业务逻辑自行实现
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
270
water-admin/src/main/resources/application-dev.yml
Normal file
270
water-admin/src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
--- # 监控中心配置
|
||||||
|
spring.boot.admin.client:
|
||||||
|
# 增加客户端开关
|
||||||
|
enabled: true
|
||||||
|
url: http://localhost:9090/admin
|
||||||
|
instance:
|
||||||
|
service-host-type: IP
|
||||||
|
metadata:
|
||||||
|
username: ${spring.boot.admin.client.username}
|
||||||
|
userpassword: ${spring.boot.admin.client.password}
|
||||||
|
username: @monitor.username@
|
||||||
|
password: @monitor.password@
|
||||||
|
|
||||||
|
--- # snail-job 配置
|
||||||
|
snail-job:
|
||||||
|
enabled: true
|
||||||
|
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
|
||||||
|
group: "water_group"
|
||||||
|
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
|
||||||
|
token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT"
|
||||||
|
server:
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 17888
|
||||||
|
# 命名空间UUID 详见 script/sql/ry_job.sql `sj_namespace`表`unique_id`字段
|
||||||
|
namespace: ${spring.profiles.active}
|
||||||
|
# 随主应用端口漂移
|
||||||
|
port: 2${server.port}
|
||||||
|
# 客户端ip指定
|
||||||
|
host:
|
||||||
|
|
||||||
|
--- # 数据源配置
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
type: com.zaxxer.hikari.HikariDataSource
|
||||||
|
# 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
|
||||||
|
dynamic:
|
||||||
|
# 性能分析插件(有性能损耗 不建议生产环境使用)
|
||||||
|
p6spy: true
|
||||||
|
# 设置默认的数据源或者数据源组,默认值即为 master
|
||||||
|
primary: master
|
||||||
|
# 严格模式 匹配不到数据源则报错
|
||||||
|
strict: true
|
||||||
|
datasource:
|
||||||
|
# 主库数据源
|
||||||
|
master:
|
||||||
|
type: ${spring.datasource.type}
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
|
url: jdbc:mysql://localhost:3306/water?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||||
|
username: root
|
||||||
|
password: 123456
|
||||||
|
# # 从库数据源
|
||||||
|
# slave:
|
||||||
|
# lazy: true
|
||||||
|
# type: ${spring.datasource.type}
|
||||||
|
# driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
# url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||||
|
# username:
|
||||||
|
# password:
|
||||||
|
# oracle:
|
||||||
|
# type: ${spring.datasource.type}
|
||||||
|
# driverClassName: oracle.jdbc.OracleDriver
|
||||||
|
# url: jdbc:oracle:thin:@//localhost:1521/XE
|
||||||
|
# username: ROOT
|
||||||
|
# password: root
|
||||||
|
# postgres:
|
||||||
|
# type: ${spring.datasource.type}
|
||||||
|
# driverClassName: org.postgresql.Driver
|
||||||
|
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
|
||||||
|
# username: root
|
||||||
|
# password: root
|
||||||
|
# sqlserver:
|
||||||
|
# type: ${spring.datasource.type}
|
||||||
|
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
|
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
|
||||||
|
# username: SA
|
||||||
|
# password: root
|
||||||
|
hikari:
|
||||||
|
# 最大连接池数量
|
||||||
|
maxPoolSize: 20
|
||||||
|
# 最小空闲线程数量
|
||||||
|
minIdle: 10
|
||||||
|
# 配置获取连接等待超时的时间
|
||||||
|
connectionTimeout: 30000
|
||||||
|
# 校验超时时间
|
||||||
|
validationTimeout: 5000
|
||||||
|
# 空闲连接存活最大时间,默认10分钟
|
||||||
|
idleTimeout: 600000
|
||||||
|
# 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
|
||||||
|
maxLifetime: 1800000
|
||||||
|
# 多久检查一次连接的活性
|
||||||
|
keepaliveTime: 30000
|
||||||
|
|
||||||
|
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
|
||||||
|
spring.data:
|
||||||
|
redis:
|
||||||
|
# 地址
|
||||||
|
host: localhost
|
||||||
|
# 端口,默认为6379
|
||||||
|
port: 6379
|
||||||
|
# 数据库索引
|
||||||
|
database: 0
|
||||||
|
# redis 密码必须配置
|
||||||
|
#password:
|
||||||
|
# 连接超时时间
|
||||||
|
timeout: 10s
|
||||||
|
# 是否开启ssl
|
||||||
|
ssl.enabled: false
|
||||||
|
|
||||||
|
# redisson 配置
|
||||||
|
redisson:
|
||||||
|
# redis key前缀
|
||||||
|
keyPrefix:
|
||||||
|
# 线程池数量
|
||||||
|
threads: 4
|
||||||
|
# Netty线程池数量
|
||||||
|
nettyThreads: 8
|
||||||
|
# 单节点配置
|
||||||
|
singleServerConfig:
|
||||||
|
# 客户端名称 不能用中文
|
||||||
|
clientName: water-Vue-Plus
|
||||||
|
# 最小空闲连接数
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
# 连接池大小
|
||||||
|
connectionPoolSize: 32
|
||||||
|
# 连接空闲超时,单位:毫秒
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
# 命令等待超时,单位:毫秒
|
||||||
|
timeout: 3000
|
||||||
|
# 发布和订阅连接池大小
|
||||||
|
subscriptionConnectionPoolSize: 50
|
||||||
|
|
||||||
|
--- # mail 邮件发送
|
||||||
|
mail:
|
||||||
|
enabled: false
|
||||||
|
host: smtp.163.com
|
||||||
|
port: 465
|
||||||
|
# 是否需要用户名密码验证
|
||||||
|
auth: true
|
||||||
|
# 发送方,遵循RFC-822标准
|
||||||
|
from: xxx@163.com
|
||||||
|
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
|
||||||
|
user: xxx@163.com
|
||||||
|
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
|
||||||
|
pass: xxxxxxxxxx
|
||||||
|
# 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。
|
||||||
|
starttlsEnable: true
|
||||||
|
# 使用SSL安全连接
|
||||||
|
sslEnable: true
|
||||||
|
# SMTP超时时长,单位毫秒,缺省值不超时
|
||||||
|
timeout: 0
|
||||||
|
# Socket连接超时值,单位毫秒,缺省值不超时
|
||||||
|
connectionTimeout: 0
|
||||||
|
|
||||||
|
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
|
||||||
|
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用
|
||||||
|
sms:
|
||||||
|
# 配置源类型用于标定配置来源(interface,yaml)
|
||||||
|
config-type: yaml
|
||||||
|
# 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制
|
||||||
|
restricted: true
|
||||||
|
# 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效
|
||||||
|
minute-max: 1
|
||||||
|
# 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效
|
||||||
|
account-max: 30
|
||||||
|
# 以下配置来自于 org.dromara.sms4j.provider.config.BaseConfig类中
|
||||||
|
blends:
|
||||||
|
# 唯一ID 用于发送短信寻找具体配置 随便定义别用中文即可
|
||||||
|
# 可以同时存在两个相同厂商 例如: ali1 ali2 两个不同的阿里短信账号 也可用于区分租户
|
||||||
|
config1:
|
||||||
|
# 框架定义的厂商名称标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
||||||
|
supplier: alibaba
|
||||||
|
# 有些称为accessKey有些称之为apiKey,也有称为sdkKey或者appId。
|
||||||
|
access-key-id: 您的accessKey
|
||||||
|
# 称为accessSecret有些称之为apiSecret
|
||||||
|
access-key-secret: 您的accessKeySecret
|
||||||
|
signature: 您的短信签名
|
||||||
|
sdk-app-id: 您的sdkAppId
|
||||||
|
config2:
|
||||||
|
# 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
||||||
|
supplier: tencent
|
||||||
|
access-key-id: 您的accessKey
|
||||||
|
access-key-secret: 您的accessKeySecret
|
||||||
|
signature: 您的短信签名
|
||||||
|
sdk-app-id: 您的sdkAppId
|
||||||
|
|
||||||
|
|
||||||
|
--- # 三方授权
|
||||||
|
justauth:
|
||||||
|
# 前端外网访问地址
|
||||||
|
address: http://localhost:80
|
||||||
|
type:
|
||||||
|
maxkey:
|
||||||
|
# maxkey 服务器地址
|
||||||
|
# 注意 如下均配置均不需要修改 maxkey 已经内置好了数据
|
||||||
|
server-url: http://sso.maxkey.top
|
||||||
|
client-id: 876892492581044224
|
||||||
|
client-secret: x1Y5MTMwNzIwMjMxNTM4NDc3Mzche8
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=maxkey
|
||||||
|
topiam:
|
||||||
|
# topiam 服务器地址
|
||||||
|
server-url: http://127.0.0.1:1898/api/v1/authorize/y0q************spq***********8ol
|
||||||
|
client-id: 449c4*********937************759
|
||||||
|
client-secret: ac7***********1e0************28d
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=topiam
|
||||||
|
scopes: [openid, email, phone, profile]
|
||||||
|
qq:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=qq
|
||||||
|
union-id: false
|
||||||
|
weibo:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=weibo
|
||||||
|
gitee:
|
||||||
|
client-id: 91436b7940090d09c72c7daf85b959cfd5f215d67eea73acbf61b6b590751a98
|
||||||
|
client-secret: 02c6fcfd70342980cd8dd2f2c06c1a350645d76c754d7a264c4e125f9ba915ac
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=gitee
|
||||||
|
dingtalk:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=dingtalk
|
||||||
|
baidu:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=baidu
|
||||||
|
csdn:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=csdn
|
||||||
|
coding:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=coding
|
||||||
|
coding-group-name: xx
|
||||||
|
oschina:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=oschina
|
||||||
|
alipay_wallet:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=alipay_wallet
|
||||||
|
alipay-public-key: MIIB**************DAQAB
|
||||||
|
wechat_open:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=wechat_open
|
||||||
|
wechat_mp:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=wechat_mp
|
||||||
|
wechat_enterprise:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=wechat_enterprise
|
||||||
|
agent-id: 1000002
|
||||||
|
gitlab:
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=gitlab
|
||||||
|
gitea:
|
||||||
|
# 前端改动 https://gitee.com/JavaLionLi/plus-ui/pulls/204
|
||||||
|
# gitea 服务器地址
|
||||||
|
server-url: https://demo.gitea.com
|
||||||
|
client-id: 10**********6
|
||||||
|
client-secret: 1f7d08**********5b7**********29e
|
||||||
|
redirect-uri: ${justauth.address}/social-callback?source=gitea
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user