# 大项目部老师工资计算规则梳理 ## 📋 目录 - [计算规则](#计算规则) - [数据来源](#数据来源) - [归属规则](#归属规则) - [计算流程](#计算流程) --- ## 💰 计算规则 ### 1. 底薪规则 **固定底薪**:3000元 - 无论业绩多少,底薪固定为3000元 - 不设档位,不设条件 --- ### 2. 业绩提成规则(阶梯式) 业绩提成基于**总业绩**计算,采用阶梯式方式: | 总业绩范围 | 提成比例 | 说明 | |-----------|---------|------| | ≤ 20万 | 0% | 无提成 | | > 20万 且 ≤ 100万 | 2% | 按2%计算提成 | | > 100万 | 2.5% | 按2.5%计算提成 | **计算说明**: - 提成金额 = 总业绩 × 对应提成比例 - 采用阶梯式计算,不同区间按不同比例计算 - **注意**:不是分段累进,而是整个总业绩按对应比例计算 **示例**: - 总业绩 = 15万 → 提成 = 0(无提成) - 总业绩 = 50万 → 提成 = 50万 × 2% = 1万 - 总业绩 = 120万 → 提成 = 120万 × 2.5% = 3万 --- ## 📊 数据来源 ### 总业绩(TotalPerformance) **定义**:门店总业绩 = 开单业绩 - 退卡业绩 **重要说明**: - **大项目部老师计算的是门店总业绩,不是个人业绩** - 大项目部老师和科技部老师是两个不同的岗位 - 根据归属表 `lq_md_major_project_teacher_assignment` 确定该老师在某个月归属于哪个门店 - 然后统计该门店在该月的总业绩(开单业绩 - 退卡业绩) **数据来源表及字段**: | 业绩类型 | 数据表 | 字段 | 说明 | |---------|--------|------|------| | **开单业绩** | `lq_kd_kdjlb` | `sfyj` | 门店开单实付金额(根据归属表关联的门店ID统计) | | **退卡业绩** | `lq_hytk_hytk` | `F_ActualRefundAmount` 或 `tkje` | 门店退卡金额(根据归属表关联的门店ID统计) | **计算方式**: ```sql 门店总业绩 = SUM(门店开单实付金额) - SUM(门店退卡金额) ``` **过滤条件**: - 所有表记录必须满足:`F_IsEffective = 1`(有效记录) - 按统计月份(YYYYMM格式)过滤时间范围 - **关键**:根据 `lq_md_major_project_teacher_assignment` 归属表关联 - 关联条件:`lq_md_major_project_teacher_assignment.F_TeacherId = 大项目部老师ID` - 关联条件:`lq_md_major_project_teacher_assignment.F_Year = 统计年份` - 关联条件:`lq_md_major_project_teacher_assignment.F_Month = 统计月份` - 关联条件:`lq_md_major_project_teacher_assignment.F_StoreId = 门店ID` - 然后统计该门店在该月的开单业绩和退卡业绩 **注意**: - 大项目部老师的归属每个月可能不一样 - 需要根据归属表来确定该老师在该月份归属于哪个门店 - **统计的是门店的总业绩,不是个人业绩** - 如果同一个老师在某个月归属于多个门店,需要合并多个门店的业绩 --- ## 🔗 归属规则 ### 归属表:`lq_md_major_project_teacher_assignment` **表结构**: - `F_Id`:主键ID - `F_StoreId`:门店ID - `F_Year`:年份(YYYY格式) - `F_Month`:月份(MM格式) - `F_TeacherId`:大项目部老师用户ID - `F_EducationTeacherId`:教育部老师用户ID(可选) - `F_Remark`:备注说明 **归属规则**: - 每个大项目部老师每个月可能归属于不同的门店 - 归属信息存储在 `lq_md_major_project_teacher_assignment` 表中 - 统计工资时,需要根据该表来确定: 1. 该老师在该月份归属于哪个门店 2. 该门店的业绩数据中,哪些属于该老师 **关联逻辑**: 1. 根据 `F_Year` 和 `F_Month` 确定统计月份 2. 根据 `F_TeacherId` 确定大项目部老师 3. 根据 `F_StoreId` 确定归属门店 4. 统计该门店在该月份的业绩数据(开单、消耗、退卡) 5. 根据业绩表中的老师ID字段关联到该大项目部老师 **业绩关联方式**(待确认): - 开单业绩:`lq_kd_kjbsyj` 表中的 `kjblszh` 或 `kjbls` 字段 - 消耗业绩:`lq_xh_kjbsyj` 表中的 `kjblszh` 或 `kjbls` 字段 - 退卡业绩:`lq_hytk_kjbsyj` 表中的 `kjblszh` 或 `kjbls` 字段 **注意**: - 需要确认大项目部老师的业绩是如何关联的 - 可能需要通过 `BASE_USER` 表的账号或ID来关联 - 或者通过其他关联字段来确定 --- ## ⚠️ 特殊规则 ### 离职员工规则 **适用条件**: - 员工状态:`BASE_USER.F_IsOnJob = 0`(离职) **计算规则**: - 离职员工的工资计算规则待确认 - 可能需要特殊处理(如:只计算在职期间的业绩) --- ## 📝 计算流程 ### 1. 数据准备阶段 1. **获取归属信息** - 从 `lq_md_major_project_teacher_assignment` 表查询指定月份的所有归属记录 - 按 `F_TeacherId` 和 `F_StoreId` 分组 2. **获取业绩数据** - 开单业绩:从 `lq_kd_kjbsyj` 表统计 - 消耗业绩:从 `lq_xh_kjbsyj` 表统计 - 退卡业绩:从 `lq_hytk_kjbsyj` 表统计 - 按统计月份过滤时间范围 - 按归属门店和老师ID关联 3. **获取员工信息** - 从 `BASE_USER` 表获取员工基本信息 - 包括:姓名、账号、门店信息等 ### 2. 业绩统计阶段 1. **计算开单业绩** - 根据归属表关联的开单业绩数据 - 按大项目部老师ID汇总 2. **计算消耗业绩** - 根据归属表关联的消耗业绩数据 - 按大项目部老师ID汇总 3. **计算退卡业绩** - 根据归属表关联的退卡业绩数据 - 按大项目部老师ID汇总 4. **计算总业绩** - 总业绩 = 开单业绩 + 消耗业绩 + 退卡业绩 ### 3. 工资计算阶段 1. **计算底薪** - 底薪 = 3000元(固定) 2. **计算业绩提成** - 判断总业绩范围: - ≤ 20万:提成比例 = 0% - > 20万 且 ≤ 100万:提成比例 = 2% - > 100万:提成比例 = 2.5% - 提成金额 = 总业绩 × 提成比例 3. **计算其他收入** - 手工费、车补、少休费、全勤奖等(默认0) 4. **计算核算应发工资** - 核算应发工资 = 底薪 + 提成合计 + 其他收入 5. **计算最终应发工资** - 最终应发工资 = MAX(核算应发工资, 保底工资) - 如果没有保底工资,则等于核算应发工资 6. **计算实发工资** - 实发工资 = 最终应发工资 - 扣款合计 + 补贴合计 + 奖金 ### 4. 数据保存阶段 1. **保存工资统计记录** - 保存到 `lq_major_project_teacher_salary_statistics` 表 - 确保同一员工同一月份只有一条记录(唯一索引) 2. **更新状态** - 设置 `F_IsLocked = 0`(未锁定) - 设置 `F_IsTerminated`(根据员工状态) --- ## ❓ 待确认问题 1. **业绩关联方式** - 大项目部老师的业绩是如何关联的? - 是通过 `BASE_USER` 表的账号或ID来关联吗? - 还是通过其他字段来确定? 2. **归属门店的业绩统计** - 如果一个大项目部老师在某个月归属于某个门店,那么: - 该门店的所有业绩都算他的吗? - 还是只统计该门店中他参与的业绩? 3. **离职员工处理** - 离职员工的工资计算规则是什么? - 是否需要特殊处理? 4. **保底工资** - 大项目部老师是否有保底工资? - 保底工资的计算规则是什么? --- ## 📌 总结 ### 核心规则 1. **底薪**:固定3000元 2. **业绩提成**:阶梯式计算 - ≤ 20万:0% - > 20万 且 ≤ 100万:2% - > 100万:2.5% ### 关键点 1. **归属表关联**:需要根据 `lq_md_major_project_teacher_assignment` 表来确定归属关系 2. **业绩统计**:需要根据归属表关联的业绩数据来统计 3. **月份归属**:每个月的归属可能不一样,需要按月统计 ### 下一步 1. 确认业绩关联方式 2. 确认归属门店的业绩统计规则 3. 确认离职员工处理规则 4. 确认保底工资规则 5. 实现计算逻辑