Commit 8b49db81 by 金海浪

docs: 生成/更新 CAPABILITY.md(kb-bootstrap 跑库自动生成)

parent 6e1055f0
Pipeline #94338 failed with stage
in 6 seconds
# CAPABILITY · yanxuan-qc-change-system
> 机器生成与保鲜,勿手改。可全量重扫或按代码变更增量更新。最后刷新:2026-08-03
## 架构角色
后端业务服务。严选品控(QC)变更管理领域的服务端,承载变更流程流转、变更配置、供应商信息查询等能力,对前端管理后台(同组 `yanxuan-qc-change-flow-web`)提供 HTTP 接口,并通过 `@MissaClient` 服务发现 SDK 调用下游品控/供应链/待办/邮件等微服务。
## 职责边界
- **负责**
- 变更主流程(ChangeFlow):创建、提交、下发、撤销、催办、报价、查询、导出、操作人/责任人查询
- 变更子流程(ChangeSubFlow):分页、详情、提交、操作人查询
- 变更配置(ChangeConfig):配置项 CRUD、按类型查询、供应商信息查询、导出
- 供应商查询(Supplier):供应商信息、供应商商品、按商品 ID 反查供应商
- 用户鉴权(Cookie → ULA SDK `AuthClient`)、管理后台拦截器(`UserInterceptor`/`AdminUserLoginInterceptor`
- 数据导出(通过 DES `DesClient` 异步任务)
- 定时任务(dschedule `AutoSubmit` 自动提交类任务)
- **不负责**
- 前端页面与 BFF 转发层(由同组 `yanxuan-qc-change-flow-web` 承担)
- 品控检查执行本身、商品中心/供应商中心/待办中心等下游业务逻辑(本服务只编排调用)
- 变更数据落库 schema 由 `doc/scheme.sql``doc/addLogic.sql` 定义,本服务不维护 DB
- 技术栈:Java / Spring Boot 多模块 Maven 工程(web/biz/integration/dal/common/client/assembly),MyBatis + Druid,Redis Sentinel,apolloY 配置中心,dschedule 调度,missa RPC SDK,ULA 鉴权 SDK,DES 导出 SDK
## 出入口接口概览
按能力域分组的 controller 概览(非逐接口全清单;完整 path 见 ENDPOINTS.md 或源码 `@RequestMapping` 现取):
- **变更主流程**`ChangeFlowController` `/change/flow` — 变更单的创建/提交/下发/撤销/催办/报价/查询/导出/操作人查询(含 commander 信息 V2)
- **变更子流程**`ChangeSubFlowController` `/change/sub/flow` — 子流程分页/详情/提交/操作人查询
- **变更配置**`ChangeConfigController` `/config/change` — 配置项列表/详情/创建/修改/删除/类型查询/供应商信息查询/导出
- **供应商查询**`SupplierController` `/supplier` — 供应商信息、供应商商品、按商品 ID 反查供应商
- **测试**`TestController` `/test/**` — 测试入口(受 `AdminUserLoginInterceptor` 拦截)
- **健康检查**`HealthCheckController` `/i/health` — 健康检查(免鉴权)
鉴权拦截(`WebMvcConfig`):`UserInterceptor` 拦截 `/**`,排除 `/i/health``/change/flow/getOperator``/test/**``/api/des/callback/**``AdminUserLoginInterceptor` 拦截 `test/**`
## 依赖服务 + 中间件/配置依赖概览
**下游服务**`@MissaClient(serviceCode=...)` 硬编码可读出 → 记实;经 SDK/网关解析真实实例由服务发现完成):
| 下游 service_code | 可信度 | 依据落点 | 业务用途 |
|---|---|---|---|
| `yanxuan-qc-api` | 硬编码 | `integration/qc/QcRpcService.java``integration/flow/goods/QcApiRpcService.java` | 品控能力(变更涉及品控数据) |
| `yanxuan-flowx-server` | 硬编码 | `integration/flow/FlowRpcService.java` | flowx 流转引擎(变更流程流转) |
| `yanxuan-supplier-ms` | 硬编码 | `integration/supplier/SupplierRpcService.java``integration/flow/supplier/FlowRpcSupplierSendService.java` | 供应商微服务(供应商信息/发送) |
| `yanxuan-supplier-api` | 硬编码 | `integration/flow/supplier/FlowRpcSupplierService.java` | 供应商 API(流程侧) |
| `ic-basis` | 硬编码 | `integration/item/ItemRpcService.java` | 商品基础数据 |
| `yanxuan-itemcenter-admin` | 硬编码 | `integration/flow/goods/ItemcenterApiRpcService.java` | 商品中心管理端 |
| `yanxuan-pfu-api` | 硬编码 | `integration/flow/goods/PfuApiRpcService.java` | PFU API(商品/品控相关) |
| `yanxuan-ius` | 硬编码 | `integration/flow/ius/IusRpcService.java` | IUS 服务 |
| `yanxuan-sc-todo-center` | 硬编码 | `integration/todo/TodoRpcService.java` | 待办中心(变更待办任务) |
| `logistics-uas` | 硬编码 | `integration/flow/email/EmailRpcService.java` | 邮件发送(UAS) |
| `yanxuan-template` | 硬编码 | `integration/flow/email/EmailTemplateRpcService.java` | 邮件模板 |
| ULA 鉴权服务(`com.netease.yanxuan.user.ula.sdk.AuthClient`) | 待确认 | `integration/rpc/UserTicketClient.java` | 用户 Cookie 鉴权;服务名经 SDK 解析未硬编码 |
| DES 数据导出服务(`com.netease.mail.dp.des.starter.client.DesClient`) | 待确认 | `biz/service/DESExportService.java` | 异步导出任务;服务名经 SDK/starter 解析未硬编码 |
> 前端配套:同组 `yanxuan-qc-change-flow-web`(service_code 推测 `yx-qc-change-flow-web`)是本服务的管理后台前端,仓代码内无直接引用线索(前后端经 HTTP 接口对接,前端走网关/BFF 转发)。
**中间件/配置骨架**(静态结构,非具体连接串/密码/当前值):
| 类型 | 中间件/配置方式 | 配置文件路径 |
|---|---|---|
| 配置中心 | apolloY(`app.id=yanxuan-qc-change-system`,cluster=default);namespaces:`application``db-public``db-redis` | `assembly/src/main/resources/META-INF/app.properties``apolloY-server.properties` |
| DB | MySQL + Druid 连接池(`DrmDBConfig`/`DataSourceConfiguration` 从 apollo namespace `db-public``db.url/db.username/db.password/db.driverClassName`,支持 `@EnableDataSourceRefresh` 动态刷新) | `dal/src/main/java/.../config/DrmDBConfig.java``DataSourceConfiguration.java`;本地兜底 `config/{dev,test,regression,online}/application.properties` |
| 缓存 | Redis Sentinel(`DrmRedisConfig` 从 apollo namespace `db-redis``redis.master/redis.nodes/redis.password`) | `dal/src/main/java/.../config/DrmRedisConfig.java``RedisSentinelConfig.java` |
| 调度 | dschedule(`app-id=yanxuan-qc-change-system`,自动注册,fail 策略告警) | `assembly/src/main/resources/config/{env}/application.properties` |
| 鉴权 | ULA SDK `AuthClient` + `YxOpenidLogin`(Cookie 鉴权,拦截器 `UserInterceptor`) | `web/src/main/java/.../config/UserInterceptor.java``integration/rpc/UserTicketClient.java` |
| RPC | missa 客户端 SDK(`@MissaClient(serviceCode=...)` 声明式下游调用)+ `RpcTemplate`(HTTP 工具) | `integration/src/main/java/.../rpc/*` |
| 导出 | DES SDK(`DesClient` 异步导出任务,回调 `/api/des/callback/**`) | `biz/src/main/java/.../service/DESExportService.java` |
| 监控/日志 | `com.netease.om:monitor``log-java-client``yanxuan-tracer-client``helios-core``yanxuan-shadow` | `pom.xml` |
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment