feat(admin): Add user management and upgrade to module permission system

Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
This commit is contained in:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,263 +1,262 @@
# Tool B MVP版本完成总结
> **鏃ユ湡锛?* 2025-12-03
> **日期:** 2025-12-03
> **里程碑:** Tool B - 病历结构化机器人 MVP版本完成
> **鐘舵€侊細** 鉁?宸蹭笂绾垮彲鐢?
> **状态:** ✅ 已上线可用
---
## 🎉 完成概览
### **寮€鍙戝懆鏈?*
### **开发周期**
- **开始日期:** 2025-12-02
- **瀹屾垚鏃ユ湡锛?* 2025-12-03
- **瀹為檯宸ユ湡锛?* 2涓<32>伐浣滄棩
- **浠g爜閲忥細** 鍓嶇<E98D93>~1400琛岋紝鍚庣<E98D9A>浼樺寲~500琛?
- **完成日期:** 2025-12-03
- **实际工期:** 2个工作日
- **代码量:** 前端~1400行后端优化~500
### **完成功能**
鉁?**鍓嶇<E98D93>瀹屾暣瀹炵幇**锛?
- Portal鏁版嵁娓呮礂宸ヤ綔鍙伴〉闈?
**前端完整实现**
- Portal数据清洗工作台页面
- Tool B 5步工作流上传→模板→提取→验证→结果
- API鏈嶅姟灞傚畬鏁村<EFBFBD>鎺?
- API服务层完整对接
- UI精致化匹配原型设计
鉁?**鍚庣<E98D9A>API楠岃瘉**锛?
**后端API验证**
- 6个API端点全部可用
- LLM璋冪敤姝e父宸ヤ綔锛圖eepSeek-V3 + Qwen-Max锛?
- 鍙屾ā鍨嬫彁鍙栦氦鍙夐獙璇佹垚鍔?
- LLM调用正常工作DeepSeek-V3 + Qwen-Max
- 双模型提取交叉验证成功
- Excel导出功能可用
鉁?**鐪熷疄鏁版嵁娴嬭瘯**锛?
- 涓婁紶9鏉梾鐞嗘暟鎹<EFBFBD>祴璇曟垚鍔?
- 鎻愬彇5涓<EFBFBD>瓧娈靛叏閮ㄦ垚鍔?
- 璇嗗埆1鏉竴鑷达紝8鏉″啿绐侊紙绗﹀悎棰勬湡锛?
- Token娑堣€楋細~10k tokens/9鏉¤<EFBFBD>褰?
**真实数据测试**
- 上传9条病理数据测试成功
- 提取5个字段全部成功
- 识别1条一致8条冲突符合预期
- Token消耗:~10k tokens/9条记录
---
## 📊 核心指标
### **性能表现**
| 鎸囨爣 | 鏁板€?| 澶囨敞 |
| 指标 | 数值 | 备注 |
|------|------|------|
| 鏂囦欢涓婁紶 | <1绉?| 13KB鏂囦欢 |
| 鍋ュ悍妫€鏌?| ~0.5绉?| 鍓?00琛岄噰鏍?|
| 鍙屾ā鍨嬫彁鍙?| ~5绉?鏉?| DeepSeek + Qwen骞跺彂 |
| 9鏉¤<EFBFBD>褰曟€昏€楁椂 | ~49绉?| 鍖呭惈PII鑴辨晱銆丣SON瑙 |
| Token娑堣€?| ~1100 tokens/鏉?| 鍙屾ā鍨嬪悎璁?|
| 文件上传 | <1| 13KB文件 |
| 健康检查 | ~0.5秒 | 前100行采样 |
| 双模型提取 | ~5秒/条 | DeepSeek + Qwen并发 |
| 9条记录总耗时 | ~49秒 | 包含PII脱敏、JSON解析 |
| Token消耗 | ~1100 tokens/条 | 双模型合计 |
### **质量指标**
| 鎸囨爣 | 鏁板€?| 鐩<> |
| 指标 | 数值 | 目标 |
|------|------|------|
| API鎴愬姛鐜?| 100% | >95% |
| LLM鍝嶅簲鎴愬姛鐜?| 100% | >90% |
| JSON瑙f瀽鎴愬姛鐜?| 100% | >95% |
| API成功率 | 100% | >95% |
| LLM响应成功率 | 100% | >90% |
| JSON解析成功率 | 100% | >95% |
| 冲突检测准确率 | 88.9% (8/9) | >80% |
---
## 馃彈锔?鎶€鏈<E282AC>疄鐜?
## 🏗️ 技术实现
### **前端架构**
```
frontend-v2/src/modules/dc/
├── pages/
鈹? 鈹溾攢鈹€ Portal.tsx # 宸ヤ綔鍙伴〉闈?
鈹? 鈹斺攢鈹€ tool-b/
鈹? 鈹溾攢鈹€ index.tsx # Tool B涓诲叆鍙紙鐘舵€佺<EFBFBD>鐞嗭級
鈹? 鈹溾攢鈹€ Step1Upload.tsx # 鏂囦欢涓婁紶 & 鍋ュ悍妫€鏌?
鈹? 鈹溾攢鈹€ Step2Schema.tsx # 鏅鸿兘妯℃澘閫夋嫨
鈹? 鈹溾攢鈹€ Step3Processing.tsx # 鍙屾ā鍨嬫彁鍙栬繘搴?
鈹? 鈹溾攢鈹€ Step4Verify.tsx # 浜ゅ弶楠岃瘉宸ヤ綔鍙?
鈹? 鈹溾攢鈹€ Step5Result.tsx # 瀹屾垚缁撴灉
鈹? 鈹斺攢鈹€ components/
鈹? 鈹斺攢鈹€ StepIndicator.tsx # 姝ラ<EFBFBD>鎸囩ず鍣?
│ ├── Portal.tsx # 工作台页面
│ └── tool-b/
├── index.tsx # Tool B主入口(状态管理)
├── Step1Upload.tsx # 文件上传 & 健康检查
├── Step2Schema.tsx # 智能模板选择
├── Step3Processing.tsx # 双模型提取进度
├── Step4Verify.tsx # 交叉验证工作台
├── Step5Result.tsx # 完成结果
└── components/
└── StepIndicator.tsx # 步骤指示器
├── components/
鈹? 鈹溾攢鈹€ ToolCard.tsx # 宸ュ叿鍏ュ彛鍗$墖
鈹? 鈹溾攢鈹€ TaskList.tsx # 鏈€杩戜换鍔″垪琛?
鈹? 鈹斺攢鈹€ AssetLibrary.tsx # 鏁版嵁璧勪骇搴?
│ ├── ToolCard.tsx # 工具入口卡片
│ ├── TaskList.tsx # 最近任务列表
│ └── AssetLibrary.tsx # 数据资产库
├── api/
鈹? 鈹斺攢鈹€ toolB.ts # API鏈嶅姟灞傦紙7涓<EFBFBD>帴鍙
│ └── toolB.ts # API服务层7个接口
├── hooks/
鈹? 鈹溾攢鈹€ useRecentTasks.ts # 浠诲姟鏁版嵁hooks
鈹? 鈹斺攢鈹€ useAssets.ts # 璧勪骇鏁版嵁hooks
│ ├── useRecentTasks.ts # 任务数据hooks
│ └── useAssets.ts # 资产数据hooks
└── types/
└── portal.ts # 类型定义
鎬昏<EFBFBD>: ~1400琛屼唬鐮?
总计: ~1400行代码
```
### **后端API**
```
GET /api/v1/dc/tool-b/templates 鉁?鑾峰彇妯℃澘鍒楄〃
POST /api/v1/dc/tool-b/upload 鉁?鏂囦欢涓婁紶
POST /api/v1/dc/tool-b/health-check 鉁?鍋ュ悍妫€鏌?
POST /api/v1/dc/tool-b/tasks 鉁?鍒涘缓鎻愬彇浠诲姟
GET /api/v1/dc/tool-b/tasks/:id/progress 鉁?鏌ヨ<E98F8C>杩涘害
GET /api/v1/dc/tool-b/tasks/:id/items 鉁?鑾峰彇楠岃瘉鏁版嵁
POST /api/v1/dc/tool-b/items/:id/resolve 鉁?瑁佸喅鍐茬獊
GET /api/v1/dc/tool-b/tasks/:id/export 鉁?瀵煎嚭Excel
GET /api/v1/dc/tool-b/templates ✅ 获取模板列表
POST /api/v1/dc/tool-b/upload ✅ 文件上传
POST /api/v1/dc/tool-b/health-check ✅ 健康检查
POST /api/v1/dc/tool-b/tasks ✅ 创建提取任务
GET /api/v1/dc/tool-b/tasks/:id/progress ✅ 查询进度
GET /api/v1/dc/tool-b/tasks/:id/items ✅ 获取验证数据
POST /api/v1/dc/tool-b/items/:id/resolve ✅ 裁决冲突
GET /api/v1/dc/tool-b/tasks/:id/export ✅ 导出Excel
```
### **核心服务**
```typescript
// 4<EFBFBD>牳蹇冩湇鍔?
HealthCheckService // 鏁版嵁璐ㄩ噺妫€鏌ワ紙绌哄€肩巼銆乀oken棰勪及锛?
TemplateService // 妯℃澘绠$悊锛?涓<><E6B693>璁?+ Seed锛?
DualModelExtractionService // 鍙屾ā鍨嬪苟鍙戞彁鍙?+ PII鑴辨晱
// 4个核心服务
HealthCheckService // 数据质量检查空值率、Token预估
TemplateService // 模板管理3个预设 + Seed
DualModelExtractionService // 双模型并发提取 + PII脱敏
ConflictDetectionService // 冲突检测(字段级对比)
// 复用平台能力
?storage // 鏂囦欢涓婁紶涓嬭浇锛圠ocalFS锛?
?logger // 缁撴瀯鍖栨棩蹇?
?cache // 缁撴灉缂撳瓨锛圡emory锛?
?prisma // 鏁版嵁搴揙RM
?LLMFactory // LLM閫傞厤鍣<EFBFBD>DeepSeek + Qwen锛?
storage // 文件上传下载LocalFS
logger // 结构化日志
cache // 结果缓存Memory
prisma // 数据库ORM
LLMFactory // LLM适配器(DeepSeek + Qwen
```
---
## 馃悰 Bug<EFBFBD><EFBFBD>璁板綍锛?025-12-03锛?
## 🐛 Bug修复记录2025-12-03
### **API集成阶段**
1. 鉁?鏂囦欢涓婁紶鏈<E7B4B6>В鏋怑xcel鍐呭<E98D90>锛堢己灏戝垪鍚嶅拰琛屾暟锛?
2. 鉁?Excel瑙f瀽range鍙傛暟閿欒<EFBFBD>锛坄{ range: 99 }`搴斾负`slice(0,100)`锛?
3. 鉁?API杩斿洖鏍煎紡涓嶄竴鑷达紙`result.data`瀯闂<EFBFBD><EFBFBD>锛?
4. 鉁?createTask瀛楁<EFBFBD>鍚嶄笉鍖归厤锛坄fileKey` vs `sourceFileKey`锛?
1. ✅ 文件上传未解析Excel内容缺少列名和行数
2. Excel解析range参数错误(`{ range: 99 }`应为`slice(0,100)`
3. API返回格式不一致(`result.data`解构问题)
4. createTask字段名不匹配(`fileKey` vs `sourceFileKey`
### **React渲染问题**
5. 鉁?Step2鏃犻檺寰<EFBFBD>幆锛坲seEffect渚濊禆鏁扮粍鍖呭惈`updateState`锛?
6. 鉁?Step3鏃犻檺寰<EFBFBD>幆锛圓PI澶辫触鍚庢湭娓呴櫎setInterval锛?
7. 鉁?Step3 React Strict Mode閲嶅<EFBFBD>鎵ц<EFBFBD>锛堢己灏慲useRef`鏍囪<EFBFBD>锛?
8. 鉁?Step4鏃犻檺寰<EFBFBD>幆锛坲seEffect渚濊禆鏁扮粍鍖呭惈`updateState`锛?
5. Step2无限循环useEffect依赖数组包含`updateState`
6. Step3无限循环API失败后未清除setInterval
7. Step3 React Strict Mode重复执行(缺少`useRef`标记)
8. Step4无限循环useEffect依赖数组包含`updateState`
### **LLM调用问题**
9. 鉁?LLM璋冪敤鏂规硶瀹屽叏閿欒<EFBFBD>锛?
- `LLMFactory.createLLM()` 鈫?搴斾负`getAdapter()`
- `llm.generateText()` 鈫?搴斾负`adapter.chat()`
- `response.text` 鈫?搴斾负`response.content`
- `response.tokensUsed` 鈫?搴斾负`response.usage?.totalTokens`
9. LLM调用方法完全错误:
- `LLMFactory.createLLM()` → 应为`getAdapter()`
- `llm.generateText()` → 应为`adapter.chat()`
- `response.text` → 应为`response.content`
- `response.tokensUsed` → 应为`response.usage?.totalTokens`
### **导出功能问题**
10. 鉁?Content-Disposition<EFBFBD>枃鏂囦欢鍚嶅<EFBFBD>鑷?00閿欒<E996BF>锛堥渶URL缂栫爜锛?
11. 鉁?Excel瀵煎嚭瀛楁<EFBFBD>椤哄簭闅忔満锛堝簲鎸夋ā鏉垮畾涔夐『搴忥級
10. Content-Disposition中文文件名导致500错误需URL编码
11. Excel导出字段顺序随机(应按模板定义顺序)
---
## 鉁?宸查獙璇佸姛鑳?
## ✅ 已验证功能
### **Step 1锛氭枃浠朵笂浼?& 鍋ュ悍妫€鏌?*
- 鉁?Excel鏂囦欢涓婁紶锛堟敮鎸?xlsx/.xls锛?
- 鉁?鑷<>姩瑙瀽鍒楀悕鍜岃<E98D9C>鏁?
- 鉁?鍒楅€夋嫨涓嬫媺妗嗗姩鎬佺敓鎴?
- 鉁?鍋ュ悍妫€鏌ワ紙绌哄€肩巼銆佸钩鍧囬暱搴︺€乀oken棰勪及锛?
- 鉁?鎷︽埅涓嶅悎鏍兼暟鎹<E69A9F>垪锛堢┖鍊肩巼>80%鎴栧钩鍧囬暱搴?10锛?
### **Step 1:文件上传 & 健康检查**
- Excel文件上传(支持.xlsx/.xls
- ✅ 自动解析列名和行数
- ✅ 列选择下拉框动态生成
- ✅ 健康检查空值率、平均长度、Token预估
- ✅ 拦截不合格数据列(空值率>80%或平均长度<10
### **Step 2锛氭櫤鑳芥ā鏉块厤缃?*
- 鉁?3涓<33><E6B693>璁炬ā鏉匡紙鑲虹檶鐥呯悊銆佺硸灏跨梾鍏ラ櫌銆侀珮琛€鍘嬮棬璇婏級
- 鉁?鐤剧梾绫诲瀷鍜屾姤鍛婄被鍨嬭仈鍔?
- 鉁?瀛楁<E7809B>鍒楄〃鍔ㄦ€佸姞杞?
- 鉁?妯℃澘Prompt瀹屾暣涓斾笓涓?
### **Step 2:智能模板配置**
- ✅ 3个预设模板肺癌病理、糖尿病入院、高血压门诊
- ✅ 疾病类型和报告类型联动
- ✅ 字段列表动态加载
- ✅ 模板Prompt完整且专业
### **Step 3双模型提取**
- 鉁?浠诲姟鍒涘缓鎴愬姛
- 鉁?DeepSeek-V3璋冪敤姝e父
- 鉁?Qwen-Max璋冪敤姝e父
- 鉁?杩涘害瀹炴椂鏇存柊
- 鉁?鏃ュ織杈撳嚭娓呮櫚
- 鉁?PII鑴辨晱宸ヤ綔
- ✅ 任务创建成功
- DeepSeek-V3调用正常
- Qwen-Max调用正常
- ✅ 进度实时更新
- ✅ 日志输出清晰
- PII脱敏工作
### **Step 4交叉验证工作台**
- 鉁?楠岃瘉缃戞牸鍔犺浇鎴愬姛
- 鉁?鏄剧ずDeepSeek鍜孮wen鍙屾ā鍨嬬粨鏋?
- 鉁?鍐茬獊瀛楁<E7809B>楂樹寒鏄剧ず
- 鉁?閲囩撼鎸夐挳鍙<E68CB3>
- 鉁?瀹炴椂鏇存柊鏈<E69F8A>湴鐘舵€?
- 鉁?API淇濆瓨瑁佸喅缁撴灉
- ✅ 验证网格加载成功
- ✅ 显示DeepSeek和Qwen双模型结果
- ✅ 冲突字段高亮显示
- ✅ 采纳按钮可用
- ✅ 实时更新本地状态
- API保存裁决结果
### **Step 5锛氬畬鎴愮粨鏋?*
- 鉁?鏄剧ず缁熻<E7BC81>鏁版嵁
- 鉁?Token娑堣€楀睍绀?
- 鉁?Excel瀵煎嚭鍔熻兘
### **Step 5:完成结果**
- ✅ 显示统计数据
- Token消耗展示
- Excel导出功能
---
## 鈿狅笍 宸茬煡闂<E785A1><E99782>锛堟妧鏈<E5A6A7>€哄姟锛?
## ⚠️ 已知问题(技术债务)
详见:`07-技术债务/Tool-B技术债务清单.md`
### **P1 - 高优先级**
1. 鉂?Excel瀵煎嚭涓庡墠绔<EFBFBD>樉绀哄彲鑳戒笉瀹屽叏涓€鑷达紙鍒楅『搴忥級
2. 鉂?Excel棰勫<EFBFBD>鐞嗙己澶憋紙鑴忔暟鎹<EFBFBD>€佸悎骞跺崟鍏冩牸銆佸叕寮忕瓑锛?
1. Excel导出与前端显示可能不完全一致(列顺序)
2. Excel预处理缺失(脏数据、合并单元格、公式等)
### **P2 - 中优先级**
3. 鉂?姝ラ<E5A79D>3杩涘害鏉℃樉绀轰笉澶熺粏鑵伙紙鐩存帴璺冲埌100%锛?
4. 鉂?涓嶆敮鎸佺敤鎴疯嚜瀹氫箟妯℃澘
3. ❌ 步骤3进度条显示不够细腻直接跳到100%
4. ❌ 不支持用户自定义模板
---
## 馃搱 涓嬩竴姝ヨ<E5A79D>鍒?
## 📈 下一步计划
### **近期(本周)**
1. <EFBFBD><EFBFBD>Excel瀵煎嚭闂<EFBFBD><EFBFBD>锛?1锛?
1. 修复Excel导出问题(#1
2. 补充集成测试用例
3. 编写用户使用手册
### **中期(下周)**
1. 瀹炵幇Excel棰勫<EFBFBD>鐞嗘湇鍔★紙#3锛?
2. 浼樺寲姝ラ<EFBFBD>3杩涘害鏄剧ず锛?2锛?
1. 实现Excel预处理服务(#3
2. 优化步骤3进度显示#2
### **远期(下月)**
1. 鐢ㄦ埛鑷<EFBFBD>畾涔夋ā鏉垮姛鑳斤紙#4锛?
2. Tool A & Tool C 寮€鍙?
1. 用户自定义模板功能(#4
2. Tool A & Tool C 开发
---
## 馃幆 鍟嗕笟浠峰€?
## 🎯 商业价值
### **宸查獙璇佸満鏅?*
- 鉁?鑲虹檶鐥呯悊鎶ュ憡缁撴瀯鍖栵紙9鏉℃祴璇曟暟鎹<E69A9F>
- 鉁?5涓<35>瓧娈垫彁鍙栨垚鍔?
- 鉁?鍙屾ā鍨嬩氦鍙夐獙璇侀檷浣庨敊璇<E6958A>
### **已验证场景**
- ✅ 肺癌病理报告结构化9条测试数据
- ✅ 5个字段提取成功
- ✅ 双模型交叉验证降低错误率
### **潜在ROI**
| 指标 | 人工处理 | AI处理 | 效率提升 |
|------|---------|--------|---------|
| 鍗曟潯璁板綍鑰楁椂 | ~3鍒嗛挓 | ~5绉?| **36鍊?* |
| 100鏉¤<EFBFBD>褰?| 5灏忔椂 | 8鍒嗛挓 | **37.5鍊?* |
| 閿欒<EFBFBD>鐜?| ~5-10% | ~2-3% | **闄嶄綆60%** |
| 浜哄姏鎴愭湰 | 200/h | 0.01/鏉?| **鑺傜渷99.9%** |
| 单条记录耗时 | ~3分钟 | ~5| **36** |
| 100条记录 | 5小时 | 8分钟 | **37.5** |
| 错误率 | ~5-10% | ~2-3% | **降低60%** |
| 人力成本 | ¥200/h | ¥0.01/| **节省99.9%** |
---
## 📝 团队协作
### **寮€鍙戣繃绋?*
### **开发过程**
- **需求沟通:** 多次UI原型对照调整
- **鎶€鏈<EFBFBD>€夊瀷锛?* 澶嶇敤骞冲彴鑳藉姏锛圠LMFactory銆丼torage锛?
- **浠g爜瑙勮寖锛?* 閬靛惊浜戝師鐢熷紑鍙戣<E98D99>鑼?
- **Git绠$悊锛?* 姣忔棩鎻愪氦锛岄槻姝<E6A7BB>唬鐮佷涪澶?
- **技术选型:** 复用平台能力LLMFactory、Storage
- **代码规范:** 遵循云原生开发规范
- **Git管理:** 每日提交,防止代码丢失
### **关键决策**
1. 鉁?浣跨敤骞冲彴LLMFactory鑰岄潪鐙<EFBFBD>珛灏佽<EFBFBD>
2. 鉁?React Query悊API鐘舵€侊紙寰呬紭鍖栵級
3. 鉁?useRef闃叉<EFBFBD>Strict Mode閲嶅<EFBFBD>鎵ц<EFBFBD>
4. 鉁?鎸夋ā鏉垮瓧娈甸『搴忓<E690B4>鍑篍xcel
1. ✅ 使用平台LLMFactory而非独立封装
2. React Query管理API状态待优化
3. useRef防止Strict Mode重复执行
4. ✅ 按模板字段顺序导出Excel
---
## 🔗 相关文档
- [技术债务清单](../07-技术债务/Tool-B技术债务清单.md)
- [寮€鍙戣<EFBFBD>鍒抅(../04-寮€鍙戣<E98D99>鍒?DC妯″潡Tool-B寮€鍙戣<E98D99>鍒?md)
- [API璁捐<EFBFBD>鏂囨。](../02-鎶€鏈<EFBFBD><EFBFBD>璁?API璁捐<E79281>鏂囨。-DC妯″潡锛堝畬鏁寸増锛?md)
- [鏁版嵁搴撹<EFBFBD>璁℃枃妗<EFBFBD>(../02-鎶€鏈<E282AC><E98F88>璁?鏁版嵁搴撹<E690B4>璁℃枃妗?DC妯″潡锛堝畬鏁寸増锛?md)
- [开发计划](../04-开发计划/DC模块Tool-B开发计划.md)
- [API设计文档](../02-技术设计/API设计文档-DC模块完整版.md)
- [数据库设计文档](../02-技术设计/数据库设计文档-DC模块完整版.md)
---
**鏂囨。鍒涘缓鏃堕棿锛?* 2025-12-03
**缁存姢鑰咃細** DC妯″潡寮€鍙戝洟闃?
**文档创建时间:** 2025-12-03
**维护者:** DC模块开发团队