Files
Neo-ZQYY/.kiro/specs/dwd-business-panorama/tasks.md

278 lines
15 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.
# 实施计划DWD 业务全景梳理
## 概述
将 DWD 业务全景梳理的设计方案转化为可执行的任务序列。任务按两阶段组织基础层文档1表结构总览→ 全景层文档2~5数据验证贯穿全程。属性测试使用 Python + hypothesis放置在 `tests/` 目录。
## Tasks
- [x] 1. 阶段一DWD 表结构与字段语义总览文档1
- [x] 1.1 枚举 DWD 全部表并按业务域分组
- 查询 `test_etl_feiqiu.dwd``information_schema.tables` 获取全部表名
- 按 7 个业务域(结算、台桌、助教、会员、团购、商品、库存)分组
- 查询每张表的行数和时间范围,确认数据状态
- 创建 `docs/reports/dwd-table-structure-overview.md` 文件骨架(含模板元素:标题、元数据块、目录、正文、附录)
- _Requirements: 1.1, 7.1, 7.2, 7.3_
- [x] 1.2 结算域表梳理dwd_settlement_head/ex, dwd_payment, dwd_refund/ex
- 对每张表执行单表智能聚焦分析information_schema 获取列信息 → 字段分类筛选(空字段/ETL字段/透明字段/业务关键字段)→ 业务关键字段倒推验证
- 金额字段执行深度验证值域分布MIN/MAX/AVG/中位数/NULL占比+ 交叉验证
- 枚举字段执行 DISTINCT + 频次分布
- 对比现有 BD 手册标注偏差
- 将结果写入文档1的结算域章节
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.8, 6.1, 6.6_
- [x] 1.3 台桌域表梳理dim_table/ex, dwd_table_fee_log/ex, dwd_table_fee_adjust/ex
- 同 1.2 的分析流程
- 重点验证台费计价相关字段、台费调整的触发条件
- 标注 dim_table 的 SCD2 字段
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 6.1, 6.6_
- [x] 1.4 助教域表梳理dim_assistant/ex, dwd_assistant_service_log/ex
- 同 1.2 的分析流程
- 重点验证助教服务类型枚举、`_ex.is_trash` 作废标记的业务含义
- 标注 dim_assistant 的 SCD2 字段
- 注意:`dwd_assistant_trash_event` 已于 2026-02-22 DROP作废判断改用 `dwd_assistant_service_log_ex.is_trash`
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 6.1, 6.6_
- [x] 1.5 会员域表梳理dim_member/ex, dim_member_card_account/ex, dwd_member_balance_change/ex, dwd_recharge_order/ex
- 同 1.2 的分析流程
- 重点验证储值卡本金/赠送金额分账、余额变动类型枚举
- 标注 dim_member 和 dim_member_card_account 的 SCD2 字段
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 6.1, 6.6_
- [x] 1.6 团购域表梳理dim_groupbuy_package/ex, dwd_groupbuy_redemption/ex, dwd_platform_coupon_redemption/ex
- 同 1.2 的分析流程
- 重点验证团购三层价格体系sale_price / pl_coupon_sale_amount / coupon_amount
- 标注 dim_groupbuy_package 的 SCD2 字段
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 6.1, 6.6_
- [x] 1.7 商品域与库存域表梳理dim_tenant_goods/ex, dim_store_goods/ex, dim_goods_category, dwd_store_goods_sale/ex, dwd_goods_stock_summary, dwd_goods_stock_movement
- 同 1.2 的分析流程
- 重点验证商品分类树结构、租户商品与门店商品的关系
- 标注维度表的 SCD2 字段dim_goods_category 无扩展表)
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 6.1, 6.6_
- [x] 1.8 完善文档1跨表关联关系汇总与文档收尾
- 汇总所有表的主键、外键关联、关联类型1:1, 1:N
- 补充 Mermaid ER 图展示跨域关联
- 补充附录:空字段汇总、验证 SQL 汇总
- 添加文档间引用链接(相对路径格式)
- 确认文档模板完整性(标题、元数据块、目录、正文、附录)
- _Requirements: 1.5, 6.4, 7.3, 7.4, 7.5_
- [x] 2. 检查点 - 文档1 完成确认
- 确认文档1`docs/reports/dwd-table-structure-overview.md`)已覆盖全部 42 张表(含新发现的 dim_staff/dim_staff_ex
- 确认每张表的业务关键字段均已通过测试库数据验证
- 确认偏差记录完整point_amount 等偏差已标注)
- 第9章门店维度有占位符待后续补充不阻塞全景文档
- [x] 3. 阶段二A业务全景文档文档2
- [x] 3.1 创建文档2骨架并梳理消费产生链路
- 创建 `docs/reports/dwd-business-panorama.md`,使用全景文档通用模板
- 描述从开台到结算的完整业务流程,标注每个环节涉及的 DWD 表和关键字段
- 以 Mermaid 流程图展示从开台到结算的完整数据流向
- 基于文档1的字段语义引用而非重复描述
- _Requirements: 2.1, 2.7, 6.4, 7.3_
- [x] 3.2 梳理各消费类目的产生机制
- 台费(含多台桌合并):计价规则、台桌类型与单价关系、计时方式
- 台费折扣dwd_table_fee_adjust触发条件和计算方式
- 商品消费:商品销售流水的记录方式
- 助教服务(陪打/超休):服务类型和计费方式
- 灯控电费:记录方式
- 每个环节提供至少一个测试库真实数据样例
- _Requirements: 2.2, 2.3, 2.6_
- [x] 3.3 梳理优惠与团购机制
- 平台团购券(美团/抖音)核销流程
- 会员折扣计算方式
- 台费调整adjust_amount的业务场景
- 团购券三层价格体系sale_price / pl_coupon_sale_amount / coupon_amount标注每层价格对应的 DWD 表和字段
- 每个环节提供测试库数据样例
- _Requirements: 2.4, 2.5, 2.6_
- [x] 3.4 文档2收尾附录与引用
- 补充附录(验证 SQL、数据样例
- 添加文档间引用链接
- 确认文档模板完整性
- _Requirements: 7.3, 7.4, 7.5_
- [x] 4. 阶段二B账务全景文档文档3
- [x] 4.1 创建文档3骨架并梳理支付渠道
- 创建 `docs/reports/dwd-accounting-panorama.md`,使用全景文档通用模板
- 描述所有支付渠道及其在 DWD 层的记录方式(线上收款、现金、储值卡余额、平台团购券)
- 描述 dwd_payment 与 dwd_settlement_head 的关联方式
- 描述 payment_method 枚举值与实际支付渠道的对应关系
- 描述支付方式推断逻辑(因 settlement_head_ex.payment_method 全部为 0 不可用)
- _Requirements: 3.1, 3.2, 3.6, 6.4, 7.3_
- [x] 4.2 梳理会员储值卡体系与退款流程
- 充值流程dwd_recharge_order
- 余额变动记录dwd_member_balance_change
- 本金/赠送金额分账逻辑
- 退款流程:结算退款、充值退款、转账退款的触发场景和 DWD 记录方式
- _Requirements: 3.3, 3.4_
- [x] 4.3 梳理对账公式与 consume_money 口径
- 列出所有已验证的对账公式F1~F6、R1~R3、RF1~RF2、B1~B4
- 对每个公式在 test_etl_feiqiu 全量数据上执行验证,标注成立率和例外情况
- 描述 consume_money 字段的三种历史口径A/B/C及时间线标注当前生效口径
- _Requirements: 3.5, 3.7, 6.2_
- [x] 4.4 文档3收尾附录与引用
- 补充附录(验证 SQL、对账公式验证结果
- 添加文档间引用链接
- 确认文档模板完整性
- _Requirements: 7.3, 7.4, 7.5_
- [x] 5. 检查点 - 文档2和文档3完成确认
- 确认文档2覆盖全部消费类目和优惠机制台费/商品/助教/灯控/团购券/会员折扣)
- 确认文档3覆盖全部支付渠道和对账公式F1/F2/B1-B3/consume_money三种口径
- 确认所有关键结论标注了验证状态
- 确认文档3覆盖全部支付渠道和对账公式
- 确认所有关键结论标注了验证状态
- Ensure all tests pass, ask the user if questions arise.
- [x] 6. 阶段二C财务全景文档文档4
- [x] 6.1 创建文档4骨架并梳理收入构成
- 创建 `docs/reports/dwd-financial-panorama.md`,使用全景文档通用模板
- 按收入来源分类描述门店收入构成:台费收入、商品收入、助教服务收入、充值收入
- 描述每种收入来源对应的 DWD 表、关键金额字段、从 DWD 到 DWS 的聚合路径
- _Requirements: 4.1, 4.2, 6.4, 7.3_
- [x] 6.2 梳理团购收入确认与储值卡资金流向
- 团购券场景收入确认逻辑:门店实际收入 = pl_coupon_sale_amount差额为门店补贴
- 储值卡充值资金流向:充值收款 → 余额入账(本金+赠送)→ 消费扣款 → 退款
- 标注每个环节的 DWD 表和金额字段
- _Requirements: 4.3, 4.4_
- [x] 6.3 构建对账矩阵与数据质量评估
- 按支付渠道构建对账矩阵:每种支付渠道涉及的 DWD 表和字段、跨表校验公式
- 标注已知数据质量问题和对账例外(助教券支付缺口、商品消费未覆盖等)
- 给出影响范围的量化评估
- _Requirements: 4.5, 4.6_
- [x] 6.4 文档4收尾附录与引用
- 补充附录(验证 SQL、对账矩阵详细数据
- 添加文档间引用链接引用文档2的消费构成、文档3的支付渠道
- 确认文档模板完整性
- _Requirements: 7.3, 7.4, 7.5_
- [x] 7. 阶段二D维度表与主数据全景文档5
- [x] 7.1 创建文档5骨架并梳理门店与台桌维度
- 创建 `docs/reports/dwd-dimension-panorama.md`,使用全景文档通用模板
- 梳理 dim_site/ex门店维度结构、SCD2 字段、与事实表的关联
- 梳理 dim_table/ex台桌维度结构、台桌类型枚举、与台费流水的关联
- _Requirements: 5.1, 5.2, 6.4, 7.3_
- [x] 7.2 梳理会员体系与助教维度
- 会员档案dim_member/ex会员等级/标签记录方式
- 储值卡账户dim_member_card_account/ex账户类型、余额字段
- 助教维度dim_assistant/ex助教类型、服务能力
- 描述维度表与事实表的关联方式,标注关联字段和基数
- _Requirements: 5.2, 5.3_
- [x] 7.3 梳理商品体系与团购维度
- 商品分类树dim_goods_category分类层级结构
- 租户商品dim_tenant_goods/ex与门店商品dim_store_goods/ex的关系
- 库存相关表dwd_goods_stock_summary, dwd_goods_stock_movement的结构
- 团购套餐维度dim_groupbuy_package/ex套餐与券种关系、价格体系
- _Requirements: 5.4, 5.5_
- [x] 7.4 文档5收尾Mermaid ER 图与附录
- 补充 Mermaid ER 图展示全部维度表与事实表的关联关系
- 补充附录(验证 SQL、SCD2 字段汇总)
- 添加文档间引用链接
- 确认文档模板完整性
- _Requirements: 5.1, 5.2, 7.3, 7.4, 7.5_
- [x] 8. 检查点 - 全部5份文档完成确认
- 确认 5 份文档均已创建在 `docs/reports/` 目录下
- 确认文档间引用链接格式正确(相对路径)且目标文件存在
- 确认每份文档包含完整模板元素(标题、元数据块、目录、正文、附录)
- Ensure all tests pass, ask the user if questions arise.
- [x] 9. 属性测试与示例测试
- [x] 9.1 创建属性测试文件骨架与公共工具
- 创建 `tests/test_dwd_panorama_properties.py`
- 实现公共工具函数:读取文档内容、解析 markdown 结构、提取表名、提取链接
- 配置 hypothesis settingsmin_examples=100
- 使用 `load_dotenv` 加载根 `.env`,通过 `TEST_DB_DSN` 连接测试库
- _Requirements: 6.1_
- [x] 9.2 编写 Property 1: DWD 表覆盖完整性
- **Property 1: DWD 表覆盖完整性**
- 查询 information_schema.tables 获取 DWD schema 全部表名
- 解析 5 份文档提取提及的表名
- 验证覆盖率 = 100%
- **Validates: Requirements 1.1, 5.1**
- [x] 9.3 编写 Property 2: 主键标注准确性
- **Property 2: 主键标注准确性**
- 对随机采样的表,查询 information_schema.table_constraints + key_column_usage 获取实际主键
- 解析文档1中该表的主键标注
- 验证一致性
- **Validates: Requirements 1.5**
- [x] 9.4 编写 Property 3: 业务环节数据佐证
- **Property 3: 业务环节数据佐证**
- 解析业务全景文档文档2的每个业务环节段落
- 验证每个段落包含至少一个代码块或数据表格
- **Validates: Requirements 2.6**
- [x] 9.5 编写 Property 4: 对账公式验证一致性
- **Property 4: 对账公式验证一致性**
- 提取账务全景文档文档3中的对账公式和标注的成立率
- 重新执行验证 SQL比对成立率
- **Validates: Requirements 3.5, 6.2**
- [x] 9.6 编写 Property 5: 文档元数据完整性
- **Property 5: 文档元数据完整性**
- 对每份全景文档检查开头是否包含数据来源test_etl_feiqiu、验证日期、数据时间范围
- **Validates: Requirements 6.4**
- [x] 9.7 编写 Property 6: 文档输出路径正确性
- **Property 6: 文档输出路径正确性**
- 验证所有产出文件位于 `docs/reports/` 目录下
- **Validates: Requirements 7.1**
- [x] 9.8 编写 Property 7: 文档模板一致性
- **Property 7: 文档模板一致性**
- 对每份文档,检查是否包含标题、元数据块、目录、正文、附录
- **Validates: Requirements 7.3**
- [x] 9.9 编写 Property 8: 内部链接格式
- **Property 8: 内部链接格式**
- 正则提取所有 markdown 内部链接
- 验证使用相对路径格式(以 `./``../` 开头)且目标文件存在
- **Validates: Requirements 7.5**
- [x] 9.10 编写示例测试
- 创建 `tests/test_dwd_panorama_examples.py`
- SCD2 字段标注检查dim_member 文档中包含 scd2_start_time 等字段
- 消费类目覆盖检查:业务全景文档包含"台费"、"商品消费"、"助教服务"、"灯控电费"
- 团购三层价格检查:文档包含 sale_price、pl_coupon_sale_amount、coupon_amount
- Mermaid 流程图检查:业务全景文档包含 mermaid 代码块
- consume_money 三种口径检查:文档包含口径 A、B、C
- 对账矩阵检查:财务全景文档包含矩阵格式表格
- 5 份文档产出检查docs/reports/ 下存在 5 个指定文件名
- 每份文档 Mermaid 图表检查
- 无数据表标注检查(边界条件)
- _Requirements: 1.6, 1.7, 2.2, 2.5, 2.7, 3.5, 3.7, 4.5, 7.2, 7.4_
- [x] 10. 最终检查点 - 全部完成确认
- 运行全部属性测试:`cd C:\NeoZQYY && pytest tests/test_dwd_panorama_properties.py -v`
- 运行全部示例测试:`cd C:\NeoZQYY && pytest tests/test_dwd_panorama_examples.py -v`
- 确认 5 份文档内容完整、验证状态标注齐全
- Ensure all tests pass, ask the user if questions arise.
## Notes
- 标记 `*` 的任务为可选,可跳过以加速 MVP
- 每个任务引用了具体的需求编号,确保可追溯
- 检查点任务确保增量验证
- 属性测试验证文档的结构正确性,示例测试验证具体内容覆盖
- 所有数据库查询必须使用测试库 `test_etl_feiqiu`,通过 `TEST_DB_DSN` 连接
- 文档1是其他4份文档的基础必须先完成阶段一再进入阶段二