From 7e18b3661ba666a7d51168035b9eec0a0cb44862 Mon Sep 17 00:00:00 2001 From: liuyun Date: Wed, 14 Oct 2026 21:47:51 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9C=8D=E5=8A=A1=E6=9C=BA=E6=9E=84?= =?UTF-8?q?=E7=AB=AF=E9=81=97=E7=95=99=E9=A1=B9=E6=B8=85=E5=8D=95=EF=BC=88?= =?UTF-8?q?tech-debt=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- docs/tech-debt.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docs/tech-debt.md diff --git a/docs/tech-debt.md b/docs/tech-debt.md new file mode 100644 index 0000000..386e148 --- /dev/null +++ b/docs/tech-debt.md @@ -0,0 +1,39 @@ +# 服务机构端 · 遗留项清单(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` 前端未提供上传(后端字段已留)。