feat: 新增动态表单与工作流模块

- module/form: 动态表单定义、数据、版本快照的增删改查与渲染校验
- module/workflow: Flowable 审批流,含流程设计、发起、审批中心与演示流程
- module/config: 工作流开关 flowable.enabled,关闭时不注册 Bean 并排除引擎自动配置
- auth: 按登录方式拆为 password/sms/qrcode/wxma/session 五个子包
- framework/security: 新增 config、handler,承载安全配置与认证授权失败处理
- application-*.yml: flowable 配置按 dev/prod/youlai 环境拆分
- sql/extensions: 新增 dynamic-form.sql、workflow.sql 增量脚本
- README: 补充目录结构、可选扩展与系统预览截图
This commit is contained in:
Ray.Hao
2026-09-08 10:06:41 +08:00
parent 3c9e24d978
commit baf2dbe509
186 changed files with 5647 additions and 934 deletions

View File

@@ -1,17 +1,34 @@
package com.youlai.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigurationExcludeFilter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.TypeExcludeFilter;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 应用启动类
*
* <p>等价于 @SpringBootApplication,但显式声明 @ComponentScan 以排除工作流包,
* 改由 {@link com.youlai.boot.module.config.WorkflowModuleConfig} 按 flowable.enabled 决定是否扫描</p>
*
* @author Ray.Hao
* @since 3.0.0
*/
@ConfigurationPropertiesScan
@EnableScheduling
@SpringBootApplication
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(basePackages = "com.youlai.boot", excludeFilters = {
// 保留 @SpringBootApplication 默认的排除器
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "com\\.youlai\\.boot\\.module\\.workflow\\..*")
})
public class YouLaiBootApplication {
public static void main(String[] args) {