科技部总经理工资计算规则梳理.md 24.2 KB

科技部总经理工资计算规则梳理

📋 目录


📋 概述

科技部总经理工资由以下几个部分组成:

  1. 底薪:固定4000元
  2. 溯源金额提成:根据管理的所有门店的溯源金额总和分段提成
  3. Cell金额提成:根据管理的所有门店的Cell金额总和分段提成

重要说明

  • 底薪固定为4000元,不设档位,不设条件
  • 科技部总经理从 BASE_USER 表获取,岗位字段(F_GW)为"科技一部"、"科技二部"等(未来可能还有更多)
  • 每个科技部总经理管理的门店归属在 lq_md_general_manager_lifeline 表中
  • 需要统计该科技部总经理管理的所有门店的溯源金额和Cell金额总和
  • 溯源金额和Cell金额分别计算提成,互不影响
  • 提成采用分段累进方式计算

💰 计算规则

1. 底薪规则

固定底薪:4000元

  • 无论业绩多少,底薪固定为4000元
  • 不设档位,不设条件
  • 不设考核扣款

2. 溯源金额提成规则

提成计算方式:根据管理的所有门店的溯源金额总和分段累进计算

溯源金额范围 提成比例
1%
200,000元 - 300,000元 1.5%
300,000元 - 500,000元 2%
≥ 500,000元 2.5%

计算说明

  • 提成金额 = 溯源金额 × 对应提成比例
  • 采用分段累进方式计算,不同区间按不同比例计算
  • 例如:溯源金额为350,000元
    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000-300,000元部分:100,000 × 1.5% = 1,500元
    • 300,000-350,000元部分:50,000 × 2% = 1,000元
    • 总提成 = 2,000 + 1,500 + 1,000 = 4,500元

3. Cell金额提成规则

提成计算方式:根据管理的所有门店的Cell金额总和分段累进计算

Cell金额范围 提成比例
0% (无提成)
50,000元 - 400,000元 1%
≥ 400,000元 1.5%

计算说明

  • 如果Cell金额
  • 如果Cell金额 ≥ 50,000元,按分段累进方式计算
  • 例如:Cell金额为450,000元
    • 0-50,000元部分:无提成
    • 50,000-400,000元部分:350,000 × 1% = 3,500元
    • 400,000-450,000元部分:50,000 × 1.5% = 750元
    • 总提成 = 3,500 + 750 = 4,250元

📊 数据来源

科技部总经理识别

数据来源BASE_USER

识别条件

  • F_GW(岗位字段)包含"科技一部"、"科技二部"等(如:F_GW LIKE '%科技一部%'F_GW LIKE '%科技二部%'
  • F_DeleteMark == null(未删除)
  • F_EnabledMark == 1(已启用)

说明

  • 目前有"科技一部"和"科技二部",未来可能还有更多科技部
  • 岗位字段值可能是"科技一部"、"科技二部"等完整名称

管理的门店归属

数据来源lq_md_general_manager_lifeline

关联关系

  • 通过 F_GeneralManagerId 字段关联到 BASE_USER.F_Id
  • 通过 F_StoreId 字段关联到 lq_mdxx.F_Id
  • 通过 F_Month 字段(YYYYMM格式)关联到统计月份

获取逻辑

  1. lq_md_general_manager_lifeline 表查询指定月份(F_Month = @统计月份)的记录
  2. 筛选出 F_GeneralManagerId = @科技部总经理ID 的记录
  3. 获取这些记录的 F_StoreId 列表,即为该科技部总经理管理的门店

重要说明

  • 每个科技部总经理可能管理多个门店
  • 需要统计这些门店的溯源金额和Cell金额总和

溯源金额统计

定义:该科技部总经理管理的所有门店中,品项的 F_BeautyType 为 "溯源系统" 或 "溯源" 的健康师业绩总和(开单金额 - 退卡金额)

重要说明

  • 数据来源:从健康师业绩表(lq_kd_jksyj)和退卡健康师业绩表(lq_hytk_jksyj)统计
  • 统计依据:使用健康师业绩表中的业绩金额,而不是开单品项明细表的实付金额
  • 原因:健康师业绩表中的金额是经过分配和计算的准确业绩,更符合业务逻辑

数据来源表及字段

数据表 字段 说明
lq_kd_jksyj jksyj 健康师业绩(开单业绩,字符串类型,需转换为decimal)
lq_kd_jksyj F_BeautyType 科美类型(用于区分溯源和Cell)
lq_kd_jksyj F_StoreId 门店ID(用于筛选管理的门店)
lq_kd_jksyj yjsj 业绩时间(用于按月统计)
lq_hytk_jksyj jksyj 健康师业绩(退卡业绩,decimal类型)
lq_hytk_jksyj F_BeautyType 科美类型(用于区分溯源和Cell)
lq_hytk_jksyj F_StoreId 门店ID(用于筛选管理的门店)
lq_hytk_jksyj tksj 退卡时间(用于按月统计)

统计逻辑

  1. 统计开单溯源金额(按管理的门店筛选):

    SELECT COALESCE(SUM(CAST(jksyj AS DECIMAL(18,2))), 0) as TraceabilityAmount
    FROM lq_kd_jksyj
    WHERE F_IsEffective = 1
     AND F_StoreId IN (@管理的门店ID列表)
     AND (F_BeautyType = '溯源系统' OR F_BeautyType = '溯源')
     AND DATE_FORMAT(yjsj, '%Y%m') = @统计月份
    
  2. 统计退卡溯源金额(按管理的门店筛选):

    SELECT COALESCE(SUM(jksyj), 0) as RefundTraceabilityAmount
    FROM lq_hytk_jksyj
    WHERE F_IsEffective = 1
     AND F_StoreId IN (@管理的门店ID列表)
     AND (F_BeautyType = '溯源系统' OR F_BeautyType = '溯源')
     AND DATE_FORMAT(tksj, '%Y%m') = @统计月份
    
  3. 计算净溯源金额

    • 净溯源金额 = 开单溯源金额 - 退卡溯源金额

Cell金额统计

定义:该科技部总经理管理的所有门店中,品项的 F_BeautyType 为 "cell" 或 "Cell" 的健康师业绩总和(开单金额 - 退卡金额)

重要说明

  • 数据来源:从健康师业绩表(lq_kd_jksyj)和退卡健康师业绩表(lq_hytk_jksyj)统计
  • 统计依据:使用健康师业绩表中的业绩金额,而不是开单品项明细表的实付金额
  • 原因:健康师业绩表中的金额是经过分配和计算的准确业绩,更符合业务逻辑

数据来源表及字段:同溯源金额统计

统计逻辑

  1. 统计开单Cell金额(按管理的门店筛选):

    SELECT COALESCE(SUM(CAST(jksyj AS DECIMAL(18,2))), 0) as CellAmount
    FROM lq_kd_jksyj
    WHERE F_IsEffective = 1
     AND F_StoreId IN (@管理的门店ID列表)
     AND (F_BeautyType = 'cell' OR F_BeautyType = 'Cell')
     AND DATE_FORMAT(yjsj, '%Y%m') = @统计月份
    
  2. 统计退卡Cell金额(按管理的门店筛选):

    SELECT COALESCE(SUM(jksyj), 0) as RefundCellAmount
    FROM lq_hytk_jksyj
    WHERE F_IsEffective = 1
     AND F_StoreId IN (@管理的门店ID列表)
     AND (F_BeautyType = 'cell' OR F_BeautyType = 'Cell')
     AND DATE_FORMAT(tksj, '%Y%m') = @统计月份
    
  3. 计算净Cell金额

    • 净Cell金额 = 开单Cell金额 - 退卡Cell金额

🔗 归属规则

科技部总经理与门店的归属关系

数据来源lq_md_general_manager_lifeline

表结构说明

  • F_Id:主键ID
  • F_StoreId:门店ID(关联 lq_mdxx.F_Id
  • F_Month:月份(YYYYMM格式)
  • F_GeneralManagerId:总经理用户ID(关联 BASE_USER.F_Id
  • F_ManagerType:经理类型(0=经理,1=总经理)

获取管理的门店

  1. lq_md_general_manager_lifeline 表查询:

    SELECT DISTINCT F_StoreId
    FROM lq_md_general_manager_lifeline
    WHERE F_GeneralManagerId = @科技部总经理ID
     AND F_Month = @统计月份
    
  2. 如果该科技部总经理在指定月份没有管理的门店,则溯源金额和Cell金额为0,提成为0

重要说明

  • 每个科技部总经理可能管理多个门店
  • 需要统计这些门店的溯源金额和Cell金额总和
  • 如果某个门店在 lq_md_general_manager_lifeline 表中没有记录,则该门店的业绩不计入该科技部总经理的统计

🔄 计算流程

步骤1:识别科技部总经理

BASE_USER 表中筛选:

  • F_GW LIKE '%科技一部%'F_GW LIKE '%科技二部%' 等(根据实际岗位名称)
  • F_DeleteMark == null(未删除)
  • F_EnabledMark == 1(已启用)

注意:未来可能还有"科技三部"等,需要灵活处理岗位识别逻辑


步骤2:获取管理的门店

  1. lq_md_general_manager_lifeline 表查询该科技部总经理在指定月份管理的门店:

    SELECT DISTINCT F_StoreId
    FROM lq_md_general_manager_lifeline
    WHERE F_GeneralManagerId = @科技部总经理ID
     AND F_Month = @统计月份
    
  2. 如果查询结果为空,说明该科技部总经理在该月份没有管理的门店,溯源金额和Cell金额为0,提成为0


步骤3:统计溯源金额(所有管理的门店总和)

  1. 统计开单溯源金额(按管理的门店筛选):

    • lq_kd_pxmx 表统计
    • 关联 lq_kd_kdjlb 表获取开单日期和门店ID
    • 关联 lq_xmzl 表获取品项的 F_BeautyType
    • 筛选条件:
      • lq_kd_pxmx.F_IsEffective = 1(有效记录)
      • lq_kd_kdjlb.F_IsEffective = 1(有效开单)
      • lq_xmzl.F_IsEffective = 1(有效品项)
      • F_BeautyType = '溯源系统''溯源'
      • lq_kd_kdjlb.djmd IN (@管理的门店ID列表)
      • 开单日期在统计月份范围内
    • 汇总:SUM(lq_kd_pxmx.F_ActualPrice)
  2. 统计退卡溯源金额(按管理的门店筛选):

    • lq_hytk_mx 表统计
    • 关联 lq_hytk_hytk 表获取退卡日期和门店ID
    • 关联 lq_xmzl 表获取品项的 F_BeautyType
    • 筛选条件:
      • lq_hytk_mx.F_IsEffective = 1(有效记录)
      • lq_hytk_hytk.F_IsEffective = 1(有效退卡)
      • lq_xmzl.F_IsEffective = 1(有效品项)
      • F_BeautyType = '溯源系统''溯源'
      • lq_hytk_hytk.djmd IN (@管理的门店ID列表)
      • 退卡日期在统计月份范围内
    • 汇总:SUM(lq_hytk_mx.tkje)
  3. 计算净溯源金额

    • 净溯源金额 = 开单溯源金额 - 退卡溯源金额

步骤4:统计Cell金额(所有管理的门店总和)

  1. 统计开单Cell金额(按管理的门店筛选):

    • lq_kd_jksyj 表(健康师业绩表)统计
    • 筛选条件:
      • F_IsEffective = 1(有效记录)
      • F_StoreId IN (@管理的门店ID列表)
      • F_BeautyType = 'cell''Cell'
      • 业绩时间(yjsj)在统计月份范围内
    • 汇总:SUM(CAST(jksyj AS DECIMAL(18,2)))(注意:jksyj字段是字符串类型,需要转换为decimal)
  2. 统计退卡Cell金额(按管理的门店筛选):

    • lq_hytk_jksyj 表(退卡健康师业绩表)统计
    • 筛选条件:
      • F_IsEffective = 1(有效记录)
      • F_StoreId IN (@管理的门店ID列表)
      • F_BeautyType = 'cell''Cell'
      • 退卡时间(tksj)在统计月份范围内
    • 汇总:SUM(jksyj)(注意:jksyj字段是decimal类型)
  3. 计算净Cell金额

    • 净Cell金额 = 开单Cell金额 - 退卡Cell金额

步骤5:工资计算

5.1 计算底薪

  • 底薪 = 4000元(固定)

5.2 计算溯源金额提成

根据净溯源金额范围确定提成比例,采用分段累进方式:

  • 如果净溯源金额 :

    • 提成金额 = 净溯源金额 × 1%
  • 如果 200,000元 ≤ 净溯源金额 :

    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000元以上部分:(净溯源金额 - 200,000) × 1.5%
    • 总提成 = 2,000 + (净溯源金额 - 200,000) × 1.5%
  • 如果 300,000元 ≤ 净溯源金额 :

    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000-300,000元部分:100,000 × 1.5% = 1,500元
    • 300,000元以上部分:(净溯源金额 - 300,000) × 2%
    • 总提成 = 2,000 + 1,500 + (净溯源金额 - 300,000) × 2%
  • 如果净溯源金额 ≥ 500,000元

    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000-300,000元部分:100,000 × 1.5% = 1,500元
    • 300,000-500,000元部分:200,000 × 2% = 4,000元
    • 500,000元以上部分:(净溯源金额 - 500,000) × 2.5%
    • 总提成 = 2,000 + 1,500 + 4,000 + (净溯源金额 - 500,000) × 2.5%

5.3 计算Cell金额提成

根据净Cell金额范围确定提成比例,采用分段累进方式:

  • 如果净Cell金额 :

    • 提成金额 = 0(无提成)
  • 如果 50,000元 ≤ 净Cell金额 :

    • 0-50,000元部分:无提成
    • 50,000元以上部分:(净Cell金额 - 50,000) × 1%
    • 总提成 = (净Cell金额 - 50,000) × 1%
  • 如果净Cell金额 ≥ 400,000元

    • 0-50,000元部分:无提成
    • 50,000-400,000元部分:350,000 × 1% = 3,500元
    • 400,000元以上部分:(净Cell金额 - 400,000) × 1.5%
    • 总提成 = 3,500 + (净Cell金额 - 400,000) × 1.5%

5.4 计算最终工资

  • 应发工资 = 底薪 + 溯源金额提成 + Cell金额提成

📝 注意事项

  1. 数据一致性

    • 溯源金额和Cell金额的统计逻辑必须与其他统计接口保持一致
    • 必须扣除退卡金额,确保数据准确性
    • 必须按管理的门店筛选,只统计该科技部总经理管理的门店
  2. 数据校验

    • F_BeautyType 字段值可能不统一("溯源系统"、"溯源"、"cell"、"Cell"),需要兼容处理
    • 优先使用明细表的 F_BeautyType,如果为空则使用品项表的 F_BeautyType
    • 如果科技部总经理在指定月份没有管理的门店,溯源金额和Cell金额为0,提成为0
  3. 归属关系

    • 必须从 lq_md_general_manager_lifeline 表获取管理的门店
    • 如果某个门店不在该科技部总经理的管理范围内,该门店的业绩不计入统计
    • 需要确保 lq_md_general_manager_lifeline 表的数据准确性
  4. 边界情况

    • 如果溯源金额或Cell金额为0或负数,对应提成为0
    • 如果溯源金额或Cell金额计算后为负数(退卡金额大于开单金额),对应提成为0
    • 如果科技部总经理在指定月份没有管理的门店,所有金额为0,提成为0
  5. 计算精度

    • 涉及金额计算时,建议保留2位小数
    • 提成金额四舍五入到分
  6. 性能优化

    • 建议使用数据库聚合查询,避免在应用层进行大量数据计算
    • 可以先获取管理的门店列表,然后在SQL中使用 IN 子句筛选
    • 可以考虑创建统计视图或物化视图,提高查询性能
  7. 岗位识别

    • 目前有"科技一部"和"科技二部",未来可能还有更多
    • 建议使用模糊匹配(LIKE '%科技一部%')或维护一个岗位列表
    • 需要确保岗位识别逻辑能够适应未来的扩展

📊 计算示例

示例1:基础计算

假设数据

  • 科技部总经理:科技一部(ID: 123456)
  • 管理的门店:门店A(ID: A001)、门店B(ID: B001)
  • 底薪:4000元
  • 门店A溯源金额:150,000元,Cell金额:80,000元
  • 门店B溯源金额:100,000元,Cell金额:120,000元
  • 总溯源金额:250,000元
  • 总Cell金额:200,000元

计算过程

  1. 溯源金额提成

    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000-250,000元部分:50,000 × 1.5% = 750元
    • 溯源金额提成 = 2,000 + 750 = 2,750元
  2. Cell金额提成

    • 0-50,000元部分:无提成
    • 50,000-200,000元部分:150,000 × 1% = 1,500元
    • Cell金额提成 = 1,500元
  3. 应发工资

    • 应发工资 = 4,000 + 2,750 + 1,500 = 8,250元

示例2:高业绩计算

假设数据

  • 科技部总经理:科技二部(ID: 789012)
  • 管理的门店:门店C(ID: C001)、门店D(ID: D001)、门店E(ID: E001)
  • 底薪:4000元
  • 门店C溯源金额:200,000元,Cell金额:150,000元
  • 门店D溯源金额:250,000元,Cell金额:200,000元
  • 门店E溯源金额:150,000元,Cell金额:100,000元
  • 总溯源金额:600,000元
  • 总Cell金额:450,000元

计算过程

  1. 溯源金额提成

    • 0-200,000元部分:200,000 × 1% = 2,000元
    • 200,000-300,000元部分:100,000 × 1.5% = 1,500元
    • 300,000-500,000元部分:200,000 × 2% = 4,000元
    • 500,000-600,000元部分:100,000 × 2.5% = 2,500元
    • 溯源金额提成 = 2,000 + 1,500 + 4,000 + 2,500 = 10,000元
  2. Cell金额提成

    • 0-50,000元部分:无提成
    • 50,000-400,000元部分:350,000 × 1% = 3,500元
    • 400,000-450,000元部分:50,000 × 1.5% = 750元
    • Cell金额提成 = 3,500 + 750 = 4,250元
  3. 应发工资

    • 应发工资 = 4,000 + 10,000 + 4,250 = 18,250元

🔍 数据表结构参考

科技部总经理工资统计表

参考其他岗位的工资表结构(如:lq_business_unit_manager_salary_statisticslq_tech_teacher_salary_statistics),建议创建如下表结构:

-- ============================================
-- 创建科技部总经理工资统计表
-- 功能:存储科技部总经理每月的工资计算数据,包括底薪、溯源金额提成、Cell金额提成、扣款、补贴、奖金、支付等信息
-- 创建时间:2025年
-- ============================================

DROP TABLE IF EXISTS lq_tech_general_manager_salary_statistics;

CREATE TABLE lq_tech_general_manager_salary_statistics (
    -- 主键
    F_Id VARCHAR(50) NOT NULL COMMENT '主键ID',

    -- 一、基础信息字段
    F_StatisticsMonth VARCHAR(6) NOT NULL COMMENT '统计月份(YYYYMM格式)',
    F_Position VARCHAR(50) NOT NULL COMMENT '核算岗位(科技一部/科技二部等)',
    F_EmployeeName VARCHAR(100) NOT NULL COMMENT '员工姓名',
    F_EmployeeId VARCHAR(50) NOT NULL COMMENT '员工ID',
    F_EmployeeAccount VARCHAR(100) NULL COMMENT '员工账号',
    F_IsTerminated INT NOT NULL DEFAULT 0 COMMENT '是否离职(0=在职,1=离职)',

    -- 二、管理的门店信息(JSON格式)
    F_StoreDetail TEXT NULL COMMENT '管理的门店明细(JSON格式,记录每个门店的溯源金额和Cell金额详情)',

    -- 三、业绩相关字段
    F_TraceabilityAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '溯源金额(管理的所有门店的溯源金额总和,开单-退卡)',
    F_CellAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT 'Cell金额(管理的所有门店的Cell金额总和,开单-退卡)',

    -- 四、底薪相关字段
    F_BaseSalary DECIMAL(18,2) NOT NULL DEFAULT 4000.00 COMMENT '底薪金额(固定4000元)',

    -- 五、提成相关字段
    F_TraceabilityCommissionRate DECIMAL(18,4) DEFAULT NULL COMMENT '溯源金额提成比例(分段计算,存储平均比例)',
    F_TraceabilityCommissionAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '溯源金额提成金额',
    F_CellCommissionRate DECIMAL(18,4) DEFAULT NULL COMMENT 'Cell金额提成比例(分段计算,存储平均比例)',
    F_CellCommissionAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT 'Cell金额提成金额',
    F_TotalCommission DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '提成合计(溯源提成+Cell提成)',

    -- 六、考勤相关字段
    F_WorkingDays DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '在店天数',
    F_LeaveDays DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '请假天数',

    -- 七、工资计算字段
    F_CalculatedGrossSalary DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '核算应发工资(底薪 + 提成合计)',
    F_FinalGrossSalary DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '最终应发工资(等于核算应发工资)',

    -- 八、补贴相关字段
    F_MonthlyTrainingSubsidy DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '当月培训补贴',
    F_MonthlyTransportSubsidy DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '当月交通补贴',
    F_LastMonthTrainingSubsidy DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '上月培训补贴',
    F_LastMonthTransportSubsidy DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '上月交通补贴',
    F_TotalSubsidy DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '补贴合计',

    -- 九、扣款相关字段
    F_MissingCard DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '缺卡扣款',
    F_LateArrival DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '迟到扣款',
    F_LeaveDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '请假扣款',
    F_SocialInsuranceDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣社保',
    F_RewardDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣除奖励',
    F_AccommodationDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣住宿费',
    F_StudyPeriodDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣学习期费用',
    F_WorkClothesDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣工作服费用',
    F_TotalDeduction DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '扣款合计',

    -- 十、奖金相关字段
    F_Bonus DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '发奖金',
    F_ReturnPhoneDeposit DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '退手机押金',
    F_ReturnAccommodationDeposit DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '退住宿押金',

    -- 十一、支付相关字段
    F_ActualSalary DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '实发工资(最终应发工资 - 扣款合计 + 补贴合计 + 奖金)',
    F_MonthlyPaymentStatus VARCHAR(20) NOT NULL DEFAULT '未发放' COMMENT '当月是否发放(已发放/未发放/部分发放)',
    F_PaidAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额',
    F_PendingAmount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '待支付金额',
    F_LastMonthSupplement DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '补发上月',
    F_MonthlyTotalPayment DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '当月支付总额',

    -- 十二、系统字段
    F_IsLocked INT NOT NULL DEFAULT 0 COMMENT '是否锁定(0=未锁定,1=已锁定)',
    F_CreateTime DATETIME NOT NULL COMMENT '创建时间',
    F_UpdateTime DATETIME NOT NULL COMMENT '更新时间',
    F_CreateUser VARCHAR(50) NULL COMMENT '创建人',
    F_UpdateUser VARCHAR(50) NULL COMMENT '更新人',

    -- 主键约束
    PRIMARY KEY (F_Id),

    -- 唯一索引:确保同一员工同一月份只有一条记录
    UNIQUE KEY `uk_employee_month` (F_EmployeeId, F_StatisticsMonth),

    -- 普通索引
    KEY `idx_statistics_month` (F_StatisticsMonth),
    KEY `idx_employee_id` (F_EmployeeId),
    KEY `idx_employee_account` (F_EmployeeAccount),
    KEY `idx_position` (F_Position),
    KEY `idx_is_terminated` (F_IsTerminated),
    KEY `idx_create_time` (F_CreateTime)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='科技部总经理工资统计表';

门店明细JSON格式示例

[
  {
    "storeId": "A001",
    "storeName": "门店A",
    "traceabilityBillingAmount": 160000.00,
    "traceabilityRefundAmount": 10000.00,
    "traceabilityAmount": 150000.00,
    "cellBillingAmount": 85000.00,
    "cellRefundAmount": 5000.00,
    "cellAmount": 80000.00
  },
  {
    "storeId": "B001",
    "storeName": "门店B",
    "traceabilityBillingAmount": 105000.00,
    "traceabilityRefundAmount": 5000.00,
    "traceabilityAmount": 100000.00,
    "cellBillingAmount": 125000.00,
    "cellRefundAmount": 5000.00,
    "cellAmount": 120000.00
  }
]

✅ 总结

科技部总经理工资计算规则相对简单明确:

  1. 底薪固定:4000元,无任何条件
  2. 溯源提成:根据管理的所有门店的溯源金额总和分段累进,最高2.5%
  3. Cell提成:根据管理的所有门店的Cell金额总和分段累进,最高1.5%,低于5万无提成

关键点:

  • 必须从 BASE_USER 表识别科技部总经理(岗位为"科技一部"、"科技二部"等)
  • 必须从 lq_md_general_manager_lifeline 表获取管理的门店
  • 必须正确区分溯源和Cell类型(通过 F_BeautyType 字段)
  • 必须扣除退卡金额,确保数据准确性
  • 必须按管理的门店筛选,只统计该科技部总经理管理的门店
  • 采用分段累进方式计算提成,确保计算准确