diff --git a/.flattened-pom.xml b/.flattened-pom.xml
new file mode 100644
index 0000000..41bf0e4
--- /dev/null
+++ b/.flattened-pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+ org.springblade
+ jonhon-mes-svr
+ 4.6.0.RELEASE
+ pom
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/.gradle/6.1/executionHistory/executionHistory.lock b/.gradle/6.1/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..064b058
Binary files /dev/null and b/.gradle/6.1/executionHistory/executionHistory.lock differ
diff --git a/.gradle/6.1/fileChanges/last-build.bin b/.gradle/6.1/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/.gradle/6.1/fileChanges/last-build.bin differ
diff --git a/.gradle/6.1/fileHashes/fileHashes.lock b/.gradle/6.1/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..89a1938
Binary files /dev/null and b/.gradle/6.1/fileHashes/fileHashes.lock differ
diff --git a/.gradle/6.1/gc.properties b/.gradle/6.1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..d569562
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..0fca995
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Fri Nov 07 14:55:42 CST 2025
+gradle.version=6.1
diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock
new file mode 100644
index 0000000..d407bd8
Binary files /dev/null and b/.gradle/checksums/checksums.lock differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/blade-auth/.flattened-pom.xml b/blade-auth/.flattened-pom.xml
new file mode 100644
index 0000000..8168430
--- /dev/null
+++ b/blade-auth/.flattened-pom.xml
@@ -0,0 +1,113 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-auth
+ 4.6.0.RELEASE
+ blade-auth
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ blade-scope-api
+ org.springblade
+
+
+
+
+ org.springblade
+ blade-core-db
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-cloud
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-redis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-log
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-social
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-user-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-system-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-resource-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-oauth2
+ 4.6.0.RELEASE
+ compile
+
+
+ com.github.whvcse
+ easy-captcha
+ 1.6.2
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-auth/target/antrun/build-main.xml b/blade-auth/target/antrun/build-main.xml
new file mode 100644
index 0000000..570e34a
--- /dev/null
+++ b/blade-auth/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-auth/target/blade-auth.jar.original b/blade-auth/target/blade-auth.jar.original
new file mode 100644
index 0000000..27e09b7
Binary files /dev/null and b/blade-auth/target/blade-auth.jar.original differ
diff --git a/blade-auth/target/classes/application-dev.yml b/blade-auth/target/classes/application-dev.yml
new file mode 100644
index 0000000..25bafbc
--- /dev/null
+++ b/blade-auth/target/classes/application-dev.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+ port: 8100
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
+
+#第三方登陆
+social:
+ enabled: true
+ domain: http://127.0.0.1:2888
diff --git a/blade-auth/target/classes/application-prod.yml b/blade-auth/target/classes/application-prod.yml
new file mode 100644
index 0000000..dc6f80c
--- /dev/null
+++ b/blade-auth/target/classes/application-prod.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+ port: 8100
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
+
+#第三方登陆
+social:
+ enabled: true
+ domain: http://127.0.0.1:2888
diff --git a/blade-auth/target/classes/application-test.yml b/blade-auth/target/classes/application-test.yml
new file mode 100644
index 0000000..c7c6c40
--- /dev/null
+++ b/blade-auth/target/classes/application-test.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+ port: 8100
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
+
+#第三方登陆
+social:
+ enabled: true
+ domain: http://127.0.0.1:2888
diff --git a/blade-auth/target/classes/application.yml b/blade-auth/target/classes/application.yml
new file mode 100644
index 0000000..9e7573c
--- /dev/null
+++ b/blade-auth/target/classes/application.yml
@@ -0,0 +1,65 @@
+# 在使用Spring默认数据源Hikari的情况下配置以下配置项
+spring:
+ datasource:
+ hikari:
+ # 自动提交从池中返回的连接
+ auto-commit: true
+ # 连接池中维护的最小空闲连接数
+ minimum-idle: 10
+ # 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count)
+ maximum-pool-size: 60
+ # 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
+ # 只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
+ idle-timeout: 30000
+ # 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
+ max-lifetime: 1800000
+ # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
+ connection-timeout: 30000
+ # 连接测试查询
+ connection-test-query: select 1
+ #connection-test-query: select 1 from dual
+ freemarker:
+ # 模板后缀名
+ suffix: .ftl
+ # 文档类型
+ content-type: text/html
+ # 页面编码
+ charset: UTF-8
+ # 页面缓存
+ cache: false
+ # 模板路径
+ template-loader-path: classpath:/templates/
+ web:
+ # 资源路径
+ resources:
+ static-locations: classpath:/static/
+
+#swagger文档
+swagger:
+ base-packages:
+ - org.springblade
+ - org.springframework.security.oauth2.provider.endpoint
+
+#第三方登陆
+social:
+ oauth:
+ GITHUB:
+ client-id: 233************
+ client-secret: 233************************************
+ redirect-uri: ${social.domain}/oauth/redirect/github
+ GITEE:
+ client-id: 233************
+ client-secret: 233************************************
+ redirect-uri: ${social.domain}/oauth/redirect/gitee
+ WECHAT_OPEN:
+ client-id: 233************
+ client-secret: 233************************************
+ redirect-uri: ${social.domain}/oauth/redirect/wechat
+ QQ:
+ client-id: 233************
+ client-secret: 233************************************
+ redirect-uri: ${social.domain}/oauth/redirect/qq
+ DINGTALK:
+ client-id: 233************
+ client-secret: 233************************************
+ redirect-uri: ${social.domain}/oauth/redirect/dingtalk
diff --git a/blade-auth/target/maven-archiver/pom.properties b/blade-auth/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..0922232
--- /dev/null
+++ b/blade-auth/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Nov 10 11:10:15 CST 2025
+groupId=org.springblade
+artifactId=blade-auth
+version=4.6.0.RELEASE
diff --git a/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..41c8f2a
--- /dev/null
+++ b/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,15 @@
+org\springblade\auth\granter\SmsTokenGranter.class
+org\springblade\auth\service\BladeUserDetailService.class
+org\springblade\auth\endpoint\Oauth2SmsEndpoint.class
+org\springblade\auth\AuthApplication.class
+org\springblade\auth\granter\CaptchaTokenGranter.class
+org\springblade\auth\constant\BladeAuthConstant.class
+org\springblade\auth\granter\RegisterTokenGranter.class
+org\springblade\auth\handler\BladeLockHandler.class
+org\springblade\auth\handler\BladeAuthorizationHandler.class
+org\springblade\auth\handler\BladeTokenHandler.class
+org\springblade\auth\config\BladeAuthConfiguration.class
+org\springblade\auth\granter\SocialTokenGranter.class
+org\springblade\auth\service\BladeClientDetailService.class
+org\springblade\auth\utils\TokenUtil.class
+org\springblade\auth\handler\BladePasswordHandler.class
diff --git a/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..4c3246e
--- /dev/null
+++ b/blade-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,15 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\granter\RegisterTokenGranter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\utils\TokenUtil.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\granter\SmsTokenGranter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\granter\SocialTokenGranter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\handler\BladeLockHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\handler\BladeTokenHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\service\BladeUserDetailService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\constant\BladeAuthConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\AuthApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\config\BladeAuthConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\service\BladeClientDetailService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\granter\CaptchaTokenGranter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\handler\BladeAuthorizationHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\endpoint\Oauth2SmsEndpoint.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\main\java\org\springblade\auth\handler\BladePasswordHandler.java
diff --git a/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..7cb5a1b
--- /dev/null
+++ b/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,3 @@
+org\springblade\test\CryptoKeyGenerator.class
+org\springblade\test\SignKeyGenerator.class
+org\springblade\test\Sm2KeyGenerator.class
diff --git a/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..ed5bca8
--- /dev/null
+++ b/blade-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,3 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\test\java\org\springblade\test\CryptoKeyGenerator.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\test\java\org\springblade\test\Sm2KeyGenerator.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-auth\src\test\java\org\springblade\test\SignKeyGenerator.java
diff --git a/blade-common/.flattened-pom.xml b/blade-common/.flattened-pom.xml
new file mode 100644
index 0000000..6f19330
--- /dev/null
+++ b/blade-common/.flattened-pom.xml
@@ -0,0 +1,47 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ blade-common
+
+
+ org.springblade
+ blade-core-launch
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-loadbalancer
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
index 76b5df0..4a9338b 100644
--- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
+++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
@@ -37,7 +37,7 @@ public interface LauncherConstant {
/**
* nacos 命名空间
*/
- String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";
+ String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
/**
* nacos 用户名
diff --git a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java
index df22c3c..799dc3a 100644
--- a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java
+++ b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java
@@ -56,9 +56,9 @@ public class LauncherServiceImpl implements LauncherService {
PropsUtil.setProperty(props, "spring.cloud.nacos.config.password", LauncherConstant.NACOS_PASSWORD);
PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile));
// sentinel配置
- PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile));
- // 多数据源配置
- PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false");
+// PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile));
+// // 多数据源配置
+// PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false");
// 开启elk日志
// PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile));
diff --git a/blade-common/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService b/blade-common/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService
new file mode 100644
index 0000000..87512c9
--- /dev/null
+++ b/blade-common/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService
@@ -0,0 +1 @@
+org.springblade.common.launch.LauncherServiceImpl
diff --git a/blade-common/target/classes/META-INF/spring-devtools.properties b/blade-common/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..4aae8ab
--- /dev/null
+++ b/blade-common/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-common=/blade-common[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-common/target/classes/META-INF/spring.factories b/blade-common/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..be9adc5
--- /dev/null
+++ b/blade-common/target/classes/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.common.config.BladeCommonConfiguration
diff --git a/blade-common/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-common/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..5a79d7d
--- /dev/null
+++ b/blade-common/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.springblade.common.config.BladeCommonConfiguration
\ No newline at end of file
diff --git a/blade-common/target/classes/banner.txt b/blade-common/target/classes/banner.txt
new file mode 100644
index 0000000..c0f1066
--- /dev/null
+++ b/blade-common/target/classes/banner.txt
@@ -0,0 +1,8 @@
+${AnsiColor.BLUE} ______ _ _ ___ ___
+${AnsiColor.BLUE} | ___ \| | | | \ \ / /
+${AnsiColor.BLUE} | |_/ /| | __ _ __| | ___ \ V /
+${AnsiColor.BLUE} | ___ \| | / _` | / _` | / _ \ > <
+${AnsiColor.BLUE} | |_/ /| || (_| || (_| || __/ / . \
+${AnsiColor.BLUE} \____/ |_| \__,_| \__,_| \___|/__/ \__\
+
+${AnsiColor.BLUE}:: BladeX ${blade.service.version} :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK}
diff --git a/blade-common/target/maven-archiver/pom.properties b/blade-common/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..879b9a2
--- /dev/null
+++ b/blade-common/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Nov 10 14:14:45 CST 2025
+groupId=org.springblade
+artifactId=blade-common
+version=4.6.0.RELEASE
diff --git a/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..f6aff16
--- /dev/null
+++ b/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,11 @@
+org\springblade\common\config\BladeCommonConfiguration.class
+META-INF\spring-devtools.properties
+org\springblade\common\constant\TenantConstant.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\common\launch\LauncherServiceImpl.class
+org\springblade\common\cache\CacheNames.class
+org\springblade\common\constant\LauncherConstant.class
+META-INF\spring.factories
+META-INF\services\org.springblade.core.launch.service.LauncherService
+org\springblade\common\constant\CommonConstant.class
+org\springblade\common\utils\CommonUtil.class
diff --git a/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..46c3731
--- /dev/null
+++ b/blade-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,7 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\utils\CommonUtil.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\launch\LauncherServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\cache\CacheNames.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\constant\TenantConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\config\BladeCommonConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\constant\CommonConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-common\src\main\java\org\springblade\common\constant\LauncherConstant.java
diff --git a/blade-gateway/.flattened-pom.xml b/blade-gateway/.flattened-pom.xml
new file mode 100644
index 0000000..8332bca
--- /dev/null
+++ b/blade-gateway/.flattened-pom.xml
@@ -0,0 +1,111 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-gateway
+ 4.6.0.RELEASE
+ blade-gateway
+
+
+ org.springblade
+ blade-core-launch
+ 4.6.0.RELEASE
+ compile
+
+
+ spring-boot-starter-web
+ org.springframework.boot
+
+
+ spring-boot-starter-undertow
+ org.springframework.boot
+
+
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ blade-core-launch
+ org.springblade
+
+
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-jwt
+ 4.6.0.RELEASE
+ compile
+
+
+ com.alibaba
+ fastjson
+ 2.0.53
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-gateway
+ 4.1.6
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+ 4.1.5
+ compile
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+ 2023.0.1.2
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis-reactive
+ 3.2.12
+ compile
+
+
+ de.codecentric
+ spring-boot-admin-starter-client
+ 3.2.3
+ compile
+
+
+ com.github.xiaoymin
+ knife4j-gateway-spring-boot-starter
+ 4.5.0
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-gateway/target/antrun/build-main.xml b/blade-gateway/target/antrun/build-main.xml
new file mode 100644
index 0000000..d21c0be
--- /dev/null
+++ b/blade-gateway/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-gateway/target/blade-gateway.jar.original b/blade-gateway/target/blade-gateway.jar.original
new file mode 100644
index 0000000..deaa5d1
Binary files /dev/null and b/blade-gateway/target/blade-gateway.jar.original differ
diff --git a/blade-gateway/target/classes/application-dev.yml b/blade-gateway/target/classes/application-dev.yml
new file mode 100644
index 0000000..b8eaf54
--- /dev/null
+++ b/blade-gateway/target/classes/application-dev.yml
@@ -0,0 +1,11 @@
+blade:
+ #多团队协作服务配置
+ loadbalancer:
+ #开启配置
+ enabled: true
+ #灰度版本
+ #version: 3.0.0
+ #负载均衡优先调用的ip段
+ prior-ip-pattern:
+ - 192.168.0.*
+ - 127.0.0.1
diff --git a/blade-gateway/target/classes/application.yml b/blade-gateway/target/classes/application.yml
new file mode 100644
index 0000000..d0c3371
--- /dev/null
+++ b/blade-gateway/target/classes/application.yml
@@ -0,0 +1,16 @@
+knife4j:
+ gateway:
+ enabled: true
+ tags-sorter: order
+ operations-sorter: order
+ # 指定服务发现的模式聚合微服务文档,并且是默认`default`分组
+ strategy: discover
+ discover:
+ enabled: true
+ # 指定版本号(Swagger2|OpenAPI3)
+ version : openapi3
+ # 需要排除的微服务(eg:网关服务)
+ excluded-services:
+ - blade-admin
+ - blade-gateway
+ - blade-log
diff --git a/blade-gateway/target/classes/bootstrap.yml b/blade-gateway/target/classes/bootstrap.yml
new file mode 100644
index 0000000..5c9f4fd
--- /dev/null
+++ b/blade-gateway/target/classes/bootstrap.yml
@@ -0,0 +1,12 @@
+server:
+ port: 80
+
+spring:
+ cloud:
+ gateway:
+ discovery:
+ locator:
+ enabled: true
+ loadbalancer:
+ retry:
+ enabled: true
diff --git a/blade-gateway/target/maven-archiver/pom.properties b/blade-gateway/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..e5be115
--- /dev/null
+++ b/blade-gateway/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Nov 10 14:15:05 CST 2025
+groupId=org.springblade
+artifactId=blade-gateway
+version=4.6.0.RELEASE
diff --git a/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..d3397b5
--- /dev/null
+++ b/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,23 @@
+org\springblade\gateway\provider\SignSecure.class
+org\springblade\gateway\handler\ErrorExceptionHandler.class
+org\springblade\gateway\dynamic\DynamicRouteService.class
+org\springblade\gateway\provider\AuthProvider.class
+org\springblade\gateway\props\RequestProperties.class
+org\springblade\gateway\dynamic\DynamicRouteServiceListener$1.class
+org\springblade\gateway\filter\GatewayFilter.class
+org\springblade\gateway\dynamic\DynamicRouteServiceListener.class
+org\springblade\gateway\GateWayApplication.class
+org\springblade\gateway\props\AuthProperties.class
+org\springblade\gateway\config\ErrorHandlerConfiguration.class
+org\springblade\gateway\provider\BasicSecure.class
+org\springblade\gateway\filter\RequestFilter.class
+org\springblade\gateway\filter\ResponseLogFilter.class
+org\springblade\gateway\provider\RequestProvider.class
+org\springblade\gateway\filter\RequestLogFilter.class
+org\springblade\gateway\config\RouterFunctionConfiguration.class
+org\springblade\gateway\provider\AuthSecure.class
+org\springblade\gateway\dynamic\GatewayPredicate.class
+org\springblade\gateway\filter\AuthFilter.class
+org\springblade\gateway\provider\ResponseProvider.class
+org\springblade\gateway\dynamic\GatewayRoute.class
+org\springblade\gateway\dynamic\GatewayFilter.class
diff --git a/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..bf121a8
--- /dev/null
+++ b/blade-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,22 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\dynamic\DynamicRouteService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\config\RouterFunctionConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\dynamic\GatewayFilter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\RequestProvider.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\dynamic\GatewayRoute.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\filter\RequestFilter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\props\AuthProperties.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\props\RequestProperties.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\SignSecure.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\filter\RequestLogFilter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\filter\ResponseLogFilter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\GateWayApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\AuthProvider.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\ResponseProvider.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\BasicSecure.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\filter\AuthFilter.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\dynamic\DynamicRouteServiceListener.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\config\ErrorHandlerConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\provider\AuthSecure.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\handler\ErrorExceptionHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\dynamic\GatewayPredicate.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-gateway\src\main\java\org\springblade\gateway\filter\GatewayFilter.java
diff --git a/blade-ops-api/.flattened-pom.xml b/blade-ops-api/.flattened-pom.xml
new file mode 100644
index 0000000..ea77e03
--- /dev/null
+++ b/blade-ops-api/.flattened-pom.xml
@@ -0,0 +1,49 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-ops-api
+ 4.6.0.RELEASE
+ pom
+ blade-ops-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops-api/blade-develop-api/.flattened-pom.xml b/blade-ops-api/blade-develop-api/.flattened-pom.xml
new file mode 100644
index 0000000..4e59af7
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/.flattened-pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-develop-api
+ 4.6.0.RELEASE
+ blade-develop-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops-api/blade-develop-api/target/classes/META-INF/spring-devtools.properties b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..8a76778
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-develop-api=/blade-develop-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-ops-api/blade-develop-api/target/classes/META-INF/spring.factories b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..dfc308a
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.develop.feign.IDatasourceClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.develop.feign.IDatasourceClient
diff --git a/blade-ops-api/blade-develop-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..8ffa109
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.springblade.develop.feign.IDatasourceClientFallback
\ No newline at end of file
diff --git a/blade-ops-api/blade-develop-api/target/maven-archiver/pom.properties b/blade-ops-api/blade-develop-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..2d72c7f
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:17 CST 2025
+groupId=org.springblade
+artifactId=blade-develop-api
+version=4.6.0.RELEASE
diff --git a/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e5db620
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,12 @@
+org\springblade\develop\feign\IDatasourceClient.class
+org\springblade\develop\pojo\entity\Code.class
+META-INF\spring-devtools.properties
+org\springblade\develop\pojo\entity\Datasource.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\develop\pojo\entity\ModelPrototype.class
+org\springblade\develop\feign\IDatasourceClientFallback.class
+org\springblade\develop\pojo\entity\Model.class
+org\springblade\develop\pojo\dto\GeneratorDTO.class
+org\springblade\develop\pojo\entity\CodeSetting.class
+org\springblade\develop\pojo\dto\ModelDTO.class
+META-INF\spring.factories
diff --git a/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..265810e
--- /dev/null
+++ b/blade-ops-api/blade-develop-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,9 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\entity\CodeSetting.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\entity\Model.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\dto\GeneratorDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\dto\ModelDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\entity\Code.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\feign\IDatasourceClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\feign\IDatasourceClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\entity\Datasource.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-develop-api\src\main\java\org\springblade\develop\pojo\entity\ModelPrototype.java
diff --git a/blade-ops-api/blade-flow-api/.flattened-pom.xml b/blade-ops-api/blade-flow-api/.flattened-pom.xml
new file mode 100644
index 0000000..e30ea0a
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/.flattened-pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-flow-api
+ 4.6.0.RELEASE
+ blade-flow-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops-api/blade-flow-api/target/classes/META-INF/spring-devtools.properties b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..ad58b8d
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-flow-api=/blade-flow-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-ops-api/blade-flow-api/target/classes/META-INF/spring.factories b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..7f48ed2
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.flow.core.feign.IFlowClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.flow.core.feign.IFlowClient
diff --git a/blade-ops-api/blade-flow-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..7ae3161
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.springblade.flow.core.feign.IFlowClientFallback
\ No newline at end of file
diff --git a/blade-ops-api/blade-flow-api/target/maven-archiver/pom.properties b/blade-ops-api/blade-flow-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..617f60b
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:05:15 CST 2025
+groupId=org.springblade
+artifactId=blade-flow-api
+version=4.6.0.RELEASE
diff --git a/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..5763631
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,11 @@
+org\springblade\flow\core\utils\TaskUtil.class
+META-INF\spring-devtools.properties
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\flow\core\feign\IFlowClientFallback.class
+org\springblade\flow\core\pojo\entity\BladeFlow.class
+org\springblade\flow\core\pojo\enums\FlowModeEnum.class
+org\springblade\flow\core\feign\IFlowClient.class
+org\springblade\flow\core\constant\ProcessConstant.class
+org\springblade\flow\core\utils\FlowUtil.class
+org\springblade\flow\core\pojo\entity\FlowEntity.class
+META-INF\spring.factories
diff --git a/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..5fda0ba
--- /dev/null
+++ b/blade-ops-api/blade-flow-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\pojo\entity\BladeFlow.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\utils\TaskUtil.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\constant\ProcessConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\utils\FlowUtil.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\feign\IFlowClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\feign\IFlowClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\pojo\entity\FlowEntity.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-flow-api\src\main\java\org\springblade\flow\core\pojo\enums\FlowModeEnum.java
diff --git a/blade-ops-api/blade-resource-api/.flattened-pom.xml b/blade-ops-api/blade-resource-api/.flattened-pom.xml
new file mode 100644
index 0000000..a71fc34
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/.flattened-pom.xml
@@ -0,0 +1,60 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-resource-api
+ 4.6.0.RELEASE
+ blade-resource-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-sms
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops-api/blade-resource-api/target/classes/META-INF/spring-devtools.properties b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..ca33716
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-resource-api=/blade-resource-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-ops-api/blade-resource-api/target/classes/META-INF/spring.factories b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..f28e53f
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.resource.feign.ISmsClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.resource.feign.ISmsClient
diff --git a/blade-ops-api/blade-resource-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..104728d
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.springblade.resource.feign.ISmsClientFallback
\ No newline at end of file
diff --git a/blade-ops-api/blade-resource-api/target/maven-archiver/pom.properties b/blade-ops-api/blade-resource-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..0b804bc
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:03:46 CST 2025
+groupId=org.springblade
+artifactId=blade-resource-api
+version=4.6.0.RELEASE
diff --git a/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..3e3b2e9
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,13 @@
+org\springblade\resource\pojo\vo\AttachVO.class
+META-INF\spring-devtools.properties
+org\springblade\resource\feign\ISmsClient.class
+org\springblade\resource\pojo\vo\SmsVO.class
+org\springblade\resource\pojo\entity\Oss.class
+org\springblade\resource\pojo\vo\OssVO.class
+META-INF\spring.factories
+org\springblade\resource\pojo\entity\Attach.class
+org\springblade\resource\feign\ISmsClientFallback.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\resource\utils\SmsUtil.class
+org\springblade\resource\pojo\enums\SmsCodeEnum.class
+org\springblade\resource\pojo\entity\Sms.class
diff --git a/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..2d684e2
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,10 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\feign\ISmsClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\feign\ISmsClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\enums\SmsCodeEnum.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\utils\SmsUtil.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\entity\Sms.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\vo\AttachVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\entity\Attach.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\entity\Oss.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\vo\OssVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops-api\blade-resource-api\src\main\java\org\springblade\resource\pojo\vo\SmsVO.java
diff --git a/blade-ops/.flattened-pom.xml b/blade-ops/.flattened-pom.xml
new file mode 100644
index 0000000..0288ebb
--- /dev/null
+++ b/blade-ops/.flattened-pom.xml
@@ -0,0 +1,36 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-ops
+ 4.6.0.RELEASE
+ pom
+ blade-ops
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-admin/.flattened-pom.xml b/blade-ops/blade-admin/.flattened-pom.xml
new file mode 100644
index 0000000..5500a6d
--- /dev/null
+++ b/blade-ops/blade-admin/.flattened-pom.xml
@@ -0,0 +1,117 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-admin
+ 4.6.0.RELEASE
+ blade-admin
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ blade-core-launch
+ org.springblade
+
+
+
+
+ org.springblade
+ blade-core-launch
+ 4.6.0.RELEASE
+ compile
+
+
+ spring-boot-starter-web
+ org.springframework.boot
+
+
+ spring-boot-starter-undertow
+ org.springframework.boot
+
+
+
+
+ org.springblade
+ blade-starter-prometheus
+ 4.6.0.RELEASE
+ compile
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+ 2023.0.1.2
+ compile
+
+
+ nacos-client
+ com.alibaba.nacos
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+ 2023.0.1.2
+ compile
+
+
+ nacos-client
+ com.alibaba.nacos
+
+
+
+
+ com.alibaba.nacos
+ nacos-client
+ 2.5.1
+ compile
+
+
+ de.codecentric
+ spring-boot-admin-starter-server
+ 3.2.3
+ compile
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+ 3.2.12
+ compile
+
+
+ com.taobao
+ taobao-sdk
+ 20201116
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-admin/target/antrun/build-main.xml b/blade-ops/blade-admin/target/antrun/build-main.xml
new file mode 100644
index 0000000..42bdf4e
--- /dev/null
+++ b/blade-ops/blade-admin/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-admin/target/blade-admin.jar.original b/blade-ops/blade-admin/target/blade-admin.jar.original
new file mode 100644
index 0000000..1838f94
Binary files /dev/null and b/blade-ops/blade-admin/target/blade-admin.jar.original differ
diff --git a/blade-ops/blade-admin/target/classes/bootstrap.yml b/blade-ops/blade-admin/target/classes/bootstrap.yml
new file mode 100644
index 0000000..9e4c3fc
--- /dev/null
+++ b/blade-ops/blade-admin/target/classes/bootstrap.yml
@@ -0,0 +1,48 @@
+server:
+ port: 7002
+ undertow:
+ threads:
+ # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
+ io: 16
+ # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
+ worker: 400
+ # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
+ buffer-size: 1024
+ # 是否分配的直接内存
+ direct-buffers: true
+
+spring:
+ boot:
+ admin:
+ # 忽略服务名
+ discovery:
+ ignored-services:
+ - consul
+ - serverAddr
+ # 自定义UI界面
+ ui:
+ title: BladeX Monitor
+ external-views:
+ - label: 架构官网
+ url: https://bladex.cn/
+ order: 1
+ iframe: true
+ # 用于内网安全,判断 admin proxy
+ instance-proxy:
+ ignored-headers: "X-Forwarded-For"
+ # 自定义登录用户名密码
+ security:
+ user:
+ name: blade
+ password: blade
+
+# 监控的相关配置
+monitor:
+ ding-talk:
+ enabled: false
+ # 用于自定义域名,默认会自动填充为 http://ip:port
+ link: http://localhost:${server.port}
+ # 钉钉配置的令牌
+ access-token: xxx
+ # 如果采用密钥形式,需要添加,否则需要去掉该参数
+ secret:
diff --git a/blade-ops/blade-admin/target/maven-archiver/pom.properties b/blade-ops/blade-admin/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..3f268ae
--- /dev/null
+++ b/blade-ops/blade-admin/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:09 CST 2025
+groupId=org.springblade
+artifactId=blade-admin
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..5089b2e
--- /dev/null
+++ b/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,10 @@
+org\springblade\admin\dingtalk\DingTalkService.class
+org\springblade\admin\config\DingTalkConfiguration.class
+org\springblade\admin\dingtalk\MonitorProperties$Service.class
+org\springblade\admin\config\AdminConfiguration.class
+org\springblade\admin\security\InternalAuthorizationManager.class
+org\springblade\admin\dingtalk\MonitorProperties.class
+org\springblade\admin\dingtalk\DingTalkNotifier.class
+org\springblade\admin\AdminApplication.class
+org\springblade\admin\config\SecurityConfiguration.class
+org\springblade\admin\dingtalk\MonitorProperties$DingTalk.class
diff --git a/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..9096ba7
--- /dev/null
+++ b/blade-ops/blade-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\config\DingTalkConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\dingtalk\DingTalkService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\AdminApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\dingtalk\DingTalkNotifier.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\config\SecurityConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\config\AdminConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\dingtalk\MonitorProperties.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-admin\src\main\java\org\springblade\admin\security\InternalAuthorizationManager.java
diff --git a/blade-ops/blade-develop/.flattened-pom.xml b/blade-ops/blade-develop/.flattened-pom.xml
new file mode 100644
index 0000000..efca175
--- /dev/null
+++ b/blade-ops/blade-develop/.flattened-pom.xml
@@ -0,0 +1,77 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-develop
+ 4.6.0.RELEASE
+ blade-develop
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-develop
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-excel
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-dict-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-develop-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-develop/target/antrun/build-main.xml b/blade-ops/blade-develop/target/antrun/build-main.xml
new file mode 100644
index 0000000..9cf5e82
--- /dev/null
+++ b/blade-ops/blade-develop/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-develop/target/blade-develop.jar.original b/blade-ops/blade-develop/target/blade-develop.jar.original
new file mode 100644
index 0000000..3c32e3f
Binary files /dev/null and b/blade-ops/blade-develop/target/blade-develop.jar.original differ
diff --git a/blade-ops/blade-develop/target/classes/application-dev.yml b/blade-ops/blade-develop/target/classes/application-dev.yml
new file mode 100644
index 0000000..e81d987
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+ port: 7007
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
diff --git a/blade-ops/blade-develop/target/classes/application-prod.yml b/blade-ops/blade-develop/target/classes/application-prod.yml
new file mode 100644
index 0000000..ff20d10
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/application-prod.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+ port: 7007
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
+
diff --git a/blade-ops/blade-develop/target/classes/application-test.yml b/blade-ops/blade-develop/target/classes/application-test.yml
new file mode 100644
index 0000000..e8a77d1
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/application-test.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+ port: 7007
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
diff --git a/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeMapper.xml b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeMapper.xml
new file mode 100644
index 0000000..febe6b4
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeSettingMapper.xml b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeSettingMapper.xml
new file mode 100644
index 0000000..b0fe4f8
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/CodeSettingMapper.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/DatasourceMapper.xml b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/DatasourceMapper.xml
new file mode 100644
index 0000000..bb8400c
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/DatasourceMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelMapper.xml b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelMapper.xml
new file mode 100644
index 0000000..a8c8933
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_model where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelPrototypeMapper.xml b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelPrototypeMapper.xml
new file mode 100644
index 0000000..fe8d216
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/org/springblade/develop/mapper/ModelPrototypeMapper.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_model_prototype where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-develop/target/classes/templates/code.properties b/blade-ops/blade-develop/target/classes/templates/code.properties
new file mode 100644
index 0000000..50420cb
--- /dev/null
+++ b/blade-ops/blade-develop/target/classes/templates/code.properties
@@ -0,0 +1,5 @@
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url=jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+spring.datasource.username=root
+spring.datasource.password=root
+author=BladeX
diff --git a/blade-ops/blade-develop/target/maven-archiver/pom.properties b/blade-ops/blade-develop/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..3b78db5
--- /dev/null
+++ b/blade-ops/blade-develop/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:28 CST 2025
+groupId=org.springblade
+artifactId=blade-develop
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..3aa2e21
--- /dev/null
+++ b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,24 @@
+org\springblade\develop\DevelopApplication.class
+org\springblade\develop\service\impl\DatasourceServiceImpl.class
+org\springblade\develop\service\IGenerateService.class
+org\springblade\develop\service\IModelPrototypeService.class
+org\springblade\develop\controller\DatasourceController.class
+org\springblade\develop\controller\CodeSettingController.class
+org\springblade\develop\service\impl\CodeSettingServiceImpl.class
+org\springblade\develop\controller\ModelController.class
+org\springblade\develop\feign\DatasourceClient.class
+org\springblade\develop\service\ICodeSettingService.class
+org\springblade\develop\service\impl\GenerateServiceImpl.class
+org\springblade\develop\controller\CodeController.class
+org\springblade\develop\mapper\CodeSettingMapper.class
+org\springblade\develop\controller\ModelPrototypeController.class
+org\springblade\develop\service\IDatasourceService.class
+org\springblade\develop\service\impl\CodeServiceImpl.class
+org\springblade\develop\mapper\ModelMapper.class
+org\springblade\develop\mapper\DatasourceMapper.class
+org\springblade\develop\service\impl\ModelPrototypeServiceImpl.class
+org\springblade\develop\service\impl\ModelServiceImpl.class
+org\springblade\develop\mapper\ModelPrototypeMapper.class
+org\springblade\develop\service\ICodeService.class
+org\springblade\develop\service\IModelService.class
+org\springblade\develop\mapper\CodeMapper.class
diff --git a/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..ff49920
--- /dev/null
+++ b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,24 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\GenerateServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\IModelService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\ICodeService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\mapper\DatasourceMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\controller\DatasourceController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\IGenerateService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\mapper\CodeSettingMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\ModelServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\controller\CodeController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\feign\DatasourceClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\IDatasourceService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\CodeSettingServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\CodeServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\IModelPrototypeService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\mapper\CodeMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\controller\ModelPrototypeController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\mapper\ModelMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\ICodeSettingService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\ModelPrototypeServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\controller\CodeSettingController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\controller\ModelController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\DevelopApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\mapper\ModelPrototypeMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\main\java\org\springblade\develop\service\impl\DatasourceServiceImpl.java
diff --git a/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..085f469
--- /dev/null
+++ b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+org\springblade\test\CodeGenerator.class
diff --git a/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..abf5b41
--- /dev/null
+++ b/blade-ops/blade-develop/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-develop\src\test\java\org\springblade\test\CodeGenerator.java
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/controller.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/controller.java.btl
new file mode 100644
index 0000000..f7b1595
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/controller.java.btl
@@ -0,0 +1,212 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${package.Controller};
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import ${packageName!}.pojo.vo.${entityKey!}VO;
+import ${packageName!}.excel.${entityKey!}Excel;
+#if(hasWrapper) {
+import ${packageName!}.wrapper.${entityKey!}Wrapper;
+#}
+import ${packageName!}.service.${table.serviceName!};
+#if(isNotEmpty(superControllerClassPackage)){
+import ${superControllerClassPackage!};
+#}
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * ${table.comment!} 控制器
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@RestController
+@AllArgsConstructor
+#if(hasServiceName) {
+@RequestMapping("${serviceName!}/${entityKeyPath!}")
+#}else{
+@RequestMapping("/${entityKeyPath!}")
+#}
+@Tag(name = "${table.comment!}", description = "${table.comment!}接口")
+#if(isNotEmpty(superControllerClass)){
+public class ${table.controllerName!} extends ${superControllerClass!} {
+#}
+#else{
+public class ${table.controllerName!} {
+#}
+
+ private final ${table.serviceName!} ${entityKeyPath!}Service;
+
+#if(hasWrapper){
+ /**
+ * ${table.comment!} 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入${entityKeyPath!}")
+ public R<${entityKey!}VO> detail(${entityKey!}Entity ${entityKeyPath!}) {
+ ${entityKey!}Entity detail = ${entityKeyPath!}Service.getOne(Condition.getQueryWrapper(${entityKeyPath!}));
+ return R.data(${entityKey!}Wrapper.build().entityVO(detail));
+ }
+
+ /**
+ * ${table.comment!} 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入${entityKeyPath!}")
+ public R> list(@Parameter(hidden = true) @RequestParam Map ${entityKeyPath!}, Query query) {
+ IPage<${entityKey!}Entity> pages = ${entityKeyPath!}Service.page(Condition.getPage(query), Condition.getQueryWrapper(${entityKeyPath!}, ${entityKey!}Entity.class));
+ return R.data(${entityKey!}Wrapper.build().pageVO(pages));
+ }
+
+#}else{
+ /**
+ * ${table.comment!} 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入${entityKeyPath!}")
+ public R<${entityKey!}Entity> detail(${entityKey!}Entity ${entityKeyPath!}) {
+ ${entityKey!}Entity detail = ${entityKeyPath!}Service.getOne(Condition.getQueryWrapper(${entityKeyPath!}));
+ return R.data(detail);
+ }
+
+ /**
+ * ${table.comment!} 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入${entityKeyPath!}")
+ public R> list(@Parameter(hidden = true) @RequestParam Map ${entityKeyPath!}, Query query) {
+ IPage<${entityKey!}Entity> pages = ${entityKeyPath!}Service.page(Condition.getPage(query), Condition.getQueryWrapper(${entityKeyPath!}, ${entityKey!}Entity.class));
+ return R.data(pages);
+ }
+
+#}
+
+ /**
+ * ${table.comment!} 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入${entityKeyPath!}")
+ public R> page(${entityKey!}VO ${entityKeyPath!}, Query query) {
+ IPage<${entityKey!}VO> pages = ${entityKeyPath!}Service.select${entityKey!}Page(Condition.getPage(query), ${entityKeyPath!});
+ return R.data(pages);
+ }
+
+ /**
+ * ${table.comment!} 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入${entityKeyPath!}")
+ public R save(@Valid @RequestBody ${entityKey!}Entity ${entityKeyPath!}) {
+ return R.status(${entityKeyPath!}Service.save(${entityKeyPath!}));
+ }
+
+ /**
+ * ${table.comment!} 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入${entityKeyPath!}")
+ public R update(@Valid @RequestBody ${entityKey!}Entity ${entityKeyPath!}) {
+ return R.status(${entityKeyPath!}Service.updateById(${entityKeyPath!}));
+ }
+
+ /**
+ * ${table.comment!} 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入${entityKeyPath!}")
+ public R submit(@Valid @RequestBody ${entityKey!}Entity ${entityKeyPath!}) {
+ return R.status(${entityKeyPath!}Service.saveOrUpdate(${entityKeyPath!}));
+ }
+
+#if(hasSuperEntity){
+ /**
+ * ${table.comment!} 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(${entityKeyPath!}Service.deleteLogic(Func.toLongList(ids)));
+ }
+#}else{
+ /**
+ * ${table.comment!} 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(${entityKeyPath!}Service.removeByIds(Func.toLongList(ids)));
+ }
+#}
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-${entityKeyPath!}")
+ @ApiOperationSupport(order = 8)
+ @Operation(summary = "导出数据", description = "传入${entityKeyPath!}")
+ public void export${entityKey!}(@Parameter(hidden = true) @RequestParam Map ${entityKeyPath!}, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper<${entityKey!}Entity> queryWrapper = Condition.getQueryWrapper(${entityKeyPath!}, ${entityKey!}Entity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(${entity!}::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(${entityKey!}Entity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List<${entityKey!}Excel> list = ${entityKeyPath!}Service.export${entityKey!}(queryWrapper);
+ ExcelUtil.export(response, "${table.comment!}数据" + DateUtil.time(), "${table.comment!}数据表", list, ${entityKey!}Excel.class);
+ }
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/entity.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entity.java.btl
new file mode 100644
index 0000000..893dc7d
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entity.java.btl
@@ -0,0 +1,100 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${package.Entity!};
+
+import lombok.Data;
+import io.swagger.v3.oas.annotations.media.Schema;
+#for(x in table.importPackages){
+#if(isNotEmpty(x)){
+#if(hasSuperEntity&&!strutil.contain(x,"Serializable")){
+import ${x!};
+#}
+#if(!hasSuperEntity&&!strutil.contain(x,"TenantEntity")){
+import ${x!};
+#}
+#}
+#}
+#if(hasSuperEntity){
+import lombok.EqualsAndHashCode;
+#}else{
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+#}
+import java.io.Serial;
+
+/**
+ * ${table.comment!} 实体类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@Data
+@TableName("${table.name!}")
+@Schema(description = "${entity!}对象")
+#if(hasSuperEntity){
+@EqualsAndHashCode(callSuper = true)
+public class ${entityKey!}Entity extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+#}else{
+public class ${entityKey!}Entity implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @Schema(description = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private Long id;
+#}
+
+#for(x in table.fields) {
+ #if(hasSuperEntity){
+ #if(x.propertyName!="id"&&x.propertyName!="createUser"&&x.propertyName!="createDept"&&x.propertyName!="createTime"&&x.propertyName!="updateUser"&&x.propertyName!="updateTime"&&x.propertyName!="status"&&x.propertyName!="isDeleted"&&x.propertyName!="tenantId"){
+ /**
+ * ${x.comment!}
+ */
+ @Schema(description = "${x.comment!}")
+ private ${x.propertyType!} ${x.propertyName!};
+ #}
+ #}else{
+ #if(x.propertyName!="id"){
+ /**
+ * ${x.comment!}
+ */
+ @Schema(description = "${x.comment!}")
+ private ${x.propertyType!} ${x.propertyName!};
+ #}
+ #}
+#}
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityDTO.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityDTO.java.btl
new file mode 100644
index 0000000..5a56c0d
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityDTO.java.btl
@@ -0,0 +1,45 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${strutil.replace(package.Entity,"entity","dto")};
+
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+
+/**
+ * ${table.comment!} 数据传输对象实体类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ${entityKey!}DTO extends ${entityKey!}Entity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityExcel.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityExcel.java.btl
new file mode 100644
index 0000000..db8f1cc
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityExcel.java.btl
@@ -0,0 +1,69 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${strutil.replace(package.Entity,"pojo.entity","excel")};
+
+
+import lombok.Data;
+
+#for(x in table.importPackages){
+#if(isNotEmpty(x)&&!strutil.contain(x,"TableName")&&!strutil.contain(x,"TenantEntity")){
+import ${x!};
+#}
+#}
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import java.io.Serial;
+
+
+/**
+ * ${table.comment!} Excel实体类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ${entityKey!}Excel implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+#for(x in table.fields) {
+ #if(x.propertyName!="createUser"&&x.propertyName!="createDept"&&x.propertyName!="createTime"&&x.propertyName!="updateUser"&&x.propertyName!="updateTime"){
+ /**
+ * ${x.comment!}
+ */
+ @ColumnWidth(20)
+ @ExcelProperty("${x.comment!}")
+ private ${x.propertyType!} ${x.propertyName!};
+ #}
+#}
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityVO.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityVO.java.btl
new file mode 100644
index 0000000..b9b5981
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/entityVO.java.btl
@@ -0,0 +1,45 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${strutil.replace(package.Entity,"entity","vo")};
+
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+
+/**
+ * ${table.comment!} 视图实体类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ${entityKey!}VO extends ${entityKey!}Entity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.java.btl
new file mode 100644
index 0000000..d49c3d4
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.java.btl
@@ -0,0 +1,62 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${package.Mapper!};
+
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import ${packageName!}.pojo.vo.${entityKey!}VO;
+import ${packageName!}.excel.${entityKey!}Excel;
+import ${superMapperClassPackage!};
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * ${table.comment!} Mapper 接口
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+public interface ${table.mapperName!} extends ${superMapperClass!}<${entityKey!}Entity> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page 分页参数
+ * @param ${entityKeyPath!} 查询参数
+ * @return List<${entityKey!}VO>
+ */
+ List<${entityKey!}VO> select${entityKey!}Page(IPage page, ${entityKey!}VO ${entityKeyPath!});
+
+ /**
+ * 获取导出数据
+ *
+ * @param queryWrapper 查询条件
+ * @return List<${entityKey!}Excel>
+ */
+ List<${entityKey!}Excel> export${entityKey!}(@Param("ew") Wrapper<${entityKey!}Entity> queryWrapper);
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.xml.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.xml.btl
new file mode 100644
index 0000000..ea15f49
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/mapper.xml.btl
@@ -0,0 +1,24 @@
+
+
+
+
+#if(enableCache){
+
+
+#}
+
+
+ #for(x in table.fields) {
+
+ #}
+
+
+
+ select * from ${table.name} where is_deleted = 0
+
+
+
+ SELECT * FROM ${table.name!} \${ew.customSqlSegment}
+
+
+
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/service.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/service.java.btl
new file mode 100644
index 0000000..738d086
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/service.java.btl
@@ -0,0 +1,68 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${package.Service!};
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import ${packageName!}.pojo.vo.${entityKey!}VO;
+import ${packageName!}.excel.${entityKey!}Excel;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+#if(hasSuperEntity){
+import ${superServiceClassPackage!};
+#}else{
+import com.baomidou.mybatisplus.extension.service.IService;
+#}
+import java.util.List;
+
+/**
+ * ${table.comment!} 服务类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+#if(hasSuperEntity){
+public interface ${table.serviceName!} extends ${superServiceClass!}<${entity!}> {
+#}else{
+public interface ${table.serviceName!} extends IService<${entity!}> {
+#}
+ /**
+ * 自定义分页
+ *
+ * @param page 分页参数
+ * @param ${entityKeyPath!} 查询参数
+ * @return IPage<${entityKey!}VO>
+ */
+ IPage<${entityKey!}VO> select${entityKey!}Page(IPage<${entityKey!}VO> page, ${entityKey!}VO ${entityKeyPath!});
+
+ /**
+ * 导出数据
+ *
+ * @param queryWrapper 查询条件
+ * @return List<${entityKey!}Excel>
+ */
+ List<${entityKey!}Excel> export${entityKey!}(Wrapper<${entityKey!}Entity> queryWrapper);
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/serviceImpl.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/serviceImpl.java.btl
new file mode 100644
index 0000000..a563609
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/serviceImpl.java.btl
@@ -0,0 +1,70 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${package.ServiceImpl!};
+
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import ${packageName!}.pojo.vo.${entityKey!}VO;
+import ${packageName!}.excel.${entityKey!}Excel;
+import ${packageName!}.mapper.${table.mapperName!};
+import ${packageName!}.service.${table.serviceName!};
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+#if(hasSuperEntity){
+import ${superServiceImplClassPackage!};
+#}else{
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+#}
+import java.util.List;
+
+/**
+ * ${table.comment!} 服务实现类
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+@Service
+#if(hasSuperEntity){
+public class ${table.serviceImplName!} extends ${superServiceImplClass!}<${table.mapperName!}, ${entity!}> implements ${table.serviceName!} {
+#}else{
+public class ${table.serviceImplName!} extends ServiceImpl<${table.mapperName!}, ${entity!}> implements ${table.serviceName!} {
+#}
+
+ @Override
+ public IPage<${entityKey!}VO> select${entityKey!}Page(IPage<${entityKey!}VO> page, ${entityKey!}VO ${entityKeyPath!}) {
+ return page.setRecords(baseMapper.select${entityKey!}Page(page, ${entityKeyPath!}));
+ }
+
+ @Override
+ public List<${entityKey!}Excel> export${entityKey!}(Wrapper<${entityKey!}Entity> queryWrapper) {
+ List<${entityKey!}Excel> ${entityKeyPath!}List = baseMapper.export${entityKey!}(queryWrapper);
+ //${entityKeyPath!}List.forEach(${entityKeyPath!} -> {
+ // ${entityKeyPath!}.setTypeName(DictCache.getValue(DictEnum.YES_NO, ${entity!}.getType()));
+ //});
+ return ${entityKeyPath!}List;
+ }
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/api-fast/wrapper.java.btl b/blade-ops/blade-develop/target/test-classes/templates/api-fast/wrapper.java.btl
new file mode 100644
index 0000000..83d3171
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/api-fast/wrapper.java.btl
@@ -0,0 +1,58 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package ${strutil.replace(package.Entity,"pojo.entity","wrapper")};
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import ${packageName!}.pojo.entity.${entityKey!}Entity;
+import ${packageName!}.pojo.vo.${entityKey!}VO;
+import java.util.Objects;
+
+/**
+ * ${table.comment!} 包装类,返回视图层所需的字段
+ *
+ * @author ${author!}
+ * @since ${date!}
+ */
+public class ${entityKey!}Wrapper extends BaseEntityWrapper<${entityKey!}Entity, ${entityKey!}VO> {
+
+ public static ${entityKey!}Wrapper build() {
+ return new ${entityKey!}Wrapper();
+ }
+
+ @Override
+ public ${entityKey!}VO entityVO(${entityKey!}Entity ${entityKeyPath!}) {
+ ${entityKey!}VO ${entityKeyPath!}VO = Objects.requireNonNull(BeanUtil.copyProperties(${entityKeyPath!}, ${entityKey!}VO.class));
+
+ //User createUser = UserCache.getUser(${entityKeyPath!}.getCreateUser());
+ //User updateUser = UserCache.getUser(${entityKeyPath!}.getUpdateUser());
+ //${entityKeyPath!}VO.setCreateUserName(createUser.getName());
+ //${entityKeyPath!}VO.setUpdateUserName(updateUser.getName());
+
+ return ${entityKeyPath!}VO;
+ }
+
+}
diff --git a/blade-ops/blade-develop/target/test-classes/templates/code.properties b/blade-ops/blade-develop/target/test-classes/templates/code.properties
new file mode 100644
index 0000000..50420cb
--- /dev/null
+++ b/blade-ops/blade-develop/target/test-classes/templates/code.properties
@@ -0,0 +1,5 @@
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url=jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+spring.datasource.username=root
+spring.datasource.password=root
+author=BladeX
diff --git a/blade-ops/blade-job/.flattened-pom.xml b/blade-ops/blade-job/.flattened-pom.xml
new file mode 100644
index 0000000..b241fb6
--- /dev/null
+++ b/blade-ops/blade-job/.flattened-pom.xml
@@ -0,0 +1,65 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-job
+ 4.6.0.RELEASE
+ blade-job
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-http
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-powerjob
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-job/target/antrun/build-main.xml b/blade-ops/blade-job/target/antrun/build-main.xml
new file mode 100644
index 0000000..81cf5cb
--- /dev/null
+++ b/blade-ops/blade-job/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-job/target/blade-job.jar.original b/blade-ops/blade-job/target/blade-job.jar.original
new file mode 100644
index 0000000..868d6e4
Binary files /dev/null and b/blade-ops/blade-job/target/blade-job.jar.original differ
diff --git a/blade-ops/blade-job/target/classes/application-dev.yml b/blade-ops/blade-job/target/classes/application-dev.yml
new file mode 100644
index 0000000..bed5d7c
--- /dev/null
+++ b/blade-ops/blade-job/target/classes/application-dev.yml
@@ -0,0 +1,17 @@
+#服务器端口
+server:
+ port: 7770
+
+#job服务配置
+powerjob:
+ worker:
+ app-name: ${spring.application.name}
+ port: 27777
+ server-address: 127.0.0.1:7700
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
diff --git a/blade-ops/blade-job/target/classes/application-prod.yml b/blade-ops/blade-job/target/classes/application-prod.yml
new file mode 100644
index 0000000..eeea8c0
--- /dev/null
+++ b/blade-ops/blade-job/target/classes/application-prod.yml
@@ -0,0 +1,18 @@
+#服务器端口
+server:
+ port: 7770
+
+#job服务配置
+powerjob:
+ worker:
+ app-name: ${spring.application.name}
+ port: 27777
+ server-address: 127.0.0.1:7700
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
+
diff --git a/blade-ops/blade-job/target/classes/application-test.yml b/blade-ops/blade-job/target/classes/application-test.yml
new file mode 100644
index 0000000..efc81be
--- /dev/null
+++ b/blade-ops/blade-job/target/classes/application-test.yml
@@ -0,0 +1,17 @@
+#服务器端口
+server:
+ port: 7770
+
+#job服务配置
+powerjob:
+ worker:
+ app-name: ${spring.application.name}
+ port: 27777
+ server-address: 127.0.0.1:7700
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
diff --git a/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobInfoMapper.xml b/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobInfoMapper.xml
new file mode 100644
index 0000000..0c29c51
--- /dev/null
+++ b/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobInfoMapper.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_job_info where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobServerMapper.xml b/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobServerMapper.xml
new file mode 100644
index 0000000..fd8715f
--- /dev/null
+++ b/blade-ops/blade-job/target/classes/org/springblade/job/mapper/JobServerMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_job_server where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-job/target/maven-archiver/pom.properties b/blade-ops/blade-job/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4e0b6d7
--- /dev/null
+++ b/blade-ops/blade-job/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:35 CST 2025
+groupId=org.springblade
+artifactId=blade-job
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..1efdd2d
--- /dev/null
+++ b/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,16 @@
+org\springblade\job\pojo\entity\JobInfo.class
+org\springblade\job\pojo\dto\JobDTO.class
+org\springblade\job\service\IJobInfoService.class
+org\springblade\job\service\IJobServerService.class
+org\springblade\job\mapper\JobInfoMapper.class
+org\springblade\job\pojo\entity\JobServer.class
+org\springblade\job\pojo\vo\JobServerVO.class
+org\springblade\job\JobApplication.class
+org\springblade\job\service\impl\JobServerServiceImpl$1.class
+org\springblade\job\service\impl\JobServerServiceImpl.class
+org\springblade\job\pojo\vo\JobInfoVO.class
+org\springblade\job\processor\ProcessorDemo.class
+org\springblade\job\controller\JobInfoController.class
+org\springblade\job\service\impl\JobInfoServiceImpl.class
+org\springblade\job\controller\JobServerController.class
+org\springblade\job\mapper\JobServerMapper.class
diff --git a/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..f2ce204
--- /dev/null
+++ b/blade-ops/blade-job/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,15 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\mapper\JobServerMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\pojo\dto\JobDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\service\impl\JobInfoServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\controller\JobInfoController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\JobApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\processor\ProcessorDemo.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\service\IJobServerService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\pojo\entity\JobServer.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\controller\JobServerController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\pojo\entity\JobInfo.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\service\impl\JobServerServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\pojo\vo\JobInfoVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\pojo\vo\JobServerVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\mapper\JobInfoMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-job\src\main\java\org\springblade\job\service\IJobInfoService.java
diff --git a/blade-ops/blade-log/.flattened-pom.xml b/blade-ops/blade-log/.flattened-pom.xml
new file mode 100644
index 0000000..faee12a
--- /dev/null
+++ b/blade-ops/blade-log/.flattened-pom.xml
@@ -0,0 +1,53 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-log
+ 4.6.0.RELEASE
+ blade-log
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-log/target/antrun/build-main.xml b/blade-ops/blade-log/target/antrun/build-main.xml
new file mode 100644
index 0000000..0ec876c
--- /dev/null
+++ b/blade-ops/blade-log/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-log/target/blade-log.jar.original b/blade-ops/blade-log/target/blade-log.jar.original
new file mode 100644
index 0000000..e73eb6c
Binary files /dev/null and b/blade-ops/blade-log/target/blade-log.jar.original differ
diff --git a/blade-ops/blade-log/target/classes/application-dev.yml b/blade-ops/blade-log/target/classes/application-dev.yml
new file mode 100644
index 0000000..8c1f22c
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+ port: 8103
+
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
diff --git a/blade-ops/blade-log/target/classes/application-prod.yml b/blade-ops/blade-log/target/classes/application-prod.yml
new file mode 100644
index 0000000..736e57a
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/application-prod.yml
@@ -0,0 +1,10 @@
+#数据源配置
+server:
+ port: 8103
+
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
+
diff --git a/blade-ops/blade-log/target/classes/application-test.yml b/blade-ops/blade-log/target/classes/application-test.yml
new file mode 100644
index 0000000..a7850c2
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/application-test.yml
@@ -0,0 +1,9 @@
+#数据源配置
+server:
+ port: 8103
+
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
diff --git a/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogApiMapper.xml b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogApiMapper.xml
new file mode 100644
index 0000000..6c2aca5
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogApiMapper.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogErrorMapper.xml b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogErrorMapper.xml
new file mode 100644
index 0000000..c3fa1d6
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogErrorMapper.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogUsualMapper.xml b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogUsualMapper.xml
new file mode 100644
index 0000000..a08570d
--- /dev/null
+++ b/blade-ops/blade-log/target/classes/org/springblade/core/log/mapper/LogUsualMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blade-ops/blade-log/target/maven-archiver/pom.properties b/blade-ops/blade-log/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4f1dccf
--- /dev/null
+++ b/blade-ops/blade-log/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:42 CST 2025
+groupId=org.springblade
+artifactId=blade-log
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..2ae5f83
--- /dev/null
+++ b/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,21 @@
+org\springblade\core\log\LogApplication.class
+org\springblade\core\log\service\ILogApiService.class
+org\springblade\core\log\service\ILogErrorService.class
+org\springblade\core\log\controller\LogErrorController.class
+org\springblade\core\log\mapper\LogApiMapper.class
+org\springblade\core\log\pojo\vo\LogApiVO.class
+org\springblade\core\log\controller\LogUsualController.class
+org\springblade\core\log\service\impl\LogApiServiceImpl.class
+org\springblade\core\log\wrapper\LogUsualWrapper.class
+org\springblade\core\log\service\ILogUsualService.class
+org\springblade\core\log\service\impl\LogUsualServiceImpl.class
+org\springblade\core\log\mapper\LogUsualMapper.class
+org\springblade\core\log\controller\LogApiController.class
+org\springblade\core\log\feign\LogClient.class
+org\springblade\core\log\mapper\LogErrorMapper.class
+org\springblade\core\log\pojo\vo\LogErrorVO.class
+org\springblade\core\log\pojo\package-info.class
+org\springblade\core\log\pojo\vo\LogUsualVO.class
+org\springblade\core\log\wrapper\LogApiWrapper.class
+org\springblade\core\log\wrapper\LogErrorWrapper.class
+org\springblade\core\log\service\impl\LogErrorServiceImpl.class
diff --git a/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..5a066d2
--- /dev/null
+++ b/blade-ops/blade-log/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,21 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\pojo\vo\LogUsualVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\impl\LogErrorServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\mapper\LogApiMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\mapper\LogUsualMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\wrapper\LogApiWrapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\feign\LogClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\wrapper\LogErrorWrapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\mapper\LogErrorMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\controller\LogApiController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\ILogErrorService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\impl\LogApiServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\pojo\vo\LogErrorVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\wrapper\LogUsualWrapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\impl\LogUsualServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\controller\LogErrorController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\ILogApiService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\LogApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\service\ILogUsualService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\pojo\package-info.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\controller\LogUsualController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-log\src\main\java\org\springblade\core\log\pojo\vo\LogApiVO.java
diff --git a/blade-ops/blade-report/.flattened-pom.xml b/blade-ops/blade-report/.flattened-pom.xml
new file mode 100644
index 0000000..e77773d
--- /dev/null
+++ b/blade-ops/blade-report/.flattened-pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-report
+ 4.6.0.RELEASE
+ blade-report
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-report
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-report/target/antrun/build-main.xml b/blade-ops/blade-report/target/antrun/build-main.xml
new file mode 100644
index 0000000..3e1b92c
--- /dev/null
+++ b/blade-ops/blade-report/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-report/target/blade-report.jar.original b/blade-ops/blade-report/target/blade-report.jar.original
new file mode 100644
index 0000000..c690f2a
Binary files /dev/null and b/blade-ops/blade-report/target/blade-report.jar.original differ
diff --git a/blade-ops/blade-report/target/classes/application-dev.yml b/blade-ops/blade-report/target/classes/application-dev.yml
new file mode 100644
index 0000000..97f23c8
--- /dev/null
+++ b/blade-ops/blade-report/target/classes/application-dev.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
diff --git a/blade-ops/blade-report/target/classes/application-prod.yml b/blade-ops/blade-report/target/classes/application-prod.yml
new file mode 100644
index 0000000..c238494
--- /dev/null
+++ b/blade-ops/blade-report/target/classes/application-prod.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
diff --git a/blade-ops/blade-report/target/classes/application-test.yml b/blade-ops/blade-report/target/classes/application-test.yml
new file mode 100644
index 0000000..5738832
--- /dev/null
+++ b/blade-ops/blade-report/target/classes/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
diff --git a/blade-ops/blade-report/target/classes/application.yml b/blade-ops/blade-report/target/classes/application.yml
new file mode 100644
index 0000000..7b23304
--- /dev/null
+++ b/blade-ops/blade-report/target/classes/application.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+ port: 8108
+
+#报表配置
+report:
+ enabled: true
+ auth: true
+ database:
+ provider:
+ prefix: blade-
diff --git a/blade-ops/blade-report/target/maven-archiver/pom.properties b/blade-ops/blade-report/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..a0f132c
--- /dev/null
+++ b/blade-ops/blade-report/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:48 CST 2025
+groupId=org.springblade
+artifactId=blade-report
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..6fd248f
--- /dev/null
+++ b/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,2 @@
+org\springblade\report\config\BladeReportConfiguration.class
+org\springblade\report\ReportApplication.class
diff --git a/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..59eb38c
--- /dev/null
+++ b/blade-ops/blade-report/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,2 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-report\src\main\java\org\springblade\report\config\BladeReportConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-report\src\main\java\org\springblade\report\ReportApplication.java
diff --git a/blade-ops/blade-resource/.flattened-pom.xml b/blade-ops/blade-resource/.flattened-pom.xml
new file mode 100644
index 0000000..9178422
--- /dev/null
+++ b/blade-ops/blade-resource/.flattened-pom.xml
@@ -0,0 +1,143 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-resource
+ 4.6.0.RELEASE
+ blade-resource
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-oss
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-sms
+ 4.6.0.RELEASE
+ compile
+
+
+ com.amazonaws
+ aws-java-sdk-s3
+ 1.12.253
+ compile
+
+
+ io.minio
+ minio
+ 8.5.7
+ compile
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.16.1
+ compile
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.5.30
+ compile
+
+
+ com.huaweicloud
+ esdk-obs-java
+ 3.22.12
+ compile
+
+
+ com.qcloud
+ cos_api
+ 5.6.147
+ compile
+
+
+ com.tencentcloudapi
+ tencentcloud-sdk-java-sms
+ 3.1.1179
+ compile
+
+
+ com.qiniu
+ qiniu-java-sdk
+ 7.12.1
+ compile
+
+
+ com.yunpian.sdk
+ yunpian-java-sdk
+ 1.2.7
+ compile
+
+
+ org.springblade
+ blade-starter-literule
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-resource-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-dict-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-ops/blade-resource/target/antrun/build-main.xml b/blade-ops/blade-resource/target/antrun/build-main.xml
new file mode 100644
index 0000000..2d66782
--- /dev/null
+++ b/blade-ops/blade-resource/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blade-ops/blade-resource/target/blade-resource.jar.original b/blade-ops/blade-resource/target/blade-resource.jar.original
new file mode 100644
index 0000000..c94691a
Binary files /dev/null and b/blade-ops/blade-resource/target/blade-resource.jar.original differ
diff --git a/blade-ops/blade-resource/target/classes/application-dev.yml b/blade-ops/blade-resource/target/classes/application-dev.yml
new file mode 100644
index 0000000..2ef6032
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/application-dev.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.dev.url}
+ username: ${blade.datasource.dev.username}
+ password: ${blade.datasource.dev.password}
+
diff --git a/blade-ops/blade-resource/target/classes/application-prod.yml b/blade-ops/blade-resource/target/classes/application-prod.yml
new file mode 100644
index 0000000..70e928b
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/application-prod.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.prod.url}
+ username: ${blade.datasource.prod.username}
+ password: ${blade.datasource.prod.password}
+
diff --git a/blade-ops/blade-resource/target/classes/application-test.yml b/blade-ops/blade-resource/target/classes/application-test.yml
new file mode 100644
index 0000000..5738832
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+ datasource:
+ url: ${blade.datasource.test.url}
+ username: ${blade.datasource.test.username}
+ password: ${blade.datasource.test.password}
diff --git a/blade-ops/blade-resource/target/classes/application.yml b/blade-ops/blade-resource/target/classes/application.yml
new file mode 100644
index 0000000..0eb3976
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/application.yml
@@ -0,0 +1,23 @@
+#服务器端口
+server:
+ port: 8010
+
+#oss默认配置
+oss:
+ #开启oss配置
+ enabled: true
+ #开启oss类型
+ #minio、s3、qiniu、alioss、huaweiobs、tencentcos
+ name: qiniu
+ #租户模式
+ tenant-mode: true
+ #oss服务地址
+ endpoint: http://prt1thnw3.bkt.clouddn.com
+ #minio转换服务地址,用于内网上传后将返回地址改为转换的外网地址
+ transform-endpoint: http://localhost:9000
+ #访问key
+ access-key: N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h
+ #密钥key
+ secret-key: AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS
+ #存储桶
+ bucket-name: bladex
diff --git a/blade-ops/blade-resource/target/classes/liteflow/oss.el.png b/blade-ops/blade-resource/target/classes/liteflow/oss.el.png
new file mode 100644
index 0000000..277968e
Binary files /dev/null and b/blade-ops/blade-resource/target/classes/liteflow/oss.el.png differ
diff --git a/blade-ops/blade-resource/target/classes/liteflow/oss.el.xml b/blade-ops/blade-resource/target/classes/liteflow/oss.el.xml
new file mode 100644
index 0000000..930f54e
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/liteflow/oss.el.xml
@@ -0,0 +1,25 @@
+
+
+
+ THEN(
+ preOssRule,
+ SWITCH(ossCacheRule).TO(
+ ossReadRule,
+ THEN(
+ ossDataRule,
+ SWITCH(ossBuildRule).TO(
+ aliOssRule,
+ amazonS3Rule,
+ huaweiObsRule,
+ minioRule,
+ qiniuOssRule,
+ tencentCosRule,
+ localFileRule
+ ),
+ ossTemplateRule
+ ).id("ossNewRule")
+ ),
+ finallyOssRule
+ );
+
+
diff --git a/blade-ops/blade-resource/target/classes/liteflow/sms.el.png b/blade-ops/blade-resource/target/classes/liteflow/sms.el.png
new file mode 100644
index 0000000..a6feedc
Binary files /dev/null and b/blade-ops/blade-resource/target/classes/liteflow/sms.el.png differ
diff --git a/blade-ops/blade-resource/target/classes/liteflow/sms.el.xml b/blade-ops/blade-resource/target/classes/liteflow/sms.el.xml
new file mode 100644
index 0000000..585e7f7
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/liteflow/sms.el.xml
@@ -0,0 +1,16 @@
+
+
+
+ THEN(
+ preSmsRule,
+ SWITCH(smsBuildRule).TO(
+ aliSmsRule,
+ qiniuSmsRule,
+ tencentSmsRule,
+ yunpianSmsRule,
+ cacheSmsRule
+ ),
+ finallySmsRule
+ );
+
+
diff --git a/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/AttachMapper.xml b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/AttachMapper.xml
new file mode 100644
index 0000000..100fe46
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/AttachMapper.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_attach where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/OssMapper.xml b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/OssMapper.xml
new file mode 100644
index 0000000..96fdb57
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/OssMapper.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_oss where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/SmsMapper.xml b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/SmsMapper.xml
new file mode 100644
index 0000000..1f60a59
--- /dev/null
+++ b/blade-ops/blade-resource/target/classes/org/springblade/resource/mapper/SmsMapper.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from blade_sms where is_deleted = 0
+
+
+
diff --git a/blade-ops/blade-resource/target/maven-archiver/pom.properties b/blade-ops/blade-resource/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..1295ee1
--- /dev/null
+++ b/blade-ops/blade-resource/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:56 CST 2025
+groupId=org.springblade
+artifactId=blade-resource
+version=4.6.0.RELEASE
diff --git a/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..c69ce1f
--- /dev/null
+++ b/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,52 @@
+org\springblade\resource\builder\OssBuilder.class
+org\springblade\resource\rule\sms\TencentSmsRule.class
+org\springblade\resource\rule\oss\OssTemplateRule.class
+org\springblade\resource\service\impl\SmsServiceImpl.class
+org\springblade\resource\rule\oss\OssReadRule.class
+org\springblade\resource\rule\constant\OssRuleConstant.class
+org\springblade\resource\service\IOssService.class
+org\springblade\resource\controller\SmsController.class
+org\springblade\resource\mapper\AttachMapper.class
+org\springblade\resource\rule\oss\QiniuOssRule.class
+org\springblade\resource\config\BladeSmsConfiguration.class
+org\springblade\resource\endpoint\OssEndpoint.class
+org\springblade\resource\rule\oss\TencentCosRule.class
+org\springblade\resource\wrapper\SmsWrapper.class
+org\springblade\resource\rule\sms\FinallySmsRule.class
+org\springblade\resource\rule\oss\FinallyOssRule.class
+org\springblade\resource\rule\context\OssContext$OssContextBuilder.class
+org\springblade\resource\endpoint\SmsEndpoint.class
+org\springblade\resource\rule\oss\AmazonS3Rule.class
+org\springblade\resource\rule\oss\OssBuildRule.class
+org\springblade\resource\rule\oss\AliOssRule.class
+org\springblade\resource\rule\sms\PreSmsRule.class
+org\springblade\resource\config\BladeOssConfiguration.class
+org\springblade\resource\rule\context\SmsContext.class
+org\springblade\resource\rule\oss\LocalFileRule.class
+org\springblade\resource\service\impl\AttachServiceImpl.class
+org\springblade\resource\rule\sms\CacheSmsRule.class
+org\springblade\resource\controller\AttachController.class
+org\springblade\resource\rule\builder\SmsRuleBuilder.class
+org\springblade\resource\rule\context\OssContext.class
+org\springblade\resource\rule\constant\SmsRuleConstant.class
+org\springblade\resource\mapper\SmsMapper.class
+org\springblade\resource\rule\sms\AliSmsRule.class
+org\springblade\resource\wrapper\OssWrapper.class
+org\springblade\resource\mapper\OssMapper.class
+org\springblade\resource\rule\builder\OssRuleBuilder.class
+org\springblade\resource\rule\oss\HuaweiObsRule.class
+org\springblade\resource\builder\SmsBuilder.class
+org\springblade\resource\rule\oss\MinioRule.class
+org\springblade\resource\rule\oss\PreOssRule.class
+org\springblade\resource\controller\OssController.class
+org\springblade\resource\ResourceApplication.class
+org\springblade\resource\service\impl\OssServiceImpl.class
+org\springblade\resource\service\IAttachService.class
+org\springblade\resource\rule\sms\QiniuSmsRule.class
+org\springblade\resource\rule\sms\SmsBuildRule.class
+org\springblade\resource\rule\oss\OssCacheRule.class
+org\springblade\resource\feign\SmsClient.class
+org\springblade\resource\rule\context\SmsContext$SmsContextBuilder.class
+org\springblade\resource\rule\sms\YunpianSmsRule.class
+org\springblade\resource\rule\oss\OssDataRule.class
+org\springblade\resource\service\ISmsService.class
diff --git a/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..ff38971
--- /dev/null
+++ b/blade-ops/blade-resource/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,50 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\MinioRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\SmsBuildRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\ISmsService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\TencentCosRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\IOssService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\LocalFileRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\impl\SmsServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\controller\SmsController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\impl\OssServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\feign\SmsClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\config\BladeSmsConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\builder\SmsRuleBuilder.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\constant\SmsRuleConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\constant\OssRuleConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\builder\OssRuleBuilder.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\ResourceApplication.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\AliOssRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\impl\AttachServiceImpl.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\builder\OssBuilder.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\PreSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\wrapper\OssWrapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\OssCacheRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\QiniuSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\wrapper\SmsWrapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\builder\SmsBuilder.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\AliSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\endpoint\SmsEndpoint.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\PreOssRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\AmazonS3Rule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\FinallyOssRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\controller\AttachController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\OssTemplateRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\OssDataRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\config\BladeOssConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\YunpianSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\OssBuildRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\FinallySmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\CacheSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\context\OssContext.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\endpoint\OssEndpoint.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\mapper\SmsMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\mapper\OssMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\HuaweiObsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\service\IAttachService.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\controller\OssController.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\mapper\AttachMapper.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\context\SmsContext.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\sms\TencentSmsRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\QiniuOssRule.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-ops\blade-resource\src\main\java\org\springblade\resource\rule\oss\OssReadRule.java
diff --git a/blade-ops/blade-workflow/.flattened-pom.xml b/blade-ops/blade-workflow/.flattened-pom.xml
new file mode 100644
index 0000000..7e7cb8f
--- /dev/null
+++ b/blade-ops/blade-workflow/.flattened-pom.xml
@@ -0,0 +1,77 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-workflow
+ 1.14.0.RELEASE
+ blade-workflow
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ org.springblade
+ blade-user-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-system-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.flowable
+ flowable-spring-boot-starter
+ 7.1.0
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-plugin-api/.flattened-pom.xml b/blade-plugin-api/.flattened-pom.xml
new file mode 100644
index 0000000..5ce574b
--- /dev/null
+++ b/blade-plugin-api/.flattened-pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-plugin-api
+ 4.6.0.RELEASE
+ pom
+ blade-plugin-api
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-plugin/.flattened-pom.xml b/blade-plugin/.flattened-pom.xml
new file mode 100644
index 0000000..fd8c3c6
--- /dev/null
+++ b/blade-plugin/.flattened-pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-plugin
+ 4.6.0.RELEASE
+ pom
+ blade-plugin
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/.flattened-pom.xml b/blade-service-api/.flattened-pom.xml
new file mode 100644
index 0000000..967a77f
--- /dev/null
+++ b/blade-service-api/.flattened-pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-service-api
+ 4.6.0.RELEASE
+ pom
+ blade-service-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-desk-api/.flattened-pom.xml b/blade-service-api/blade-desk-api/.flattened-pom.xml
new file mode 100644
index 0000000..c680eae
--- /dev/null
+++ b/blade-service-api/blade-desk-api/.flattened-pom.xml
@@ -0,0 +1,66 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-desk-api
+ 4.6.0.RELEASE
+ blade-desk-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-data-record
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-desk-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-desk-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..4d1d805
--- /dev/null
+++ b/blade-service-api/blade-desk-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-desk-api=/blade-desk-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-desk-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-desk-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..61d75c5
--- /dev/null
+++ b/blade-service-api/blade-desk-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.desk.feign.INoticeClient
diff --git a/blade-service-api/blade-desk-api/target/maven-archiver/pom.properties b/blade-service-api/blade-desk-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..fae0319
--- /dev/null
+++ b/blade-service-api/blade-desk-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:05:18 CST 2025
+groupId=org.springblade
+artifactId=blade-desk-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..0f83e78
--- /dev/null
+++ b/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,5 @@
+META-INF\spring-devtools.properties
+org\springblade\desk\feign\INoticeClient.class
+org\springblade\desk\pojo\vo\NoticeVO.class
+META-INF\spring.factories
+org\springblade\desk\pojo\entity\Notice.class
diff --git a/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..d42b866
--- /dev/null
+++ b/blade-service-api/blade-desk-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,3 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-desk-api\src\main\java\org\springblade\desk\pojo\vo\NoticeVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-desk-api\src\main\java\org\springblade\desk\feign\INoticeClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-desk-api\src\main\java\org\springblade\desk\pojo\entity\Notice.java
diff --git a/blade-service-api/blade-dict-api/.flattened-pom.xml b/blade-service-api/blade-dict-api/.flattened-pom.xml
new file mode 100644
index 0000000..df80d69
--- /dev/null
+++ b/blade-service-api/blade-dict-api/.flattened-pom.xml
@@ -0,0 +1,66 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-dict-api
+ 4.6.0.RELEASE
+ blade-dict-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-dict-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-dict-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..5ad0e21
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-dict-api=/blade-dict-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-dict-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-dict-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..15f54ee
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,6 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.system.feign.IDictClientFallback,\
+ org.springblade.system.feign.IDictBizClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.system.feign.IDictBizClient,\
+ org.springblade.system.feign.IDictClient
diff --git a/blade-service-api/blade-dict-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-service-api/blade-dict-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..7e89c7a
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+org.springblade.system.feign.IDictBizClientFallback
+org.springblade.system.feign.IDictClientFallback
\ No newline at end of file
diff --git a/blade-service-api/blade-dict-api/target/maven-archiver/pom.properties b/blade-service-api/blade-dict-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..cf57a26
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:04:13 CST 2025
+groupId=org.springblade
+artifactId=blade-dict-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..9dc42da
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,17 @@
+META-INF\spring-devtools.properties
+org\springblade\system\pojo\dto\DictDTO.class
+org\springblade\system\pojo\entity\DictBiz.class
+org\springblade\system\cache\DictCache.class
+org\springblade\system\feign\IDictBizClientFallback.class
+META-INF\spring.factories
+org\springblade\system\cache\DictBizCache.class
+org\springblade\system\feign\IDictClientFallback.class
+org\springblade\system\pojo\vo\DictBizVO.class
+org\springblade\system\feign\IDictBizClient.class
+org\springblade\system\feign\IDictClient.class
+org\springblade\system\pojo\enums\DictBizEnum.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\system\pojo\entity\Dict.class
+org\springblade\system\constant\DictConstant.class
+org\springblade\system\pojo\enums\DictEnum.class
+org\springblade\system\pojo\vo\DictVO.class
diff --git a/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..eb154e7
--- /dev/null
+++ b/blade-service-api/blade-dict-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,14 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\entity\Dict.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\feign\IDictClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\cache\DictCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\enums\DictBizEnum.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\vo\DictBizVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\feign\IDictBizClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\dto\DictDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\constant\DictConstant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\feign\IDictBizClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\cache\DictBizCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\feign\IDictClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\entity\DictBiz.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\enums\DictEnum.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-dict-api\src\main\java\org\springblade\system\pojo\vo\DictVO.java
diff --git a/blade-service-api/blade-record-api/.flattened-pom.xml b/blade-service-api/blade-record-api/.flattened-pom.xml
new file mode 100644
index 0000000..57fb878
--- /dev/null
+++ b/blade-service-api/blade-record-api/.flattened-pom.xml
@@ -0,0 +1,78 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-record-api
+ 4.6.0.RELEASE
+ blade-record-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-core-secure
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-data-record
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-record-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-record-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..2e4812e
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-record-api=/blade-record-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-record-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-record-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..ca9ff7f
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,5 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.system.config.RecordConfiguration,\
+ org.springblade.system.feign.IDataRecordClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.system.feign.IDataRecordClient
diff --git a/blade-service-api/blade-record-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-service-api/blade-record-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..d02ae5c
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+org.springblade.system.feign.IDataRecordClientFallback
+org.springblade.system.config.RecordConfiguration
\ No newline at end of file
diff --git a/blade-service-api/blade-record-api/target/maven-archiver/pom.properties b/blade-service-api/blade-record-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..b679b1a
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:05:21 CST 2025
+groupId=org.springblade
+artifactId=blade-record-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..d7999ba
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,8 @@
+META-INF\spring-devtools.properties
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\system\handler\BladeRecordHandler$1.class
+org\springblade\system\config\RecordConfiguration.class
+org\springblade\system\handler\BladeRecordHandler.class
+META-INF\spring.factories
+org\springblade\system\feign\IDataRecordClientFallback.class
+org\springblade\system\feign\IDataRecordClient.class
diff --git a/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..c6fd6b1
--- /dev/null
+++ b/blade-service-api/blade-record-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-record-api\src\main\java\org\springblade\system\handler\BladeRecordHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-record-api\src\main\java\org\springblade\system\config\RecordConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-record-api\src\main\java\org\springblade\system\feign\IDataRecordClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-record-api\src\main\java\org\springblade\system\feign\IDataRecordClient.java
diff --git a/blade-service-api/blade-scheduling-api/.flattened-pom.xml b/blade-service-api/blade-scheduling-api/.flattened-pom.xml
new file mode 100644
index 0000000..1706b52
--- /dev/null
+++ b/blade-service-api/blade-scheduling-api/.flattened-pom.xml
@@ -0,0 +1,66 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-scheduling-api
+ 4.6.0.RELEASE
+ blade-scheduling-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-scheduling-api/target/maven-archiver/pom.properties b/blade-service-api/blade-scheduling-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..d63e418
--- /dev/null
+++ b/blade-service-api/blade-scheduling-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:05:41 CST 2025
+groupId=org.springblade
+artifactId=blade-scheduling-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-scope-api/.flattened-pom.xml b/blade-service-api/blade-scope-api/.flattened-pom.xml
new file mode 100644
index 0000000..7e26183
--- /dev/null
+++ b/blade-service-api/blade-scope-api/.flattened-pom.xml
@@ -0,0 +1,78 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-scope-api
+ 4.6.0.RELEASE
+ blade-scope-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-core-secure
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-data-scope
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-scope-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-scope-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..2313eaf
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-scope-api=/blade-scope-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-scope-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-scope-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..4a726de
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,7 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.system.config.ScopeConfiguration,\
+ org.springblade.system.feign.IDataScopeClientFallback,\
+ org.springblade.system.feign.IApiScopeClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.system.feign.IDataScopeClient,\
+ org.springblade.system.feign.IApiScopeClient
diff --git a/blade-service-api/blade-scope-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-service-api/blade-scope-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..fd259ed
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,3 @@
+org.springblade.system.config.ScopeConfiguration
+org.springblade.system.feign.IDataScopeClientFallback
+org.springblade.system.feign.IApiScopeClientFallback
\ No newline at end of file
diff --git a/blade-service-api/blade-scope-api/target/maven-archiver/pom.properties b/blade-service-api/blade-scope-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..a58f8ea
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:05:24 CST 2025
+groupId=org.springblade
+artifactId=blade-scope-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..605ef16
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,12 @@
+org\springblade\system\config\ScopeConfiguration.class
+org\springblade\system\feign\IApiScopeClient.class
+org\springblade\system\feign\IApiScopeClientFallback.class
+META-INF\spring-devtools.properties
+org\springblade\system\handler\DataScopeModelHandler.class
+org\springblade\system\cache\ApiScopeCache.class
+org\springblade\system\cache\DataScopeCache.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\system\feign\IDataScopeClientFallback.class
+org\springblade\system\handler\ApiScopePermissionHandler.class
+META-INF\spring.factories
+org\springblade\system\feign\IDataScopeClient.class
diff --git a/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..0d6b360
--- /dev/null
+++ b/blade-service-api/blade-scope-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,9 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\handler\ApiScopePermissionHandler.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\feign\IDataScopeClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\cache\ApiScopeCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\cache\DataScopeCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\config\ScopeConfiguration.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\feign\IApiScopeClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\feign\IApiScopeClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\feign\IDataScopeClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-scope-api\src\main\java\org\springblade\system\handler\DataScopeModelHandler.java
diff --git a/blade-service-api/blade-system-api/.flattened-pom.xml b/blade-service-api/blade-system-api/.flattened-pom.xml
new file mode 100644
index 0000000..a41011e
--- /dev/null
+++ b/blade-service-api/blade-system-api/.flattened-pom.xml
@@ -0,0 +1,66 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-system-api
+ 4.6.0.RELEASE
+ blade-system-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-system-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-system-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..b6148b6
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-system-api=/blade-system-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-system-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-system-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..2ae75ca
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ org.springblade.system.feign.ISysClientFallback
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.system.feign.ISysClient
diff --git a/blade-service-api/blade-system-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/blade-service-api/blade-system-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..e74ec16
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.springblade.system.feign.ISysClientFallback
\ No newline at end of file
diff --git a/blade-service-api/blade-system-api/target/maven-archiver/pom.properties b/blade-service-api/blade-system-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..d5ca318
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:03:41 CST 2025
+groupId=org.springblade
+artifactId=blade-system-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..bdcc3aa
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,45 @@
+org\springblade\system\pojo\vo\DataScopeVO.class
+org\springblade\system\pojo\vo\RecordDataVO.class
+org\springblade\system\pojo\dto\ParamDTO.class
+org\springblade\system\pojo\entity\Dept.class
+org\springblade\system\pojo\entity\ApiScope.class
+org\springblade\system\pojo\vo\ApiScopeVO.class
+org\springblade\system\pojo\vo\DeptVO.class
+org\springblade\system\pojo\vo\RoleMenuVO.class
+META-INF\spring.factories
+org\springblade\system\pojo\vo\PostVO.class
+org\springblade\system\pojo\vo\RegionVO.class
+org\springblade\system\pojo\vo\RoleVO.class
+org\springblade\system\pojo\entity\DataScope.class
+org\springblade\system\pojo\entity\Param.class
+org\springblade\system\feign\ISysClientFallback.class
+org\springblade\system\cache\ParamCache.class
+org\springblade\system\pojo\entity\AuthClient.class
+org\springblade\system\pojo\dto\RoleMenuDTO.class
+org\springblade\system\pojo\entity\TenantDatasource.class
+org\springblade\system\pojo\entity\Tenant.class
+org\springblade\system\pojo\vo\GrantVO.class
+org\springblade\system\cache\SysCache.class
+org\springblade\system\pojo\dto\MenuDTO.class
+META-INF\spring-devtools.properties
+org\springblade\system\pojo\entity\RecordData.class
+org\springblade\system\pojo\entity\Region.class
+org\springblade\system\pojo\entity\TenantPackage.class
+org\springblade\system\pojo\vo\TenantVO.class
+org\springblade\system\pojo\vo\CheckedTreeVO.class
+org\springblade\system\pojo\dto\PostDTO.class
+org\springblade\system\pojo\entity\Menu.class
+org\springblade\system\pojo\entity\RoleScope.class
+org\springblade\system\pojo\entity\TopMenu.class
+org\springblade\system\pojo\vo\GrantTreeVO.class
+org\springblade\system\pojo\dto\DeptDTO.class
+org\springblade\system\cache\RegionCache.class
+org\springblade\system\pojo\entity\RoleMenu.class
+org\springblade\system\pojo\entity\TopMenuSetting.class
+org\springblade\system\pojo\vo\ParamVO.class
+org\springblade\system\feign\ISysClient.class
+META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports
+org\springblade\system\pojo\dto\RoleDTO.class
+org\springblade\system\pojo\entity\Role.class
+org\springblade\system\pojo\vo\MenuVO.class
+org\springblade\system\pojo\entity\Post.class
diff --git a/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..2d410ed
--- /dev/null
+++ b/blade-service-api/blade-system-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,42 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Dept.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\PostVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\RoleScope.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\DataScope.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\cache\ParamCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\CheckedTreeVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\ParamVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\ApiScopeVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\cache\SysCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\GrantTreeVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\feign\ISysClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\ParamDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\feign\ISysClientFallback.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\TenantPackage.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\PostDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\TopMenuSetting.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\DataScopeVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Tenant.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\DeptDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\RecordDataVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Region.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\RoleMenu.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\RecordData.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\GrantVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\MenuVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\RegionVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\DeptVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\MenuDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\TopMenu.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\TenantVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Role.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\ApiScope.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\AuthClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\TenantDatasource.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\cache\RegionCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\RoleDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\RoleVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\dto\RoleMenuDTO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\vo\RoleMenuVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Post.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Menu.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-system-api\src\main\java\org\springblade\system\pojo\entity\Param.java
diff --git a/blade-service-api/blade-user-api/.flattened-pom.xml b/blade-service-api/blade-user-api/.flattened-pom.xml
new file mode 100644
index 0000000..e4151ea
--- /dev/null
+++ b/blade-service-api/blade-user-api/.flattened-pom.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-user-api
+ 4.6.0.RELEASE
+ blade-user-api
+ BladeX 微服务API集合
+
+
+ org.springblade
+ blade-core-tool
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-cache
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-mybatis
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+ 4.1.4
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-core-auto
+ 4.6.0.RELEASE
+ provided
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service-api/blade-user-api/target/classes/META-INF/spring-devtools.properties b/blade-service-api/blade-user-api/target/classes/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..9cccbcb
--- /dev/null
+++ b/blade-service-api/blade-user-api/target/classes/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.blade-user-api=/blade-user-api[\\w-]+\.jar
\ No newline at end of file
diff --git a/blade-service-api/blade-user-api/target/classes/META-INF/spring.factories b/blade-service-api/blade-user-api/target/classes/META-INF/spring.factories
new file mode 100644
index 0000000..cbe46c6
--- /dev/null
+++ b/blade-service-api/blade-user-api/target/classes/META-INF/spring.factories
@@ -0,0 +1,3 @@
+org.springblade.core.cloud.feign.BladeFeignAutoConfiguration=\
+ org.springblade.system.feign.IUserClient,\
+ org.springblade.system.feign.IUserSearchClient
diff --git a/blade-service-api/blade-user-api/target/maven-archiver/pom.properties b/blade-service-api/blade-user-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..8b40771
--- /dev/null
+++ b/blade-service-api/blade-user-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Nov 07 14:03:33 CST 2025
+groupId=org.springblade
+artifactId=blade-user-api
+version=4.6.0.RELEASE
diff --git a/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..0c04ac1
--- /dev/null
+++ b/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,14 @@
+org\springblade\system\pojo\entity\UserOauth.class
+META-INF\spring-devtools.properties
+org\springblade\system\pojo\entity\UserInfo.class
+org\springblade\system\pojo\vo\UserVO.class
+org\springblade\system\feign\IUserSearchClient.class
+org\springblade\system\pojo\entity\UserWeb.class
+META-INF\spring.factories
+org\springblade\system\pojo\entity\User.class
+org\springblade\system\pojo\enums\UserType.class
+org\springblade\system\feign\IUserClient.class
+org\springblade\system\pojo\entity\UserApp.class
+org\springblade\system\pojo\entity\UserDept.class
+org\springblade\system\pojo\entity\UserOther.class
+org\springblade\system\cache\UserCache.class
diff --git a/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..d131279
--- /dev/null
+++ b/blade-service-api/blade-user-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,12 @@
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserInfo.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserOauth.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserWeb.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\feign\IUserSearchClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\feign\IUserClient.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserOther.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\cache\UserCache.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\enums\UserType.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserDept.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\vo\UserVO.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\UserApp.java
+D:\ideaworkspeate\jonhon-mes-svr\blade-service-api\blade-user-api\src\main\java\org\springblade\system\pojo\entity\User.java
diff --git a/blade-service/.flattened-pom.xml b/blade-service/.flattened-pom.xml
new file mode 100644
index 0000000..eef8e5f
--- /dev/null
+++ b/blade-service/.flattened-pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-service
+ 4.6.0.RELEASE
+ pom
+ blade-service
+ BladeX 微服务集合
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-api-crypto
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-dict-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-record-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-scope-api
+ 4.6.0.RELEASE
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service/blade-desk/.flattened-pom.xml b/blade-service/blade-desk/.flattened-pom.xml
new file mode 100644
index 0000000..f4dadb0
--- /dev/null
+++ b/blade-service/blade-desk/.flattened-pom.xml
@@ -0,0 +1,144 @@
+
+
+ 4.0.0
+ org.springblade
+ blade-desk
+ 4.6.0.RELEASE
+ blade-desk
+ BladeX 微服务集合
+
+
+ org.springblade
+ blade-core-boot
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-swagger
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-desk-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-user-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-flow-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-oss
+ 4.6.0.RELEASE
+ compile
+
+
+ io.minio
+ minio
+ 8.5.7
+ compile
+
+
+ com.qiniu
+ qiniu-java-sdk
+ 7.12.1
+ compile
+
+
+ org.flowable
+ flowable-engine
+ 7.1.0
+ compile
+
+
+ org.springblade
+ blade-starter-excel
+ 4.6.0.RELEASE
+ compile
+
+
+ cn.hutool
+ hutool-all
+ 5.8.16
+ compile
+
+
+ org.springblade
+ blade-common
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-metrics
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-starter-api-crypto
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-dict-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-record-api
+ 4.6.0.RELEASE
+ compile
+
+
+ org.springblade
+ blade-scope-api
+ 4.6.0.RELEASE
+ compile
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.2.19
+ compile
+
+
+ org.springblade
+ blade-starter-tenant
+ 4.6.0.RELEASE
+ compile
+
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.5.0.0
+ compile
+
+
+ com.oracle.database.nls
+ orai18n
+ 19.15.0.0
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+
diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml
index 9cdd378..8651610 100644
--- a/blade-service/blade-desk/pom.xml
+++ b/blade-service/blade-desk/pom.xml
@@ -66,6 +66,7 @@
org.springblade
blade-starter-excel
+
org.springblade
@@ -73,6 +74,13 @@
4.6.0.RELEASE
compile
+
+
+
+ cn.hutool
+ hutool-all
+ 5.8.16
+
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java
new file mode 100644
index 0000000..adfa52c
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java
@@ -0,0 +1,54 @@
+package org.springblade.desk.dashboard.constant;
+
+/**
+ * @author: liweidong
+ * @create: 2025-11-13
+ */
+public interface TaskingConstant {
+
+ /**
+ * 待分派
+ */
+ Integer TASK_STATUS_WAIT = 0;
+ /**
+ * 已分派 待接收
+ */
+ Integer TASK_STATUS_ALREADY = 1;
+
+ /**
+ * 进行中
+ */
+ Integer TASK_STATUS_UNDERWAY = 2;
+
+ /**
+ * 已完成
+ */
+ Integer TASK_STATUS_COMPLETED = 3;
+
+
+ /**
+ * 定时任务
+ * 超时未分派 时间配置
+ * 3 天
+ */
+ Integer TIMEOUT_UNDISTRIBUTED = 3 ;
+
+ /**
+ * 定时任务
+ * 超时未处理 时间配置
+ * 3 天
+ */
+ Integer TIMEOUT_UNTREATED = 3 ;
+
+ /**
+ * 定时任务
+ * 零件预警天数
+ * 提前多少天提醒
+ */
+ Integer PART_EARLY_WARNING = 3;
+
+ /**
+ * 是否是烧结零件
+ */
+ String IS_SINTERING = "1";
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsCraftAbilityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsCraftAbilityController.java
new file mode 100644
index 0000000..ee86ee1
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsCraftAbilityController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsCraftAbilityVO;
+import org.springblade.desk.dashboard.excel.BsCraftAbilityExcel;
+import org.springblade.desk.dashboard.wrapper.BsCraftAbilityWrapper;
+import org.springblade.desk.dashboard.service.IBsCraftAbilityService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工艺能力表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsCraftAbility")
+@Tag(name = "工艺能力表", description = "工艺能力表接口")
+public class BsCraftAbilityController extends BladeController {
+
+ private final IBsCraftAbilityService bsCraftAbilityService;
+
+ /**
+ * 工艺能力表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsCraftAbility")
+ public R detail(BsCraftAbilityEntity bsCraftAbility) {
+ BsCraftAbilityEntity detail = bsCraftAbilityService.getOne(Condition.getQueryWrapper(bsCraftAbility));
+ return R.data(BsCraftAbilityWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工艺能力表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsCraftAbility")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsCraftAbility, Query query) {
+ IPage pages = bsCraftAbilityService.page(Condition.getPage(query), Condition.getQueryWrapper(bsCraftAbility, BsCraftAbilityEntity.class));
+ return R.data(BsCraftAbilityWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工艺能力表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsCraftAbility")
+ public R> page(BsCraftAbilityVO bsCraftAbility, Query query) {
+ IPage pages = bsCraftAbilityService.selectBsCraftAbilityPage(Condition.getPage(query), bsCraftAbility);
+ return R.data(pages);
+ }
+
+ /**
+ * 工艺能力表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsCraftAbility")
+ public R save(@Valid @RequestBody BsCraftAbilityEntity bsCraftAbility) {
+ return R.status(bsCraftAbilityService.save(bsCraftAbility));
+ }
+
+ /**
+ * 工艺能力表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsCraftAbility")
+ public R update(@Valid @RequestBody BsCraftAbilityEntity bsCraftAbility) {
+ return R.status(bsCraftAbilityService.updateById(bsCraftAbility));
+ }
+
+ /**
+ * 工艺能力表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsCraftAbility")
+ public R submit(@Valid @RequestBody BsCraftAbilityEntity bsCraftAbility) {
+ return R.status(bsCraftAbilityService.saveOrUpdate(bsCraftAbility));
+ }
+
+ /**
+ * 工艺能力表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsCraftAbilityService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsCraftAbility")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsCraftAbility")
+ public void exportBsCraftAbility(@Parameter(hidden = true) @RequestParam Map bsCraftAbility, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsCraftAbility, BsCraftAbilityEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsCraftAbility::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsCraftAbilityEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsCraftAbilityService.exportBsCraftAbility(queryWrapper);
+ ExcelUtil.export(response, "工艺能力表数据" + DateUtil.time(), "工艺能力表数据表", list, BsCraftAbilityExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java
new file mode 100644
index 0000000..b2fe9ba
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsPlatingEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsPlatingVO;
+import org.springblade.desk.dashboard.excel.BsPlatingExcel;
+import org.springblade.desk.dashboard.wrapper.BsPlatingWrapper;
+import org.springblade.desk.dashboard.service.IBsPlatingService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 镀种信息表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsPlating")
+@Tag(name = "镀种信息表", description = "镀种信息表接口")
+public class BsPlatingController extends BladeController {
+
+ private final IBsPlatingService bsPlatingService;
+
+ /**
+ * 镀种信息表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsPlating")
+ public R detail(BsPlatingEntity bsPlating) {
+ BsPlatingEntity detail = bsPlatingService.getOne(Condition.getQueryWrapper(bsPlating));
+ return R.data(BsPlatingWrapper.build().entityVO(detail));
+ }
+ /**
+ * 镀种信息表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsPlating")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsPlating, Query query) {
+ IPage pages = bsPlatingService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class));
+ return R.data(BsPlatingWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 镀种信息表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsPlating")
+ public R> page(BsPlatingVO bsPlating, Query query) {
+ IPage pages = bsPlatingService.selectBsPlatingPage(Condition.getPage(query), bsPlating);
+ return R.data(pages);
+ }
+
+ /**
+ * 镀种信息表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsPlating")
+ public R save(@Valid @RequestBody BsPlatingEntity bsPlating) {
+ return R.status(bsPlatingService.save(bsPlating));
+ }
+
+ /**
+ * 镀种信息表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsPlating")
+ public R update(@Valid @RequestBody BsPlatingEntity bsPlating) {
+ return R.status(bsPlatingService.updateById(bsPlating));
+ }
+
+ /**
+ * 镀种信息表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsPlating")
+ public R submit(@Valid @RequestBody BsPlatingEntity bsPlating) {
+ return R.status(bsPlatingService.saveOrUpdate(bsPlating));
+ }
+
+ /**
+ * 镀种信息表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsPlatingService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsPlating")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsPlating")
+ public void exportBsPlating(@Parameter(hidden = true) @RequestParam Map bsPlating, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlating, BsPlatingEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsPlating::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsPlatingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsPlatingService.exportBsPlating(queryWrapper);
+ ExcelUtil.export(response, "镀种信息表数据" + DateUtil.time(), "镀种信息表数据表", list, BsPlatingExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeAssignController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeAssignController.java
new file mode 100644
index 0000000..c94cde2
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeAssignController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsPlatingTypeAssignEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsPlatingTypeAssignVO;
+import org.springblade.desk.dashboard.excel.BsPlatingTypeAssignExcel;
+import org.springblade.desk.dashboard.wrapper.BsPlatingTypeAssignWrapper;
+import org.springblade.desk.dashboard.service.IBsPlatingTypeAssignService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 镀种分类工艺员分配表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-14
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsPlatingTypeAssign")
+@Tag(name = "镀种分类工艺员分配表", description = "镀种分类工艺员分配表接口")
+public class BsPlatingTypeAssignController extends BladeController {
+
+ private final IBsPlatingTypeAssignService bsPlatingTypeAssignService;
+
+ /**
+ * 镀种分类工艺员分配表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsPlatingTypeAssign")
+ public R detail(BsPlatingTypeAssignEntity bsPlatingTypeAssign) {
+ BsPlatingTypeAssignEntity detail = bsPlatingTypeAssignService.getOne(Condition.getQueryWrapper(bsPlatingTypeAssign));
+ return R.data(BsPlatingTypeAssignWrapper.build().entityVO(detail));
+ }
+ /**
+ * 镀种分类工艺员分配表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsPlatingTypeAssign")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsPlatingTypeAssign, Query query) {
+ IPage pages = bsPlatingTypeAssignService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlatingTypeAssign, BsPlatingTypeAssignEntity.class));
+ return R.data(BsPlatingTypeAssignWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 镀种分类工艺员分配表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsPlatingTypeAssign")
+ public R> page(BsPlatingTypeAssignVO bsPlatingTypeAssign, Query query) {
+ IPage pages = bsPlatingTypeAssignService.selectBsPlatingTypeAssignPage(Condition.getPage(query), bsPlatingTypeAssign);
+ return R.data(pages);
+ }
+
+ /**
+ * 镀种分类工艺员分配表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsPlatingTypeAssign")
+ public R save(@Valid @RequestBody BsPlatingTypeAssignEntity bsPlatingTypeAssign) {
+ return R.status(bsPlatingTypeAssignService.save(bsPlatingTypeAssign));
+ }
+
+ /**
+ * 镀种分类工艺员分配表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsPlatingTypeAssign")
+ public R update(@Valid @RequestBody BsPlatingTypeAssignEntity bsPlatingTypeAssign) {
+ return R.status(bsPlatingTypeAssignService.updateById(bsPlatingTypeAssign));
+ }
+
+ /**
+ * 镀种分类工艺员分配表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsPlatingTypeAssign")
+ public R submit(@Valid @RequestBody BsPlatingTypeAssignEntity bsPlatingTypeAssign) {
+ return R.status(bsPlatingTypeAssignService.saveOrUpdate(bsPlatingTypeAssign));
+ }
+
+ /**
+ * 镀种分类工艺员分配表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsPlatingTypeAssignService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsPlatingTypeAssign")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsPlatingTypeAssign")
+ public void exportBsPlatingTypeAssign(@Parameter(hidden = true) @RequestParam Map bsPlatingTypeAssign, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlatingTypeAssign, BsPlatingTypeAssignEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsPlatingTypeAssign::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsPlatingTypeAssignEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsPlatingTypeAssignService.exportBsPlatingTypeAssign(queryWrapper);
+ ExcelUtil.export(response, "镀种分类工艺员分配表数据" + DateUtil.time(), "镀种分类工艺员分配表数据表", list, BsPlatingTypeAssignExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeController.java
new file mode 100644
index 0000000..dd5ddf0
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeController.java
@@ -0,0 +1,174 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.desk.dashboard.pojo.vo.BsPlatingTypeListVO;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsPlatingTypeEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsPlatingTypeVO;
+import org.springblade.desk.dashboard.excel.BsPlatingTypeExcel;
+import org.springblade.desk.dashboard.wrapper.BsPlatingTypeWrapper;
+import org.springblade.desk.dashboard.service.IBsPlatingTypeService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 镀种分类表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsPlatingType")
+@Tag(name = "镀种分类表", description = "镀种分类表接口")
+public class BsPlatingTypeController extends BladeController {
+
+ private final IBsPlatingTypeService bsPlatingTypeService;
+
+ /**
+ * 镀种分类表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsPlatingType")
+ public R detail(BsPlatingTypeEntity bsPlatingType) {
+ BsPlatingTypeEntity detail = bsPlatingTypeService.getOne(Condition.getQueryWrapper(bsPlatingType));
+ return R.data(BsPlatingTypeWrapper.build().entityVO(detail));
+ }
+ /**
+ * 镀种分类表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsPlatingType")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsPlatingType, Query query) {
+ IPage pages = bsPlatingTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlatingType, BsPlatingTypeEntity.class));
+ return R.data(BsPlatingTypeWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 镀种分类表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsPlatingType")
+ public R> page(BsPlatingTypeVO bsPlatingType, Query query) {
+ IPage pages = bsPlatingTypeService.selectBsPlatingTypePage(Condition.getPage(query), bsPlatingType);
+ return R.data(pages);
+ }
+
+ /**
+ * 镀种分类表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsPlatingType")
+ public R save(@Valid @RequestBody BsPlatingTypeEntity bsPlatingType) {
+ return R.status(bsPlatingTypeService.save(bsPlatingType));
+ }
+
+ /**
+ * 镀种分类表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsPlatingType")
+ public R update(@Valid @RequestBody BsPlatingTypeEntity bsPlatingType) {
+ return R.status(bsPlatingTypeService.updateById(bsPlatingType));
+ }
+
+ /**
+ * 镀种分类表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsPlatingType")
+ public R submit(@Valid @RequestBody BsPlatingTypeEntity bsPlatingType) {
+ return R.status(bsPlatingTypeService.saveOrUpdate(bsPlatingType));
+ }
+
+ /**
+ * 镀种分类表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsPlatingTypeService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsPlatingType")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsPlatingType")
+ public void exportBsPlatingType(@Parameter(hidden = true) @RequestParam Map bsPlatingType, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlatingType, BsPlatingTypeEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsPlatingType::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsPlatingTypeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsPlatingTypeService.exportBsPlatingType(queryWrapper);
+ ExcelUtil.export(response, "镀种分类表数据" + DateUtil.time(), "镀种分类表数据表", list, BsPlatingTypeExcel.class);
+ }
+
+
+ /**
+ * 镀种分类表 详情
+ */
+ @GetMapping("/getPlatingType")
+ @ApiOperationSupport(order = 10)
+ @Operation(summary = "详情", description = "传入bsPlatingType")
+ public R> getPlatingType() {
+ List platingTypeListVOS = bsPlatingTypeService.getPlatingType();
+
+ return R.data(platingTypeListVOS);
+ }
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeSmallController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeSmallController.java
new file mode 100644
index 0000000..65011ae
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsPlatingTypeSmallController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsPlatingTypeSmallEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsPlatingTypeSmallVO;
+import org.springblade.desk.dashboard.excel.BsPlatingTypeSmallExcel;
+import org.springblade.desk.dashboard.wrapper.BsPlatingTypeSmallWrapper;
+import org.springblade.desk.dashboard.service.IBsPlatingTypeSmallService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 镀种小类表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsPlatingTypeSmall")
+@Tag(name = "镀种小类表", description = "镀种小类表接口")
+public class BsPlatingTypeSmallController extends BladeController {
+
+ private final IBsPlatingTypeSmallService bsPlatingTypeSmallService;
+
+ /**
+ * 镀种小类表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsPlatingTypeSmall")
+ public R detail(BsPlatingTypeSmallEntity bsPlatingTypeSmall) {
+ BsPlatingTypeSmallEntity detail = bsPlatingTypeSmallService.getOne(Condition.getQueryWrapper(bsPlatingTypeSmall));
+ return R.data(BsPlatingTypeSmallWrapper.build().entityVO(detail));
+ }
+ /**
+ * 镀种小类表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsPlatingTypeSmall")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsPlatingTypeSmall, Query query) {
+ IPage pages = bsPlatingTypeSmallService.page(Condition.getPage(query), Condition.getQueryWrapper(bsPlatingTypeSmall, BsPlatingTypeSmallEntity.class));
+ return R.data(BsPlatingTypeSmallWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 镀种小类表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsPlatingTypeSmall")
+ public R> page(BsPlatingTypeSmallVO bsPlatingTypeSmall, Query query) {
+ IPage pages = bsPlatingTypeSmallService.selectBsPlatingTypeSmallPage(Condition.getPage(query), bsPlatingTypeSmall);
+ return R.data(pages);
+ }
+
+ /**
+ * 镀种小类表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsPlatingTypeSmall")
+ public R save(@Valid @RequestBody BsPlatingTypeSmallEntity bsPlatingTypeSmall) {
+ return R.status(bsPlatingTypeSmallService.save(bsPlatingTypeSmall));
+ }
+
+ /**
+ * 镀种小类表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsPlatingTypeSmall")
+ public R update(@Valid @RequestBody BsPlatingTypeSmallEntity bsPlatingTypeSmall) {
+ return R.status(bsPlatingTypeSmallService.updateById(bsPlatingTypeSmall));
+ }
+
+ /**
+ * 镀种小类表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsPlatingTypeSmall")
+ public R submit(@Valid @RequestBody BsPlatingTypeSmallEntity bsPlatingTypeSmall) {
+ return R.status(bsPlatingTypeSmallService.saveOrUpdate(bsPlatingTypeSmall));
+ }
+
+ /**
+ * 镀种小类表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsPlatingTypeSmallService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsPlatingTypeSmall")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsPlatingTypeSmall")
+ public void exportBsPlatingTypeSmall(@Parameter(hidden = true) @RequestParam Map bsPlatingTypeSmall, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsPlatingTypeSmall, BsPlatingTypeSmallEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsPlatingTypeSmall::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsPlatingTypeSmallEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsPlatingTypeSmallService.exportBsPlatingTypeSmall(queryWrapper);
+ ExcelUtil.export(response, "镀种小类表数据" + DateUtil.time(), "镀种小类表数据表", list, BsPlatingTypeSmallExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessGroupController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessGroupController.java
new file mode 100644
index 0000000..acabbdd
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessGroupController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsProcessGroupEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsProcessGroupVO;
+import org.springblade.desk.dashboard.excel.BsProcessGroupExcel;
+import org.springblade.desk.dashboard.wrapper.BsProcessGroupWrapper;
+import org.springblade.desk.dashboard.service.IBsProcessGroupService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工序组管理表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsProcessGroup")
+@Tag(name = "工序组管理表", description = "工序组管理表接口")
+public class BsProcessGroupController extends BladeController {
+
+ private final IBsProcessGroupService bsProcessGroupService;
+
+ /**
+ * 工序组管理表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsProcessGroup")
+ public R detail(BsProcessGroupEntity bsProcessGroup) {
+ BsProcessGroupEntity detail = bsProcessGroupService.getOne(Condition.getQueryWrapper(bsProcessGroup));
+ return R.data(BsProcessGroupWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工序组管理表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsProcessGroup")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsProcessGroup, Query query) {
+ IPage pages = bsProcessGroupService.page(Condition.getPage(query), Condition.getQueryWrapper(bsProcessGroup, BsProcessGroupEntity.class));
+ return R.data(BsProcessGroupWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工序组管理表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsProcessGroup")
+ public R> page(BsProcessGroupVO bsProcessGroup, Query query) {
+ IPage pages = bsProcessGroupService.selectBsProcessGroupPage(Condition.getPage(query), bsProcessGroup);
+ return R.data(pages);
+ }
+
+ /**
+ * 工序组管理表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsProcessGroup")
+ public R save(@Valid @RequestBody BsProcessGroupEntity bsProcessGroup) {
+ return R.status(bsProcessGroupService.save(bsProcessGroup));
+ }
+
+ /**
+ * 工序组管理表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsProcessGroup")
+ public R update(@Valid @RequestBody BsProcessGroupEntity bsProcessGroup) {
+ return R.status(bsProcessGroupService.updateById(bsProcessGroup));
+ }
+
+ /**
+ * 工序组管理表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsProcessGroup")
+ public R submit(@Valid @RequestBody BsProcessGroupEntity bsProcessGroup) {
+ return R.status(bsProcessGroupService.saveOrUpdate(bsProcessGroup));
+ }
+
+ /**
+ * 工序组管理表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsProcessGroupService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsProcessGroup")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsProcessGroup")
+ public void exportBsProcessGroup(@Parameter(hidden = true) @RequestParam Map bsProcessGroup, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsProcessGroup, BsProcessGroupEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsProcessGroup::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsProcessGroupEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsProcessGroupService.exportBsProcessGroup(queryWrapper);
+ ExcelUtil.export(response, "工序组管理表数据" + DateUtil.time(), "工序组管理表数据表", list, BsProcessGroupExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java
new file mode 100644
index 0000000..140409b
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java
@@ -0,0 +1,219 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import jakarta.annotation.Resource;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
+import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsProcessSetVO;
+import org.springblade.desk.dashboard.excel.BsProcessSetExcel;
+import org.springblade.desk.dashboard.pojo.vo.BsProcessTeamVO;
+import org.springblade.desk.dashboard.pojo.vo.BsTeamProcessVO;
+import org.springblade.desk.dashboard.pojo.vo.BsTeamSetEntityVO;
+import org.springblade.desk.dashboard.service.IBsProcessSetService;
+import org.springblade.desk.dashboard.service.IBsProcessTeamService;
+import org.springblade.desk.dashboard.service.IBsTeamSetService;
+import org.springblade.desk.dashboard.wrapper.BsProcessSetWrapper;
+import org.springframework.web.bind.annotation.*;
+
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+
+
+
+
+/**
+ * 工序设置表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-11
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsProcessSet")
+@Tag(name = "工序设置表", description = "工序设置表接口")
+public class BsProcessSetController extends BladeController {
+
+ private final IBsProcessSetService bsProcessSetService;
+
+ @Resource
+ private IBsProcessTeamService processTeamService;
+
+ @Resource
+ private IBsTeamSetService teamSetService;
+
+
+ /**
+ * 工序设置表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsProcessSet")
+ public R detail(BsProcessSetEntity bsProcessSet) {
+ BsProcessSetEntity detail = bsProcessSetService.getOne(Condition.getQueryWrapper(bsProcessSet));
+ return R.data(BsProcessSetWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工序设置表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsProcessSet")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsProcessSet, Query query) {
+ IPage pages = bsProcessSetService.page(Condition.getPage(query), Condition.getQueryWrapper(bsProcessSet, BsProcessSetEntity.class));
+ return R.data(BsProcessSetWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工序设置表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsProcessSet")
+ public R> page(BsProcessSetVO bsProcessSet, Query query) {
+ IPage pages = bsProcessSetService.selectBsProcessSetPage(Condition.getPage(query), bsProcessSet);
+ return R.data(pages);
+ }
+
+ /**
+ * 工序设置表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsProcessSet")
+ public R save(@Valid @RequestBody BsProcessSetEntity bsProcessSet) {
+ return R.status(bsProcessSetService.save(bsProcessSet));
+ }
+
+ /**
+ * 工序设置表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsProcessSet")
+ public R update(@Valid @RequestBody BsProcessSetEntity bsProcessSet) {
+ return R.status(bsProcessSetService.updateById(bsProcessSet));
+ }
+
+ /**
+ * 工序设置表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsProcessSet")
+ public R submit(@Valid @RequestBody BsProcessSetEntity bsProcessSet) {
+ return R.status(bsProcessSetService.saveOrUpdate(bsProcessSet));
+ }
+
+ /**
+ * 工序设置表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsProcessSetService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsProcessSet")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsProcessSet")
+ public void exportBsProcessSet(@Parameter(hidden = true) @RequestParam Map bsProcessSet, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsProcessSet, BsProcessSetEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsProcessSet::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsProcessSetEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsProcessSetService.exportBsProcessSet(queryWrapper);
+ ExcelUtil.export(response, "工序设置表数据" + DateUtil.time(), "工序设置表数据表", list, BsProcessSetExcel.class);
+ }
+
+
+ /**
+ * 设置班组
+ */
+ @GetMapping("/findTeamByPs")
+ @ApiOperationSupport(order = 10)
+ @Operation(summary = "设置班组", description = "工序设置ID")
+ public R findTeamByPs(@RequestParam String pId) {
+
+ BsTeamProcessVO bsTeamProcessVO = new BsTeamProcessVO();
+
+ Integer special = 1;
+ //未选择的班组 特殊类型
+ List teamSetEntityList = teamSetService.selectBsTeamSetBySpecial(special);
+
+ //以有的班组
+ List processTeamVOList = processTeamService.selectBsProcessTeamByPid(pId);
+ bsTeamProcessVO.setTeamSetEntityList(teamSetEntityList);
+ bsTeamProcessVO.setProcessTeamVOList(processTeamVOList);
+ return R.data(bsTeamProcessVO);
+ }
+
+
+ /**
+ * 增加删除班组
+ */
+ @PostMapping("/addOrUpdateTeam")
+ @ApiOperationSupport(order = 11)
+ @Operation(summary = "增加删除班组", description = "班组ids")
+ public R addOrUpdateTeam(@Parameter(description = "主键集合", required = true)
+ @RequestParam List tsIdList,
+ @RequestParam Long pId
+ ) {
+
+ return R.status(bsProcessSetService.addOrUpdateTeam(pId,tsIdList));
+ }
+
+
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessTeamController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessTeamController.java
new file mode 100644
index 0000000..4e2e97c
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessTeamController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsProcessTeamEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsProcessTeamVO;
+import org.springblade.desk.dashboard.excel.BsProcessTeamExcel;
+import org.springblade.desk.dashboard.wrapper.BsProcessTeamWrapper;
+import org.springblade.desk.dashboard.service.IBsProcessTeamService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工序班组关联表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-17
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsProcessTeam")
+@Tag(name = "工序班组关联表", description = "工序班组关联表接口")
+public class BsProcessTeamController extends BladeController {
+
+ private final IBsProcessTeamService bsProcessTeamService;
+
+ /**
+ * 工序班组关联表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsProcessTeam")
+ public R detail(BsProcessTeamEntity bsProcessTeam) {
+ BsProcessTeamEntity detail = bsProcessTeamService.getOne(Condition.getQueryWrapper(bsProcessTeam));
+ return R.data(BsProcessTeamWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工序班组关联表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsProcessTeam")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsProcessTeam, Query query) {
+ IPage pages = bsProcessTeamService.page(Condition.getPage(query), Condition.getQueryWrapper(bsProcessTeam, BsProcessTeamEntity.class));
+ return R.data(BsProcessTeamWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工序班组关联表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsProcessTeam")
+ public R> page(BsProcessTeamVO bsProcessTeam, Query query) {
+ IPage pages = bsProcessTeamService.selectBsProcessTeamPage(Condition.getPage(query), bsProcessTeam);
+ return R.data(pages);
+ }
+
+ /**
+ * 工序班组关联表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsProcessTeam")
+ public R save(@Valid @RequestBody BsProcessTeamEntity bsProcessTeam) {
+ return R.status(bsProcessTeamService.save(bsProcessTeam));
+ }
+
+ /**
+ * 工序班组关联表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsProcessTeam")
+ public R update(@Valid @RequestBody BsProcessTeamEntity bsProcessTeam) {
+ return R.status(bsProcessTeamService.updateById(bsProcessTeam));
+ }
+
+ /**
+ * 工序班组关联表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsProcessTeam")
+ public R submit(@Valid @RequestBody BsProcessTeamEntity bsProcessTeam) {
+ return R.status(bsProcessTeamService.saveOrUpdate(bsProcessTeam));
+ }
+
+ /**
+ * 工序班组关联表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsProcessTeamService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsProcessTeam")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsProcessTeam")
+ public void exportBsProcessTeam(@Parameter(hidden = true) @RequestParam Map bsProcessTeam, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsProcessTeam, BsProcessTeamEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsProcessTeam::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsProcessTeamEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsProcessTeamService.exportBsProcessTeam(queryWrapper);
+ ExcelUtil.export(response, "工序班组关联表数据" + DateUtil.time(), "工序班组关联表数据表", list, BsProcessTeamExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsTeamSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsTeamSetController.java
new file mode 100644
index 0000000..7eceea8
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsTeamSetController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsTeamSetVO;
+import org.springblade.desk.dashboard.excel.BsTeamSetExcel;
+import org.springblade.desk.dashboard.wrapper.BsTeamSetWrapper;
+import org.springblade.desk.dashboard.service.IBsTeamSetService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 班组设置表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-17
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsTeamSet")
+@Tag(name = "班组设置表", description = "班组设置表接口")
+public class BsTeamSetController extends BladeController {
+
+ private final IBsTeamSetService bsTeamSetService;
+
+ /**
+ * 班组设置表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsTeamSet")
+ public R detail(BsTeamSetEntity bsTeamSet) {
+ BsTeamSetEntity detail = bsTeamSetService.getOne(Condition.getQueryWrapper(bsTeamSet));
+ return R.data(BsTeamSetWrapper.build().entityVO(detail));
+ }
+ /**
+ * 班组设置表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsTeamSet")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsTeamSet, Query query) {
+ IPage pages = bsTeamSetService.page(Condition.getPage(query), Condition.getQueryWrapper(bsTeamSet, BsTeamSetEntity.class));
+ return R.data(BsTeamSetWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 班组设置表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsTeamSet")
+ public R> page(BsTeamSetVO bsTeamSet, Query query) {
+ IPage pages = bsTeamSetService.selectBsTeamSetPage(Condition.getPage(query), bsTeamSet);
+ return R.data(pages);
+ }
+
+ /**
+ * 班组设置表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsTeamSet")
+ public R save(@Valid @RequestBody BsTeamSetEntity bsTeamSet) {
+ return R.status(bsTeamSetService.save(bsTeamSet));
+ }
+
+ /**
+ * 班组设置表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsTeamSet")
+ public R update(@Valid @RequestBody BsTeamSetEntity bsTeamSet) {
+ return R.status(bsTeamSetService.updateById(bsTeamSet));
+ }
+
+ /**
+ * 班组设置表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsTeamSet")
+ public R submit(@Valid @RequestBody BsTeamSetEntity bsTeamSet) {
+ return R.status(bsTeamSetService.saveOrUpdate(bsTeamSet));
+ }
+
+ /**
+ * 班组设置表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsTeamSetService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsTeamSet")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsTeamSet")
+ public void exportBsTeamSet(@Parameter(hidden = true) @RequestParam Map bsTeamSet, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsTeamSet, BsTeamSetEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsTeamSet::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsTeamSetEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsTeamSetService.exportBsTeamSet(queryWrapper);
+ ExcelUtil.export(response, "班组设置表数据" + DateUtil.time(), "班组设置表数据表", list, BsTeamSetExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java
new file mode 100644
index 0000000..8041ca4
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
+import org.springblade.desk.dashboard.pojo.vo.BsWorkCenterVO;
+import org.springblade.desk.dashboard.excel.BsWorkCenterExcel;
+import org.springblade.desk.dashboard.wrapper.BsWorkCenterWrapper;
+import org.springblade.desk.dashboard.service.IBsWorkCenterService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工作中心表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-22
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bsWorkCenter")
+@Tag(name = "工作中心表", description = "工作中心表接口")
+public class BsWorkCenterController extends BladeController {
+
+ private final IBsWorkCenterService bsWorkCenterService;
+
+ /**
+ * 工作中心表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入bsWorkCenter")
+ public R detail(BsWorkCenterEntity bsWorkCenter) {
+ BsWorkCenterEntity detail = bsWorkCenterService.getOne(Condition.getQueryWrapper(bsWorkCenter));
+ return R.data(BsWorkCenterWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工作中心表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入bsWorkCenter")
+ public R> list(@Parameter(hidden = true) @RequestParam Map bsWorkCenter, Query query) {
+ IPage pages = bsWorkCenterService.page(Condition.getPage(query), Condition.getQueryWrapper(bsWorkCenter, BsWorkCenterEntity.class));
+ return R.data(BsWorkCenterWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工作中心表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入bsWorkCenter")
+ public R> page(BsWorkCenterVO bsWorkCenter, Query query) {
+ IPage pages = bsWorkCenterService.selectBsWorkCenterPage(Condition.getPage(query), bsWorkCenter);
+ return R.data(pages);
+ }
+
+ /**
+ * 工作中心表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入bsWorkCenter")
+ public R save(@Valid @RequestBody BsWorkCenterEntity bsWorkCenter) {
+ return R.status(bsWorkCenterService.save(bsWorkCenter));
+ }
+
+ /**
+ * 工作中心表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入bsWorkCenter")
+ public R update(@Valid @RequestBody BsWorkCenterEntity bsWorkCenter) {
+ return R.status(bsWorkCenterService.updateById(bsWorkCenter));
+ }
+
+ /**
+ * 工作中心表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入bsWorkCenter")
+ public R submit(@Valid @RequestBody BsWorkCenterEntity bsWorkCenter) {
+ return R.status(bsWorkCenterService.saveOrUpdate(bsWorkCenter));
+ }
+
+ /**
+ * 工作中心表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(bsWorkCenterService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-bsWorkCenter")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入bsWorkCenter")
+ public void exportBsWorkCenter(@Parameter(hidden = true) @RequestParam Map bsWorkCenter, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(bsWorkCenter, BsWorkCenterEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(BsWorkCenter::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(BsWorkCenterEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = bsWorkCenterService.exportBsWorkCenter(queryWrapper);
+ ExcelUtil.export(response, "工作中心表数据" + DateUtil.time(), "工作中心表数据表", list, BsWorkCenterExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreservePlanController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreservePlanController.java
new file mode 100644
index 0000000..d8df9c2
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreservePlanController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsBatchPreservePlanEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsBatchPreservePlanVO;
+import org.springblade.desk.dashboard.excel.DsBatchPreservePlanExcel;
+import org.springblade.desk.dashboard.wrapper.DsBatchPreservePlanWrapper;
+import org.springblade.desk.dashboard.service.IDsBatchPreservePlanService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 槽液维护计划表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-22
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsBatchPreservePlan")
+@Tag(name = "槽液维护计划表", description = "槽液维护计划表接口")
+public class DsBatchPreservePlanController extends BladeController {
+
+ private final IDsBatchPreservePlanService dsBatchPreservePlanService;
+
+ /**
+ * 槽液维护计划表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsBatchPreservePlan")
+ public R detail(DsBatchPreservePlanEntity dsBatchPreservePlan) {
+ DsBatchPreservePlanEntity detail = dsBatchPreservePlanService.getOne(Condition.getQueryWrapper(dsBatchPreservePlan));
+ return R.data(DsBatchPreservePlanWrapper.build().entityVO(detail));
+ }
+ /**
+ * 槽液维护计划表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsBatchPreservePlan")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsBatchPreservePlan, Query query) {
+ IPage pages = dsBatchPreservePlanService.page(Condition.getPage(query), Condition.getQueryWrapper(dsBatchPreservePlan, DsBatchPreservePlanEntity.class));
+ return R.data(DsBatchPreservePlanWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 槽液维护计划表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsBatchPreservePlan")
+ public R> page(DsBatchPreservePlanVO dsBatchPreservePlan, Query query) {
+ IPage pages = dsBatchPreservePlanService.selectDsBatchPreservePlanPage(Condition.getPage(query), dsBatchPreservePlan);
+ return R.data(pages);
+ }
+
+ /**
+ * 槽液维护计划表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsBatchPreservePlan")
+ public R save(@Valid @RequestBody DsBatchPreservePlanEntity dsBatchPreservePlan) {
+ return R.status(dsBatchPreservePlanService.save(dsBatchPreservePlan));
+ }
+
+ /**
+ * 槽液维护计划表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsBatchPreservePlan")
+ public R update(@Valid @RequestBody DsBatchPreservePlanEntity dsBatchPreservePlan) {
+ return R.status(dsBatchPreservePlanService.updateById(dsBatchPreservePlan));
+ }
+
+ /**
+ * 槽液维护计划表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsBatchPreservePlan")
+ public R submit(@Valid @RequestBody DsBatchPreservePlanEntity dsBatchPreservePlan) {
+ return R.status(dsBatchPreservePlanService.saveOrUpdate(dsBatchPreservePlan));
+ }
+
+ /**
+ * 槽液维护计划表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsBatchPreservePlanService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsBatchPreservePlan")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsBatchPreservePlan")
+ public void exportDsBatchPreservePlan(@Parameter(hidden = true) @RequestParam Map dsBatchPreservePlan, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsBatchPreservePlan, DsBatchPreservePlanEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsBatchPreservePlan::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsBatchPreservePlanEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsBatchPreservePlanService.exportDsBatchPreservePlan(queryWrapper);
+ ExcelUtil.export(response, "槽液维护计划表数据" + DateUtil.time(), "槽液维护计划表数据表", list, DsBatchPreservePlanExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreserveTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreserveTaskController.java
new file mode 100644
index 0000000..1ac6f49
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchPreserveTaskController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsBatchPreserveTaskEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsBatchPreserveTaskVO;
+import org.springblade.desk.dashboard.excel.DsBatchPreserveTaskExcel;
+import org.springblade.desk.dashboard.wrapper.DsBatchPreserveTaskWrapper;
+import org.springblade.desk.dashboard.service.IDsBatchPreserveTaskService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 槽液维护任务表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-22
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsBatchPreserveTask")
+@Tag(name = "槽液维护任务表", description = "槽液维护任务表接口")
+public class DsBatchPreserveTaskController extends BladeController {
+
+ private final IDsBatchPreserveTaskService dsBatchPreserveTaskService;
+
+ /**
+ * 槽液维护任务表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsBatchPreserveTask")
+ public R detail(DsBatchPreserveTaskEntity dsBatchPreserveTask) {
+ DsBatchPreserveTaskEntity detail = dsBatchPreserveTaskService.getOne(Condition.getQueryWrapper(dsBatchPreserveTask));
+ return R.data(DsBatchPreserveTaskWrapper.build().entityVO(detail));
+ }
+ /**
+ * 槽液维护任务表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsBatchPreserveTask")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsBatchPreserveTask, Query query) {
+ IPage pages = dsBatchPreserveTaskService.page(Condition.getPage(query), Condition.getQueryWrapper(dsBatchPreserveTask, DsBatchPreserveTaskEntity.class));
+ return R.data(DsBatchPreserveTaskWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 槽液维护任务表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsBatchPreserveTask")
+ public R> page(DsBatchPreserveTaskVO dsBatchPreserveTask, Query query) {
+ IPage pages = dsBatchPreserveTaskService.selectDsBatchPreserveTaskPage(Condition.getPage(query), dsBatchPreserveTask);
+ return R.data(pages);
+ }
+
+ /**
+ * 槽液维护任务表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsBatchPreserveTask")
+ public R save(@Valid @RequestBody DsBatchPreserveTaskEntity dsBatchPreserveTask) {
+ return R.status(dsBatchPreserveTaskService.save(dsBatchPreserveTask));
+ }
+
+ /**
+ * 槽液维护任务表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsBatchPreserveTask")
+ public R update(@Valid @RequestBody DsBatchPreserveTaskEntity dsBatchPreserveTask) {
+ return R.status(dsBatchPreserveTaskService.updateById(dsBatchPreserveTask));
+ }
+
+ /**
+ * 槽液维护任务表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsBatchPreserveTask")
+ public R submit(@Valid @RequestBody DsBatchPreserveTaskEntity dsBatchPreserveTask) {
+ return R.status(dsBatchPreserveTaskService.saveOrUpdate(dsBatchPreserveTask));
+ }
+
+ /**
+ * 槽液维护任务表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsBatchPreserveTaskService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsBatchPreserveTask")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsBatchPreserveTask")
+ public void exportDsBatchPreserveTask(@Parameter(hidden = true) @RequestParam Map dsBatchPreserveTask, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsBatchPreserveTask, DsBatchPreserveTaskEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsBatchPreserveTask::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsBatchPreserveTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsBatchPreserveTaskService.exportDsBatchPreserveTask(queryWrapper);
+ ExcelUtil.export(response, "槽液维护任务表数据" + DateUtil.time(), "槽液维护任务表数据表", list, DsBatchPreserveTaskExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchWorkCenterSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchWorkCenterSetController.java
new file mode 100644
index 0000000..19d9304
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBatchWorkCenterSetController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsBatchWorkCenterSetEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsBatchWorkCenterSetVO;
+import org.springblade.desk.dashboard.excel.DsBatchWorkCenterSetExcel;
+import org.springblade.desk.dashboard.wrapper.DsBatchWorkCenterSetWrapper;
+import org.springblade.desk.dashboard.service.IDsBatchWorkCenterSetService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 槽液作业中心配置 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-22
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsBatchWorkCenterSet")
+@Tag(name = "槽液作业中心配置", description = "槽液作业中心配置接口")
+public class DsBatchWorkCenterSetController extends BladeController {
+
+ private final IDsBatchWorkCenterSetService dsBatchWorkCenterSetService;
+
+ /**
+ * 槽液作业中心配置 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsBatchWorkCenterSet")
+ public R detail(DsBatchWorkCenterSetEntity dsBatchWorkCenterSet) {
+ DsBatchWorkCenterSetEntity detail = dsBatchWorkCenterSetService.getOne(Condition.getQueryWrapper(dsBatchWorkCenterSet));
+ return R.data(DsBatchWorkCenterSetWrapper.build().entityVO(detail));
+ }
+ /**
+ * 槽液作业中心配置 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsBatchWorkCenterSet")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsBatchWorkCenterSet, Query query) {
+ IPage pages = dsBatchWorkCenterSetService.page(Condition.getPage(query), Condition.getQueryWrapper(dsBatchWorkCenterSet, DsBatchWorkCenterSetEntity.class));
+ return R.data(DsBatchWorkCenterSetWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 槽液作业中心配置 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsBatchWorkCenterSet")
+ public R> page(DsBatchWorkCenterSetVO dsBatchWorkCenterSet, Query query) {
+ IPage pages = dsBatchWorkCenterSetService.selectDsBatchWorkCenterSetPage(Condition.getPage(query), dsBatchWorkCenterSet);
+ return R.data(pages);
+ }
+
+ /**
+ * 槽液作业中心配置 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsBatchWorkCenterSet")
+ public R save(@Valid @RequestBody DsBatchWorkCenterSetEntity dsBatchWorkCenterSet) {
+ return R.status(dsBatchWorkCenterSetService.save(dsBatchWorkCenterSet));
+ }
+
+ /**
+ * 槽液作业中心配置 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsBatchWorkCenterSet")
+ public R update(@Valid @RequestBody DsBatchWorkCenterSetEntity dsBatchWorkCenterSet) {
+ return R.status(dsBatchWorkCenterSetService.updateById(dsBatchWorkCenterSet));
+ }
+
+ /**
+ * 槽液作业中心配置 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsBatchWorkCenterSet")
+ public R submit(@Valid @RequestBody DsBatchWorkCenterSetEntity dsBatchWorkCenterSet) {
+ return R.status(dsBatchWorkCenterSetService.saveOrUpdate(dsBatchWorkCenterSet));
+ }
+
+ /**
+ * 槽液作业中心配置 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsBatchWorkCenterSetService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsBatchWorkCenterSet")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsBatchWorkCenterSet")
+ public void exportDsBatchWorkCenterSet(@Parameter(hidden = true) @RequestParam Map dsBatchWorkCenterSet, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsBatchWorkCenterSet, DsBatchWorkCenterSetEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsBatchWorkCenterSet::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsBatchWorkCenterSetEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsBatchWorkCenterSetService.exportDsBatchWorkCenterSet(queryWrapper);
+ ExcelUtil.export(response, "槽液作业中心配置数据" + DateUtil.time(), "槽液作业中心配置数据表", list, DsBatchWorkCenterSetExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBomController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBomController.java
new file mode 100644
index 0000000..77ebff2
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsBomController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsBomEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsBomVO;
+import org.springblade.desk.dashboard.excel.DsBomExcel;
+import org.springblade.desk.dashboard.wrapper.DsBomWrapper;
+import org.springblade.desk.dashboard.service.IDsBomService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-14
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsBom")
+@Tag(name = "BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理", description = "BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理接口")
+public class DsBomController extends BladeController {
+
+ private final IDsBomService dsBomService;
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsBom")
+ public R detail(DsBomEntity dsBom) {
+ DsBomEntity detail = dsBomService.getOne(Condition.getQueryWrapper(dsBom));
+ return R.data(DsBomWrapper.build().entityVO(detail));
+ }
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsBom")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsBom, Query query) {
+ IPage pages = dsBomService.page(Condition.getPage(query), Condition.getQueryWrapper(dsBom, DsBomEntity.class));
+ return R.data(DsBomWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsBom")
+ public R> page(DsBomVO dsBom, Query query) {
+ IPage pages = dsBomService.selectDsBomPage(Condition.getPage(query), dsBom);
+ return R.data(pages);
+ }
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsBom")
+ public R save(@Valid @RequestBody DsBomEntity dsBom) {
+ return R.status(dsBomService.save(dsBom));
+ }
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsBom")
+ public R update(@Valid @RequestBody DsBomEntity dsBom) {
+ return R.status(dsBomService.updateById(dsBom));
+ }
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsBom")
+ public R submit(@Valid @RequestBody DsBomEntity dsBom) {
+ return R.status(dsBomService.saveOrUpdate(dsBom));
+ }
+
+ /**
+ * BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsBomService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsBom")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsBom")
+ public void exportDsBom(@Parameter(hidden = true) @RequestParam Map dsBom, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsBom, DsBomEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsBom::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsBomEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsBomService.exportDsBom(queryWrapper);
+ ExcelUtil.export(response, "BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理数据" + DateUtil.time(), "BOM物料清单表:存储产品的物料组成结构关系,支持多级BOM和版本管理数据表", list, DsBomExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java
new file mode 100644
index 0000000..7189380
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java
@@ -0,0 +1,182 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.desk.dashboard.pojo.vo.DsCraftExpireVO;
+import org.springblade.desk.dashboard.pojo.vo.DsPartSynthesisVO;
+import org.springblade.desk.dashboard.pojo.vo.DsProcessSynthesisVO;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsCraftVO;
+import org.springblade.desk.dashboard.excel.DsCraftExcel;
+import org.springblade.desk.dashboard.wrapper.DsCraftWrapper;
+import org.springblade.desk.dashboard.service.IDsCraftService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 零件工艺信息表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsCraft")
+@Tag(name = "零件工艺信息表", description = "零件工艺信息表接口")
+public class DsCraftController extends BladeController {
+
+ private final IDsCraftService dsCraftService;
+
+
+
+ /**
+ * 工序详情
+ */
+ @GetMapping("/processDetail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsCraft")
+ public R processDetail(Long id) {
+ DsProcessSynthesisVO detail = dsCraftService.getProcessDetail(id);
+ return R.data(detail);
+ }
+
+
+
+ /**
+ * 零件工艺信息表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsCraft")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsCraft, Query query) {
+ IPage pages = dsCraftService.page(Condition.getPage(query), Condition.getQueryWrapper(dsCraft, DsCraftEntity.class));
+ return R.data(DsCraftWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 零件工艺信息表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsCraft")
+ public R> page(DsCraftVO dsCraft, Query query) {
+ IPage pages = dsCraftService.selectDsCraftPage(Condition.getPage(query), dsCraft);
+ return R.data(pages);
+ }
+
+ /**
+ * 零件工艺信息表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsCraft")
+ public R save(@Valid @RequestBody DsCraftEntity dsCraft) {
+ return R.status(dsCraftService.save(dsCraft));
+ }
+
+ /**
+ * 零件工艺信息表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsCraft")
+ public R update(@Valid @RequestBody DsCraftEntity dsCraft) {
+ return R.status(dsCraftService.updateById(dsCraft));
+ }
+
+ /**
+ * 零件工艺信息表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsCraft")
+ public R submit(@Valid @RequestBody DsCraftEntity dsCraft) {
+ return R.status(dsCraftService.saveOrUpdate(dsCraft));
+ }
+
+ /**
+ * 零件工艺信息表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsCraftService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsCraft")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsCraft")
+ public void exportDsCraft(@Parameter(hidden = true) @RequestParam Map dsCraft, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsCraft, DsCraftEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsCraft::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsCraftEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsCraftService.exportDsCraft(queryWrapper);
+ ExcelUtil.export(response, "零件工艺信息表数据" + DateUtil.time(), "零件工艺信息表数据表", list, DsCraftExcel.class);
+ }
+
+
+ /**
+ * 根据零件ID查询工艺版本号
+ */
+ @GetMapping("/getVersion")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "获取版本号", description = "传入零件ID")
+ public R> getVersion(Long partId) {
+ return R.data(dsCraftService.getVersion(partId));
+ }
+
+
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaController.java
new file mode 100644
index 0000000..d196033
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsHourQuotaEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsHourQuotaVO;
+import org.springblade.desk.dashboard.excel.DsHourQuotaExcel;
+import org.springblade.desk.dashboard.wrapper.DsHourQuotaWrapper;
+import org.springblade.desk.dashboard.service.IDsHourQuotaService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工时定额表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsHourQuota")
+@Tag(name = "工时定额表", description = "工时定额表接口")
+public class DsHourQuotaController extends BladeController {
+
+ private final IDsHourQuotaService dsHourQuotaService;
+
+ /**
+ * 工时定额表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsHourQuota")
+ public R detail(DsHourQuotaEntity dsHourQuota) {
+ DsHourQuotaEntity detail = dsHourQuotaService.getOne(Condition.getQueryWrapper(dsHourQuota));
+ return R.data(DsHourQuotaWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工时定额表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsHourQuota")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsHourQuota, Query query) {
+ IPage pages = dsHourQuotaService.page(Condition.getPage(query), Condition.getQueryWrapper(dsHourQuota, DsHourQuotaEntity.class));
+ return R.data(DsHourQuotaWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工时定额表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsHourQuota")
+ public R> page(DsHourQuotaVO dsHourQuota, Query query) {
+ IPage pages = dsHourQuotaService.selectDsHourQuotaPage(Condition.getPage(query), dsHourQuota);
+ return R.data(pages);
+ }
+
+ /**
+ * 工时定额表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsHourQuota")
+ public R save(@Valid @RequestBody DsHourQuotaEntity dsHourQuota) {
+ return R.status(dsHourQuotaService.save(dsHourQuota));
+ }
+
+ /**
+ * 工时定额表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsHourQuota")
+ public R update(@Valid @RequestBody DsHourQuotaEntity dsHourQuota) {
+ return R.status(dsHourQuotaService.updateById(dsHourQuota));
+ }
+
+ /**
+ * 工时定额表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsHourQuota")
+ public R submit(@Valid @RequestBody DsHourQuotaEntity dsHourQuota) {
+ return R.status(dsHourQuotaService.saveOrUpdate(dsHourQuota));
+ }
+
+ /**
+ * 工时定额表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsHourQuotaService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsHourQuota")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsHourQuota")
+ public void exportDsHourQuota(@Parameter(hidden = true) @RequestParam Map dsHourQuota, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsHourQuota, DsHourQuotaEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsHourQuota::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsHourQuotaEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsHourQuotaService.exportDsHourQuota(queryWrapper);
+ ExcelUtil.export(response, "工时定额表数据" + DateUtil.time(), "工时定额表数据表", list, DsHourQuotaExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaDetailController.java
new file mode 100644
index 0000000..8e9ce9f
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsHourQuotaDetailController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsHourQuotaDetailEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsHourQuotaDetailVO;
+import org.springblade.desk.dashboard.excel.DsHourQuotaDetailExcel;
+import org.springblade.desk.dashboard.wrapper.DsHourQuotaDetailWrapper;
+import org.springblade.desk.dashboard.service.IDsHourQuotaDetailService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工时定额明细表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsHourQuotaDetail")
+@Tag(name = "工时定额明细表", description = "工时定额明细表接口")
+public class DsHourQuotaDetailController extends BladeController {
+
+ private final IDsHourQuotaDetailService dsHourQuotaDetailService;
+
+ /**
+ * 工时定额明细表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsHourQuotaDetail")
+ public R detail(DsHourQuotaDetailEntity dsHourQuotaDetail) {
+ DsHourQuotaDetailEntity detail = dsHourQuotaDetailService.getOne(Condition.getQueryWrapper(dsHourQuotaDetail));
+ return R.data(DsHourQuotaDetailWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工时定额明细表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsHourQuotaDetail")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsHourQuotaDetail, Query query) {
+ IPage pages = dsHourQuotaDetailService.page(Condition.getPage(query), Condition.getQueryWrapper(dsHourQuotaDetail, DsHourQuotaDetailEntity.class));
+ return R.data(DsHourQuotaDetailWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工时定额明细表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsHourQuotaDetail")
+ public R> page(DsHourQuotaDetailVO dsHourQuotaDetail, Query query) {
+ IPage pages = dsHourQuotaDetailService.selectDsHourQuotaDetailPage(Condition.getPage(query), dsHourQuotaDetail);
+ return R.data(pages);
+ }
+
+ /**
+ * 工时定额明细表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsHourQuotaDetail")
+ public R save(@Valid @RequestBody DsHourQuotaDetailEntity dsHourQuotaDetail) {
+ return R.status(dsHourQuotaDetailService.save(dsHourQuotaDetail));
+ }
+
+ /**
+ * 工时定额明细表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsHourQuotaDetail")
+ public R update(@Valid @RequestBody DsHourQuotaDetailEntity dsHourQuotaDetail) {
+ return R.status(dsHourQuotaDetailService.updateById(dsHourQuotaDetail));
+ }
+
+ /**
+ * 工时定额明细表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsHourQuotaDetail")
+ public R submit(@Valid @RequestBody DsHourQuotaDetailEntity dsHourQuotaDetail) {
+ return R.status(dsHourQuotaDetailService.saveOrUpdate(dsHourQuotaDetail));
+ }
+
+ /**
+ * 工时定额明细表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsHourQuotaDetailService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsHourQuotaDetail")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsHourQuotaDetail")
+ public void exportDsHourQuotaDetail(@Parameter(hidden = true) @RequestParam Map dsHourQuotaDetail, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsHourQuotaDetail, DsHourQuotaDetailEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsHourQuotaDetail::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsHourQuotaDetailEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsHourQuotaDetailService.exportDsHourQuotaDetail(queryWrapper);
+ ExcelUtil.export(response, "工时定额明细表数据" + DateUtil.time(), "工时定额明细表数据表", list, DsHourQuotaDetailExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsMainSaltAddQuantityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsMainSaltAddQuantityController.java
new file mode 100644
index 0000000..f0dfee2
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsMainSaltAddQuantityController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsMainSaltAddQuantityEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsMainSaltAddQuantityVO;
+import org.springblade.desk.dashboard.excel.DsMainSaltAddQuantityExcel;
+import org.springblade.desk.dashboard.wrapper.DsMainSaltAddQuantityWrapper;
+import org.springblade.desk.dashboard.service.IDsMainSaltAddQuantityService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 主盐添加量表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-22
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsMainSaltAddQuantity")
+@Tag(name = "主盐添加量表", description = "主盐添加量表接口")
+public class DsMainSaltAddQuantityController extends BladeController {
+
+ private final IDsMainSaltAddQuantityService dsMainSaltAddQuantityService;
+
+ /**
+ * 主盐添加量表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsMainSaltAddQuantity")
+ public R detail(DsMainSaltAddQuantityEntity dsMainSaltAddQuantity) {
+ DsMainSaltAddQuantityEntity detail = dsMainSaltAddQuantityService.getOne(Condition.getQueryWrapper(dsMainSaltAddQuantity));
+ return R.data(DsMainSaltAddQuantityWrapper.build().entityVO(detail));
+ }
+ /**
+ * 主盐添加量表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsMainSaltAddQuantity")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsMainSaltAddQuantity, Query query) {
+ IPage pages = dsMainSaltAddQuantityService.page(Condition.getPage(query), Condition.getQueryWrapper(dsMainSaltAddQuantity, DsMainSaltAddQuantityEntity.class));
+ return R.data(DsMainSaltAddQuantityWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 主盐添加量表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsMainSaltAddQuantity")
+ public R> page(DsMainSaltAddQuantityVO dsMainSaltAddQuantity, Query query) {
+ IPage pages = dsMainSaltAddQuantityService.selectDsMainSaltAddQuantityPage(Condition.getPage(query), dsMainSaltAddQuantity);
+ return R.data(pages);
+ }
+
+ /**
+ * 主盐添加量表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsMainSaltAddQuantity")
+ public R save(@Valid @RequestBody DsMainSaltAddQuantityEntity dsMainSaltAddQuantity) {
+ return R.status(dsMainSaltAddQuantityService.save(dsMainSaltAddQuantity));
+ }
+
+ /**
+ * 主盐添加量表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsMainSaltAddQuantity")
+ public R update(@Valid @RequestBody DsMainSaltAddQuantityEntity dsMainSaltAddQuantity) {
+ return R.status(dsMainSaltAddQuantityService.updateById(dsMainSaltAddQuantity));
+ }
+
+ /**
+ * 主盐添加量表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsMainSaltAddQuantity")
+ public R submit(@Valid @RequestBody DsMainSaltAddQuantityEntity dsMainSaltAddQuantity) {
+ return R.status(dsMainSaltAddQuantityService.saveOrUpdate(dsMainSaltAddQuantity));
+ }
+
+ /**
+ * 主盐添加量表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsMainSaltAddQuantityService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsMainSaltAddQuantity")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsMainSaltAddQuantity")
+ public void exportDsMainSaltAddQuantity(@Parameter(hidden = true) @RequestParam Map dsMainSaltAddQuantity, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsMainSaltAddQuantity, DsMainSaltAddQuantityEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsMainSaltAddQuantity::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsMainSaltAddQuantityEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsMainSaltAddQuantityService.exportDsMainSaltAddQuantity(queryWrapper);
+ ExcelUtil.export(response, "主盐添加量表数据" + DateUtil.time(), "主盐添加量表数据表", list, DsMainSaltAddQuantityExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java
new file mode 100644
index 0000000..beb354e
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java
@@ -0,0 +1,239 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.desk.dashboard.pojo.vo.*;
+import org.springblade.desk.dashboard.service.impl.DsPartServiceImpl;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
+import org.springblade.desk.dashboard.excel.DsPartExcel;
+import org.springblade.desk.dashboard.wrapper.DsPartWrapper;
+import org.springblade.desk.dashboard.service.IDsPartService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 零件信息表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsPart")
+@Tag(name = "零件信息表", description = "零件信息表接口")
+public class DsPartController extends BladeController {
+
+ private final IDsPartService dsPartService;
+
+ /**
+ * 零件信息表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsPart")
+ public R detail(DsPartEntity dsPart) {
+ DsPartEntity detail = dsPartService.getOne(Condition.getQueryWrapper(dsPart));
+ return R.data(DsPartWrapper.build().entityVO(detail));
+ }
+// /**
+// * 零件信息表 分页
+// */
+// @GetMapping("/list")
+// @ApiOperationSupport(order = 2)
+// @Operation(summary = "分页", description = "传入dsPart")
+// public R> list(@Parameter(hidden = true) @RequestParam Map dsPart, Query query) {
+// IPage pages = dsPartService.page(Condition.getPage(query), Condition.getQueryWrapper(dsPart, DsPartEntity.class));
+// return R.data(DsPartWrapper.build().pageVO(pages));
+// }
+
+ /**
+ * 零件信息表 自定义分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsPart")
+ public R> page(DsPartVO dsPart, Query query) {
+
+ IPage pages = dsPartService.selectDsPartPage(Condition.getPage(query), dsPart);
+ return R.data(pages);
+ }
+
+ /**
+ * 零件信息表 同步零件信息
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsPart")
+ public R syncPDMPart(@Valid @RequestBody DsPartEntity dsPart) {
+ return R.status(dsPartService.syncPdmPart(dsPart));
+ }
+
+ /**
+ * 零件信息表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsPart")
+ public R update(@Valid @RequestBody DsPartEntity dsPart) {
+ return R.status(dsPartService.updateById(dsPart));
+ }
+
+ /**
+ * 零件信息表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsPart")
+ public R submit(@Valid @RequestBody DsPartEntity dsPart) {
+ return R.status(dsPartService.saveOrUpdate(dsPart));
+ }
+
+ /**
+ * 零件信息表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsPartService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsPart")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsPart")
+ public void exportDsPart(@Parameter(hidden = true) @RequestParam Map dsPart, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsPart, DsPartEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsPart::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsPartEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsPartService.exportDsPart(queryWrapper);
+ ExcelUtil.export(response, "零件信息表数据" + DateUtil.time(), "零件信息表数据表", list, DsPartExcel.class);
+ }
+
+
+ /**
+ * 获取即将到期零件
+ */
+ @GetMapping("/getExpire")
+ @ApiOperationSupport(order = 10)
+ @Operation(summary = "即将到期", description = "传入即将到期天数")
+ public R> getExpire(@RequestParam String expire) {
+ List dsCraftExpireVOList = dsPartService.getExpire(expire);
+ return R.data(dsCraftExpireVOList);
+ }
+
+ /**
+ * 有效期维护
+ */
+ @GetMapping("/periodOfValidity")
+ @ApiOperationSupport(order = 11)
+ @Operation(summary = "有效期维护", description = "传入dsCraft")
+ public R periodOfValidity(
+ @RequestParam String nextDue,
+ @RequestParam String ids
+
+ ) {
+ return R.status(dsPartService.updateNextDueByIds(nextDue,ids));
+ }
+
+
+ /**
+ * 获取所有零件
+ */
+ @GetMapping("/getPartCode")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "获取所有零件")
+ public R> getPartCode() {
+
+ return R.data(dsPartService.selectAll());
+ }
+
+
+ /**
+ * 烧结BOM查询 部件子件
+ */
+ @GetMapping("/sinteringPart")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "烧结BOM查询", description = "传入dsPart")
+ public R> sinteringPart(
+ @RequestParam(required = false) String bPartCode,
+ @RequestParam String zPartCode
+ ) {
+ return R.data(dsPartService.sinteringPart(bPartCode,zPartCode));
+ }
+
+
+ /**
+ * 烧结bom查询 树形结构
+ * @param partCode
+ * @return
+ */
+ @GetMapping("/tree")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "烧结BOM查询", description = "传入dsPart")
+ public R> getSimpleTree(@RequestParam String partCode) {
+ try {
+ List result = dsPartService.getSimpleTree(partCode);
+ return R.data(result);
+ } catch (Exception e) {
+ return R.fail("查询失败");
+ }
+ }
+
+
+
+
+
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java
new file mode 100644
index 0000000..5d04062
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsProDetailEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsProDetailVO;
+import org.springblade.desk.dashboard.excel.DsProDetailExcel;
+import org.springblade.desk.dashboard.wrapper.DsProDetailWrapper;
+import org.springblade.desk.dashboard.service.IDsProDetailService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工艺模版明细表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsProDetail")
+@Tag(name = "工艺模版明细表", description = "工艺模版明细表接口")
+public class DsProDetailController extends BladeController {
+
+ private final IDsProDetailService dsProDetailService;
+
+ /**
+ * 工艺模版明细表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsProDetail")
+ public R detail(DsProDetailEntity dsProDetail) {
+ DsProDetailEntity detail = dsProDetailService.getOne(Condition.getQueryWrapper(dsProDetail));
+ return R.data(DsProDetailWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工艺模版明细表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsProDetail")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsProDetail, Query query) {
+ IPage pages = dsProDetailService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProDetail, DsProDetailEntity.class));
+ return R.data(DsProDetailWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工艺模版明细表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsProDetail")
+ public R> page(DsProDetailVO dsProDetail, Query query) {
+ IPage pages = dsProDetailService.selectDsProDetailPage(Condition.getPage(query), dsProDetail);
+ return R.data(pages);
+ }
+
+ /**
+ * 工艺模版明细表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsProDetail")
+ public R save(@Valid @RequestBody DsProDetailEntity dsProDetail) {
+ return R.status(dsProDetailService.save(dsProDetail));
+ }
+
+ /**
+ * 工艺模版明细表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsProDetail")
+ public R update(@Valid @RequestBody DsProDetailEntity dsProDetail) {
+ return R.status(dsProDetailService.updateById(dsProDetail));
+ }
+
+ /**
+ * 工艺模版明细表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsProDetail")
+ public R submit(@Valid @RequestBody DsProDetailEntity dsProDetail) {
+ return R.status(dsProDetailService.saveOrUpdate(dsProDetail));
+ }
+
+ /**
+ * 工艺模版明细表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsProDetailService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsProDetail")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsProDetail")
+ public void exportDsProDetail(@Parameter(hidden = true) @RequestParam Map dsProDetail, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsProDetail, DsProDetailEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsProDetail::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsProDetailEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsProDetailService.exportDsProDetail(queryWrapper);
+ ExcelUtil.export(response, "工艺模版明细表数据" + DateUtil.time(), "工艺模版明细表数据表", list, DsProDetailExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java
new file mode 100644
index 0000000..fd0dfc6
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java
@@ -0,0 +1,164 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.desk.dashboard.pojo.vo.DsModelAndDetailVO;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsProModelEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsProModelVO;
+import org.springblade.desk.dashboard.excel.DsProModelExcel;
+import org.springblade.desk.dashboard.wrapper.DsProModelWrapper;
+import org.springblade.desk.dashboard.service.IDsProModelService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工艺模版 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsProModel")
+@Tag(name = "工艺模版", description = "工艺模版接口")
+public class DsProModelController extends BladeController {
+
+ private final IDsProModelService dsProModelService;
+
+ /**
+ * 工艺模版 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsProModel")
+ public R detail(@RequestParam Long Id) {
+ return R.data(dsProModelService.detail(Id));
+ }
+ /**
+ * 工艺模版 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsProModel")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsProModel, Query query) {
+ IPage pages = dsProModelService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProModel, DsProModelEntity.class));
+ return R.data(DsProModelWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工艺模版 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsProModel")
+ public R> page(DsProModelVO dsProModel, Query query) {
+ IPage pages = dsProModelService.selectDsProModelPage(Condition.getPage(query), dsProModel);
+ return R.data(pages);
+ }
+
+ /**
+ * 工艺模版 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsProModel")
+ public R save(@RequestBody JSONObject data) {
+ return R.data(dsProModelService.saveDsProModel(data));
+ }
+
+ /**
+ * 工艺模版 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsProModel")
+ public R update(@RequestBody JSONObject data) {
+ return R.status(dsProModelService.update(data));
+ }
+
+ /**
+ * 工艺模版 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsProModel")
+ public R submit(@Valid @RequestBody DsProModelEntity dsProModel) {
+ return R.status(dsProModelService.saveOrUpdate(dsProModel));
+ }
+
+ /**
+ * 工艺模版 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsProModelService.deleteModel(ids));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsProModel")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsProModel")
+ public void exportDsProModel(@Parameter(hidden = true) @RequestParam Map dsProModel, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsProModel, DsProModelEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsProModel::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsProModelEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsProModelService.exportDsProModel(queryWrapper);
+ ExcelUtil.export(response, "工艺模版数据" + DateUtil.time(), "工艺模版数据表", list, DsProModelExcel.class);
+ }
+
+
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java
new file mode 100644
index 0000000..9b0bf63
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsProcessVO;
+import org.springblade.desk.dashboard.excel.DsProcessExcel;
+import org.springblade.desk.dashboard.wrapper.DsProcessWrapper;
+import org.springblade.desk.dashboard.service.IDsProcessService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 零件工艺工序信息表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsProcess")
+@Tag(name = "零件工艺工序信息表", description = "零件工艺工序信息表接口")
+public class DsProcessController extends BladeController {
+
+ private final IDsProcessService dsProcessService;
+
+ /**
+ * 零件工艺工序信息表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsProcess")
+ public R detail(DsProcessEntity dsProcess) {
+ DsProcessEntity detail = dsProcessService.getOne(Condition.getQueryWrapper(dsProcess));
+ return R.data(DsProcessWrapper.build().entityVO(detail));
+ }
+ /**
+ * 零件工艺工序信息表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsProcess")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsProcess, Query query) {
+ IPage pages = dsProcessService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProcess, DsProcessEntity.class));
+ return R.data(DsProcessWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 零件工艺工序信息表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsProcess")
+ public R> page(DsProcessVO dsProcess, Query query) {
+ IPage pages = dsProcessService.selectDsProcessPage(Condition.getPage(query), dsProcess);
+ return R.data(pages);
+ }
+
+ /**
+ * 零件工艺工序信息表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsProcess")
+ public R save(@Valid @RequestBody DsProcessEntity dsProcess) {
+ return R.status(dsProcessService.save(dsProcess));
+ }
+
+ /**
+ * 零件工艺工序信息表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsProcess")
+ public R update(@Valid @RequestBody DsProcessEntity dsProcess) {
+ return R.status(dsProcessService.updateById(dsProcess));
+ }
+
+ /**
+ * 零件工艺工序信息表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsProcess")
+ public R submit(@Valid @RequestBody DsProcessEntity dsProcess) {
+ return R.status(dsProcessService.saveOrUpdate(dsProcess));
+ }
+
+ /**
+ * 零件工艺工序信息表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsProcessService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsProcess")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsProcess")
+ public void exportDsProcess(@Parameter(hidden = true) @RequestParam Map dsProcess, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsProcess, DsProcessEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsProcess::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsProcessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsProcessService.exportDsProcess(queryWrapper);
+ ExcelUtil.export(response, "零件工艺工序信息表数据" + DateUtil.time(), "零件工艺工序信息表数据表", list, DsProcessExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMeasuringToolController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMeasuringToolController.java
new file mode 100644
index 0000000..780aa1e
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMeasuringToolController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsProcessMeasuringToolVO;
+import org.springblade.desk.dashboard.excel.DsProcessMeasuringToolExcel;
+import org.springblade.desk.dashboard.wrapper.DsProcessMeasuringToolWrapper;
+import org.springblade.desk.dashboard.service.IDsProcessMeasuringToolService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工序量具表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsProcessMeasuringTool")
+@Tag(name = "工序量具表", description = "工序量具表接口")
+public class DsProcessMeasuringToolController extends BladeController {
+
+ private final IDsProcessMeasuringToolService dsProcessMeasuringToolService;
+
+ /**
+ * 工序量具表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsProcessMeasuringTool")
+ public R detail(DsProcessMeasuringToolEntity dsProcessMeasuringTool) {
+ DsProcessMeasuringToolEntity detail = dsProcessMeasuringToolService.getOne(Condition.getQueryWrapper(dsProcessMeasuringTool));
+ return R.data(DsProcessMeasuringToolWrapper.build().entityVO(detail));
+ }
+ /**
+ * 工序量具表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "分页", description = "传入dsProcessMeasuringTool")
+ public R> list(@Parameter(hidden = true) @RequestParam Map dsProcessMeasuringTool, Query query) {
+ IPage pages = dsProcessMeasuringToolService.page(Condition.getPage(query), Condition.getQueryWrapper(dsProcessMeasuringTool, DsProcessMeasuringToolEntity.class));
+ return R.data(DsProcessMeasuringToolWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 工序量具表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "分页", description = "传入dsProcessMeasuringTool")
+ public R> page(DsProcessMeasuringToolVO dsProcessMeasuringTool, Query query) {
+ IPage pages = dsProcessMeasuringToolService.selectDsProcessMeasuringToolPage(Condition.getPage(query), dsProcessMeasuringTool);
+ return R.data(pages);
+ }
+
+ /**
+ * 工序量具表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "新增", description = "传入dsProcessMeasuringTool")
+ public R save(@Valid @RequestBody DsProcessMeasuringToolEntity dsProcessMeasuringTool) {
+ return R.status(dsProcessMeasuringToolService.save(dsProcessMeasuringTool));
+ }
+
+ /**
+ * 工序量具表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "修改", description = "传入dsProcessMeasuringTool")
+ public R update(@Valid @RequestBody DsProcessMeasuringToolEntity dsProcessMeasuringTool) {
+ return R.status(dsProcessMeasuringToolService.updateById(dsProcessMeasuringTool));
+ }
+
+ /**
+ * 工序量具表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "新增或修改", description = "传入dsProcessMeasuringTool")
+ public R submit(@Valid @RequestBody DsProcessMeasuringToolEntity dsProcessMeasuringTool) {
+ return R.status(dsProcessMeasuringToolService.saveOrUpdate(dsProcessMeasuringTool));
+ }
+
+ /**
+ * 工序量具表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "逻辑删除", description = "传入ids")
+ public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(dsProcessMeasuringToolService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+ /**
+ * 导出数据
+ */
+ @IsAdmin
+ @GetMapping("/export-dsProcessMeasuringTool")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "导出数据", description = "传入dsProcessMeasuringTool")
+ public void exportDsProcessMeasuringTool(@Parameter(hidden = true) @RequestParam Map dsProcessMeasuringTool, BladeUser bladeUser, HttpServletResponse response) {
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(dsProcessMeasuringTool, DsProcessMeasuringToolEntity.class);
+ //if (!AuthUtil.isAdministrator()) {
+ // queryWrapper.lambda().eq(DsProcessMeasuringTool::getTenantId, bladeUser.getTenantId());
+ //}
+ //queryWrapper.lambda().eq(DsProcessMeasuringToolEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+ List list = dsProcessMeasuringToolService.exportDsProcessMeasuringTool(queryWrapper);
+ ExcelUtil.export(response, "工序量具表数据" + DateUtil.time(), "工序量具表数据表", list, DsProcessMeasuringToolExcel.class);
+ }
+
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMoldToolController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMoldToolController.java
new file mode 100644
index 0000000..69dc0cd
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessMoldToolController.java
@@ -0,0 +1,161 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.dashboard.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.IsAdmin;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.desk.dashboard.pojo.entity.DsProcessMoldToolEntity;
+import org.springblade.desk.dashboard.pojo.vo.DsProcessMoldToolVO;
+import org.springblade.desk.dashboard.excel.DsProcessMoldToolExcel;
+import org.springblade.desk.dashboard.wrapper.DsProcessMoldToolWrapper;
+import org.springblade.desk.dashboard.service.IDsProcessMoldToolService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 工序工装模具表 控制器
+ *
+ * @author BladeX
+ * @since 2025-11-12
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dsProcessMoldTool")
+@Tag(name = "工序工装模具表", description = "工序工装模具表接口")
+public class DsProcessMoldToolController extends BladeController {
+
+ private final IDsProcessMoldToolService dsProcessMoldToolService;
+
+ /**
+ * 工序工装模具表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "详情", description = "传入dsProcessMoldTool")
+ public R