Files
Neo-ZQYY/docs/audit/changes/2026-03-01__dwd-cleanup-ods-fix-dim-staff-repair.md
Neo 14a12342b5 chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 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>
2026-04-20 06:35:42 +08:00

9.0 KiB
Raw Blame History

审计记录DWD 清理 + ODS 商品销售修复 + dim_staff_ex 修复

日期2026-03-01 02:27:26 Prompt-IDP20260301-021708 审计触发原因root-file, dir:admin-web, dir:backend, dir:etl, dir:miniprogram, dir:db, db-schema-change, dir:shared 变更规模226 files changed, 9454 insertions(+), 217885 deletions(-)


变更概述

本次为跨模块大批量变更,核心工作包括三个独立任务:

  1. assistant_trash_event 残留清理:已 DROP 的表2026-02-22的代码引用和 DDL 文档残留清理
  2. ODS_STORE_GOODS_SALES 窗口配置修复requires_window=FalseTrue,恢复商品销售数据拉取
  3. dim_staff_ex FACT_MAPPINGS 列名修复:驼峰列名 → 下划线列名,修复 SCD2 合并失败

同时包含前序累积的多模块变更admin-web 营业日功能、backend 新路由/服务、miniprogram 认证流程、shared datetime_utils 等)。


本次对话文件变更

新增文件

  • docs/audit/prompt_logs/prompt_log_20260301_021708.md — 本次对话的 Prompt 日志
  • docs/database/BD_Manual_20260301_cleanup_and_fixes.md — DB 变更手册(三项修复)

修改文件(本次对话期间)

  • apps/etl/connectors/feiqiu/tasks/dwd/dwd_load_task.py — dim_staff_ex FACT_MAPPINGS 列名修复
  • apps/etl/connectors/feiqiu/tasks/ods/ods_tasks.py — ODS_STORE_GOODS_SALES 窗口配置修复
  • docs/database/ddl/etl_feiqiu__dwd.sql — 移除 assistant_trash_event 残留约束/索引
  • docs/database/ddl/etl_feiqiu__ods.sql — 移除 assistant_cancellation_records 残留约束/索引
  • docs/prd/specs/dwd-amount-duration-calibration.md — 移除 assistant_trash_event 章节

高风险文件分类

admin-web6 文件)

营业日功能集成:App.tsx 初始化 businessDayStore、TaskConfig.tsx 添加 BusinessDayHint 组件、TaskManager.tsx 添加历史任务终止按钮。新增 businessDay.ts API、BusinessDayHint.tsx 组件、businessDayStore.ts 状态管理。

backend20 文件)

  • 配置:新增 WX_APPID/WX_SECRET/WX_DEV_MODE/BUSINESS_DAY_START_HOUR
  • 路由member_birthday → member_retention_clue 重构;新增 admin_applications、business_day、xcx_tasks、xcx_notes
  • 服务:新增 task_generator、task_expiry、recall_detector、note_reclassifier、trigger_scheduler
  • 认证xcx_auth 新增 dev-login 端点,用户状态 pending → new/pending 分离
  • main.pylifespan 注册触发器 job handler

etl14 文件)

  • configdefaults/env_parser/settings 小幅调整
  • orchestrationflow_runner 调整
  • qualityconsistency_checker 移除 assistant_cancellation_records 引用
  • tasks/dwddwd_load_task.py dim_staff_ex 列名修复
  • tasks/odsods_tasks.py ODS_STORE_GOODS_SALES 窗口修复
  • tasks/dws多个 DWS 任务调整assistant_customer/daily/finance/monthly
  • scripts多个脚本清理 assistant_trash_event 引用

db2 文件)

  • db/fdw/setup_fdw_reverse.sql / setup_fdw_reverse_test.sqlFDW 配置更新

合规检查

检查项 状态
BD Manual 文档 已创建 BD_Manual_20260301_cleanup_and_fixes.md
DDL 基线同步 已更新 etl_feiqiu__dwd.sql + etl_feiqiu__ods.sql
新增迁移 SQL 无(本次为文档清理 + 代码修复,无新增迁移)
API 接口变更 否(api_changed=false
OpenAPI Spec 无需同步(openapi_spec_stale=false
ETL 任务文档同步 ⚠️ 已补齐(见下方文档校对段落)

文档校对补齐

1. apps/etl/connectors/feiqiu/tasks/ods/ods_tasks.py → ETL 任务文档

  • 更新 apps/etl/connectors/feiqiu/docs/etl_tasks/ods_tasks.mdODS_STORE_GOODS_SALES 的「需要窗口」列从「否」改为「是」,反映 requires_window=True 修复

2. apps/etl/connectors/feiqiu/tasks/dwd/dwd_load_task.py → ETL 任务文档

  • 更新 apps/etl/connectors/feiqiu/docs/etl_tasks/dwd_tasks.md
    • 移除事实表映射中的 dwd_assistant_trash_event / _ex 两行
    • 新增 dim_staff / dim_staff_ex 维度映射(已存在但确认无误)
    • 映射总数从 40 对调整为 38 对

改动注解

apps/etl/connectors/feiqiu/tasks/dwd/dwd_load_task.py

  • 变更类型:修改
  • 原始原因dim_staff_ex 表始终为 0 行,排查发现 FACT_MAPPINGS 中 ODS 列名使用驼峰风格(如 cashierpointid),但 ODS 表 staff_info_master 实际列名为下划线风格(cashier_point_id),导致 SCD2 合并 SQL 执行报错,整表被静默跳过
  • 思路分析:修正 7 个字段的 ODS 列名映射(驼峰 → 下划线),使 SQL 查询能正确引用 ODS 列。选择直接修改映射而非添加别名,因为 ODS 表列名已经是标准下划线风格
  • 修改结果dim_staff_ex 从 0 行恢复到 15 行(与 dim_staff 一致SCD2 合并正常执行。影响范围仅限 DWD 装载流程中 dim_staff_ex 的处理

apps/etl/connectors/feiqiu/tasks/ods/ods_tasks.py

  • 变更类型:修改
  • 原始原因:dwd_store_goods_sale 数据停滞在 2025-12-19手动导入排查发现 ODS_STORE_GOODS_SALESrequires_window=False 导致 API /TenantGoods/GetGoodsSalesList 不传时间参数,始终返回 0 条记录
  • 思路分析:将 requires_window 改为 True 并添加 time_fields=("startTime", "endTime"),使 API 请求携带时间窗口参数。这与其他需要时间窗口的 ODS 任务(如 ODS_SETTLEMENT_RECORDS保持一致
  • 修改结果ODS 层新增 26,759 条商品销售记录DWD 层 dwd_store_goods_sale 数据延伸至 2026-02-25。后续 DWS 层商品相关报表数据将恢复完整

docs/database/ddl/etl_feiqiu__dwd.sql

  • 变更类型:修改
  • 原始原因:dwd_assistant_trash_event_ex 表已于 2026-02-22 DROP但 DDL 基线文件中仍残留 PK 约束和索引定义
  • 思路分析:移除已不存在表的约束和索引行,保持 DDL 基线与数据库实际状态一致
  • 修改结果DDL 基线文件清理完毕,不再包含已删除表的引用

docs/database/ddl/etl_feiqiu__ods.sql

  • 变更类型:修改
  • 原始原因:上游 ODS 表 assistant_cancellation_records 已同步 DROPDDL 基线残留 PK 约束和索引
  • 思路分析:同上,清理残留定义
  • 修改结果DDL 基线文件清理完毕

docs/prd/specs/dwd-amount-duration-calibration.md

  • 变更类型:修改
  • 原始原因:文档中包含已删除的 dwd_assistant_trash_event 表的章节2.11)、存疑字段和数据新鲜度行
  • 思路分析:移除与已删除表相关的所有文档段落,避免误导
  • 修改结果:文档不再引用已删除的表

docs/audit/prompt_logs/prompt_log_20260301_021708.md

  • 变更类型:新增
  • 原始原因:审计流程自动记录本次对话的 Prompt 日志,用于变更溯源
  • 修改结果:记录了完整的对话上下文转移摘要,包含 5 个任务的状态和详细信息

docs/database/BD_Manual_20260301_cleanup_and_fixes.md

  • 变更类型:新增
  • 原始原因:本次涉及 db-schema-changeDDL 文档变更 + 数据修复),需按规范创建 BD Manual
  • 思路分析将三个独立修复trash_event 清理、ODS 窗口修复、dim_staff_ex 列名修复)合并为一份 BD Manual包含完整的变更说明、兼容性影响、回滚策略和验证 SQL
  • 修改结果BD Manual 文档完整覆盖三项变更,提供 5 条验证 SQL

简要注解(非高风险修改文件)

文件 说明
apps/admin-web/src/App.tsx 启动时初始化 businessDayStore
apps/admin-web/src/pages/TaskConfig.tsx 日期选择区域添加 BusinessDayHint 组件
apps/admin-web/src/pages/TaskManager.tsx 历史任务列表添加终止按钮running 状态)
apps/backend/app/config.py 新增微信小程序配置项 + 营业日分割点配置
apps/backend/app/main.py 路由注册更新 + lifespan 注册触发器 job handler
apps/backend/app/routers/tasks.py 同步检查添加 ETL_ONLY_EXPECTED 白名单,避免误报
apps/backend/app/routers/xcx_auth.py 新增 dev-login 端点,用户状态 new/pending 分离
apps/backend/app/schemas/xcx_auth.py 新增 DevLoginRequest schema
apps/backend/app/services/application.py 提交申请时自动更新用户状态 new→pending
apps/backend/app/services/wechat.py 微信 code2Session 调用调整

DDL/迁移检查

  • 新增迁移 SQL
  • DDL 基线状态: 已同步更新

DB 文档对账摘要

  • BD Manual 已创建:BD_Manual_20260301_cleanup_and_fixes.md
  • 覆盖变更assistant_trash_event 清理、ODS_STORE_GOODS_SALES 修复、dim_staff_ex 修复
  • 验证 SQL5 条确认表删除、数据回填、dim_staff_ex 恢复)

注:全量 DB 文档对账需连接测试库执行,本次审计记录中标注待执行状态。因 reasons 含 db-schema-change全量对账应在后续专项执行。


审计完成时间2026-03-01 02:27:26 (Asia/Shanghai)