diff --git a/yudao-framework/yudao-spring-boot-starter-banner/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java b/yudao-framework/yudao-spring-boot-starter-banner/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java
index 27e2f70eb..b39b9641c 100644
--- a/yudao-framework/yudao-spring-boot-starter-banner/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java
+++ b/yudao-framework/yudao-spring-boot-starter-banner/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java
@@ -4,6 +4,7 @@ import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
+import org.springframework.util.ClassUtils;
import java.util.concurrent.TimeUnit;
@@ -30,7 +31,17 @@ public class BannerApplicationRunner implements ApplicationRunner {
"https://doc.iocoder.cn",
"https://t.zsxq.com/02Yf6M7Qn",
"https://t.zsxq.com/02B6ujIee");
+
+ // 数据报表
+ if (isNotPresent("cn.iocoder.yudao.module.visualization.framework.security.config.SecurityConfiguration")) {
+ System.out.println("[报表模块 yudao-module-visualization-biz - 已禁用][参考 https://doc.iocoder.cn/report/ 开启]");
+ }
+ // 支付模块
});
}
+ private static boolean isNotPresent(String className) {
+ return !ClassUtils.isPresent(className, ClassUtils.getDefaultClassLoader());
+ }
+
}
diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java
index 4061339d6..7754ca448 100644
--- a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java
+++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java
@@ -5,10 +5,31 @@ import cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.task.AsyncListenableTaskExecutor;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
public class YudaoFlowableConfiguration {
+ /**
+ * 参考 {@link org.flowable.spring.boot.FlowableJobConfiguration} 类,创建对应的 AsyncListenableTaskExecutor Bean
+ *
+ * 如果不创建,会导致项目启动时,Flowable 报错的问题
+ */
+ @Bean
+ public AsyncListenableTaskExecutor taskExecutor() {
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ executor.setCorePoolSize(8);
+ executor.setMaxPoolSize(8);
+ executor.setQueueCapacity(100);
+ executor.setThreadNamePrefix("flowable-task-Executor-");
+ executor.setAwaitTerminationSeconds(30);
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ executor.setAllowCoreThreadTimeOut(true);
+ executor.initialize();
+ return executor;
+ }
+
/**
* 配置 flowable Web 过滤器
*/
diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml
index a35f5f9f6..975752709 100644
--- a/yudao-server/pom.xml
+++ b/yudao-server/pom.xml
@@ -51,23 +51,18 @@
yudao-module-product-biz
${revision}
-
-
- cn.iocoder.boot
- yudao-module-visualization-biz
- ${revision}
-
-
+
-
+
-
-
-
-
-
+
+
+ cn.iocoder.boot
+ yudao-module-bpm-biz
+ ${revision}
+
cn.iocoder.boot
yudao-spring-boot-starter-biz-error-code