大项目部老师工资计算规则梳理.md 7.79 KB

大项目部老师工资计算规则梳理

📋 目录


💰 计算规则

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_ActualRefundAmounttkje 门店退卡金额(根据归属表关联的门店ID统计)

计算方式

门店总业绩 = 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_YearF_Month 确定统计月份
  2. 根据 F_TeacherId 确定大项目部老师
  3. 根据 F_StoreId 确定归属门店
  4. 统计该门店在该月份的业绩数据(开单、消耗、退卡)
  5. 根据业绩表中的老师ID字段关联到该大项目部老师

业绩关联方式(待确认):

  • 开单业绩:lq_kd_kjbsyj 表中的 kjblszhkjbls 字段
  • 消耗业绩:lq_xh_kjbsyj 表中的 kjblszhkjbls 字段
  • 退卡业绩:lq_hytk_kjbsyj 表中的 kjblszhkjbls 字段

注意

  • 需要确认大项目部老师的业绩是如何关联的
  • 可能需要通过 BASE_USER 表的账号或ID来关联
  • 或者通过其他关联字段来确定

⚠️ 特殊规则

离职员工规则

适用条件

  • 员工状态:BASE_USER.F_IsOnJob = 0(离职)

计算规则

  • 离职员工的工资计算规则待确认
  • 可能需要特殊处理(如:只计算在职期间的业绩)

📝 计算流程

1. 数据准备阶段

  1. 获取归属信息

    • lq_md_major_project_teacher_assignment 表查询指定月份的所有归属记录
    • F_TeacherIdF_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. 实现计算逻辑