这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。
按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。
涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
DDL 基线合并 / Kiro 到 Claude Code 迁移
阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
变更审计记录(Change Audit Record)
- 日期/时间(Asia/Shanghai):2026-03-25 22:30:00
- Prompt-ID:task-detail-svc-records-6
- 原始原因(Prompt):60天内服务记录改:台桌显示名称、时长xx.xh格式、酒水商品明细、预估规则、电话隐藏格式、AI文案字段
- 直接原因:任务详情页服务记录区域需要展示更丰富的信息(台桌名、酒水明细、助教到手收入),并统一格式规范(时长h后缀、电话脱敏、预估标记)
变更范围(Changed)
- 后端 FDW 查询:
get_service_records_for_task()SQL 重写,新增 3 个 LEFT JOIN(dim_table、settlement_head、store_goods_sale LATERAL 聚合) - 后端任务详情:
get_task_detail()新增 60 天统计窗口(total_hours_60d / total_income_60d / count_60d)、预估规则(当月且 day ≤ 5) - 前端 WXS:新增
maskPhone()函数、hoursH()已有 - 前端 WXML:task-detail 页电话脱敏、AI 文案动态绑定、统计区 hoursH 格式;service-record-card 组件 hoursH 格式 + drinks 字段展示
- 收入口径:从
ledger_amount改为assistant_pd_money + assistant_cx_money(助教到手,符合 feiqiu-data-rules 规则2)
风险与回滚(Risk & Rollback)
- 风险点:
- LATERAL 子查询在 order_settle_id 无商品记录时返回 NULL(已用 COALESCE 兜底为空字符串)
- settlement_head JOIN 可能因 order_settle_id 为空导致 income=0(与实际无结算一致,可接受)
- 预估规则依赖服务器时间
date.today(),跨时区部署需注意
- 回滚要点:
- 后端:
fdw_queries.py恢复原 SQL(去掉 3 个 LEFT JOIN,SELECT 改回 ledger_amount) - 后端:
task_manager.py恢复原统计逻辑(去掉 cutoff_60d / is_estimate_month 分支) - 前端:WXML 恢复
fmt.hours()和硬编码电话/AI文案
- 后端:
验证(Verification)
- SQL 验证:通过 MCP pg-app-test 执行
get_service_records_for_task等效 SQL,确认台桌名(S1/A6/S3/A18/M4)、收入口径(pd_money+cx_money)、酒水明细(东方树叶×2、地道肠×2、椰汁×1)均正确 - getDiagnostics:7 个文件零错误
- 联调验证:小程序开发者工具打开任务详情页,确认服务记录卡片展示台桌名、Nh 时长、酒水明细、到手金额、预估标记、电话脱敏
文件清单(Files changed)
apps/backend/app/services/fdw_queries.py— get_service_records_for_task SQL 重写(+dim_table +settlement_head +store_goods_sale LATERAL)apps/backend/app/services/task_manager.py— get_task_detail 60天统计窗口 + 预估规则apps/miniprogram/miniprogram/utils/format.wxs— 新增 maskPhone() 函数apps/miniprogram/miniprogram/pages/task-detail/task-detail.wxml— 电话脱敏、AI文案动态绑定、统计区 hoursHapps/miniprogram/miniprogram/pages/task-detail/task-detail.ts— loadByMember await 修复(前序 TASK-3 遗留)apps/miniprogram/miniprogram/components/service-record-card/service-record-card.wxml— hoursH 格式 + drinks 展示