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

4.5 KiB
Raw Blame History

技术债务清单

审计日期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.114 处,排除 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.rspostgres: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. P0test_db.rs / test_helpers.rs 明文数据库密码移至环境变量
  2. P1web/e2e/auth.fixture.ts 硬编码 API 地址应加 env fallback
  3. P1 — 清理 wechat_handler.rs 重复 TODO明确多租户方案
  4. P2 — 统一 SeaORM 查询结果的字段抑制策略(_ 前缀或 helper 宏)
  5. P2ActionDetailDrawer TODO 接通实际 API