liuyun 9f789fccb5 docs(openspec): C3 履约留痕 change 提案
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-15 00:13:48 +08:00

2.5 KiB
Raw Blame History

Tasks — svc-org-c3-record

1. 数据层

  • 1.1 schema.prisma 新增 Record/RecordItem/RecordPhoto/RecordAbnormal/Settlement/Report 模型(表名 ho_record/ho_record_item/ho_record_photo/ho_record_abnormal/settlement/report)。
  • 1.2 prisma.service.ts:Record 加入 SOFT_DELETE;子表(item/photo/abnormal)不入。
  • 1.3 迁移 c3_record(utf8mb4_general_ci,用 migrate diff + deploy)+ prisma generate。

2. 权限码 + 错误码 + APIS

  • 2.1 permissions.ts 新增 record.*/abnormal.*(checkin/itemSave/photoUpload/checkout/offlineSync/detail/list/prepaidList/prepaidCarryover/report/list)。
  • 2.2 error-codes.ts 补域 45:RECORD_NOT_FOUND、RECORD_ORDER_INVALID、RECORD_PHOTO_REQUIRED(3001)、RECORD_STATUS_INVALID、ABNORMAL_NOT_FOUND 等。
  • 2.3 tenant-template.ts APIS 登记 record/abnormal 接口资源。

3. record 模块(履约留痕 + 垫付结转)

  • 3.1 src/record/ 模块:checkin(L3 + 服务器取时 + 3002)、item/save(exec_result + L4)、photo/upload(≤500KB)、checkout(3001 必拍 + 服务器时长 + is_prepaid)、offline/sync(client_md5 去重)、detail、list。
  • 3.2 垫付台账与结转:prepaid-list、prepaid/carryover(复制 + source_prepaid_of + 不改原始时间戳)。
  • 3.3 TDD:签到 L3/取时/定位、签退 3001/垫付、exec_result 枚举、结转不改时间戳、离线去重;pnpm test + tsc --noEmit。

4. abnormal 模块(异常 + 扑空)

  • 4.1 src/abnormal/ 模块:report(abnormal_type 必选)、list、扑空(工单转 not_met + record_abnormal,不产生 record)。
  • 4.2 TDD:分类必选其余可选、扑空转 not_met + 留证据、列表筛选;pnpm test + tsc --noEmit。

5. 前端

  • 5.1 src/api/record.ts、src/api/abnormal.ts。
  • 5.2 工单留痕页(ltc/record):列表 + 详情(时间/项目/照片/异常/定位/垫付标记)。
  • 5.3 异常列表页(ltc/qc 或独立):分类/状态/关联老人。
  • 5.4 服务对象页:垫付台账 + 结转入口。
  • 5.5 pnpm type-check 通过。

6. 验证

  • 6.1 冒烟:签到 → 项目 → 照片 → 签退(3001 必拍)→ 详情;waiting_period 老人垫付 is_prepaid=1。
  • 6.2 扑空:工单转 not_met + 到访证据,不产生 record。
  • 6.3 结转:勾选垫付记录生成正式记录,原始时间戳不变。
  • 6.4 离线补传 client_md5 去重幂等;审计落库。