2beedbc2
“wangming”
修复健康师工资额外计算服务接口错误
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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
219
220
221
222
223
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
252
253
254
255
256
257
258
259
260
261
262
263
|
# 店助工资表字段设计
## 📋 表名建议
`lq_assistant_salary_statistics`(店助工资统计表)
---
## 🔍 字段分类说明
根据店助工资计算规则,参考健康师工资表结构,店助工资表需要包含以下字段:
---
## 一、基础信息字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 主键ID | F_Id | VARCHAR(50) | 主键,使用YitIdHelper生成 | ✅ |
| 门店ID | F_StoreId | VARCHAR(50) | 关联门店信息表 | ✅ |
| 门店名称 | F_StoreName | VARCHAR(200) | 门店名称(冗余字段,便于查询) | ✅ |
| 核算岗位 | F_Position | VARCHAR(50) | 固定为"店助"或"店助主任" | ✅ |
| 员工姓名 | F_EmployeeName | VARCHAR(100) | 员工姓名 | ✅ |
| 员工ID | F_EmployeeId | VARCHAR(50) | 关联BASE_USER表 | ✅ |
| 统计月份 | F_StatisticsMonth | VARCHAR(20) | 格式:YYYYMM,如:202501 | ✅ |
| 门店类型 | F_StoreType | INT | 门店类型(200平/旗舰店) | ❌ |
| 门店类别 | F_StoreCategory | INT | 门店分类(1=A类,2=B类,3=C类) | ✅ |
| 是否新店 | F_IsNewStore | VARCHAR(10) | 是/否 | ❌ |
| 新店保护阶段 | F_NewStoreProtectionStage | INT | 新店保护阶段(0/1/2) | ❌ |
---
## 二、业绩相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 门店总业绩 | F_StoreTotalPerformance | DECIMAL(18,2) | 门店开单业绩 - 门店退卡业绩 | ✅ |
| 门店开单业绩 | F_StoreBillingPerformance | DECIMAL(18,2) | 门店开单业绩总和 | ✅ |
| 门店退卡业绩 | F_StoreRefundPerformance | DECIMAL(18,2) | 门店退卡业绩总和 | ✅ |
| 门店生命线 | F_StoreLifeline | DECIMAL(18,2) | 门店生命线(从lq_md_target获取) | ✅ |
| 业绩完成率 | F_PerformanceCompletionRate | DECIMAL(18,4) | 门店业绩 / 门店生命线 | ✅ |
---
## 三、提成相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 提成比例 | F_CommissionRate | DECIMAL(18,4) | 根据业绩与生命线比例确定(0%/0.4%/0.6%) | ✅ |
| 提成金额 | F_CommissionAmount | DECIMAL(18,2) | 门店业绩 × 提成比例 | ✅ |
---
## 四、阶段奖励相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 进店消耗人数 | F_HeadCount | INT | 有消费金额的,按门店按月去重客户数 | ✅ |
| 第一阶段目标人数 | F_Stage1TargetHeadCount | INT | 从lq_md_target获取 | ✅ |
| 第二阶段目标人数 | F_Stage2TargetHeadCount | INT | 从lq_md_target获取 | ✅ |
| 是否达到第一阶段 | F_ReachedStage1 | VARCHAR(10) | 是/否 | ✅ |
| 是否达到第二阶段 | F_ReachedStage2 | VARCHAR(10) | 是/否 | ✅ |
| 阶段奖励金额 | F_StageRewardAmount | DECIMAL(18,2) | 根据阶段达成情况计算(0/200/400元) | ✅ |
| 第一阶段奖励 | F_Stage1Reward | DECIMAL(18,2) | 第一阶段奖励金额(0或200元) | ✅ |
| 第二阶段奖励 | F_Stage2Reward | DECIMAL(18,2) | 第二阶段奖励金额(0或200元) | ✅ |
---
## 五、底薪相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 门店分类 | F_StoreCategory | INT | 门店分类(1=A类,2=B类,3=C类) | ✅ |
| 底薪金额 | F_BaseSalary | DECIMAL(18,2) | 根据门店分类确定(A类3000,B类3100,C类3200) | ✅ |
---
## 六、固定奖励字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 手机管理费 | F_PhoneManagementFee | DECIMAL(18,2) | 固定150元/月 | ✅ |
---
## 七、考勤相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 在店天数 | F_WorkingDays | INT | 在店工作天数 | ✅ |
| 请假天数 | F_LeaveDays | INT | 请假天数 | ✅ |
---
## 八、工资计算字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 应发工资 | F_GrossSalary | DECIMAL(18,2) | 底薪 + 提成 + 阶段奖励 + 固定奖励 | ✅ |
| 实发工资 | F_ActualSalary | DECIMAL(18,2) | 应发工资 - 扣款合计 + 补贴合计 + 奖金 | ✅ |
---
## 九、扣款相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 缺卡扣款 | F_MissingCard | DECIMAL(18,2) | 缺卡扣款金额 | ✅ |
| 迟到扣款 | F_LateArrival | DECIMAL(18,2) | 迟到扣款金额 | ✅ |
| 请假扣款 | F_LeaveDeduction | DECIMAL(18,2) | 请假扣款金额 | ✅ |
| 扣社保 | F_SocialInsuranceDeduction | DECIMAL(18,2) | 社保扣款金额 | ✅ |
| 扣除奖励 | F_RewardDeduction | DECIMAL(18,2) | 扣除奖励金额 | ✅ |
| 扣住宿费 | F_AccommodationDeduction | DECIMAL(18,2) | 住宿费扣款金额 | ✅ |
| 扣学习期费用 | F_StudyPeriodDeduction | DECIMAL(18,2) | 学习期费用扣款 | ✅ |
| 扣工作服费用 | F_WorkClothesDeduction | DECIMAL(18,2) | 工作服费用扣款 | ✅ |
| 扣款合计 | F_TotalDeduction | DECIMAL(18,2) | 所有扣款金额总和 | ✅ |
---
## 十、补贴相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 当月培训补贴 | F_MonthlyTrainingSubsidy | DECIMAL(18,2) | 当月培训补贴 | ✅ |
| 当月交通补贴 | F_MonthlyTransportSubsidy | DECIMAL(18,2) | 当月交通补贴 | ✅ |
| 上月培训补贴 | F_LastMonthTrainingSubsidy | DECIMAL(18,2) | 上月培训补贴 | ✅ |
| 上月交通补贴 | F_LastMonthTransportSubsidy | DECIMAL(18,2) | 上月交通补贴 | ✅ |
| 补贴合计 | F_TotalSubsidy | DECIMAL(18,2) | 所有补贴金额总和 | ✅ |
---
## 十一、奖金相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 发奖金 | F_Bonus | DECIMAL(18,2) | 奖金金额 | ✅ |
| 退手机押金 | F_ReturnPhoneDeposit | DECIMAL(18,2) | 退手机押金金额 | ✅ |
| 退住宿押金 | F_ReturnAccommodationDeposit | DECIMAL(18,2) | 退住宿押金金额 | ✅ |
---
## 十二、支付相关字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 当月是否发放 | F_MonthlyPaymentStatus | VARCHAR(20) | 已发放/未发放/部分发放 | ✅ |
| 支付金额 | F_PaidAmount | DECIMAL(18,2) | 已支付金额 | ✅ |
| 待支付金额 | F_PendingAmount | DECIMAL(18,2) | 待支付金额 | ✅ |
| 补发上月 | F_LastMonthSupplement | DECIMAL(18,2) | 补发上月金额 | ✅ |
| 当月支付总额 | F_MonthlyTotalPayment | DECIMAL(18,2) | 当月支付总额 | ✅ |
---
## 十三、系统字段
| 字段名 | 数据库字段 | 类型 | 说明 | 必填 |
|--------|-----------|------|------|------|
| 是否锁定 | F_IsLocked | INT | 0=未锁定,1=已锁定 | ✅ |
| 创建时间 | F_CreateTime | DATETIME | 创建时间 | ✅ |
| 更新时间 | F_UpdateTime | DATETIME | 更新时间 | ✅ |
| 创建人 | F_CreateUser | VARCHAR(50) | 创建人ID | ❌ |
| 更新人 | F_UpdateUser | VARCHAR(50) | 更新人ID | ❌ |
---
## 📊 字段统计
- **总字段数**:约 60+ 个字段
- **必填字段**:约 50+ 个(包含奖金、补贴、支付相关字段)
- **可选字段**:约 10 个(主要是系统字段中的创建人、更新人等)
---
## 🔑 索引建议
1. **主键索引**:`F_Id`(PRIMARY KEY)
2. **唯一索引**:`F_EmployeeId + F_StatisticsMonth`(确保同一员工同一月份只有一条记录)
3. **普通索引**:
- `F_StoreId`(按门店查询)
- `F_StatisticsMonth`(按月份查询)
- `F_EmployeeId`(按员工查询)
- `F_StoreCategory`(按门店分类查询)
---
## 📝 字段说明
### 1. 业绩完成率计算
```
业绩完成率 = 门店业绩 / 门店生命线 × 100%
```
### 2. 提成比例判断
```
if (门店业绩 < 门店生命线 × 70%)
提成比例 = 0%
else if (门店业绩 < 门店生命线 × 100%)
提成比例 = 0.4%
else
提成比例 = 0.6%
```
### 3. 阶段奖励计算
```
if (进店消耗人数 >= 第二阶段目标)
阶段奖励 = 400元(第一阶段200 + 第二阶段200)
else if (进店消耗人数 >= 第一阶段目标)
阶段奖励 = 200元(第一阶段200)
else
阶段奖励 = 0元
```
### 4. 应发工资计算
```
应发工资 = 底薪 + 提成金额 + 阶段奖励金额 + 手机管理费
```
### 5. 实发工资计算
```
实发工资 = 应发工资 - 扣款合计 + 补贴合计 + 奖金
```
---
## ⚠️ 注意事项
1. **数据校验**:
- 门店分类必须设置,不允许为NULL
- 门店生命线必须设置,未设置应报错
- 阶段目标必须设置,未设置应报错
2. **数据一致性**:
- 门店业绩的计算逻辑必须与门店总业绩统计保持一致
- 进店消耗人数的统计逻辑必须与其他统计接口保持一致
3. **字段命名规范**:
- 所有字段使用 `F_` 前缀
- 金额字段使用 `DECIMAL(18,2)` 类型
- 日期字段使用 `DATETIME` 类型
- 月份字段使用 `VARCHAR(20)` 类型,格式为 YYYYMM
4. **与健康师工资表的差异**:
- 店助工资表不需要:个人业绩、战队业绩、新客业绩、升单业绩等个人业绩相关字段
- 店助工资表需要:门店业绩、门店生命线、进店消耗人数、阶段奖励等门店相关字段
- 店助工资表不需要:顾问提成、门店T区提成等健康师特有字段
- 店助工资表需要:手机管理费固定奖励字段
---
## 🔗 相关表关联
1. **BASE_USER**:通过 `F_EmployeeId` 关联员工信息
2. **lq_mdxx**:通过 `F_StoreId` 关联门店信息,获取门店分类
3. **lq_md_target**:通过 `F_StoreId + F_StatisticsMonth` 关联门店目标,获取门店生命线和阶段目标
4. **lq_kd_kdjlb**:用于计算门店开单业绩
5. **lq_hytk_hytk**:用于计算门店退卡业绩
6. **lq_xh_hyhk**:用于统计进店消耗人数
7. **lq_xh_jksyj**:用于判断是否有消费金额
---
## 📅 更新记录
- 2025-01-XX:初始版本,根据健康师工资表结构和店助工资计算规则梳理店助工资表字段
|