c63026bc
“wangming”
feat: 优化工资计算逻辑
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# 大项目主管工资计算规则梳理
## 📋 目录
- [概述](#概述)
- [计算规则](#计算规则)
- [数据来源](#数据来源)
- [归属规则](#归属规则)
- [计算流程](#计算流程)
- [注意事项](#注意事项)
---
## 📋 概述
大项目主管工资由以下几个部分组成:
1. **底薪**:固定3500元
2. **业绩提成**:根据管理的所有门店的总业绩分段提成
**重要说明**:
- 底薪固定为3500元,不设档位,不设条件
- 大项目主管从 `BASE_USER` 表获取,岗位字段(`F_GW`)为"主管",组织ID为大项目一部或大项目二部
- 每个大项目主管管理的门店归属在 `lq_md_target` 表中(通过 `F_MajorProjectDepartment` 字段)
- 需要统计该大项目主管管理的**所有门店**的总业绩(开单-退卡)
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
24
25
|
- **只统计医美类型的业绩**(从 `lq_kd_jksyj` 表统计医美类型的健康师业绩,从 `lq_hytk_mx` 表统计医美类型的退卡金额)
- 提成采用分段累进式计算
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
---
## 💰 计算规则
### 1. 底薪规则
**固定底薪**:3500元
- 无论业绩多少,底薪固定为3500元
- 不设档位,不设条件
- 不设考核扣款
---
### 2. 业绩提成规则
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
43
|
**提成计算方式**:根据管理的所有门店的总业绩**分段累进式**计算
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
44
|
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
45
46
47
48
|
| 业绩区间 | 提成比例 | 说明 |
|---------|---------|------|
| ≤ 50万 | 0% | 无提成资格 |
| > 50万 | 分段计算 | 有提成资格后,0-70万部分按1%,70万以上部分按1.5% |
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
49
50
|
**计算说明**:
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
51
52
53
54
55
56
57
58
59
60
61
62
|
- 采用**分段累进式**计算,不同区间按不同比例分别计算后累加
- **必须大于50万才有提成资格**
- 如果有提成资格后:
- 0-70万部分:1%(整个0-70万部分都按1%计算)
- 70万以上部分:1.5%
**计算公式(分段累进)**:
```
如果 总业绩 ≤ 50万:提成 = 0(无提成资格)
如果 50万 < 总业绩 ≤ 70万:提成 = 总业绩 × 1%
如果 总业绩 > 70万:提成 = 70万 × 1% + (总业绩 - 70万) × 1.5%
```
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
63
64
|
**示例**:
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
65
66
67
|
- 总业绩 = 40万 → 提成 = 0(无提成资格,未达到50万门槛)
- 总业绩 = 60万 → 提成 = 60万 × 1% = 6,000元
- 总业绩 = 80万 → 提成 = 70万 × 1% + (80万 - 70万) × 1.5% = 7,000 + 1,500 = 8,500元
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
---
## 📊 数据来源
### 大项目主管识别
**数据来源**:`BASE_USER` 表
**识别条件**:
- `F_GW`(岗位字段)为"主管"
- `F_OrganizeId`(组织ID)在大项目一部或大项目二部的组织ID列表中
- `F_DeleteMark == null`(未删除)
- `F_EnabledMark == 1`(已启用)
**获取步骤**:
1. 从 `BASE_ORGANIZE` 表查找组织名称包含"大项目一部"或"大项目二部"的组织
2. 获取这些组织的ID列表
3. 从 `BASE_USER` 表查询岗位为"主管"且组织ID在上述组织ID列表中的员工
**说明**:
- 目前有"大项目一部"和"大项目二部",未来可能还有更多大项目部
- 岗位字段值必须是"主管"(完全匹配)
---
### 管理的门店归属
**数据来源**:`lq_md_target` 表
**关联关系**:
- 通过 `F_MajorProjectDepartment` 字段关联到 `BASE_ORGANIZE.F_Id`(大项目一部或大项目二部的组织ID)
- 通过 `F_StoreId` 字段关联到 `lq_mdxx.F_Id`
- 通过 `F_Month` 字段(YYYYMM格式)关联到统计月份
**获取逻辑**:
1. 从 `lq_md_target` 表查询指定月份(`F_Month = @统计月份`)的记录
2. 筛选出 `F_MajorProjectDepartment = @大项目一部组织ID` 或 `F_MajorProjectDepartment = @大项目二部组织ID` 的记录
3. 获取这些记录的 `F_StoreId` 列表,即为该大项目主管管理的门店
**重要说明**:
- 每个大项目主管可能管理多个门店
- 需要统计这些门店的总业绩(开单-退卡)总和
- 如果某个门店在 `lq_md_target` 表中没有记录,则该门店的业绩不计入该大项目主管的统计
---
### 总业绩统计
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
117
118
119
|
**定义**:该大项目主管管理的所有门店中,**医美类型**的开单金额总和减去退卡金额总和
**重要说明**:**只统计医美类型的业绩**
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
120
121
122
123
124
|
**数据来源表及字段**:
| 业绩类型 | 数据表 | 字段 | 说明 |
|---------|--------|------|------|
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
125
126
|
| **开单金额** | `lq_kd_jksyj` | `Jksyj` | 医美类型的健康师业绩(`ItemCategory == "医美"`) |
| **退卡金额** | `lq_hytk_mx` | `Tkje` | 医美类型的退卡金额(`ItemCategory == "医美"`) |
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
127
128
129
|
**统计逻辑**:
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
130
131
132
133
|
1. **统计开单金额**(只统计医美类型):
- 从 `lq_kd_jksyj` 表关联 `lq_kd_kdjlb` 表
- 条件:`ItemCategory == "医美"`,`F_IsEffective = 1`,`djmd IN (@管理的门店ID列表)`,`Kdrq` 在统计月份范围内
- 统计 `Jksyj` 字段(健康师业绩)的总和
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
134
|
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
135
136
137
138
|
2. **统计退卡金额**(只统计医美类型):
- 从 `lq_hytk_mx` 表关联 `lq_hytk_hytk` 表
- 条件:`ItemCategory == "医美"`,`F_IsEffective = 1`,`md IN (@管理的门店ID列表)`,`Tksj` 在统计月份范围内
- 统计 `Tkje` 字段(退卡金额)的总和
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
3. **计算净总业绩**:
- 净总业绩 = 开单金额 - 退卡金额
---
## 🔗 归属规则
### 大项目主管与门店的归属关系
**数据来源**:`lq_md_target` 表
**表结构说明**:
- `F_Id`:主键ID
- `F_StoreId`:门店ID(关联 `lq_mdxx.F_Id`)
- `F_Month`:月份(YYYYMM格式)
- `F_MajorProjectDepartment`:归属大项目部(关联 `BASE_ORGANIZE.F_Id`)
**获取管理的门店**:
1. 从 `lq_md_target` 表查询:
```sql
SELECT DISTINCT F_StoreId
FROM lq_md_target
WHERE F_MajorProjectDepartment = @大项目一部或大项目二部组织ID
AND F_Month = @统计月份
```
2. 如果该大项目主管在指定月份没有管理的门店,则总业绩为0,提成为0
**重要说明**:
- 每个大项目主管可能管理多个门店
- 需要统计这些门店的总业绩(开单-退卡)总和
- 如果某个门店在 `lq_md_target` 表中没有记录,则该门店的业绩不计入该大项目主管的统计
---
## 🔄 计算流程
### 步骤1:识别大项目主管
1. 从 `BASE_ORGANIZE` 表中筛选:
- `F_FullName LIKE '%大项目一部%'` 或 `F_FullName LIKE '%大项目二部%'`
- `F_DeleteMark == null`(未删除)
- `F_EnabledMark == 1`(已启用)
2. 获取这些组织的ID列表
3. 从 `BASE_USER` 表中筛选:
- `F_GW == "主管"`(岗位为"主管")
- `F_OrganizeId` 在上述组织ID列表中
- `F_DeleteMark == null`(未删除)
- `F_EnabledMark == 1`(已启用)
---
### 步骤2:获取管理的门店
1. 从 `lq_md_target` 表查询指定月份(`F_Month = @统计月份`)的记录
2. 筛选出 `F_MajorProjectDepartment = @大项目一部组织ID` 或 `F_MajorProjectDepartment = @大项目二部组织ID` 的记录
3. 获取这些记录的 `F_StoreId` 列表,即为该大项目主管管理的门店
---
### 步骤3:统计总业绩
1. **统计开单金额**:
- 从 `lq_kd_kdjlb` 表统计管理的门店在统计月份的开单金额(`sfyj`字段)
- 过滤条件:`F_IsEffective = 1`,`djmd IN (@管理的门店ID列表)`,`DATE_FORMAT(kdrq, '%Y%m') = @统计月份`
2. **统计退卡金额**:
- 从 `lq_hytk_hytk` 表统计管理的门店在统计月份的退卡金额(`F_ActualRefundAmount` 或 `tkje`字段)
- 过滤条件:`F_IsEffective = 1`,`djmd IN (@管理的门店ID列表)`,`DATE_FORMAT(tkrq, '%Y%m') = @统计月份`
3. **计算净总业绩**:
- 净总业绩 = 开单金额 - 退卡金额
---
### 步骤4:计算提成
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
219
|
根据总业绩分段累进计算提成:
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
220
|
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
221
|
- 如果总业绩 ≤ 50万:提成 = 0(无提成资格)
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
222
|
- 如果 50万 < 总业绩 ≤ 70万:提成 = 总业绩 × 1%
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
223
|
- 如果总业绩 > 70万:提成 = 70万 × 1% + (总业绩 - 70万) × 1.5%
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
---
### 步骤5:计算应发工资
- 应发工资 = 底薪(3500元)+ 提成金额
---
### 步骤6:保存数据
将计算结果保存到 `lq_major_project_director_salary_statistics` 表中:
- 如果已存在当月数据,则更新;否则插入新数据
- 保存门店明细(JSON格式)
---
## ✅ 总结
大项目主管工资计算规则相对简单明确:
1. **底薪固定**:3500元,无任何条件
2. **业绩提成**:根据管理的所有门店的总业绩分段计算,最高1.5%,低于50万无提成
关键点:
- 必须从 `BASE_USER` 表识别大项目主管(岗位为"主管",组织ID为大项目一部或大项目二部)
- 必须从 `lq_md_target` 表获取管理的门店(通过 `F_MajorProjectDepartment` 字段)
- 必须正确统计总业绩(开单金额 - 退卡金额)
- 必须按管理的门店筛选,只统计该大项目主管管理的门店
|
1fffa876
“wangming”
优化储扣列表接口:增加门店、时间、...
|
252
|
- 采用**分段累进式**计算提成,不同区间按不同比例分别计算后累加
|
c63026bc
“wangming”
feat: 优化工资计算逻辑
|
|
|