# dws_assistant_salary_calc 助教工资计算详情表

> 生成时间：2026-02-03

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | dws |
| 表名 | dws_assistant_salary_calc |
| 主键 | id |
| 唯一键 | (site_id, assistant_id, salary_month) |
| 数据来源 | dws_assistant_monthly_summary + cfg_* 配置表 |
| 更新频率 | 月初计算上月工资 |
| 说明 | 以"助教+月份"为粒度，计算月度工资明细 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | id | BIGSERIAL | NO | 自增主键 |
| 2 | site_id | BIGINT | NO | 门店ID |
| 3 | tenant_id | BIGINT | NO | 租户ID |
| 4 | assistant_id | BIGINT | NO | 助教ID |
| 5 | assistant_nickname | VARCHAR(50) | YES | 助教花名 |
| 6 | salary_month | DATE | NO | 工资月份（月第一天） |
| 7 | assistant_level_code | INTEGER | YES | 助教等级代码 |
| 8 | assistant_level_name | VARCHAR(20) | YES | 助教等级名称 |
| 9 | hire_date | DATE | YES | 入职日期 |
| 10 | is_new_hire | BOOLEAN | NO | 是否新入职 |
| 11 | effective_hours | NUMERIC(10,2) | NO | 有效业绩小时数 |
| 12 | base_hours | NUMERIC(10,2) | NO | 基础课小时数 |
| 13 | bonus_hours | NUMERIC(10,2) | NO | 附加课小时数 |
| 14 | room_hours | NUMERIC(10,2) | NO | 包厢课小时数 |
| 15 | tier_id | INTEGER | YES | 档位ID |
| 16 | tier_code | VARCHAR(20) | YES | 档位代码 |
| 17 | tier_name | VARCHAR(50) | YES | 档位名称 |
| 18 | rank_with_ties | INTEGER | YES | 月度排名（考虑并列） |
| 19 | base_course_price | NUMERIC(10,2) | NO | 基础课客户支付价格 |
| 20 | bonus_course_price | NUMERIC(10,2) | NO | 附加课客户支付价格（固定190） |
| 21 | base_deduction | NUMERIC(10,2) | NO | 专业课抽成（元/小时） |
| 22 | bonus_deduction_ratio | NUMERIC(5,4) | NO | 打赏课抽成比例 |
| 23 | base_income | NUMERIC(12,2) | NO | 基础课收入 |
| 24 | bonus_income | NUMERIC(12,2) | NO | 附加课收入 |
| 25 | room_income | NUMERIC(12,2) | NO | 包厢课收入（按基础课口径） |
| 26 | total_course_income | NUMERIC(12,2) | NO | 课时收入合计 |
| 27 | sprint_bonus | NUMERIC(12,2) | NO | 冲刺奖金（历史/按规则配置） |
| 28 | top_rank_bonus | NUMERIC(12,2) | NO | Top3排名奖金 |
| 29 | recharge_commission | NUMERIC(12,2) | NO | 充值提成 |
| 30 | other_bonus | NUMERIC(12,2) | NO | 其他奖金 |
| 31 | total_bonus | NUMERIC(12,2) | NO | 奖金合计 |
| 32 | gross_salary | NUMERIC(12,2) | NO | 应发工资 |
| 33 | vacation_days | INTEGER | NO | 次月可休假天数 |
| 34 | vacation_unlimited | BOOLEAN | NO | 休假自由标记 |
| 35 | calc_notes | TEXT | YES | 计算备注 |
| 36 | created_at | TIMESTAMPTZ | NO | 创建时间 |
| 37 | updated_at | TIMESTAMPTZ | NO | 更新时间 |

## 工资计算公式

### 课时收入
```
基础课收入 = base_hours × (base_course_price - base_deduction)
附加课收入 = bonus_hours × 190 × (1 - bonus_deduction_ratio)
包厢课收入 = room_hours × (138 - base_deduction)  -- 包厢课统一138元/小时
课时收入合计 = 基础课收入 + 附加课收入 + 包厢课收入
```

### 奖金
```
Top3奖金: 1st=1000元, 2nd=600元, 3rd=400元（2026-03-01起）
充值提成: 来自dws_assistant_recharge_commission
```

### 应发工资
```
gross_salary = total_course_income + total_bonus
```

## 计算示例

| 项目 | 数值 | 计算过程 |
|------|------|----------|
| 基础课小时数 | 170 | 来自monthly_summary |
| 附加课小时数 | 15 | 来自monthly_summary |
| 包厢课小时数 | 0 | 来自monthly_summary |
| 等级 | 中级(20) | base_course_price=108 |
| 档位 | T3 | base_deduction=10, bonus_ratio=0.30 |
| 基础课收入 | 16,660 | 170 × (108-10) |
| 附加课收入 | 1,995 | 15 × 190 × 0.70 |
| Top3奖金 | 0 | 未进入Top3 |
| 应发工资 | 18,655 | 16,660 + 1,995 + 0 |

## 可回溯性

| 项目 | 说明 |
|------|------|
| 可回溯 | ⚠️ 部分可回溯 |
| 数据范围 | 2025年8月起 |
| 依赖表 | dws_assistant_monthly_summary, cfg_*, dws_assistant_recharge_commission |
| 限制 | 充值提成需手工导入历史数据 |
