# 店助主任工资计算规则梳理
## 📋 概述
店助主任工资由以下几个部分组成:
1. **底薪**:从工资配置表(`lq_gz`)获取,字段为 `dzzrdx`
2. **提成**:根据门店业绩与门店生命线的比例计算(阶梯提成模式)
3. **阶段奖励**:根据进店消耗人数是否达到阶段目标(同店助)
4. **固定奖励**:手机管理费
---
# 第一部分:计算规则
## 💰 工资组成规则
### 1. 底薪规则
**计算规则**:从工资配置表(`lq_gz`)获取,字段为 `dzzrdx`
**重要说明**:
- 底薪从配置表获取,如果未设置,应使用默认值或报错提示
- 底薪是固定值,不随门店分类变化
---
### 2. 提成规则
**计算公式**:根据门店业绩与门店生命线的比例确定提成比例,使用阶梯提成模式计算
#### 提成比例规则
| 门店业绩范围 | 提成计算方式 |
|------------|------------|
| 门店业绩 < 门店生命线 × 70% | 0%(无提成) |
| 门店生命线 × 70% ≤ 门店业绩 < 门店生命线 × 100% | 0.4%(全部业绩按0.4%计算) |
| 门店业绩 ≥ 门店生命线 × 100% | **阶梯提成**:
- 超过生命线部分:1%
- 剩余部分(≤生命线):0.6% |
#### 提成计算示例
**示例1:业绩未达到70%**
- 门店生命线 = 100,000元
- 门店业绩 = 60,000元
- 计算:60,000 < 100,000 × 70% = 70,000
- 提成金额 = 0元(无提成)
**示例2:业绩在70%-100%之间**
- 门店生命线 = 100,000元
- 门店业绩 = 85,000元
- 计算:70,000 ≤ 85,000 < 100,000
- 提成金额 = 85,000 × 0.4% = 340元
**示例3:业绩超过100%(阶梯提成)**
- 门店生命线 = 100,000元
- 门店业绩 = 150,000元
- 计算过程:
1. 业绩(150,000)> 生命线(100,000)
2. ≤生命线部分:100,000 × 0.6% = 600元
3. >生命线部分:(150,000 - 100,000) × 1% = 50,000 × 1% = 500元
4. 总提成 = 600 + 500 = 1,100元
**重要说明**:
- 门店生命线必须在 `lq_md_target` 表中进行设置,如果未设置,系统应报错提示
- 当业绩超过生命线时,必须使用阶梯提成模式,不能使用单一提成比例
- 提成按门店业绩的百分比计算
---
### 3. 阶段奖励规则
**考核指标**:进店消耗人数(有消费金额的,按门店按月去重客户数)
#### 奖励规则
| 阶段 | 目标人数 | 奖励金额 | 说明 |
|-----|---------|---------|------|
| 第一阶段 | 达到目标(如:100人) | 200元/月 | 只要达到第一阶段目标即可获得 |
| 第二阶段 | 达到目标(如:140人) | 再奖励200元/月 | 在达到第一阶段的基础上,再达到第二阶段目标 |
| 两个阶段都达到 | - | 总计400元/月 | 第一阶段200元 + 第二阶段200元 |
**奖励说明**:
- 两个阶段的奖励是累加的,不是互斥的
- 如果只达到第二阶段但未达到第一阶段,只获得第二阶段奖励(200元)
- 如果两个阶段都达到,获得总计400元奖励
**统计规则**:
- 按门店统计(`md` 字段)
- 只统计有消费金额的记录(消耗金额 > 0)
- 同一个会员按月去重(`COUNT(DISTINCT hy)`),其中 `hy` 为会员ID
- 只统计当月有效消耗记录(`F_IsEffective = 1`)
**重要说明**:
- 阶段目标必须在 `lq_md_target` 表中进行设置,如果未设置,奖励金额为0(不报错)
- 不同门店的阶段目标可能不同(如:川师第一阶段100人,第二阶段140人)
---
### 4. 固定奖励规则
**手机管理费**:150元/月
**说明**:
- 固定金额,无需计算
- 每月固定发放
---
## 📊 完整计算公式
```
店助主任月工资 = 底薪 + 提成 + 阶段奖励 + 固定奖励
其中:
- 底薪 = 从lq_gz.dzzrdx获取
- 提成 = 根据业绩与生命线比例确定(阶梯提成模式)
- 阶段奖励 = 根据进店消耗人数是否达到阶段目标(0/200/400元)
- 固定奖励 = 150元(手机管理费)
```
---
## ⚠️ 注意事项
1. **门店业绩计算**:
- 门店业绩 = 开单业绩 - 退卡业绩
- 只统计当月有效记录(`F_IsEffective = 1`)
2. **进店消耗人数统计**:
- 必须使用 `COUNT(DISTINCT hy)` 去重(同一个会员按月去重)
- 只统计有消费金额的记录(消耗金额 > 0)
- 按门店统计(`md` 字段)
- 只统计当月有效消耗记录(`F_IsEffective = 1`)
- 通过关联 `lq_xh_jksyj` 表判断是否有消费金额
3. **阶段目标配置**:
- 不同门店的阶段目标可能不同(如:川师第一阶段100人,第二阶段140人)
- 必须从 `lq_md_target` 表获取对应门店的目标值
- **重要**:如果 `lq_md_target` 表中未设置阶段目标,奖励金额为0(不报错)
4. **提成比例判断**:
- 严格按照门店业绩与门店生命线的比例判断
- 注意边界值:70% 和 100%
- **重要**:当业绩超过生命线时,必须使用阶梯提成模式(超过部分1%,剩余部分0.6%)
5. **数据一致性**:
- 门店业绩的计算逻辑必须与门店总业绩统计保持一致
- 进店消耗人数的统计逻辑必须与其他统计接口保持一致
6. **数据校验要求**:
- 门店分类(`F_StoreCategory`)必须设置,不允许为NULL,未设置应报错
- 门店生命线(`F_StoreLifeline`)如果未设置,提成金额为0(不报错)
- 阶段目标(`F_AssistantHeadcountTargetStage1`、`F_AssistantHeadcountTargetStage2`)如果未设置,奖励金额为0(不报错)
7. **在店天数比例计算**:
- 如果店助主任中间离职或请假,提成和奖励需要按在店天数比例计算
- 计算公式:
- 店助主任提成 = 门店总提成 ÷ 当月天数 × 在店天数
- 店助主任奖励 = 门店总奖励 ÷ 当月天数 × 在店天数
---
# 第二部分:数据来源说明
## 📊 数据表说明
### 1. `lq_gz` - 工资配置表
**用途**:获取店助主任底薪
**关键字段**:
- `dzzrdx`:店助主任底薪
**查询逻辑**:
- 从配置表获取底薪值
- 如果未设置,应使用默认值或报错提示
---
### 2. `lq_mdxx` - 门店信息表
**用途**:获取门店分类、门店名称等信息
**关键字段**:
- `F_Id`:门店ID(主键)
- `dm`:门店名称
- `F_StoreCategory`:门店分类(1=A类,2=B类,3=C类)
- `F_StoreType`:门店类型(200平/旗舰店)
**查询逻辑**:
- 通过门店ID关联获取门店信息
- 门店分类必须设置,不允许为NULL
---
### 3. `lq_md_target` - 门店目标表
**用途**:获取门店生命线和阶段目标
**关键字段**:
- `F_StoreId`:门店ID
- `F_Month`:月份(YYYYMM格式)
- `F_StoreLifeline`:门店生命线
- `F_AssistantHeadcountTargetStage1`:店助人头目标数阶段一
- `F_AssistantHeadcountTargetStage2`:店助人头目标数阶段二
**查询逻辑**:
- 通过门店ID和月份关联获取目标数据
- 门店生命线如果未设置,提成金额为0
- 阶段目标如果未设置,奖励金额为0
---
### 4. `lq_kd_kdjlb` - 开单记录表
**用途**:计算门店开单业绩
**关键字段**:
- `Djmd`:登记门店(门店ID)
- `Kdrq`:开单日期
- `Sfyj`:实付业绩
- `F_IsEffective`:是否有效(只统计有效记录)
**查询逻辑**:
- 按门店、月份统计开单业绩总和
- 只统计有效记录(`F_IsEffective = 1`)
---
### 5. `lq_hytk_hytk` - 退卡信息表
**用途**:计算门店退卡业绩
**关键字段**:
- `md`:门店编号(门店ID)
- `tksj`:退卡时间
- `F_ActualRefundAmount`:实退金额(优先使用)
- `tkje`:退卡金额(如果实退金额为空则使用)
- `F_IsEffective`:是否有效(只统计有效记录)
**查询逻辑**:
- 按门店、月份统计退卡金额总和
- 优先使用 `F_ActualRefundAmount`,如果为空则使用 `tkje`
- 只统计有效记录(`F_IsEffective = 1`)
---
### 6. `lq_xh_hyhk` - 会员耗卡表
**用途**:统计进店消耗人数
**关键字段**:
- `F_Id`:耗卡编号(主键)
- `md`:门店ID
- `hy`:会员ID(用于去重统计)
- `hksj`:耗卡时间
- `F_IsEffective`:是否有效(只统计有效记录)
**查询逻辑**:
- 按门店、月份统计去重会员数
- 只统计有效记录(`F_IsEffective = 1`)
- 必须关联 `lq_xh_jksyj` 表判断是否有消费金额
---
### 7. `lq_xh_jksyj` - 耗卡健康师业绩表
**用途**:判断是否有消费金额
**关键字段**:
- `glkdbh`:关联耗卡记录ID(关联 `lq_xh_hyhk.F_Id`)
- `jksyj`:健康师业绩(消耗金额)
- `F_IsEffective`:是否有效(只统计有效记录)
**查询逻辑**:
- 用于判断耗卡记录是否有消费金额(`jksyj > 0`)
- 只统计有效记录(`F_IsEffective = 1`)
---
### 8. `lq_attendance_summary` - 考勤汇总表
**用途**:获取在店天数
**关键字段**:
- `F_UserId`:用户ID(员工ID)
- `F_Year`:年份
- `F_Month`:月份
- `F_WorkDays`:出勤天数(在店天数)
- `F_LeaveDays`:请假天数
- `F_IsEffective`:是否有效(只统计有效记录)
**查询逻辑**:
- 通过员工ID、年份、月份获取考勤数据
- 用于计算按在店天数比例计算的提成和奖励
---
## 📝 数据查询逻辑
### 1. 门店业绩计算
**计算公式**:门店业绩 = 开单业绩 - 退卡业绩
**查询逻辑**:
```sql
-- 1. 计算门店开单业绩
SELECT COALESCE(SUM(sfyj), 0) as BillingPerformance
FROM lq_kd_kdjlb
WHERE Djmd = @StoreId
AND DATE_FORMAT(Kdrq, '%Y%m') = @Month
AND F_IsEffective = 1
-- 2. 计算门店退卡业绩
SELECT COALESCE(SUM(COALESCE(F_ActualRefundAmount, tkje, 0)), 0) as RefundPerformance
FROM lq_hytk_hytk
WHERE md = @StoreId
AND DATE_FORMAT(tksj, '%Y%m') = @Month
AND F_IsEffective = 1
-- 3. 计算门店实际业绩
门店业绩 = 开单业绩 - 退卡业绩
```
---
### 2. 进店消耗人数统计
**统计规则**:有消费金额的,按门店按月去重客户数
**查询逻辑**:
```sql
-- 统计门店当月进店消耗人数(有消费金额的,按门店按月去重客户数)
SELECT COUNT(DISTINCT hy) as HeadCount
FROM lq_xh_hyhk hk
WHERE hk.md = @StoreId
AND DATE_FORMAT(hk.hksj, '%Y%m') = @Month
AND hk.F_IsEffective = 1
AND EXISTS (
-- 确保有消费金额(通过关联消耗业绩表判断)
SELECT 1
FROM lq_xh_jksyj jksyj
WHERE jksyj.glkdbh = hk.F_Id
AND jksyj.F_IsEffective = 1
AND jksyj.jksyj > 0
)
```
**说明**:
- `md`:门店ID,按门店统计
- `hy`:会员ID,用于去重统计(同一个会员按月去重)
- `hksj`:耗卡时间,用于按月过滤
- `F_IsEffective = 1`:只统计有效记录
- **重要**:只统计有消费金额的记录(消耗金额 > 0),通过关联 `lq_xh_jksyj` 表判断是否有消费金额
---
### 3. 门店分类获取
**查询逻辑**:
```sql
SELECT
F_Id as StoreId,
dm as StoreName,
F_StoreCategory as StoreCategory,
F_StoreType as StoreType
FROM lq_mdxx
WHERE F_Id = @StoreId
```
**说明**:
- `F_StoreCategory`:门店分类(1=A类,2=B类,3=C类)
- 门店分类必须设置,不允许为NULL
---
### 4. 门店生命线和阶段目标获取
**查询逻辑**:
```sql
SELECT
F_StoreLifeline as StoreLifeline,
F_AssistantHeadcountTargetStage1 as Stage1Target,
F_AssistantHeadcountTargetStage2 as Stage2Target
FROM lq_md_target
WHERE F_StoreId = @StoreId
AND F_Month = @Month
```
**说明**:
- `F_StoreLifeline`:门店生命线,用于计算提成
- `F_AssistantHeadcountTargetStage1`:第一阶段目标人数
- `F_AssistantHeadcountTargetStage2`:第二阶段目标人数
- 如果门店生命线未设置,提成金额为0
- 如果阶段目标未设置,奖励金额为0
---
### 5. 店助主任底薪获取
**查询逻辑**:
```sql
SELECT dzzrdx as BaseSalary
FROM lq_gz
LIMIT 1
```
**说明**:
- `dzzrdx`:店助主任底薪
- 从配置表获取,如果未设置,应使用默认值或报错提示
---
## 🔄 店助主任与店助的主要区别
### 1. 底薪规则
| 岗位 | 底薪来源 |
|-----|---------|
| 店助 | 根据门店分类确定(A类3000,B类3100,C类3200) |
| 店助主任 | 从配置表 `lq_gz.dzzrdx` 获取 |
### 2. 提成规则
| 岗位 | 业绩 ≥ 100%时的提成计算 |
|-----|---------------------|
| 店助 | 全部业绩按 0.6% 计算 |
| 店助主任 | **阶梯提成**:
- 超过生命线部分:1%
- 剩余部分(≤生命线):0.6% |
**示例对比**:
- 门店生命线 = 100,000元
- 门店业绩 = 150,000元
**店助提成**:
- 150,000 × 0.6% = 900元
**店助主任提成**:
- ≤生命线部分:100,000 × 0.6% = 600元
- >生命线部分:(150,000 - 100,000) × 1% = 500元
- 总提成 = 600 + 500 = 1,100元
### 3. 阶段奖励规则
**相同**:两个岗位的阶段奖励规则完全一致
---
## 📅 更新记录
- 2025-01-XX:初始版本,根据项目文档梳理店助主任工资计算规则