# 事业部总经理/经理工资计算规则梳理 ## 📋 目录 - [概述](#概述) - [计算规则](#计算规则) - [数据来源](#数据来源) - [归属规则](#归属规则) - [计算流程](#计算流程) --- ## 📋 概述 事业部总经理/经理工资由以下几个部分组成: 1. **底薪**:固定4000元 2. **提成**:根据管理的门店毛利,使用分段累进式提成计算(基于门店毛利) **重要说明**: - 每个总经理/经理都会管理多个门店 - **提成计算基于门店毛利**,而不是开单业绩 - **必须满足提成阶梯1才能有提成资格** - 总经理和经理的计算规则相同 - 提成计算方式:分段累进式 --- ## 💰 计算规则 ### 1. 底薪规则 **固定底薪**:4000元 - 无论业绩多少,底薪固定为4000元 - 不设档位,不设条件 - 不设考核扣款(与店长、主任不同) --- ### 2. 提成规则(分段累进式) **提成计算方式**:根据管理的门店毛利,使用分段累进式提成计算 #### 2.1 提成门槛 **重要规则**:**必须满足提成阶梯1才能有提成资格** - 如果门店毛利 < 提成阶梯1,则无提成(提成 = 0) - 如果门店毛利 ≥ 提成阶梯1,则可以计算提成 - 提成阶梯1是提成资格的门槛,不是提成计算的起点 #### 2.2 提成阶梯设置 **数据来源**:`lq_md_general_manager_lifeline` 表 每个门店都有**三个等级的提成阶梯**,每个等级对应不同的提成比例: | 等级 | 生命线字段 | 提成比例字段 | 说明 | |------|-----------|-------------|------| | **等级1** | `F_Lifeline1` | `F_CommissionRate1` | 第一级提成阶梯(必填) | | **等级2** | `F_Lifeline2` | `F_CommissionRate2` | 第二级提成阶梯(可选) | | **等级3** | `F_Lifeline3` | `F_CommissionRate3` | 第三级提成阶梯(可选) | **重要说明**: - 提成阶梯1和提成比例1为必填项 - 提成阶梯2、3和对应的提成比例为可选项 - 每个门店的提成阶梯设置可能不同 - 提成阶梯由总经理在系统中配置 **注意**:提成阶梯(`lq_md_general_manager_lifeline`)和门店生命线(`lq_md_target.F_StoreLifeline`)是**两个不同的概念**: - **门店生命线**:判断是否达到提成门槛 - **提成阶梯**:计算提成金额的阶梯 #### 2.3 毛利计算 **核心公式**: ``` 毛利 = 销售业绩 - 产品物料 - 合作项目成本 - 店内支出 - 洗毛巾 ``` 其中: - **销售业绩** = 开单业绩 - 退款业绩 - **产品物料** = 仓库领用金额合计(注意11月特殊规则:11月工资算10月数据) - **合作项目成本** = 合作成本表合计金额 - **店内支出** = 店内支出表合计金额 - **洗毛巾** = 送洗记录总费用(只统计送出的记录,F_FlowType = 0) **重要说明**: - **提成计算基于毛利**,而不是开单业绩 - 所有门店的毛利分别计算,然后汇总 #### 2.4 分段累进式提成计算规则 **前提条件**:**必须满足提成阶梯1才能有提成资格** - 如果门店毛利 < 提成阶梯1,则无提成(提成 = 0) - 如果门店毛利 ≥ 提成阶梯1,则可以计算提成 **计算逻辑**:根据门店毛利落在哪个提成阶梯区间,使用分段累进方式计算(不同区间按不同比例分别计算后累加) **示例**(假设某门店的设置): - 提成阶梯1 = 150,000元,提成比例1 = 1.0% - 提成阶梯2 = 400,000元,提成比例2 = 1.5% - 提成阶梯3 = 450,000元,提成比例3 = 2.0% **计算规则**(分段累进式): 1. **毛利 < 提成阶梯1**: - 提成 = 0元(未达到提成资格) - 示例:毛利 = 100,000元 → 提成 = 0元 2. **提成阶梯1 ≤ 毛利 < 提成阶梯2**: - 提成 = 提成阶梯1 × 提成比例1 + (毛利 - 提成阶梯1) × 提成比例2 - 示例:毛利 = 380,000元 → 提成 = 150,000 × 1.0% + (380,000 - 150,000) × 1.5% = 1,500 + 3,450 = 4,950元 3. **提成阶梯2 ≤ 毛利 < 提成阶梯3**: - 提成 = 提成阶梯1 × 提成比例1 + (提成阶梯2 - 提成阶梯1) × 提成比例2 + (毛利 - 提成阶梯2) × 提成比例3 - 示例:毛利 = 420,000元 → 提成 = 150,000 × 1.0% + (400,000 - 150,000) × 1.5% + (420,000 - 400,000) × 2.0% = 1,500 + 3,750 + 400 = 5,650元 4. **毛利 ≥ 提成阶梯3**: - 提成 = 提成阶梯1 × 提成比例1 + (提成阶梯2 - 提成阶梯1) × 提成比例2 + (提成阶梯3 - 提成阶梯2) × 提成比例3 + (毛利 - 提成阶梯3) × 提成比例3 - 示例:毛利 = 500,000元 → 提成 = 150,000 × 1.0% + (400,000 - 150,000) × 1.5% + (450,000 - 400,000) × 2.0% + (500,000 - 450,000) × 2.0% = 1,500 + 3,750 + 1,000 + 1,000 = 7,250元 **重要说明**: - 采用**分段累进式**计算,不同区间按不同比例分别计算后累加 - **必须满足提成阶梯1才能有提成资格** - **提成计算基于毛利**,而不是开单业绩 - 如果提成阶梯2或提成阶梯3未设置(为NULL或0),则只使用提成阶梯1计算 - 如果提成阶梯2设置但提成阶梯3未设置,则毛利 ≥ 提成阶梯2时,超出提成阶梯1的部分按提成比例2计算 #### 2.4 多门店提成汇总 **计算方式**: - 总经理/经理管理的所有门店的提成分别计算 - 将所有门店的提成金额汇总,得到总提成金额 **计算公式**: ``` 总提成 = SUM(各门店提成金额) ``` --- ## 📊 数据来源 ### 1. 总经理/经理列表和门店归属 **数据来源表**:`lq_md_general_manager_lifeline`(总经理门店生命线设置表) **关键字段**: - `F_GeneralManagerId`:总经理/经理用户ID - `F_ManagerType`:经理类型(0=经理,1=总经理) - `F_StoreId`:门店ID - `F_Month`:月份(YYYYMM格式) **查询方式**: 1. **获取当月所有的经理和总经理**: ```sql SELECT DISTINCT F_GeneralManagerId, F_ManagerType FROM lq_md_general_manager_lifeline WHERE F_Month = 'YYYYMM' ``` 2. **获取总经理/经理管理的门店**: ```sql SELECT F_StoreId FROM lq_md_general_manager_lifeline WHERE F_Month = 'YYYYMM' AND F_GeneralManagerId = '用户ID' ``` **重要说明**: - 通过 `lq_md_general_manager_lifeline` 表可以获取当月所有的经理和总经理 - 通过 `lq_md_general_manager_lifeline` 表可以看到当月总经理和经理管理的门店 - 每个门店在每个月可以设置一个总经理/经理的提成阶梯 ### 2. 门店生命线(提成门槛) **数据来源表**:`lq_md_target`(门店目标表) **关键字段**: - `F_StoreId`:门店ID - `F_Month`:月份(YYYYMM格式) - `F_StoreLifeline`:门店生命线(**必须设置**) **查询条件**: - 按门店ID和月份查询:`F_StoreId = '门店ID' AND F_Month = 'YYYYMM'` **重要说明**: - 门店生命线是**必须设置的**,未设置应报错 - 门店生命线用于判断是否达到提成门槛 - 如果门店业绩 < 门店生命线,则无提成 ### 3. 提成阶梯设置 **数据来源表**:`lq_md_general_manager_lifeline`(总经理门店生命线设置表) **关键字段**: - `F_StoreId`:门店ID - `F_Month`:月份(YYYYMM格式) - `F_GeneralManagerId`:总经理/经理用户ID - `F_Lifeline1`:第一级提成阶梯(必填) - `F_CommissionRate1`:第一级提成比例(%,必填) - `F_Lifeline2`:第二级提成阶梯(可选) - `F_CommissionRate2`:第二级提成比例(%,可选) - `F_Lifeline3`:第三级提成阶梯(可选) - `F_CommissionRate3`:第三级提成比例(%,可选) **查询条件**: - 按门店ID、月份、总经理/经理ID查询 - 如果未找到提成阶梯设置,则无法计算提成(应报错或跳过该门店) ### 4. 门店毛利计算 **定义**:门店毛利 = 销售业绩 - 产品物料 - 合作项目成本 - 店内支出 - 洗毛巾 #### 4.1 销售业绩 **定义**:销售业绩 = 开单业绩 - 退卡业绩 **数据来源表及字段**: | 业绩类型 | 数据表 | 字段 | 说明 | |---------|--------|------|------| | **开单业绩** | `lq_kd_kdjlb` | `sfyj` | 门店开单实付金额 | | **退卡业绩** | `lq_hytk_hytk` | `F_ActualRefundAmount` 或 `tkje` | 门店退卡金额 | **计算方式**: ```sql 销售业绩 = SUM(门店开单实付金额) - SUM(门店退卡金额) ``` #### 4.2 产品物料 **数据来源**: - 表:`lq_inventory_usage`(库存使用记录表) - 字段:`F_TotalAmount`(合计金额) - 条件: - `F_IsEffective = 1`(有效记录) - `F_StoreId = @StoreId`(门店ID) - **特殊规则**:11月工资算10月数据 - 如果计算月份是11月,则查询10月的数据 - 其他月份正常查询当月数据 #### 4.3 合作项目成本 **数据来源**: - 表:`lq_cooperation_cost`(合作成本表) - 字段:`F_TotalAmount`(合计金额) - 条件: - `F_Year = @Year`(年份) - `F_Month = @MonthStr`(月份,格式为"11",不是"202511") - `F_StoreId = @StoreId`(门店ID) - `F_IsEffective = 1`(有效记录) #### 4.4 店内支出 **数据来源**: - 表:`lq_store_expense`(店内支出表) - 字段:`F_Amount`(金额) - 条件: - `F_IsEffective = 1`(有效记录) - `F_StoreId = @StoreId`(门店ID) - `DATE_FORMAT(F_ExpenseDate, '%Y%m') = @MonthStr`(月份,YYYYMM格式) #### 4.5 洗毛巾费用 **数据来源**: - 表:`lq_laundry_flow`(清洗流水表) - 字段:`F_TotalPrice`(总费用) - 条件: - `F_IsEffective = 1`(有效记录) - `F_FlowType = 0`(只统计送出的记录) - `F_StoreId = @StoreId`(门店ID) - 优先使用 `F_SendTime`,如果为空则使用 `F_CreateTime` - `DATE_FORMAT(COALESCE(F_SendTime, F_CreateTime), '%Y%m') = @MonthStr`(月份,YYYYMM格式) **重要说明**: - **提成计算基于门店毛利**,而不是开单业绩 - 所有门店的毛利分别计算,然后汇总 --- ## 👥 归属规则 ### 1. 总经理/经理与门店的关联 **关联方式**: - 通过 `lq_md_general_manager_lifeline` 表关联 - 每个门店在每个月可以设置一个总经理/经理的提成阶梯 - 同一个总经理/经理可以管理多个门店 **重要说明**: - 通过 `lq_md_general_manager_lifeline` 表可以获取当月所有的经理和总经理 - 通过 `lq_md_general_manager_lifeline` 表可以看到当月总经理和经理管理的门店 ### 2. 门店生命线和提成阶梯的关系 **两个不同的概念**: 1. **门店生命线**(`lq_md_target.F_StoreLifeline`): - 用于判断是否达到提成门槛 - 如果门店业绩 < 门店生命线,则无提成 - 如果门店业绩 ≥ 门店生命线,则可以计算提成 2. **提成阶梯**(`lq_md_general_manager_lifeline` 表的 Lifeline1/2/3): - 用于计算提成金额的阶梯 - 只有在达到门店生命线的前提下,才使用提成阶梯计算提成 **重要说明**: - 门店生命线是**必须设置的**,未设置应报错 - 提成阶梯1和提成比例1是必填项,未设置应报错 - 提成阶梯2、3和对应的提成比例为可选项 --- ## 🔄 计算流程 ### 1. 数据准备 1. **获取总经理/经理列表和门店归属**: - 从 `lq_md_general_manager_lifeline` 表获取当月所有的经理和总经理 - 按总经理/经理ID分组,得到每个总经理/经理管理的门店列表 2. **获取门店生命线**: - 从 `lq_md_target` 表获取每个门店的生命线(`F_StoreLifeline`) - 门店生命线是必须设置的,未设置应报错 3. **获取提成阶梯设置**: - 从 `lq_md_general_manager_lifeline` 表获取每个门店的提成阶梯设置 - 提成阶梯1和提成比例1是必填项,未设置应报错 4. **获取门店毛利**: - 从 `lq_kd_kdjlb` 表统计每个门店的开单业绩(`sfyj`) - 从 `lq_hytk_hytk` 表统计每个门店的退卡业绩(`F_ActualRefundAmount` 或 `tkje`) - 计算销售业绩 = 开单业绩 - 退卡业绩 - 从 `lq_inventory_usage` 表统计产品物料(注意11月特殊规则) - 从 `lq_cooperation_cost` 表统计合作项目成本 - 从 `lq_store_expense` 表统计店内支出 - 从 `lq_laundry_flow` 表统计洗毛巾费用 - 计算每个门店的毛利 = 销售业绩 - 产品物料 - 合作项目成本 - 店内支出 - 洗毛巾 ### 2. 工资计算 **遍历每个总经理/经理**: 1. **初始化工资统计对象**: - 底薪 = 4000元 - 总提成 = 0 2. **遍历该总经理/经理管理的每个门店**: a. **计算门店毛利**: - 计算销售业绩 = 开单业绩 - 退卡业绩 - 统计产品物料(注意11月特殊规则) - 统计合作项目成本 - 统计店内支出 - 统计洗毛巾费用 - 计算毛利 = 销售业绩 - 产品物料 - 合作项目成本 - 店内支出 - 洗毛巾 b. **判断是否达到提成资格**: - 获取该门店的提成阶梯设置(`lq_md_general_manager_lifeline`) - 获取提成阶梯1(`F_Lifeline1`) - 如果门店毛利 < 提成阶梯1 → 该门店提成 = 0,跳过 - 如果门店毛利 ≥ 提成阶梯1 → 继续计算提成 c. **计算该门店的提成**(如果达到资格): - 根据门店毛利和提成阶梯,使用分段累进方式计算提成金额 - 累加到总提成 3. **计算最终工资**: - 应发工资 = 底薪 + 总提成 ### 3. 数据保存 - 将计算结果保存到工资统计表中(待创建表结构) - 如果已存在当月数据,则更新;否则插入新数据 --- ## 📝 注意事项 1. **数据一致性**: - 门店业绩计算逻辑必须与其他统计接口保持一致 - 门店生命线必须与门店目标表保持一致 2. **数据校验**: - 门店生命线(`lq_md_target.F_StoreLifeline`)必须设置,未设置应报错 - 提成阶梯1(`lq_md_general_manager_lifeline.F_Lifeline1`)必须设置,未设置应报错 - 提成比例1(`lq_md_general_manager_lifeline.F_CommissionRate1`)必须设置,未设置应报错 - 如果门店未在 `lq_md_general_manager_lifeline` 表中设置,则无法计算该门店的提成 3. **边界情况**: - 如果门店没有业绩数据,毛利为0,未达到提成阶梯1,提成为0 - 如果门店毛利 < 提成阶梯1,提成为0(未达到提成资格) - 如果总经理/经理没有管理的门店,总提成为0,应发工资 = 底薪(4000元) - 如果提成阶梯2或提成阶梯3未设置,则只使用提成阶梯1计算 - 如果门店毛利为负数(成本大于销售业绩),仍按负数计算,但不会产生提成(因为负数 < 提成阶梯1) 4. **计算精度**: - 涉及金额计算时,建议保留2位小数 - 提成比例以百分比形式存储(如:1.0表示1%) 5. **总经理和经理**: - 总经理和经理的计算规则相同 - 都使用提成阶梯1来判断是否达到提成资格 - 都使用 `lq_md_general_manager_lifeline` 表的提成阶梯来计算提成 - 都使用毛利作为提成计算的基数 6. **保底工资**: - 暂时不考虑保底工资规则 --- ## 📋 参考文档 - [项目信息-薪酬规则与名词解释.md](./项目信息-薪酬规则与名词解释.md) - [店长工资计算规则梳理.md](./店长工资计算规则梳理.md) - [主任工资计算规则梳理.md](./主任工资计算规则梳理.md) - [大项目部老师工资计算规则梳理.md](./大项目部老师工资计算规则梳理.md) --- **最后更新时间**:2025年1月