Junjie
3 天以前 3e793a6d2173889f4d006f2c8174f3eec4992745
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
# 系统版本信息
app:
  version: 3.0.1.5
  version-type: prd  # prd 或 dev
  i18n:
    default-locale: zh-CN
    supported-locales:
      - zh-CN
      - en-US
    # 内置语言包读取位置:classpath:/i18n/<locale>/*.properties
    # 外置可安装语言包覆盖目录:./stock/out/@pom.build.finalName@/i18n/<locale>/*.properties
    pack-path: ../stock/out/@pom.build.finalName@/i18n
    # 外置语言包热加载检查周期(秒)
    refresh-seconds: 10
 
server:
  port: 9090
  servlet:
    context-path: /@pom.build.finalName@
  shutdown: graceful
 
spring:
  application:
    name: @pom.build.finalName@
  datasource:
    hikari:
      validation-timeout: 3000
      connection-test-query: select 1
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/wcs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
  mvc:
    static-path-pattern: /**
  data:
    redis:
      host: 127.0.0.1
      port: 6379
      database: 0
      # password: 123456
  task:
    scheduling:
      pool:
        size: 3
      shutdown:
        await-termination: true
        await-termination-period: 30s
    execution:
      shutdown:
        await-termination: true
        await-termination-period: 30s
  lifecycle:
    timeout-per-shutdown-phase: 20s
  ai:
    mcp:
      server:
        base-url: "${app.ai.mcp.server.public-base-url:http://127.0.0.1:${server.port:9090}${server.servlet.context-path:}}"
        name: wcs-mcp
        version: 1.0.0
        protocol: STREAMABLE
        type: SYNC
        sse-endpoint: /ai/mcp/sse
        sse-message-endpoint: /ai/mcp/message
        streamable-http:
          mcp-endpoint: /ai/mcp
        instructions: 提供 WCS 设备状态、任务、日志、配置和主流程伪代码查询能力
        annotation-scanner:
          enabled: false
        capabilities:
          tool: true
          resource: false
          prompt: false
          completion: false
 
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
#  global-config:
#    field-strategy: 0
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 
 
logging:
  file:
    path: ../stock/out/@pom.build.finalName@/logs
 
super:
  pwd: xltys1995
 
swagger:
  enable: false
 
#License相关配置
license:
  subject: crnWcsDev
  publicAlias: publicCert
  storePass: public_zhongyang_123456789
  licensePath: license.lic
  publicKeysStorePath: publicCerts.keystore
  remoteServerUrl: http://net.zoneyung.net:9999/license
 
deviceExecuteConfig:
  # 每个线程管控设备执行数量
  threadControlCount: 10
  liftType: lift
 
mainProcessPlugin: FakeProcess
 
deviceLogStorage:
  # 设备日志运行时仅支持 file
  type: file
  # file类型存储地址
  loggingPath: ../stock/out/@pom.build.finalName@/deviceLogs
  # 日志过期时间 单位天
  expireDays: 7
  # 设备日志异步发布线程数,独立于主流程异步调度器
  asyncPublishWorkers: 6
  # direct-file writer 允许挂起的 lane 数上限,超出时丢弃新增 lane 的辅助日志
  directFileQueueCapacity: 2048
  # 达到该条数后触发一次批量flush
  writerFlushBatchSize: 64
  # 未达到批量阈值时的最长flush间隔(毫秒)
  writerFlushIntervalMs: 200
  # lane 长时间空闲后关闭活动writer(毫秒)
  writerIdleCloseMs: 30000
  # manifest 刷新去抖时间(毫秒)
  manifestRefreshDebounceMs: 1000
  # 低频扫描并清理过期day目录
  cleanupScanCron: "0 0 3 * * ?"
 
deviceReplay:
  chunkSampleSize: 200
  maxChunkFrames: 32
  timelineBucketSeconds: 19
  maxWindowMinutes: 120
  maxConcurrentSessions: 12
  maxPrefetchChunks: 3
  maxChunkCacheEntries: 256
  sessionTtlSeconds: 1800
 
devicePingStorage:
  enabled: true
  # 秒级设备网络探测日志存储地址
  loggingPath: ../stock/out/@pom.build.finalName@/devicePingLogs
  # 日志过期时间 单位天
  expireDays: 7
  # 采样周期(毫秒)
  intervalMs: 1000
  # 单次探测超时(毫秒)
  timeoutMs: 3000
  # 每个样本内连续探测次数,用于直接得到 min/avg/max 三个指标
  probeCount: 3
  # ping 数据包大小(字节),< 0 时沿用系统默认;Windows 对应 -l,macOS/Linux 对应 -s
  packetSize: 2048
  # 并行探测线程数
  maxParallel: 8
 
llm:
  # 现已迁移到数据库表 sys_llm_route 维护(支持多API/多模型/多Key自动切换)
  # 以下仅作为数据库为空时的兼容回退配置
  # SpringAI 客户端超时配置
  connect-timeout-ms: 10000
  read-timeout-ms: 120000
  thinking: false
  base-url:
  api-key:
  model:
 
perf:
  methodTiming:
    enabled: false
    thresholdMs: 50
    sampleRate: 1.0
 
station:
  outbound:
    # 出库命令入设备执行链路后,等待设备状态回显任务号的超时时间
    pending-discover-timeout-seconds: 60
    # 已存在活动路由会话时,继续保持 pending 的保护时间
    pending-session-protect-seconds: 90
    # 最近已经成功写过同源站 MOVE 命令时,继续保持 pending 的保护时间
    recent-dispatch-protect-seconds: 60