昨天 9bad721754fe8bbe2e5f459d0706e0fefac569f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
server:
  port: 48080
 
--- #################### 数据库相关配置 ####################
spring:
  autoconfigure:
    # noinspection SpringBootApplicationYaml
    exclude:
      - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
      - org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration # 禁用 AI 模块的 Qdrant,手动创建
      - org.springframework.ai.vectorstore.redis.autoconfigure.RedisVectorStoreAutoConfiguration # 禁用 AI 模块的 Redis,手动创建
      - org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration # 禁用 AI 模块的 Milvus,手动创建
      - org.dromara.trans.config.TransServiceConfig # TODO 芋艿:easy-trans 兼容 Spring Boot 4 后移除(TransServiceConfig 引用了已移除的 RestTemplateBuilder)
      # 禁用未配置 API Key 的模型自动配置(只保留通义千问 Embedding 的手动配置)
      - org.springframework.ai.model.openai.autoconfigure.OpenAiChatAutoConfiguration
      - org.springframework.ai.model.openai.autoconfigure.OpenAiEmbeddingAutoConfiguration
      - org.springframework.ai.model.openai.autoconfigure.OpenAiImageAutoConfiguration
      - org.springframework.ai.model.openai.autoconfigure.OpenAiAudioSpeechAutoConfiguration
      - org.springframework.ai.model.openai.autoconfigure.OpenAiAudioTranscriptionAutoConfiguration
      - org.springframework.ai.model.openai.autoconfigure.OpenAiModerationAutoConfiguration
      - org.springframework.ai.model.deepseek.autoconfigure.DeepSeekChatAutoConfiguration
      - org.springframework.ai.model.anthropic.autoconfigure.AnthropicChatAutoConfiguration
      - org.springframework.ai.model.google.genai.autoconfigure.chat.GoogleGenAiChatAutoConfiguration
      - org.springframework.ai.model.google.genai.autoconfigure.embedding.GoogleGenAiEmbeddingConnectionAutoConfiguration
      - org.springframework.ai.model.google.genai.autoconfigure.embedding.GoogleGenAiTextEmbeddingAutoConfiguration
      - org.springframework.ai.model.ollama.autoconfigure.OllamaApiAutoConfiguration
      - org.springframework.ai.model.ollama.autoconfigure.OllamaChatAutoConfiguration
      - org.springframework.ai.model.ollama.autoconfigure.OllamaEmbeddingAutoConfiguration
      - org.springframework.ai.model.stabilityai.autoconfigure.StabilityAiImageAutoConfiguration
  # 数据源配置项
  datasource:
    druid: # Druid 【监控】相关的全局配置
      web-stat-filter:
        enabled: true
      stat-view-servlet:
        enabled: true
        allow: # 设置白名单,不填则允许所有访问
        url-pattern: /druid/*
        login-username: # 控制台管理用户名和密码
        login-password:
      filter:
        stat:
          enabled: true
          log-slow-sql: true # 慢 SQL 记录
          slow-sql-millis: 100
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
    dynamic: # 多数据源配置
      druid: # Druid 【连接池】相关的全局配置
        initial-size: 1 # 初始连接数
        min-idle: 1 # 最小连接池数量
        max-active: 20 # 最大连接池数量
        max-wait: 60000 # 配置获取连接等待超时的时间,单位:毫秒(1 分钟)
        time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒(1 分钟)
        min-evictable-idle-time-millis: 600000 # 配置一个连接在池中最小生存的时间,单位:毫秒(10 分钟)
        max-evictable-idle-time-millis: 1800000 # 配置一个连接在池中最大生存的时间,单位:毫秒(30 分钟)
        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
        pool-prepared-statements: true # 是否开启 PreparedStatement 缓存
        max-pool-prepared-statement-per-connection-size: 20 # 每个连接缓存的 PreparedStatement 数量
      primary: master
      datasource:
        master:
          url: jdbc:mysql://172.17.0.1:11101/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
          #          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # MySQL Connector/J 5.X 连接的示例
          #          url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例
          #          url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
          #          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true;useUnicode=true;characterEncoding=utf-8 # SQLServer 连接的示例
          #          url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 连接的示例
          #          url: jdbc:kingbase8://127.0.0.1:54321/test  # 人大金仓 KingbaseES 连接的示例
          #          url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 连接的示例
          #          url: jdbc:postgresql://127.0.0.1:5866/ruoyi-vue-pro # 瀚高 HighGo 连接的示例
          username: root
          password: xd@123456..
          #          username: sa # SQL Server 连接的示例
          #          password: Yudao@2024 # SQL Server 连接的示例
          #          username: SYSDBA # DM 连接的示例
          #          password: SYSDBA001 # DM 连接的示例
          #          username: root # OpenGauss 连接的示例
          #          password: Yudao@2024 # OpenGauss 连接的示例
          #          username: root # 瀚高 HighGo 连接的示例
          #          password: 123456 # 瀚高 HighGo 连接的示例
#        tdengine: # IoT 数据库(需要 IoT 物联网再开启噢!)
#          lazy: true # 开启懒加载,保证启动速度
#          url: jdbc:TAOS-WS://127.0.0.1:6041/ruoyi_vue_pro?varcharAsString=true&enableAutoReconnect=true # 参见:https://t.zsxq.com/qaX9c,开启 TDengine WebSocket 自动重连
#          driver-class-name: com.taosdata.jdbc.ws.WebSocketDriver
#          username: root
#          password: taosdata
#          druid:
#            validation-query: SELECT SERVER_STATUS() # TDengine 数据源的有效性检查 SQL
 
  # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
  data:
    redis:
      host: 172.17.0.1 # 地址
      port: 11102 # 端口
      database: 0 # 数据库索引
#      password: dev # 密码,建议生产环境开启
 
--- #################### 定时任务相关配置 ####################
 
# Quartz 配置项,对应 QuartzProperties 配置类
spring:
  quartz:
    auto-startup: true # 本地开发环境,尽量不要开启 Job
    scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName
    job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
    wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true
    properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档
      org:
        quartz:
          # Scheduler 相关配置
          scheduler:
            instanceName: schedulerName
            instanceId: AUTO # 自动生成 instance ID
          # JobStore 相关配置
          jobStore:
            # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162
            class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
            isClustered: true # 是集群模式
            clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒
            misfireThreshold: 60000 # misfire 阀值,单位:毫秒。
          # 线程池相关配置
          threadPool:
            threadCount: 25 # 线程池大小。默认为 10 。
            threadPriority: 5 # 线程优先级
            class: org.quartz.simpl.SimpleThreadPool # 线程池类型
    jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置
      initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。
 
--- #################### 服务保障相关配置 ####################
 
# Lock4j 配置项
lock4j:
  acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
  expire: 30000 # 分布式锁的超时时间,默认为 30000 毫秒
 
--- #################### 监控相关配置 ####################
 
# Actuator 监控端点的配置项
management:
  endpoints:
    web:
      base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
      exposure:
        include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
 
# Spring Boot Admin 配置项
spring:
  boot:
    admin:
      # Spring Boot Admin Client 客户端的相关配置
      client:
        url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址
        instance:
          service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
        username: admin
        password: admin
      # Spring Boot Admin Server 服务端的相关配置
      context-path: /admin # 配置 Spring
      # 允许嵌入 iframe 的域名(支持通配符),实际部署时,可以改为 "'self' [你的公网域名]"
      frame-ancestors: "'self' localhost localhost:48080 127.0.0.1 127.0.0.1:48080"
 
# 日志文件配置
logging:
  file:
    name: logs/${spring.application.name}.log # 日志文件名,相对于项目根目录
  level:
    # 配置自己写的 MyBatis Mapper 打印日志
    cn.iocoder.yudao.module.bpm.dal.mysql: debug
    cn.iocoder.yudao.module.infra.dal.mysql: debug
    cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper: INFO # 配置 ApiErrorLogMapper 的日志级别为 info,避免和 GlobalExceptionHandler 重复打印
    cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper: INFO # 配置 JobLogMapper 的日志级别为 info
    cn.iocoder.yudao.module.infra.dal.mysql.file.FileConfigMapper: INFO # 配置 FileConfigMapper 的日志级别为 info
    cn.iocoder.yudao.module.system.dal.mysql: debug
    cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info
    cn.iocoder.yudao.module.member.dal.mysql: debug
    cn.iocoder.yudao.module.crm.dal.mysql: debug
    cn.iocoder.yudao.module.erp.dal.mysql: debug
    cn.iocoder.yudao.module.mes.dal.mysql: debug
    cn.iocoder.yudao.module.ai.dal.mysql: debug
    cn.iocoder.yudao.module.im.dal.mysql: debug
    org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示
 
debug: false
 
yudao:
  ai:
    timeout: 60s # 单次大模型调用超时;不设的话模型排队时请求会一直挂起
    vector-store:
      type: milvus # 向量库类型:milvus
      milvus:
        initialize-schema: true
        database-name: test
        collection-name: knowledge_segment_test
        host: 36.213.90.123
        port: 19530
 
--- #################### 超级管理员相关配置 ####################
 
# 超级管理员配置项,设置当前项目所有自定义的配置
yudao:
  captcha:
    enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
  security:
    mock-enable: true
  access-log: # 访问日志的配置项
    enable: false
  demo: false # 关闭演示模式
  storage: # 文件上传配置
    path: /data/javaWork/mom/file # 文件存储根目录
    url-prefix: /admin-api/system/storage-blob # URL路径前缀
    domain: http://36.213.90.123:9500 # 域名前缀(按实际域名配置),前端配置好像不太对现在是直连后端,所有要后端端口
    expired: 120 # token过期时间(分钟)
    use-limit: 10 # token使用次数上限
    jwt-secret: abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG # JWT密钥
    compress: true # 是否压缩图片
    need-compress-size: 10MB # 触发压缩的文件大小阈值
    compress-quality: 0.5 # 压缩质量(0.0-1.0)
  qcreport: # 智能质检报告
    pdf: # PDF 出件:服务端调 Chromium 把报告 HTML 打印成 PDF
      # 部署前置(Linux 服务器):
      #   1) 浏览器:本项 channel 默认 chrome,需要服务器上装了 Chrome;没装就改成 '' 并执行
      #      playwright install chromium 用自带的 Chromium,或把 executable-path 指向服务器上的浏览器
      #   2) 中文字体:报告正文是中文,服务器缺 CJK 字体会打成方框,需装 fonts-wqy-zenhei / Noto Sans CJK
      #   3) 以 root 运行:Chromium 需要 --no-sandbox,加到 browser-args 里
      enabled: true # 关掉后导出接口会明确报「未启用」,而不是抛 500
      channel: chrome # 浏览器通道;留空 = Playwright 自带 Chromium(需先 playwright install chromium)
      executable-path: '' # 浏览器可执行文件路径,配了就优先于 channel
      concurrency: 2 # 同时进行的 PDF 渲染上限,Chromium 很吃内存,不要放开
      timeout-ms: 30000 # 单次渲染超时(毫秒),同时也是排队等并发名额的上限
      show-page-number: true # 页脚打印「第 N 页 / 共 M 页」
      browser-args: [ ] # 额外的浏览器启动参数,如 Linux 以 root 运行需加 --no-sandbox
    ai-import: # AI 导入:上传既有报告文件,识别成模板草稿
      # 部署前置:应用服务器需能出网访问 DashScope(通义千问)。内网部署请把 enabled 置 false,
      # 接口会明确报「未启用」而不是一直等到 AI 超时。此外还需在「AI 大模型」里配好对话模型与密钥。
      enabled: true
      max-files: 3 # 一次最多几个文件
      max-pages-per-file: 5 # 单文件页数上限,超出报错而不是静默截断
      max-pages-per-request: 8 # 一次请求累计页数上限(多文件叠加后的总闸)
      max-duration-seconds: 180 # 一次导入总耗时上限(两次调用之间检查);前端超时须比它加上 yudao.ai.timeout 更宽
      max-file-size-mb: 20 # 单文件大小上限
      max-components: 200 # 识别出的组件总数上限,超出截断并在提示里说明
      pdf-text-page-threshold: 30 # 平均每页字符数低于此值即按扫描件逐页转图识别
      render-dpi: 200 # 扫描页转图的 DPI,低于 200 中文字形会糊
      max-xlsx-rows: 300 # Excel 单表最多读取的行数
  database-backup: # 数据库备份配置
    host: 172.17.0.1 # 备份目标 MySQL 主机,留空自动从数据源 JDBC URL 解析
    port: 11101 # 备份目标 MySQL 端口,留空自动从数据源 JDBC URL 解析
    database: ruoyi-vue-pro # 备份目标数据库,留空自动从数据源 JDBC URL 解析
    username: root # 备份账号,留空使用数据源账号
    password: 'xd@123456..' # 备份密码,留空使用数据源密码
    command: # mysqldump 命令,留空自动检测部署环境(本机 mysqldump 或 Docker MySQL 容器);可手动指定,如:docker exec mysql8 mysqldump