touyun-elderly-care/docs/tech-debt.md
liuyun 7e18b3661b docs: 服务机构端遗留项清单(tech-debt)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-14 21:47:51 +08:00

40 lines
3.1 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.

# 服务机构端 · 遗留项清单(Tech Debt)
> 记录 C0 基础骨架 / C1 待遇档案的遗留项,供后续 change 处理。来源:各 change 的 SDD ledger(deferred minor / parked / pre-existing)。按优先级分组。
## 安全 / 合规(优先处理)
- [ ] **id_card_no 存储层加密**:staff + elder 的身份证目前明文存(代码留 TODO),需统一走一个 security change(AES 加密;掩码/查看留痕已做)。
- [ ] **tenant_super_admin 未纳入身份证明文查看口径**:`elder` detail 明文目前仅 admin/qc/super_admin,业务租户顶层管理员 `tenant_super_admin` 遗漏(低危,C1 遗留)。
- [ ] **身份核验 P-9**(扫脸/人证核验):依赖医保 APP 能力,后置;本期兜底=拍照留痕 + 实名账号 + 家属可选确认。
- [ ] **评估结论副本孤儿文件**:建档先上传副本、create 失败(如重复身份证)会在 MinIO 留孤儿对象,需失败清理。
## 数据完整性
- [ ] **staff.entryDate/leaveDate 字符串直传 Prisma**:潜在 50000(C0 遗留,与 C1 elder 日期 bug 同类),需按 `toDateOnly` 方式统一修。
- [ ] **Agency.deletedAt 未纳入 SOFT_DELETE**:C0 无机构删除 flow,后续需要软删时补。
- [ ] **catalog 白名单对未声明字段覆盖不全**(parked Important):`data` pick 已兜底、无完整性风险;全站 `forbidNonWhitelisted` 后续再评估。
- [ ] **changeStatus 写 statusChangeDate 用 `new Date()` 未走 `toDateOnly`**:理论上 UTC 回退一天,当前无前端展示、零实际影响。
## 契约 / 文档
- [ ] **统一响应 `hint` 字段**:api-contract 要求 `{code,message,data,hint}`,`TransformInterceptor` 现仍 `{code,message,data}`,硬锁接口需补 hint。
- [ ] **api-contract 错误码列表(1001–4001)未实现**:实际用 5 位 `[域2][序3]`(如 40001),spec 内部不一致,需先收敛 spec 再对齐。
- [ ] **登录页属地提示**:frontend spec「属地提示」未实现(多租户登录前属地未知,需先厘清语义)。
- [ ] **前端等级筛选未暴露**:后端 `ListElderQuery.level` 已实现,前端搜索未用。
## seed / 数据
- [ ] **全量 L1 36 项 / 昆明 L2 45 项 / L3 映射未 seed**:C0 只落样例,全量数据延后到 C3/C4 或运营导入(异常分类/拍照分档字典已复用脚手架并 seed)。
## 测试 / 健壮性(次要)
- [ ] error-codes 头注释 legend 缺域 40–43(cosmetic)。
- [ ] StorageService 默认凭据回退、useSSL 硬编码、size 断言过松。
- [ ] 身份证格式错误用通用 400(无 `ELDER_ID_CARD_INVALID` 专用码)。
- [ ] staff `groupLeaderId` 未校验组长存在、listStaff 过滤字段自行推断、`UpdateStaffDto.userId` 不支持 null 解绑。
- [ ] catalog `loc_code` 缺失未校验、newNational 返全量、config 空更新。
- [ ] agency PATCH 空 body、NOT_FOUND 分支未测。
- [ ] 建档表单未收集 `insurYears`/`hospStart`/`hospEnd`/`guardian*`(spec 未要求)。
- [ ] 状态变更 `evidenceFile` 前端未提供上传(后端字段已留)。