Files
hms/docs/audits/v2/11-tech-debt.md
iven df1d85bfde docs: T40 UI 审计报告 + wiki 更新 + Docker 配置
- T40 UI 审计计划和结果文档(docs/qa/)
- wiki 更新:miniprogram 设计系统合规审计记录 + index 关键数字更新
- 审计 V2 完整报告(docs/audits/v2/)
- 讨论记录文档(docs/discussions/)
- 设计规格和实施计划(docs/superpowers/)
- 角色测试计划和结果(docs/qa/role-test-*)
- Docker 生产部署配置
2026-05-13 23:29:42 +08:00

99 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技术债务清单
> 审计日期2026-05-04 | 范围:`crates/*` + `apps/*`
## 1. `#[allow(dead_code)]` / `#[allow(unused` 抑制清单17 处)
| 文件 | 行号 | 说明 |
|------|------|------|
| `erp-ai/service/reanalysis.rs` | :14 | FromQueryResult 映射字段 |
| `erp-ai/provider/claude.rs` | :55,:66,:72,:74 | serde 反序列化字段4 处) |
| `erp-auth/service/wechat_service.rs` | :43 | WeChat 服务字段 |
| `erp-plugin/host.rs` | :42,:44 | 插件宿主字段2 处) |
| `erp-plugin/data_service.rs` | :462,:775,:1173,:1536 | FromQueryResult chk/id/check_result 字段4 处) |
| `erp-server/middleware/rate_limit.rs` | :27 | 限流结构体字段 |
| `erp-server/handlers/analytics.rs` | :11 | 客户端上报字段,待接入 |
| `erp-health/service/action_inbox_service.rs` | :119,:131,:140 | FromQueryResult 映射字段3 处) |
| `erp-health/service/stats_service/health.rs` | :295 | FromQueryResult total 字段 |
**根因**:大量来自 SeaORM `FromQueryResult` 宏,字段必须声明但当前未读取。建议在 DTO 转换层使用 `_` 前缀或 `#[serde(skip)]`
## 2. TODO / FIXME / HACK 注释5 处)
| 文件 | 内容 |
|------|------|
| `erp-auth/handler/wechat_handler.rs:45` | TODO: 多租户微信登录需要设计租户解析策略 |
| `erp-auth/handler/wechat_handler.rs:76` | TODO: 多租户微信登录需要设计租户解析策略(重复) |
| `erp-plugin/data_service.rs:1075` | TODO: 未来版本添加 Redis 缓存层 |
| `erp-health/event.rs:51` | TODO: 患者认证和死亡记录流程尚未实现 |
| `web/pages/workflow/PendingTasks.tsx:208` | TODO: 替换为 UserSelect 用户搜索选择组件 |
| `web/pages/health/components/ActionDetailDrawer.tsx:78` | TODO: 调用实际 API 执行操作 |
**风险**wechat_handler 多租户策略未定,影响 SaaS 化路线。ActionDetailDrawer TODO 说明功能未接通。
## 3. 硬编码检测
### 3.1 `localhost` / `127.0.0.1`14 处,排除 lock 文件)
| 文件 | 硬编码值 | 风险 |
|------|---------|------|
| `apps/web/vite.config.ts` | `localhost:3000` | 开发代理,可接受 |
| `apps/web/playwright.config.ts` | `localhost:5174` | E2E可接受 |
| `apps/miniprogram/config/index.ts` | `localhost:3000` | **MP 构建默认值** |
| `apps/miniprogram/src/services/request.ts` | `localhost:3000` | **MP 运行时 fallback** |
| `apps/miniprogram/e2e/helpers/api-client.ts` | `localhost:3000` | E2E |
| `apps/miniprogram/e2e/check-readiness.ts` | `localhost:3000` | E2E |
| `apps/web/e2e/check-readiness.ts` | `localhost:3000` + `localhost:5174` | E2E |
| `apps/web/e2e/fixtures/api-client.ts` | `localhost:3000` | E2E |
| `apps/web/e2e/auth.fixture.ts` | `localhost:3000` | **无 env fallback纯硬编码** |
| `apps/web/e2e/fixtures/auth.fixture.ts` | `localhost:3000` | E2E |
| `integration-tests/test_workflow_module.rs` | `localhost:3000` | 集成测试 |
| `integration-tests/test_common.rs` | `localhost:3000` | 集成测试 |
| `integration-tests/test_auth_module.rs` | `localhost:3000` | 集成测试 |
| `erp-server/tests/integration/test_db.rs` | `localhost:5432` + 明文密码 | **安全风险** |
| `erp-core/test_helpers.rs` | `localhost:5432` + 明文密码 | **安全风险** |
### 3.2 硬编码端口号
`3000`(API)、`5174`(Web dev)、`5432`(PostgreSQL) — 均为开发/测试用途,无生产风险。但 `test_db.rs``postgres:123123@localhost` 明文密码应移至 env。
## 4. 主要依赖版本
### 后端Cargo.toml workspace
| 依赖 | 版本 | 备注 |
|------|------|------|
| axum | 0.8 | 最新 stable |
| sea-orm | 1.1 | 最新 |
| tokio | 1 | LTS |
| serde / serde_json | 1 / 1 | stable |
| chrono | 0.4 | stable |
| thiserror / anyhow | 2 / 1 | thiserror v2 |
| utoipa | 5 | 最新 |
| redis | 0.27 | — |
| reqwest | 0.12 | — |
### 前端apps/web/package.json
| 依赖 | 版本 | 备注 |
|------|------|------|
| react | ^19.2 | React 19 |
| antd | ^6.3 | Ant Design 6 |
| react-router-dom | ^7.14 | React Router 7 |
| dayjs | ^1.11 | — |
| zustand | ^5.0 | — |
| typescript | ~6.0 | TS 6 |
| vite | ^8.0 | Vite 8 |
**结论**:依赖版本均较新,无重大过时风险。
---
## 优先修复建议
1. **P0**`test_db.rs` / `test_helpers.rs` 明文数据库密码移至环境变量
2. **P1**`web/e2e/auth.fixture.ts` 硬编码 API 地址应加 env fallback
3. **P1** — 清理 `wechat_handler.rs` 重复 TODO明确多租户方案
4. **P2** — 统一 SeaORM 查询结果的字段抑制策略(`_` 前缀或 helper 宏)
5. **P2**`ActionDetailDrawer` TODO 接通实际 API