初始提交:飞球 ETL 系统全量代码
This commit is contained in:
1250
docs/dictionary/dwd_main_tables_dictionary.md
Normal file
1250
docs/dictionary/dwd_main_tables_dictionary.md
Normal file
File diff suppressed because it is too large
Load Diff
646
docs/dictionary/dws_tables_dictionary.md
Normal file
646
docs/dictionary/dws_tables_dictionary.md
Normal file
@@ -0,0 +1,646 @@
|
||||
# DWS 数据字典
|
||||
|
||||
## 概述
|
||||
|
||||
DWS(Data Warehouse Service)层是数据仓库的汇总层,基于DWD明细层数据构建,为上层应用和报表提供预聚合的数据服务。
|
||||
|
||||
### 表清单
|
||||
|
||||
| 分类 | 表名 | 说明 | 更新频率 |
|
||||
|------|------|------|----------|
|
||||
| **配置表** | cfg_performance_tier | 绩效档位配置 | 手动维护 |
|
||||
| | cfg_assistant_level_price | 助教等级定价 | 手动维护 |
|
||||
| | cfg_bonus_rules | 奖金规则配置 | 手动维护 |
|
||||
| | cfg_area_category | 台区分类映射 | 手动维护 |
|
||||
| | cfg_skill_type | 技能课程类型映射 | 手动维护 |
|
||||
| **助教维度** | dws_assistant_daily_detail | 助教日度业绩明细 | 每小时 |
|
||||
| | dws_assistant_monthly_summary | 助教月度业绩汇总 | 每日 |
|
||||
| | dws_assistant_customer_stats | 助教服务客户统计 | 每日 |
|
||||
| | dws_assistant_salary_calc | 助教工资计算详情 | 月初 |
|
||||
| | dws_assistant_recharge_commission | 助教充值提成 | Excel导入 |
|
||||
| **客户维度** | dws_member_consumption_summary | 会员消费汇总 | 每日 |
|
||||
| | dws_member_visit_detail | 会员来店明细 | 每日 |
|
||||
| **指数** | dws_member_winback_index | 老客挽回指数(WBI) | 每2小时 |
|
||||
| | dws_member_newconv_index | 新客转化指数(NCI) | 每2小时 |
|
||||
| | v_member_recall_priority | 召回/转化优先级视图 | 实时 |
|
||||
| | dws_member_assistant_relation_index | 客户-助教关系指数(RS/OS/MS/ML) | 每4小时 |
|
||||
| | dws_ml_manual_order_source | ML人工台账宽表 | 按需导入 |
|
||||
| | dws_ml_manual_order_alloc | ML人工台账分摊窄表 | 按需导入 |
|
||||
| | dws_member_assistant_intimacy | 客户-助教亲密指数(兼容保留) | 停用 |
|
||||
| **财务维度** | dws_finance_daily_summary | 财务日度汇总 | 每小时 |
|
||||
| | dws_finance_income_structure | 收入结构分析 | 每日 |
|
||||
| | dws_finance_discount_detail | 优惠明细 | 每日 |
|
||||
| | dws_finance_recharge_summary | 充值统计 | 每日 |
|
||||
| | dws_finance_expense_summary | 支出结构 | Excel导入 |
|
||||
| | dws_assistant_finance_analysis | 助教收支分析 | 每日 |
|
||||
| | dws_platform_settlement | 平台回款/服务费 | Excel导入 |
|
||||
| **订单汇总** | dws_order_summary | 订单汇总 | 每日 |
|
||||
|
||||
---
|
||||
|
||||
## 关系指数补充(2026-02-08)
|
||||
|
||||
1. 关系指数已切换为单任务 `DWS_RELATION_INDEX`,统一写入 `dws_member_assistant_relation_index`。
|
||||
2. ML 改为人工台账唯一真源:`dws_ml_manual_order_alloc`。
|
||||
3. last-touch 仅保留备用代码路径,默认关闭。
|
||||
4. 台账导入覆盖规则:30天内按天覆盖,超过30天按固定纪元 `2026-01-01` 的30天桶覆盖。
|
||||
|
||||
## 一、配置表
|
||||
|
||||
### 1.1 cfg_performance_tier - 绩效档位配置
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| tier_id | SERIAL | 档位ID(主键) |
|
||||
| tier_code | VARCHAR(20) | 档位代码(如 T0-T4) |
|
||||
| tier_name | VARCHAR(50) | 档位名称 |
|
||||
| tier_level | INTEGER | 档位等级(数字越大档位越高) |
|
||||
| min_hours | NUMERIC(10,2) | 最低业绩小时数阈值(>=) |
|
||||
| max_hours | NUMERIC(10,2) | 最高业绩小时数阈值(<),NULL=无上限 |
|
||||
| base_deduction | NUMERIC(10,2) | 专业课抽成(元/小时),球房从基础课扣除 |
|
||||
| bonus_deduction_ratio | NUMERIC(5,4) | 打赏课抽成比例(0-1),球房从附加课扣除 |
|
||||
| vacation_days | INTEGER | 次月可休假天数 |
|
||||
| vacation_unlimited | BOOLEAN | 休假自由标记(最高档为TRUE) |
|
||||
| is_new_hire_tier | BOOLEAN | 是否为新入职专用档位(预留,当前规则不使用) |
|
||||
| effective_from | DATE | 生效起始日期 |
|
||||
| effective_to | DATE | 生效截止日期 |
|
||||
|
||||
**档位配置(2026-03-01起):**
|
||||
|
||||
| tier_code | tier_name | 业绩阈值 | 专业课抽成 | 打赏课抽成 | 休假 |
|
||||
|-----------|-----------|----------|-----------|-----------|------|
|
||||
| T0 | 0档-淘汰压力 | H < 120 | 28元/时 | 50% | 3天 |
|
||||
| T1 | 1档-及格档 | 120 ≤ H < 150 | 18元/时 | 40% | 4天 |
|
||||
| T2 | 2档-良好档 | 150 ≤ H < 180 | 13元/时 | 35% | 5天 |
|
||||
| T3 | 3档-优秀档 | 180 ≤ H < 210 | 10元/时 | 30% | 6天 |
|
||||
| T4 | 4档-销冠竞争 | H ≥ 210 | 8元/时 | 25% | 休假自由 |
|
||||
|
||||
**业务规则:**
|
||||
- 绩效档位根据有效业绩小时数(基础课+附加课)匹配
|
||||
- 新入职(2026-03-01起):按日均×30定档;入职日期>25日时最高2档(T2)
|
||||
- 支持按时间生效,历史月份使用历史规则
|
||||
|
||||
### 1.2 cfg_assistant_level_price - 助教等级定价
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| price_id | SERIAL | 定价ID(主键) |
|
||||
| level_code | INTEGER | 等级代码(8/10/20/30/40) |
|
||||
| level_name | VARCHAR(20) | 等级名称 |
|
||||
| base_course_price | NUMERIC(10,2) | 基础课客户支付价格(元/小时) |
|
||||
| bonus_course_price | NUMERIC(10,2) | 附加课客户支付价格(固定190元) |
|
||||
| effective_from | DATE | 生效起始日期 |
|
||||
| effective_to | DATE | 生效截止日期 |
|
||||
|
||||
**等级定价(客户支付价格):**
|
||||
|
||||
| level_code | level_name | 基础课价格 | 附加课价格 |
|
||||
|------------|------------|-----------|-----------|
|
||||
| 8 | 助教管理 | 98元/时 | 190元/时 |
|
||||
| 10 | 初级 | 98元/时 | 190元/时 |
|
||||
| 20 | 中级 | 108元/时 | 190元/时 |
|
||||
| 30 | 高级 | 118元/时 | 190元/时 |
|
||||
| 40 | 星级 | 138元/时 | 190元/时 |
|
||||
|
||||
**注意:** 此价格为客户支付价格,助教实际收入需减去档位抽成
|
||||
**包厢课:** 基础课口径,统一 138元/时
|
||||
|
||||
### 1.3 cfg_bonus_rules - 奖金规则配置
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| rule_id | SERIAL | 规则ID(主键) |
|
||||
| rule_type | VARCHAR(20) | 规则类型(SPRINT/TOP_RANK) |
|
||||
| rule_code | VARCHAR(30) | 规则代码 |
|
||||
| rule_name | VARCHAR(50) | 规则名称 |
|
||||
| threshold_hours | NUMERIC(10,2) | 小时数阈值(冲刺奖金) |
|
||||
| rank_position | INTEGER | 排名位置(Top奖金) |
|
||||
| bonus_amount | NUMERIC(12,2) | 奖金金额(元) |
|
||||
| is_cumulative | BOOLEAN | 是否可累计 |
|
||||
| priority | INTEGER | 优先级 |
|
||||
| effective_from | DATE | 生效起始日期 |
|
||||
| effective_to | DATE | 生效截止日期 |
|
||||
|
||||
**业务规则:**
|
||||
- 冲刺奖金:历史口径(至2026-02-28),不累计取最高档
|
||||
- Top3奖金:2026-03-01起生效,1st=1000元,2nd=600元,3rd=400元,并列都算
|
||||
|
||||
### 1.4 cfg_area_category - 台区分类映射
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| category_id | SERIAL | 分类ID(主键) |
|
||||
| source_area_name | VARCHAR(100) | 源区域名称(来自dim_table.site_table_area_name) |
|
||||
| category_code | VARCHAR(20) | 分类代码 |
|
||||
| category_name | VARCHAR(50) | 分类名称 |
|
||||
| match_type | VARCHAR(10) | 匹配类型(exact/like/default) |
|
||||
| match_priority | INTEGER | 匹配优先级(数字越小优先级越高) |
|
||||
| is_active | BOOLEAN | 是否启用 |
|
||||
|
||||
**分类代码(基于BD_manual_dim_table.md实际数据):**
|
||||
|
||||
| category_code | category_name | 匹配规则 |
|
||||
|---------------|---------------|----------|
|
||||
| BILLIARD | 普通台球区 | A区, B区, C区 |
|
||||
| BILLIARD_VIP | VIP台球包厢 | VIP包厢 |
|
||||
| SNOOKER | 斯诺克区 | 斯诺克区 |
|
||||
| MAHJONG | 麻将房 | 麻将房 |
|
||||
| KTV | KTV包间 | K包 |
|
||||
| SPECIAL | 补时长专用 | 补时长 |
|
||||
| OTHER | 其他区域 | 默认匹配 |
|
||||
|
||||
### 1.5 cfg_skill_type - 技能课程类型映射
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| skill_type_id | SERIAL | 映射ID(主键) |
|
||||
| skill_id | BIGINT | 技能ID |
|
||||
| skill_name | VARCHAR(50) | 技能名称 |
|
||||
| course_type_code | VARCHAR(10) | 课程类型代码 |
|
||||
| course_type_name | VARCHAR(20) | 课程类型名称 |
|
||||
| is_active | BOOLEAN | 是否启用 |
|
||||
|
||||
**课程类型:**
|
||||
- BASE = 基础课/陪打
|
||||
- BONUS = 附加课/超休
|
||||
|
||||
---
|
||||
|
||||
## 二、助教维度表
|
||||
|
||||
### 2.1 dws_assistant_daily_detail - 助教日度业绩明细
|
||||
|
||||
**粒度:** 助教 + 日期
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| site_id | BIGINT | 门店ID |
|
||||
| tenant_id | BIGINT | 租户ID |
|
||||
| assistant_id | BIGINT | 助教ID |
|
||||
| assistant_nickname | VARCHAR(50) | 助教花名 |
|
||||
| stat_date | DATE | 统计日期 |
|
||||
| assistant_level_code | INTEGER | 助教等级代码(SCD2 as-of) |
|
||||
| assistant_level_name | VARCHAR(20) | 助教等级名称 |
|
||||
| total_service_count | INTEGER | 总服务次数 |
|
||||
| base_service_count | INTEGER | 基础课服务次数 |
|
||||
| bonus_service_count | INTEGER | 附加课服务次数 |
|
||||
| total_seconds | INTEGER | 总计费时长(秒) |
|
||||
| base_seconds | INTEGER | 基础课计费时长 |
|
||||
| bonus_seconds | INTEGER | 附加课计费时长 |
|
||||
| total_hours | NUMERIC(10,2) | 总计费小时数 |
|
||||
| base_hours | NUMERIC(10,2) | 基础课小时数 |
|
||||
| bonus_hours | NUMERIC(10,2) | 附加课小时数 |
|
||||
| total_ledger_amount | NUMERIC(12,2) | 总计费金额 |
|
||||
| base_ledger_amount | NUMERIC(12,2) | 基础课计费金额 |
|
||||
| bonus_ledger_amount | NUMERIC(12,2) | 附加课计费金额 |
|
||||
| unique_customers | INTEGER | 服务客户数(去重) |
|
||||
| unique_tables | INTEGER | 服务台桌数(去重) |
|
||||
| trashed_seconds | INTEGER | 被废除的服务时长 |
|
||||
| trashed_count | INTEGER | 被废除的服务次数 |
|
||||
|
||||
**数据来源:** dwd_assistant_service_log + dwd_assistant_trash_event
|
||||
|
||||
### 2.2 dws_assistant_monthly_summary - 助教月度业绩汇总
|
||||
|
||||
**粒度:** 助教 + 月份
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| site_id | BIGINT | 门店ID |
|
||||
| assistant_id | BIGINT | 助教ID |
|
||||
| stat_month | DATE | 统计月份(月第一天) |
|
||||
| hire_date | DATE | 入职日期 |
|
||||
| is_new_hire | BOOLEAN | 是否新入职 |
|
||||
| work_days | INTEGER | 有服务天数 |
|
||||
| total_hours | NUMERIC(10,2) | 总计费小时数 |
|
||||
| base_hours | NUMERIC(10,2) | 基础课小时数 |
|
||||
| bonus_hours | NUMERIC(10,2) | 附加课小时数 |
|
||||
| effective_hours | NUMERIC(10,2) | 有效业绩小时数 |
|
||||
| trashed_hours | NUMERIC(10,2) | 被废除小时数 |
|
||||
| tier_id | INTEGER | 档位ID |
|
||||
| tier_code | VARCHAR(20) | 档位代码 |
|
||||
| tier_name | VARCHAR(50) | 档位名称 |
|
||||
| rank_by_hours | INTEGER | 月度排名 |
|
||||
| rank_with_ties | INTEGER | 考虑并列的排名 |
|
||||
|
||||
**业务规则:**
|
||||
- 有效业绩 = total_hours - trashed_hours
|
||||
- 新入职判断:入职日期 >= 月1日0点
|
||||
- 排名:按effective_hours降序,并列都算
|
||||
|
||||
### 2.3 dws_assistant_customer_stats - 助教服务客户统计
|
||||
|
||||
**粒度:** 助教 + 客户 + 统计日期
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| assistant_id | BIGINT | 助教ID |
|
||||
| member_id | BIGINT | 客户ID |
|
||||
| stat_date | DATE | 统计基准日期 |
|
||||
| first_service_date | DATE | 首次服务日期 |
|
||||
| last_service_date | DATE | 最近服务日期 |
|
||||
| total_service_count | INTEGER | 累计服务次数 |
|
||||
| total_service_hours | NUMERIC(10,2) | 累计服务小时数 |
|
||||
| service_count_7d | INTEGER | 近7天服务次数 |
|
||||
| service_count_30d | INTEGER | 近30天服务次数 |
|
||||
| service_count_90d | INTEGER | 近90天服务次数 |
|
||||
| is_active_7d | BOOLEAN | 近7天是否活跃 |
|
||||
| is_active_30d | BOOLEAN | 近30天是否活跃 |
|
||||
|
||||
**业务规则:**
|
||||
- 散客(member_id=0)不进入此表
|
||||
- 滚动窗口:7/10/15/30/60/90天
|
||||
|
||||
### 2.4 dws_assistant_salary_calc - 助教工资计算详情
|
||||
|
||||
**粒度:** 助教 + 工资月份
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| assistant_id | BIGINT | 助教ID |
|
||||
| assistant_nickname | VARCHAR(50) | 助教花名 |
|
||||
| salary_month | DATE | 工资月份(月第一天) |
|
||||
| assistant_level_code | INTEGER | 助教等级代码(8/10/20/30/40) |
|
||||
| assistant_level_name | VARCHAR(20) | 助教等级名称 |
|
||||
| hire_date | DATE | 入职日期 |
|
||||
| is_new_hire | BOOLEAN | 是否新入职 |
|
||||
| effective_hours | NUMERIC(10,2) | 有效业绩小时数(基础课+附加课-废除) |
|
||||
| base_hours | NUMERIC(10,2) | 基础课/专业课小时数 |
|
||||
| bonus_hours | NUMERIC(10,2) | 附加课/打赏课小时数 |
|
||||
| tier_id | INTEGER | 档位ID |
|
||||
| tier_code | VARCHAR(20) | 档位代码(如 T0-T4) |
|
||||
| tier_name | VARCHAR(50) | 档位名称 |
|
||||
| rank_with_ties | INTEGER | 月度排名(考虑并列,用于Top3奖金) |
|
||||
| base_course_price | NUMERIC(10,2) | 基础课客户支付价格(98/108/118/138) |
|
||||
| bonus_course_price | NUMERIC(10,2) | 附加课客户支付价格(固定190) |
|
||||
| base_deduction | NUMERIC(10,2) | 专业课抽成(元/小时),档位决定 |
|
||||
| bonus_deduction_ratio | NUMERIC(5,4) | 打赏课抽成比例(0-1),档位决定 |
|
||||
| base_income | NUMERIC(12,2) | 基础课收入 |
|
||||
| bonus_income | NUMERIC(12,2) | 附加课收入 |
|
||||
| total_course_income | NUMERIC(12,2) | 课时收入合计 |
|
||||
| sprint_bonus | NUMERIC(12,2) | 冲刺奖金(历史/按规则配置) |
|
||||
| top_rank_bonus | NUMERIC(12,2) | Top3排名奖金(1st:1000, 2nd:600, 3rd:400) |
|
||||
| recharge_commission | NUMERIC(12,2) | 充值提成 |
|
||||
| other_bonus | NUMERIC(12,2) | 其他奖金(手动调整) |
|
||||
| total_bonus | NUMERIC(12,2) | 奖金合计 |
|
||||
| gross_salary | NUMERIC(12,2) | 应发工资 |
|
||||
| vacation_days | INTEGER | 次月可休假天数 |
|
||||
| vacation_unlimited | BOOLEAN | 休假自由标记(最高档为TRUE) |
|
||||
| calc_notes | TEXT | 计算备注(异常说明等) |
|
||||
|
||||
**工资计算公式(来自DWS数据库处理需求.md):**
|
||||
|
||||
```
|
||||
基础课收入 = 基础课小时数 × (客户支付价格 - 专业课抽成)
|
||||
附加课收入 = 附加课小时数 × 190 × (1 - 打赏课抽成比例)
|
||||
包厢课收入 = 包厢课小时数 × (138 - 专业课抽成)
|
||||
应发工资 = 课时收入 + 奖金
|
||||
```
|
||||
|
||||
**计算示例(中级助教185小时,3档):**
|
||||
- 基础课170小时: 170 × (108 - 10) = 16,660元
|
||||
- 附加课15小时: 15 × 190 × (1 - 0.30) = 1,995元
|
||||
- 课时收入: 18,655元
|
||||
- Top3奖金(未进入Top3): 0元
|
||||
- 应发工资: 18,655元
|
||||
|
||||
---
|
||||
|
||||
## 三、客户维度表
|
||||
|
||||
### 3.1 dws_member_consumption_summary - 会员消费汇总
|
||||
|
||||
**粒度:** 会员 + 统计日期
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| member_id | BIGINT | 会员ID |
|
||||
| stat_date | DATE | 统计基准日期 |
|
||||
| first_consume_date | DATE | 首次消费日期 |
|
||||
| last_consume_date | DATE | 最近消费日期 |
|
||||
| total_visit_count | INTEGER | 累计到店次数 |
|
||||
| total_consume_amount | NUMERIC(14,2) | 累计消费金额 |
|
||||
| visit_count_7d | INTEGER | 近7天到店次数 |
|
||||
| visit_count_30d | INTEGER | 近30天到店次数 |
|
||||
| consume_amount_30d | NUMERIC(14,2) | 近30天消费金额 |
|
||||
| cash_card_balance | NUMERIC(14,2) | 储值卡余额 |
|
||||
| gift_card_balance | NUMERIC(14,2) | 赠送卡余额 |
|
||||
| customer_tier | VARCHAR(20) | 客户分层 |
|
||||
|
||||
**客户分层规则:**
|
||||
- 高价值:90天内消费>=3次 且 消费金额>=1000
|
||||
- 中等:30天内有消费
|
||||
- 低活跃:90天内有消费但30天内无消费
|
||||
- 流失:90天内无消费
|
||||
|
||||
### 3.2 dws_member_visit_detail - 会员来店明细
|
||||
|
||||
**粒度:** 会员 + 订单
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| member_id | BIGINT | 会员ID |
|
||||
| order_settle_id | BIGINT | 结账单ID |
|
||||
| visit_date | DATE | 来店日期 |
|
||||
| table_name | VARCHAR(50) | 台桌名称 |
|
||||
| area_category | VARCHAR(20) | 区域分类 |
|
||||
| table_fee | NUMERIC(12,2) | 台费 |
|
||||
| goods_amount | NUMERIC(12,2) | 商品金额 |
|
||||
| assistant_amount | NUMERIC(12,2) | 助教服务金额 |
|
||||
| total_consume | NUMERIC(12,2) | 消费总额 |
|
||||
| actual_pay | NUMERIC(12,2) | 实付金额 |
|
||||
| assistant_services | JSONB | 助教服务明细(JSON) |
|
||||
|
||||
---
|
||||
|
||||
## 四、财务维度表
|
||||
|
||||
### 4.1 dws_finance_daily_summary - 财务日度汇总
|
||||
|
||||
**粒度:** 日期
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| stat_date | DATE | 统计日期 |
|
||||
| gross_amount | NUMERIC(14,2) | 发生额合计 |
|
||||
| table_fee_amount | NUMERIC(14,2) | 台费正价 |
|
||||
| goods_amount | NUMERIC(14,2) | 商品正价 |
|
||||
| assistant_pd_amount | NUMERIC(14,2) | 助教基础课正价 |
|
||||
| assistant_cx_amount | NUMERIC(14,2) | 助教激励课正价 |
|
||||
| discount_total | NUMERIC(14,2) | 优惠合计 |
|
||||
| discount_groupbuy | NUMERIC(14,2) | 团购优惠 |
|
||||
| discount_vip | NUMERIC(14,2) | 会员折扣 |
|
||||
| discount_gift_card | NUMERIC(14,2) | 赠送卡抵扣 |
|
||||
| discount_manual | NUMERIC(14,2) | 手动调整 |
|
||||
| discount_rounding | NUMERIC(14,2) | 抹零 |
|
||||
| discount_other | NUMERIC(14,2) | 其他优惠(手动调整拆分) |
|
||||
| confirmed_income | NUMERIC(14,2) | 确认收入 |
|
||||
| cash_inflow_total | NUMERIC(14,2) | 现金流入合计 |
|
||||
| cash_pay_amount | NUMERIC(14,2) | 收银实付 |
|
||||
| groupbuy_pay_amount | NUMERIC(14,2) | 团购支付金额 |
|
||||
| platform_settlement_amount | NUMERIC(14,2) | 平台回款金额 |
|
||||
| platform_fee_amount | NUMERIC(14,2) | 平台服务费+佣金 |
|
||||
| recharge_cash_inflow | NUMERIC(14,2) | 充值现金流入 |
|
||||
| card_consume_total | NUMERIC(14,2) | 卡消费合计 |
|
||||
| cash_card_consume | NUMERIC(14,2) | 储值卡消费 |
|
||||
| gift_card_consume | NUMERIC(14,2) | 赠送卡消费 |
|
||||
| cash_outflow_total | NUMERIC(14,2) | 现金流出合计 |
|
||||
| cash_balance_change | NUMERIC(14,2) | 现金结余 |
|
||||
| recharge_count | INTEGER | 充值笔数 |
|
||||
| recharge_total | NUMERIC(14,2) | 充值总额 |
|
||||
| recharge_cash | NUMERIC(14,2) | 充值现金部分 |
|
||||
| recharge_gift | NUMERIC(14,2) | 充值赠送部分 |
|
||||
| first_recharge_count | INTEGER | 首充笔数 |
|
||||
| renewal_count | INTEGER | 续充笔数 |
|
||||
| order_count | INTEGER | 结账单数 |
|
||||
| member_order_count | INTEGER | 会员订单数 |
|
||||
| guest_order_count | INTEGER | 散客订单数 |
|
||||
| avg_order_amount | NUMERIC(12,2) | 平均客单价 |
|
||||
|
||||
**计算公式:**
|
||||
- 发生额 = table_charge_money + goods_money + assistant_pd_money + assistant_cx_money
|
||||
- 团购支付金额 = pl_coupon_sale_amount > 0 ? pl_coupon_sale_amount : groupbuy_redemption.ledger_unit_price
|
||||
- 团购优惠 = coupon_amount - 团购支付金额
|
||||
- 优惠合计 = 团购优惠 + 会员折扣 + 赠送卡抵扣 + 手动调整 + 抹零
|
||||
- 其他优惠 = adjust_amount - 大客户优惠(不足0按0处理)
|
||||
- 确认收入 = 发生额 - 优惠合计
|
||||
- 平台回款金额 = dws_platform_settlement.settlement_amount(若无导入,则使用团购支付金额)
|
||||
- 平台服务费 = commission_amount + service_fee
|
||||
- 现金流入合计 = 收银实付 + 平台回款金额 + 充值现金流入
|
||||
- 现金流出合计 = 支出汇总 + 平台服务费
|
||||
- 现金结余 = 现金流入合计 - 现金流出合计
|
||||
|
||||
**财务指标数据来源矩阵(字段 → 来源 → 口径)**
|
||||
| 字段 | 来源表 | 口径说明 |
|
||||
|------|--------|----------|
|
||||
| gross_amount | dwd_settlement_head | table_charge_money + goods_money + assistant_pd_money + assistant_cx_money |
|
||||
| discount_groupbuy | dwd_settlement_head + dwd_groupbuy_redemption | coupon_amount - 团购支付金额 |
|
||||
| discount_vip | dwd_settlement_head | member_discount_amount |
|
||||
| discount_gift_card | dwd_settlement_head | gift_card_amount |
|
||||
| discount_manual | dwd_settlement_head | adjust_amount(手动调整总额) |
|
||||
| discount_rounding | dwd_settlement_head | rounding_amount |
|
||||
| discount_other | dwd_settlement_head | adjust_amount - 大客户优惠(配置映射) |
|
||||
| confirmed_income | dwd_settlement_head | gross_amount - discount_total |
|
||||
| cash_pay_amount | dwd_settlement_head | pay_amount(收银实付) |
|
||||
| groupbuy_pay_amount | dwd_settlement_head + dwd_groupbuy_redemption | pl_coupon_sale_amount 或 ledger_unit_price |
|
||||
| platform_settlement_amount | dws_platform_settlement | settlement_amount(Excel导入) |
|
||||
| platform_fee_amount | dws_platform_settlement | commission_amount + service_fee |
|
||||
| recharge_cash_inflow | dwd_recharge_order | pay_money(现金充值) |
|
||||
| cash_inflow_total | dwd_settlement_head + dws_platform_settlement + dwd_recharge_order | 收银实付 + 平台回款 + 充值现金 |
|
||||
| cash_outflow_total | dws_finance_expense_summary + dws_platform_settlement | 支出汇总 + 平台服务费 |
|
||||
| cash_balance_change | dws_finance_daily_summary | cash_inflow_total - cash_outflow_total |
|
||||
|
||||
### 4.2 dws_finance_recharge_summary - 充值统计
|
||||
|
||||
**粒度:** 日期
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| stat_date | DATE | 统计日期 |
|
||||
| recharge_count | INTEGER | 充值笔数 |
|
||||
| recharge_total | NUMERIC(14,2) | 充值总额(含赠送) |
|
||||
| recharge_cash | NUMERIC(14,2) | 现金充值金额 |
|
||||
| recharge_gift | NUMERIC(14,2) | 赠送金额 |
|
||||
| first_recharge_count | INTEGER | 首充笔数 |
|
||||
| first_recharge_cash | NUMERIC(14,2) | 首充现金 |
|
||||
| renewal_count | INTEGER | 续充笔数 |
|
||||
| renewal_cash | NUMERIC(14,2) | 续充现金 |
|
||||
| cash_card_balance | NUMERIC(14,2) | 储值卡余额 |
|
||||
| gift_card_balance | NUMERIC(14,2) | 赠送卡余额 |
|
||||
|
||||
**数据来源:** dwd_recharge_order(is_first字段区分首充/续充)
|
||||
|
||||
### 4.3 dws_finance_income_structure - 收入结构分析
|
||||
|
||||
**粒度:** 日期 + 结构类型 + 分类
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| stat_date | DATE | 统计日期 |
|
||||
| structure_type | VARCHAR(20) | 结构类型(INCOME_TYPE/AREA) |
|
||||
| category_code | VARCHAR(30) | 分类代码 |
|
||||
| category_name | VARCHAR(50) | 分类名称 |
|
||||
| income_amount | NUMERIC(14,2) | 收入金额 |
|
||||
| income_ratio | NUMERIC(5,4) | 收入占比 |
|
||||
| order_count | INTEGER | 订单数 |
|
||||
| duration_minutes | INTEGER | 时长(分钟) |
|
||||
|
||||
**结构类型说明:**
|
||||
|
||||
1. **INCOME_TYPE(按收入类型):**
|
||||
- TABLE_FEE = 台费收入
|
||||
- GOODS = 商品收入
|
||||
- ASSISTANT_BASE = 助教基础课
|
||||
- ASSISTANT_BONUS = 助教附加课
|
||||
|
||||
2. **AREA(按区域):**
|
||||
- 使用cfg_area_category映射(BILLIARD/BILLIARD_VIP/SNOOKER/MAHJONG/KTV/OTHER)
|
||||
|
||||
**数据来源:** dwd_settlement_head, dwd_table_fee_log, dwd_assistant_service_log
|
||||
|
||||
### 4.4 dws_finance_discount_detail - 优惠明细
|
||||
|
||||
**粒度:** 日期 + 优惠类型
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| stat_date | DATE | 统计日期 |
|
||||
| discount_type_code | VARCHAR(30) | 优惠类型代码 |
|
||||
| discount_type_name | VARCHAR(50) | 优惠类型名称 |
|
||||
| discount_amount | NUMERIC(14,2) | 优惠金额 |
|
||||
| discount_ratio | NUMERIC(5,4) | 优惠占比(占总优惠) |
|
||||
| usage_count | INTEGER | 使用次数 |
|
||||
| affected_orders | INTEGER | 影响订单数 |
|
||||
|
||||
**优惠类型:**
|
||||
- GROUPBUY = 团购优惠(coupon_amount - 团购实付金额)
|
||||
- VIP = 会员折扣(member_discount_amount)
|
||||
- GIFT_CARD = 赠送卡抵扣(gift_card_amount)
|
||||
- ROUNDING = 抹零(rounding_amount)
|
||||
- BIG_CUSTOMER = 大客户优惠(基于配置映射的手动调整)
|
||||
- OTHER = 其他优惠(手动调整中除大客户外部分)
|
||||
|
||||
**数据来源:** dwd_settlement_head, dwd_groupbuy_redemption
|
||||
|
||||
### 4.5 dws_finance_expense_summary - 支出结构(Excel导入)
|
||||
|
||||
**粒度:** 月份 + 支出类型
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| expense_month | DATE | 支出月份 |
|
||||
| expense_type_code | VARCHAR(30) | 支出类型代码 |
|
||||
| expense_type_name | VARCHAR(50) | 支出类型名称 |
|
||||
| expense_category | VARCHAR(20) | 支出大类 |
|
||||
| expense_amount | NUMERIC(14,2) | 支出金额 |
|
||||
| import_batch_no | VARCHAR(50) | 导入批次号 |
|
||||
|
||||
**支出类型:**
|
||||
- RENT = 房租
|
||||
- UTILITY = 水电费
|
||||
- PROPERTY = 物业费
|
||||
- SALARY = 工资
|
||||
- REIMBURSE = 报销
|
||||
- PLATFORM_FEE = 平台服务费
|
||||
- OTHER = 其他
|
||||
|
||||
### 4.6 dws_platform_settlement - 平台回款(Excel导入)
|
||||
|
||||
**粒度:** 回款日期 + 平台 + 订单
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | BIGSERIAL | 主键 |
|
||||
| settlement_date | DATE | 回款日期 |
|
||||
| platform_type | VARCHAR(30) | 平台类型 |
|
||||
| platform_name | VARCHAR(50) | 平台名称 |
|
||||
| platform_order_no | VARCHAR(100) | 平台订单号 |
|
||||
| order_settle_id | BIGINT | 关联的结账单ID |
|
||||
| settlement_amount | NUMERIC(14,2) | 回款金额 |
|
||||
| commission_amount | NUMERIC(14,2) | 佣金 |
|
||||
| service_fee | NUMERIC(14,2) | 服务费 |
|
||||
| gross_amount | NUMERIC(14,2) | 订单原始金额 |
|
||||
| import_batch_no | VARCHAR(50) | 导入批次号 |
|
||||
|
||||
---
|
||||
|
||||
## 五、订单汇总
|
||||
|
||||
### 5.1 dws_order_summary - 订单汇总
|
||||
|
||||
**粒度:** 订单(结账单)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| site_id | BIGINT | 门店ID |
|
||||
| order_settle_id | BIGINT | 结账单ID |
|
||||
| order_trade_no | VARCHAR(64) | 订单交易号 |
|
||||
| order_date | DATE | 订单日期(pay_time/create_time) |
|
||||
| tenant_id | BIGINT | 租户ID |
|
||||
| member_id | BIGINT | 会员ID(散客为0或NULL) |
|
||||
| member_flag | BOOLEAN | 是否会员订单 |
|
||||
| recharge_order_flag | BOOLEAN | 是否充值订单(消费金额=0且实付>0) |
|
||||
| item_count | INTEGER | 商品项数 |
|
||||
| total_item_quantity | INTEGER | 商品总数量 |
|
||||
| table_fee_amount | NUMERIC(14,2) | 台费实际金额 |
|
||||
| assistant_service_amount | NUMERIC(14,2) | 助教服务实际金额 |
|
||||
| goods_amount | NUMERIC(14,2) | 商品实际金额 |
|
||||
| group_amount | NUMERIC(14,2) | 团购核销金额 |
|
||||
| total_coupon_deduction | NUMERIC(14,2) | 券/团购抵扣 |
|
||||
| member_discount_amount | NUMERIC(14,2) | 会员折扣 |
|
||||
| manual_discount_amount | NUMERIC(14,2) | 手工调价 |
|
||||
| order_original_amount | NUMERIC(14,2) | 原价估算(实付+优惠) |
|
||||
| order_final_amount | NUMERIC(14,2) | 实付金额 |
|
||||
| stored_card_deduct | NUMERIC(14,2) | 卡类抵扣(储值/充值/赠送) |
|
||||
| external_paid_amount | NUMERIC(14,2) | 外部支付金额(实付-卡类抵扣) |
|
||||
| total_paid_amount | NUMERIC(14,2) | 总实付金额 |
|
||||
| book_table_flow | NUMERIC(14,2) | 台费流水 |
|
||||
| book_assistant_flow | NUMERIC(14,2) | 助教流水 |
|
||||
| book_goods_flow | NUMERIC(14,2) | 商品流水 |
|
||||
| book_group_flow | NUMERIC(14,2) | 团购流水 |
|
||||
| book_order_flow | NUMERIC(14,2) | 订单总流水 |
|
||||
| order_effective_consume_cash | NUMERIC(14,2) | 有效消费现金 |
|
||||
| order_effective_recharge_cash | NUMERIC(14,2) | 有效充值现金(当前为0) |
|
||||
| order_effective_flow | NUMERIC(14,2) | 有效流水 |
|
||||
| refund_amount | NUMERIC(14,2) | 退款金额 |
|
||||
| net_income | NUMERIC(14,2) | 净收入(实付-退款) |
|
||||
| created_at | TIMESTAMPTZ | 创建时间 |
|
||||
| updated_at | TIMESTAMPTZ | 更新时间 |
|
||||
|
||||
**数据来源:** dwd_settlement_head、dwd_table_fee_log、dwd_assistant_service_log、dwd_store_goods_sale、dwd_groupbuy_redemption、dwd_refund
|
||||
|
||||
---
|
||||
|
||||
## 六、时间分层机制
|
||||
|
||||
### 6.1 时间口径定义
|
||||
|
||||
| 时间窗口 | 说明 | 边界规则 |
|
||||
|----------|------|----------|
|
||||
| 本周 | 从本周一到今天 | 周起始日为周一 |
|
||||
| 上周 | 上周一到上周日 | 完整7天 |
|
||||
| 本月 | 从月1日到今天 | 月第一天0点起 |
|
||||
| 上月 | 上月完整月份 | 完整自然月 |
|
||||
| 前3个月不含本月 | 三个月前月初到上月末 | 不含当前月 |
|
||||
| 前3个月含本月 | 两个月前月初到今天 | 含当前月 |
|
||||
| 本季度 | 季度第一月1日到今天 | 季度起始 |
|
||||
| 上季度 | 上季度完整三个月 | 完整自然季 |
|
||||
| 最近半年 | 往前6个月(不含本月) | 不含当前月 |
|
||||
|
||||
### 6.2 滚动窗口
|
||||
|
||||
支持以下滚动窗口统计:
|
||||
- 近7天
|
||||
- 近10天
|
||||
- 近15天
|
||||
- 近30天
|
||||
- 近60天
|
||||
- 近90天
|
||||
|
||||
### 6.3 环比计算
|
||||
|
||||
环比规则:对比上一个等长区间
|
||||
- 如查询1月1日-1月15日,环比为12月17日-12月31日
|
||||
|
||||
---
|
||||
|
||||
## 七、数据更新策略
|
||||
|
||||
| 表类型 | 更新频率 | 幂等方式 |
|
||||
|--------|----------|----------|
|
||||
| 日度明细表 | 每小时 | delete-before-insert(按日期窗口) |
|
||||
| 日度汇总表 | 每小时 | delete-before-insert(按日期) |
|
||||
| 月度汇总表 | 每日 | delete-before-insert(按月份) |
|
||||
| 客户统计表 | 每日 | delete-before-insert(按统计日期) |
|
||||
| Excel导入表 | 手动 | 按import_batch_no去重 |
|
||||
Reference in New Issue
Block a user