diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml
index 8458fc73a4..001846a7a1 100644
--- a/yudao-dependencies/pom.xml
+++ b/yudao-dependencies/pom.xml
@@ -71,7 +71,7 @@
2.2.1
3.1.880
2.0.5
- 1.6.1
+ 1.6.6-beta2
2.12.2
4.5.7.B
2.2.9
@@ -631,7 +631,7 @@
org.jeecgframework.jimureport
- jimureport-spring-boot-starter
+ jimureport-spring-boot3-starter
${jimureport.version}
diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java
index 7f73184873..41f75405e8 100644
--- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java
+++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java
@@ -1,10 +1,12 @@
package cn.iocoder.yudao.framework.common.util.cache;
+import com.alibaba.ttl.threadpool.TtlExecutors;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import java.time.Duration;
+import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
@@ -15,11 +17,13 @@ import java.util.concurrent.Executors;
public class CacheUtils {
public static LoadingCache buildAsyncReloadingCache(Duration duration, CacheLoader loader) {
+ Executor executor = Executors.newCachedThreadPool( // TODO 芋艿:可能要思考下,未来要不要做成可配置
+ TtlExecutors.getDefaultDisableInheritableThreadFactory()); // TTL 保证 ThreadLocal 可以透传
return CacheBuilder.newBuilder()
// 只阻塞当前数据加载线程,其他线程返回旧值
.refreshAfterWrite(duration)
// 通过 asyncReloading 实现全异步加载,包括 refreshAfterWrite 被阻塞的加载线程
- .build(CacheLoader.asyncReloading(loader, Executors.newCachedThreadPool())); // TODO 芋艿:可能要思考下,未来要不要做成可配置
+ .build(CacheLoader.asyncReloading(loader, executor));
}
}
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java
index 93a17b376e..e78a8b8596 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.framework.tenant.core.context;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.enums.DocumentEnum;
import com.alibaba.ttl.TransmittableThreadLocal;
@@ -21,7 +22,7 @@ public class TenantContextHolder {
private static final ThreadLocal IGNORE = new TransmittableThreadLocal<>();
/**
- * 获得租户编号。
+ * 获得租户编号
*
* @return 租户编号
*/
@@ -29,6 +30,16 @@ public class TenantContextHolder {
return TENANT_ID.get();
}
+ /**
+ * 获得租户编号 String
+ *
+ * @return 租户编号
+ */
+ public static String getTenantIdStr() {
+ Long tenantId = getTenantId();
+ return StrUtil.toStringOrNull(tenantId);
+ }
+
/**
* 获得租户编号。如果不存在,则抛出 NullPointerException 异常
*
diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java
index f554e0b529..49238f8f9c 100644
--- a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java
+++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java
@@ -81,7 +81,7 @@ public class S3FileClient extends AbstractFileClient {
}
// 腾讯云必须有 region,否则会报错
if (config.getEndpoint().contains(ENDPOINT_TENCENT)) {
- return StrUtil.subAfter(config.getEndpoint(), ".cos.", false)
+ return StrUtil.subAfter(config.getEndpoint(), "cos.", false)
.replaceAll("." + ENDPOINT_TENCENT, ""); // 去除 Endpoint
}
return null;
diff --git a/yudao-server/src/main/resources/application-dev.yaml b/yudao-server/src/main/resources/application-dev.yaml
index 6263a42784..3358e678e5 100644
--- a/yudao-server/src/main/resources/application-dev.yaml
+++ b/yudao-server/src/main/resources/application-dev.yaml
@@ -5,9 +5,6 @@ server:
spring:
# 数据源配置项
- autoconfigure:
- exclude:
- - org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration # 排除积木报表带来的 MongoDB 的自动配置
datasource:
druid: # Druid 【监控】相关的全局配置
web-stat-filter:
diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml
index 900656ecf5..93b2a69e9d 100644
--- a/yudao-server/src/main/resources/application-local.yaml
+++ b/yudao-server/src/main/resources/application-local.yaml
@@ -7,7 +7,6 @@ spring:
# 数据源配置项
autoconfigure:
exclude:
- - org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration # 排除积木报表带来的 MongoDB 的自动配置
- org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
@@ -188,6 +187,7 @@ logging:
cn.iocoder.yudao.module.trade.dal.mysql: debug
cn.iocoder.yudao.module.promotion.dal.mysql: debug
cn.iocoder.yudao.module.statistics.dal.mysql: debug
+ org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示
debug: false
diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml
index 627028bdd3..bb952d26ef 100644
--- a/yudao-server/src/main/resources/application.yaml
+++ b/yudao-server/src/main/resources/application.yaml
@@ -260,9 +260,9 @@ yudao:
debug: false
# 积木报表配置
-minidao :
- base-package: org.jeecg.modules.jmreport.desreport.dao*
- db-type: mysql
+jeecg:
+ jmreport:
+ saas-mode: tenant
# UReport 配置
ureport: