審單人員效率 PPP 模型

审单人员效率 PPP 模型的目的

审单人员效率 PPP 模型的主要目的是通过系统化的计算和分析,评估审单人员的工作效率,并为管理决策提供数据支持。具体包括以下几个方面:


1. 量化审单人员的工作效率

  • 目的: 通过审单数量、工时、折算率等指标,量化审单人员的工作效率。
  • 实现方式:
    • 计算每个审单人员的审单量(vol_o)。
    • 根据标准工时表(t_dash_ppp_checker_std_v)折算审单数量(vol_c)。
    • 结合有效工作时间和审单数量,计算审单效率(效率 = 折合单量 / 有效人天)。
  • 价值: 提供客观的效率评估依据,避免人工评估的主观性。

2. 提供工时管理与优化的依据

  • 目的: 通过分析审单人员的工时使用情况,识别工时浪费或效率低下的环节。
  • 实现方式:
    • 记录每个审单的时间段、工时、中断时间(time_break)。
    • 计算每个审单的实际工时和标准工时,分析工时的利用率。
  • 价值: 帮助管理者优化审单流程,减少无效工时,提高整体工作效率。

3. 支持绩效评估与激励机制

  • 目的: 为审单人员的绩效考核提供数据支持,激励高效工作。
  • 实现方式:
    • 根据审单效率、折算率、审单数量等指标,计算审单人员的评分(score)和排名(rank)。
    • 结合外部提供的用时比例,调整评分权重,确保公平性。
  • 价值: 激励审单人员提升工作效率,形成良性竞争,推动团队整体绩效提升。

4. 提供管理决策支持

  • 目的: 通过效率数据的汇总和分析,帮助管理者制定更科学的业务策略。
  • 实现方式:
    • 按月、按业务类型、按人员分组,统计审单量、折合单量、效率等数据。
    • 分析不同业务类型的审单效率差异,识别瓶颈环节。
  • 价值: 为管理者提供数据驱动的决策依据,优化资源配置,提升业务效率。

5. 实现流程标准化与透明化

  • 目的: 通过标准化的计算流程,确保效率评估的透明性和一致性。
  • 实现方式:
    • 定义清晰的计算逻辑,包括工时计算、标准工时折算、效率评估等。
    • 使用存储过程(Procedure)和视图(View)自动化计算,减少人工干预。
  • 价值: 提高效率评估的准确性,减少争议,增强团队信任。

总结

审单人员效率 PPP 模型的核心目的是通过数据驱动的方式,量化审单人员的工作效率,优化工时管理,支持绩效评估,并为管理者提供科学的决策依据。同时,模型的标准化流程确保了评估的透明性和一致性,帮助团队实现效率提升和流程优化。

模型介绍

  • 数据流:
    • 原始审单数据(t_dash_ppp_voucher_2022) → 工时计算(t_dash_ppp_wl_v_s) → 标椎工时计算(t_dash_ppp_checker_std_v) → 效率计算(t_dash_ppp_productivity_v) → 最终评分(t_dash_ppp_score_final)。
  • 最终输出:
    • 通过 view 整合 t_dash_ppp_productivity_v 和 t_dash_ppp_employee 表,计算每个人员的审单量、折合单量和效率。

1. 数据来源表

t_dash_ppp_voucher_2022
  • 用途: 存储审单的原始数据。
  • 字段:
    • 用户名 (VARCHAR): 审单人员。
    • 凭证号码 (VARCHAR): 审单的凭证编号。
    • 录入日期 (DATE): 审单录入的日期。
    • 时间 (VARCHAR): 审单结束的时间。
    • TCode (VARCHAR): 单据类型。
    • 全名 (VARCHAR): 审单人员的全名。

2. 中间处理表

t_dash_ppp_wl_v_s
  • 用途: 存储审单的详细信息,包括每个审单的时间段、工时等。
  • 字段:
    • ID: 自增主键。
    • BUSINESS_ID: 凭证号码 + 全名的组合。
    • TIME_END: 审单结束时间。
    • TASK_DEF_ID: 单据类型。
    • BUSINESS_TYPE: 单据类型的业务分类。
    • EMP: 审单人员的编号和姓名。
    • 其他字段: 与工时相关的计算字段(如 time_usedtime_break 等)。
t_dash_ppp_checker_std_v
  • 用途: 存储每个审单类型的标椎工时。
  • 字段:
    • ppp_month: 审单月份。
    • business_type: 单据业务类型。
    • task_def_id: 单据类型。
    • time_break: 是否有时间中断。
    • std_time: 标准工时。
    • ttl_time: 总工时。
    • ttl_cnt: 审单数量。
    • ex_rate: 折算率。
t_dash_ppp_productivity_v
  • 用途: 存储每个审单人员的效率数据。
  • 字段:
    • ppp_type: 审单类型。
    • ppp_date: 审单日期。
    • pernr: 审单人员编号。
    • business_type: 单据业务类型。
    • ppp_month: 审单月份。
    • vol_o: 审单数量。
    • time_used: 审单工时。
    • vol_b: 中断的审单数量。
    • vol_c: 折算后的审单数量。

3. 计算逻辑

3.1 计算每个人员的审单时间
  • Procedureppp10
  • 功能: 计算每个人员在每个审单上的工时,并更新到 t_dash_ppp_wl_v_s 表中。
  • 逻辑:
    • 遍历 t_dash_ppp_wl_v_s 表中的数据。
    • 计算每个审单的工时(以秒为单位),并判断是否有时间中断(超过 45 分钟的间隔)。
    • 更新 time_fromtime_usedtime_break 等字段。
3.2 计算标椎工时
  • Procedureppp20
  • 功能: 计算每个审单类型的标椎工时,并存儲到 t_dash_ppp_checker_std_v 表中。
  • 逻辑:
    • 按天分组,计算每个审单类型的平均工时。
    • 如果标椎工时大于 0,计算折算率 ex_rate
3.3 计算审单效率
  • Procedureppp30
  • 功能: 计算每个人员的审单效率,并存儲到 t_dash_ppp_productivity_v 表中。
  • 逻辑:
    • 按天分组,计算每个人员的审单数量(vol_o)和审单工时(time_used)。
    • 根据标椎工时表 t_dash_ppp_checker_std_v,计算折算后的审单数量(vol_c)。
3.4 计算最终效率与评分
  • Procedureppp40
  • 功能: 根据审单数量和工时,计算每个人员的效率评分。
  • 逻辑:
    • 根据外部提供的用时比例,计算每个人员的审单数量(vol_c_per_day)。
    • 根据审单数量和工时,计算评分和排名。

4. 最终输出的 View

字段说明
FieldType说明
varchar(10)审单人员的分组(如部门或团队)。
varchar(20)审单人员的编号和姓名。
绩效月varchar(6)审单的月份(如 202309)。
审单量decimal(40,5)审单数量(vol_o)。
折合单量decimal(40,5)折算后的审单数量(vol_c)。
有效人天decimal(44,9)审单人员的有效工作天数。
效率decimal(53,9)审单效率(vol_c / 有效人天)。

Store-Procedure 说明 

**ppp01 的内容说明**

ppp01 是一个存储过程,主要用于将审单的原始数据从 t_dash_ppp_voucher_2022 表中提取并插入到中间处理表 T_DASH_PPP_WL_V_S 中。它是整个审单效率计算流程的第一步,目的是为后续的工时计算、标准工时折算和效率评估提供基础数据。


存储过程的功能

  1. 数据来源:

    • 从 t_dash_ppp_voucher_2022 表中提取审单的原始数据。
    • 数据包括审单的用户名、凭证号码、录入日期、时间、单据类型(TCode)、全名等信息。
  2. 目标表:

    • 将处理后的数据插入到 T_DASH_PPP_WL_V_S 表中。
    • 目标表存储了审单的详细信息,包括审单的唯一标识(BUSINESS_ID)、审单结束时间(TIME_END)、单据类型(TASK_DEF_ID)、业务分类(BUSINESS_TYPE)、审单人员信息(EMP)等。
  3. 数据处理逻辑:

    • 将 用户名 和 凭证号码 拼接为 BUSINESS_ID
    • 将 录入日期 和 时间 拼接为 TIME_END
    • 将 TCode 直接映射为 BUSINESS_TYPE
    • 将 用户名 和 全名 拼接为 EMP
  4. 时间范围过滤:

    • 只处理录入日期在指定时间范围内的数据(通过输入参数 d0 和 d1 控制)。

存储过程的输入参数

  • d0 (DATE): 时间范围的起始日期。
  • d1 (DATE): 时间范围的结束日期。

存储过程的实现逻辑

以下是存储过程的主要逻辑分解:

1. 插入数据到目标表
  • 使用 INSERT INTO ... SELECT 语句,从 t_dash_ppp_voucher_2022 表中提取数据并插入到 T_DASH_PPP_WL_V_S 表中。
  • 拼接字段生成目标表的字段值:
    • BUSINESS_ID: 拼接 用户名 和 凭证号码
    • TIME_END: 拼接 录入日期 和 时间,格式化为 YYYY-MM-DD HH:MM:SS
    • TASK_DEF_ID: 直接使用 TCode 的值。
    • BUSINESS_TYPE: 直接使用 TCode 的值。
    • EMP: 拼接 PERNR 和 全名
2. 时间范围过滤
  • 只处理录入日期在 d0 和 d1 之间的数据。

存储过程的代码

以下是存储过程的关键代码段及其功能说明:


sql

CREATE PROCEDURE `ofssc`.`ppp01`(IN `d0` date, IN `d1` date)
BEGIN
    -- 插入数据到 T_DASH_PPP_WL_V_S 表
    INSERT INTO T_DASH_PPP_WL_V_S (
        BUSINESS_ID, 
        TIME_END, 
        TASK_DEF_ID,
        BUSINESS_TYPE, 
        EMP
    ) 
    SELECT
        CONCAT(V.凭证号码, E.PERNR) AS BUSINESS_ID, -- 拼接凭证号码和员工编号
        CONCAT(DATE_FORMAT(V.录入日期, '%y-%m-%d'), ' ', V.时间) AS TIME_END, -- 拼接录入日期和时间
        V.TCode AS TASK_DEF_ID, -- 使用 TCode 作为 TASK_DEF_ID
        V.TCode AS BUSINESS_TYPE, -- 使用 TCode 作为 BUSINESS_TYPE
        CONCAT(E.PERNR, '-', V.全名) AS EMP -- 拼接员工编号和全名
    FROM
        t_dash_ppp_employee E -- 员工信息表
    INNER JOIN
        T_DASH_PPP_VOUCHER_2022 V -- 审单原始数据表
    ON
        E.NACHN = V.全名 -- 根据员工全名进行关联
    WHERE 
        v.录入日期 <= d1 AND v.录入日期 >= d0; -- 过滤时间范围内的数据
END;

存储过程的作用

  1. 数据预处理:

    • 将原始审单数据从 t_dash_ppp_voucher_2022 表中提取并插入到中间表 T_DASH_PPP_WL_V_S 中。
    • 通过拼接字段生成目标表的字段值,为后续计算提供统一的数据格式。
  2. 时间范围过滤:

    • 只处理指定时间范围内的数据,确保数据的时效性和准确性。
  3. 数据关联:

    • 将员工信息表(t_dash_ppp_employee)与审单原始数据表(t_dash_ppp_voucher_2022)通过 全名 字段进行关联,补充审单人员的编号信息。

存储过程的输出结果

执行 ppp01 后,目标表 T_DASH_PPP_WL_V_S 中会新增以下字段的数据:

  • BUSINESS_ID: 审单的唯一标识。
  • TIME_END: 审单结束的完整时间。
  • TASK_DEF_ID: 审单的单据类型。
  • BUSINESS_TYPE: 审单的业务分类。
  • EMP: 审单人员的编号和姓名。

存储过程的意义

  • 数据流转的关键节点ppp01 是审单效率计算流程的第一步,负责将原始数据转换为中间处理表的标准格式。
  • 为后续计算提供基础: 后续的工时计算(ppp10)、标准工时折算(ppp20)和效率评估(ppp30)都依赖于 T_DASH_PPP_WL_V_S 表中的数据。
  • 提高数据处理效率: 通过存储过程的自动化执行,减少了人工干预,提高了数据处理的效率和准确性。

总结

ppp01 存储过程的主要功能是从原始审单数据表中提取数据,并将其插入到中间处理表 T_DASH_PPP_WL_V_S 中。通过拼接字段、时间范围过滤和数据关联,为后续的审单效率计算提供了标准化的基础数据。它是整个审单效率计算流程的重要起点。

**ppp20 的内容说明**

ppp20 是一个存储过程,主要用于计算审单的标椎工时(标准工时)和折算率,并将结果存储到目标表 t_dash_ppp_checker_std_v 中。它是审单效率计算流程中的重要步骤,为后续的效率评估提供标椎工时和折算率的依据。


存储过程的功能

  1. 计算标椎工时:

    • 根据每个人员在每个业务类型下的审单数量和总工时,计算标椎工时(std_time)。
    • 标椎工时是平均每个审单的工时,用于衡量审单效率。
  2. 计算折算率:

    • 折算率(ex_rate)是实际工时与标椎工时的比值,用于将实际审单数量折算为标准审单数量。
  3. 数据分组:

    • 按照业务类型(business_type)、单据类型(task_def_id)和时间范围(ppp_month)进行分组计算。
  4. 存储结果:

    • 将计算结果存储到目标表 t_dash_ppp_checker_std_v 中,供后续步骤使用。

存储过程的输入参数

  • d0 (DATE): 时间范围的起始日期。
  • d1 (DATE): 时间范围的结束日期。
  • pppmonth (VARCHAR): 审单月份,用于标识数据的时间范围。

存储过程的实现逻辑

以下是存储过程的主要逻辑分解:

1. 初始化目标表
  • 删除目标表 t_dash_ppp_checker_std_v 中与当前 ppp_month 相关的旧数据,确保计算结果的准确性。
2. 计算标椎工时和折算率
  • 遍历 t_dash_ppp_wl_v_s 表中的数据,按照业务类型、单据类型和时间范围分组。
  • 计算每个分组的总工时(ttl_time)和审单数量(ttl_cnt)。
  • 计算标椎工时(std_time):
    
    

    sql

    std_time = ttl_time / ttl_cnt
  • 计算折算率(ex_rate):
    • 折算率是标椎工时与实际工时的比值。
    • 如果审单中存在时间中断(time_break = 'Y'),则不参与折算率的计算。
3. 插入计算结果
  • 将计算结果插入到目标表 t_dash_ppp_checker_std_v 中,字段包括:
    • ppp_month: 审单月份。
    • business_type: 业务类型。
    • task_def_id: 单据类型。
    • time_break: 是否有时间中断。
    • std_time: 标椎工时。
    • ttl_time: 总工时。
    • ttl_cnt: 审单数量。
    • ex_rate: 折算率。
4. 设置默认折算率
  • 如果某些业务类型的折算率为空,则设置默认值(如 3.54778)。

存储过程的代码

以下是存储过程的关键代码段及其功能说明:


sql

CREATE DEFINER=`root`@`%` PROCEDURE `ofssc`.`ppp20`(IN `d0` date, IN `d1` date, IN `pppmonth` varchar(6))
BEGIN
    -- 删除旧数据
    DELETE FROM t_dash_ppp_checker_std_v WHERE ppp_month = pppmonth;

    -- 插入标椎工时和折算率
    INSERT INTO t_dash_ppp_checker_std_v (
        ppp_month, 
        business_type, 
        task_def_id, 
        time_break, 
        std_time, 
        ttl_time, 
        ttl_cnt, 
        ex_rate, 
        time_from, 
        time_till
    ) 
    SELECT
        pppmonth,
        business_type,
        task_def_id,
        time_break,
        SUM(w.time_used) / COUNT(1) AS std_time, -- 计算标椎工时
        SUM(w.time_used) AS ttl_time,          -- 计算总工时
        COUNT(1) AS ttl_cnt,                   -- 计算审单数量
        0 AS ex_rate,                          -- 初始化折算率
        d0 AS time_from,                       -- 时间范围的起始日期
        d1 AS time_till                        -- 时间范围的结束日期
    FROM 
        t_dash_ppp_wl_v_s w
    WHERE 
        w.time_end >= d0 AND w.time_end < CONCAT(d1, ' 23:59:59')
    GROUP BY
        task_def_id, business_type, time_break;

    -- 设置默认折算率
    SELECT std_time INTO vstd_time 
    FROM t_dash_ppp_checker_std_v 
    WHERE ppp_month = pppmonth 
      AND business_type = 'YNB0101' 
      AND task_def_id = 'ND1100' 
      AND time_break = '';
    SET vstd_time = 3.54778; -- 默认值

    IF vstd_time > 0 THEN
        UPDATE t_dash_ppp_checker_std_v 
        SET ex_rate = std_time / vstd_time 
        WHERE ppp_month = pppmonth;
    END IF;
END;

存储过程的作用

  1. 计算标椎工时:

    • 通过分组计算每个业务类型和单据类型的平均工时,为后续的效率评估提供依据。
  2. 计算折算率:

    • 折算率是实际工时与标椎工时的比值,用于将实际审单数量折算为标准审单数量。
  3. 数据存储:

    • 将计算结果存储到目标表 t_dash_ppp_checker_std_v 中,供后续步骤使用。
  4. 默认值处理:

    • 如果某些业务类型的折算率为空,则设置默认值,确保数据的完整性。

存储过程的输出结果

执行 ppp20 后,目标表 t_dash_ppp_checker_std_v 中会新增以下字段的数据:

  • ppp_month: 审单月份。
  • business_type: 业务类型。
  • task_def_id: 单据类型。
  • time_break: 是否有时间中断。
  • std_time: 标椎工时。
  • ttl_time: 总工时。
  • ttl_cnt: 审单数量。
  • ex_rate: 折算率。
  • time_from 和 time_till: 时间范围的起始和结束日期。

存储过程的意义

  • 为效率评估提供依据:
    • 标椎工时和折算率是计算审单效率的关键指标,ppp20 的计算结果直接影响后续的效率评估。
  • 标准化处理:
    • 通过标椎工时和折算率的计算,将不同审单人员的实际工时统一为标准工时,便于横向比较。
  • 数据驱动决策:
    • 为管理者提供数据支持,帮助优化审单流程,提高整体效率。

总结

ppp20 存储过程的主要功能是计算审单的标椎工时和折算率,并将结果存储到目标表 t_dash_ppp_checker_std_v 中。它是审单效率计算流程中的重要步骤,为后续的效率评估提供了标准化的依据,同时确保了数据的完整性和一致性。

 

​**ppp30 的内容说明**

ppp30 是一个存储过程,主要用于计算审单人员的效率。它是审单效率计算流程中的核心步骤之一,基于 t_dash_ppp_wl_v_s 表中的工时数据和 t_dash_ppp_checker_std_v 表中的标椎工时数据,计算每个人员在不同业务类型下的审单效率。


存储过程的功能

  1. 计算实际审单数量:

    • 统计每个人员在每个业务类型下的实际审单数量(vol_o)。
    • 只统计没有时间中断(time_break = '')的审单。
  2. 计算审单工时:

    • 统计每个人员在每个业务类型下的总审单工时(time_used)。
  3. 计算折算后的审单数量:

    • 基于标椎工时表(t_dash_ppp_checker_std_v)中的折算率(ex_rate),将实际审单数量折算为标准审单数量(vol_c)。
    • 如果审单存在时间中断(time_break = 'Y'),则单独统计中断的审单数量(vol_b),并根据标椎工时进行折算。
  4. 存储结果:

    • 将计算结果存储到目标表 t_dash_ppp_productivity_v 中,供后续的效率评估和排名使用。

存储过程的输入参数

  • v_start_date (DATE): 时间范围的起始日期。
  • d1 (DATE): 时间范围的结束日期。

存储过程的实现逻辑

以下是存储过程的主要逻辑分解:

1. 初始化目标表
  • 删除目标表 t_dash_ppp_productivity_v 中与当前时间范围相关的旧数据,确保计算结果的准确性。
2. 计算实际审单数量和工时
  • 使用两个游标分别计算:
    • 实际审单数量​(vol_o):统计每个人员在每个业务类型下的实际审单数量。
    • 审单工时​(time_used):统计每个人员在每个业务类型下的总审单工时。
3. 计算折算后的审单数量
  • 使用第三个游标计算中断的审单数量(vol_b)。
  • 根据标椎工时表中的折算率(ex_rate),将实际审单数量和中断的审单数量折算为标准审单数量(vol_c)。
4. 更新目标表
  • 将计算结果插入或更新到目标表 t_dash_ppp_productivity_v 中,字段包括:
    • ppp_type: 审单类型(固定为 '初审')。
    • ppp_date: 审单日期。
    • pernr: 审单人员编号。
    • business_type: 业务类型。
    • ppp_month: 审单月份。
    • vol_o: 实际审单数量。
    • time_used: 审单工时。
    • vol_b: 中断的审单数量。
    • vol_c: 折算后的审单数量。
5. 处理特殊情况
  • 如果某些业务类型的折算率为空,则设置默认值。

存储过程的代码

以下是存储过程的关键代码段及其功能说明:


sql

CREATE DEFINER=`root`@`%` PROCEDURE `ofssc`.`ppp30`(IN `v_start_date` date, IN `d1` date)
BEGIN
    -- 初始化目标表
    DELETE FROM t_dash_ppp_productivity_v 
    WHERE ppp_date >= DATE_FORMAT(v_start_date, '%Y%m%d') 
      AND ppp_date <= DATE_FORMAT(d1, '%Y%m%d');

    -- 定义游标,计算实际审单数量
    DECLARE c_vol_o CURSOR FOR 
    SELECT 
        'ND1100' AS ppp_type,
        DATE_FORMAT(w.time_end, '%Y%m%d') AS ppp_date,
        w.emp,
        w.business_type,
        f_ppp_month(w.time_end) AS pppmonth,
        COUNT(1) AS vol_o
    FROM 
        t_dash_ppp_wl_v_s w
    JOIN 
        t_dash_ppp_employee e ON e.pernr = LEFT(w.emp, 8)
    WHERE 
        w.time_end >= v_start_date 
        AND w.time_end < d1
        AND w.task_def_id = 'ND1100'
    GROUP BY 
        DATE_FORMAT(w.time_end, '%Y%m%d'), w.emp, w.business_type, f_ppp_month(w.time_end), w.task_def_id;

    -- 定义游标,计算审单工时
    DECLARE c_time CURSOR FOR 
    SELECT 
        'ND1100' AS ppp_type,
        DATE_FORMAT(w.time_end, '%Y%m%d') AS ppp_date,
        w.emp,
        w.business_type,
        f_ppp_month(w.time_end) AS pppmonth,
        SUM(w.time_used) AS time_used
    FROM 
        t_dash_ppp_wl_v_s w
    JOIN 
        t_dash_ppp_employee e ON e.pernr = LEFT(w.emp, 8)
    WHERE 
        w.time_end >= v_start_date 
        AND w.time_end < d1
        AND w.task_def_id = 'ND1100'
        AND w.time_break <> 'Y'
    GROUP BY 
        DATE_FORMAT(w.time_end, '%Y%m%d'), w.emp, w.business_type, f_ppp_month(w.time_end), w.task_def_id;

    -- 定义游标,计算中断的审单数量
    DECLARE c_b_time CURSOR FOR 
    SELECT 
        'ND1100' AS ppp_type,
        DATE_FORMAT(w.time_end, '%Y%m%d') AS ppp_date,
        w.emp,
        w.business_type,
        f_ppp_month(w.time_end) AS pppmonth,
        COUNT(1) AS vol_b
    FROM 
        t_dash_ppp_wl_v_s w
    JOIN 
        t_dash_ppp_employee e ON e.pernr = LEFT(w.emp, 8)
    WHERE 
        w.time_end >= v_start_date 
        AND w.time_end < d1
        AND w.task_def_id = 'ND1100'
        AND w.time_break = 'Y'
    GROUP BY 
        DATE_FORMAT(w.time_end, '%Y%m%d'), w.emp, w.business_type, f_ppp_month(w.time_end), w.task_def_id;

    -- 打开游标并循环处理数据
    OPEN c_vol_o;
    LOOPC1: LOOP
        FETCH c_vol_o INTO v_ppp_type, v_ppp_date, v_pernr, v_business_type, v_ppp_month, v_vol_o;
        IF done THEN
            LEAVE loopc1;
        END IF;

        -- 插入或更新实际审单数量
        IF EXISTS (SELECT * FROM t_dash_ppp_productivity_v WHERE ...) THEN
            UPDATE t_dash_ppp_productivity_v SET vol_o = v_vol_o WHERE ...;
        ELSE
            INSERT INTO t_dash_ppp_productivity_v (...) VALUES (...);
        END IF;
    END LOOP;

    -- 类似地处理审单工时和中断的审单数量
    -- ...

    -- 更新折算后的审单数量
    UPDATE t_dash_ppp_productivity_v p
    JOIN t_dash_ppp_checker_std_v s 
    ON s.ppp_month = p.ppp_month AND s.business_type = p.business_type AND s.task_def_id = p.ppp_type
    SET p.vol_c = s.ex_rate * p.vol_o;

    -- 删除无效数据
    DELETE FROM t_dash_ppp_productivity_v WHERE time_used IS NULL OR time_used = 0;
END;

存储过程的作用

  1. 计算实际审单数量:

    • 统计每个人员在每个业务类型下的实际审单数量(vol_o)。
  2. 计算审单工时:

    • 统计每个人员在每个业务类型下的总审单工时(time_used)。
  3. 计算折算后的审单数量:

    • 基于标椎工时表中的折算率(ex_rate),将实际审单数量折算为标准审单数量(vol_c)。
  4. 存储结果:

    • 将计算结果存储到目标表 t_dash_ppp_productivity_v 中,供后续的效率评估和排名使用。

存储过程的输出结果

执行 ppp30 后,目标表 t_dash_ppp_productivity_v 中会新增以下字段的数据:

  • ppp_type: 审单类型(固定为 '初审')。
  • ppp_date: 审单日期。
  • pernr: 审单人员编号。
  • business_type: 业务类型。
  • ppp_month: 审单月份。
  • vol_o: 实际审单数量。
  • time_used: 审单工时。
  • vol_b: 中断的审单数量。
  • vol_c: 折算后的审单数量。

存储过程的意义

  • 为效率评估提供依据:
    • 实际审单数量、审单工时和折算后的审单数量是评估审单效率的核心指标。
  • 标准化处理:
    • 通过折算率将实际审单数量统一为标准审单数量,便于横向比较。
  • 数据驱动决策:
    • 为管理者提供数据支持,帮助优化审单流程,提高整体效率。

总结

ppp30 存储过程的主要功能是计算审单人员的效率,包括实际审单数量、审单工时和折算后的审单数量,并将结果存储到目标表 t_dash_ppp_productivity_v 中。它是审单效率计算流程中的核心步骤,为后续的效率评估和排名提供了关键数据支持。

​**ppp40 的内容说明**

ppp40 是一个存储过程,主要用于计算审单人员的最终效率评分,并将结果存储到目标表 t_dash_ppp_score_final 中。它是审单效率计算流程的最后一个步骤,基于前序步骤(如 ppp20 和 ppp30)计算的标椎工时、折算率、实际审单数量和折算后审单数量,结合外部提供的用时比例和评分规则,生成最终的效率评分和排名。


存储过程的功能

  1. 计算最终效率:

    • 基于折算后的审单数量(vol_c)和实际工时,计算每个人员的最终效率。
    • 结合外部提供的用时比例,调整审单数量(如 vol_c_per_day),用于评分。
  2. 计算评分和排名:

    • 根据审单数量和效率,结合评分规则(如 t_dash_ppp_rank_score 表中的评分标准),计算每个人员的评分。
    • 根据评分生成排名。
  3. 存储结果:

    • 将每个人员的评分、排名和其他相关数据存储到目标表 t_dash_ppp_score_final 中。
  4. 处理特殊情况:

    • 如果某些业务类型的折算率或评分规则为空,则设置默认值。
    • 处理总分计算和排名逻辑。

存储过程的输入参数

  • v_ppp_month (VARCHAR): 审单月份,用于标识数据的时间范围。

存储过程的实现逻辑

以下是存储过程的主要逻辑分解:

1. 初始化目标表
  • 更新目标表 t_dash_ppp_score_t 中的字段,例如:
    • 将 ttl_t_weight(总权重)与外部表 v_dash_ppp_nt_weight_ttl 的数据进行关联更新。
    • 更新 ttl_a_days(总分配天数)、days_weigh(天数权重)等字段。
2. 计算审单数量和工时
  • 使用游标遍历 t_dash_ppp_wl_v_s 和 t_dash_ppp_checker_std_v 表中的数据,计算每个人员的审单数量(vol_c_per_day)和工时。
3. 计算评分
  • 根据审单数量(vol_c_per_day)和评分规则表(t_dash_ppp_rank_score),计算每个人员的评分。
  • 评分规则可能包括:
    • 审单数量的范围。
    • 折算率(ex_rate)的影响。
    • 其他业务类型的权重。
4. 计算排名
  • 根据评分生成排名。
  • 如果评分相同,则根据其他字段(如审单数量或工时)进行二次排序。
5. 存储结果
  • 将每个人员的评分、排名和其他相关数据插入或更新到目标表 t_dash_ppp_score_final 中。
6. 处理总分和排名
  • 计算每个人员的总分(ttl_hc_ck1),并根据总分生成最终排名。

存储过程的代码

以下是存储过程的关键代码段及其功能说明:


sql

CREATE DEFINER=`root`@`%` PROCEDURE `ofssc`.`ppp40`(IN `v_ppp_month` varchar(6))
BEGIN
    -- 初始化目标表
    UPDATE t_dash_ppp_score_t a
    JOIN v_dash_ppp_nt_weight_ttl s
    ON a.ppp_month = s.ppp_month AND a.pernr = s.pernr
    SET a.ttl_t_weight = s.ttl_t_weight;

    -- 更新审单人员的工作天数和权重
    UPDATE t_dash_ppp_score_t a
    JOIN v_dash_ppp_total_asign_days s
    ON a.ppp_month = s.ppp_month AND a.pernr = s.pernr
    SET 
        a.ttl_a_days = s.ttl_a_days,
        a.days_weigh = IFNULL(a.asign_days, 0) / s.ttl_a_days,
        a.ppp_weight = IFNULL(a.ttl_t_weight, 0) * IFNULL(a.asign_days, 0) / s.ttl_a_days,
        a.weight_score = (IFNULL(a.score, 0) * (IFNULL(a.ttl_t_weight, 0) * IFNULL(a.asign_days, 0) / s.ttl_a_days)) / 100
    WHERE s.ttl_a_days > 0 AND s.ppp_month = v_ppp_month;

    -- 使用游标计算审单数量
    DECLARE c CURSOR FOR 
    SELECT 
        pernr, 
        vol_c_per_day 
    FROM 
        t_dash_ppp_score_t 
    WHERE 
        ppp_month = v_ppp_month AND ppp_type = '初审' AND vol_c_per_day > 0
    ORDER BY 
        vol_c_per_day;

    -- 初始化变量
    DECLARE v_ttl_hc_ck1 INT;
    DECLARE v_ppp_type VARCHAR(100) DEFAULT '初审';
    DECLARE v_delta_rank DECIMAL(18,5);
    DECLARE v_pernr VARCHAR(20);
    DECLARE v_rank_i INT;
    DECLARE v_rank DECIMAL(18,5);
    DECLARE v_score DECIMAL(18,5);
    DECLARE done INT;

    -- 获取总审单数量
    SELECT COUNT(1) INTO v_ttl_hc_ck1 
    FROM t_dash_ppp_score_t 
    WHERE ppp_month = v_ppp_month AND ppp_type = v_ppp_type AND vol_c_per_day > 0;

    -- 设置排名间隔
    SET v_delta_rank = (10000000 / v_ttl_hc_ck1) / 100000;
    SET v_rank_i = 0;

    -- 打开游标并循环处理数据
    OPEN c;
    LOOPC1: LOOP
        FETCH c INTO v_pernr, v_vol_c_per_day;
        IF done THEN
            LEAVE loopc1;
        END IF;

        -- 更新排名和评分
        SET v_rank_i = v_rank_i + 1;
        SET v_rank = v_rank_i * v_delta_rank;

        SELECT score INTO v_score 
        FROM t_dash_ppp_rank_score 
        WHERE ppp_type = v_ppp_type AND v_vol_c_per_day >= rank_from_ex AND v_vol_c_per_day < rank_to_in;

        UPDATE t_dash_ppp_score_t 
        SET score = v_score, rank = v_rank 
        WHERE ppp_month = v_ppp_month AND ppp_type = v_ppp_type AND pernr = v_pernr;
    END LOOP;
    CLOSE c;

    -- 更新总分和排名
    -- ...
END;

存储过程的作用

  1. 计算最终效率:

    • 基于折算后的审单数量(vol_c)和实际工时,计算每个人员的最终效率。
  2. 计算评分和排名:

    • 根据审单数量和效率,结合评分规则,计算每个人员的评分。
    • 根据评分生成排名。
  3. 存储结果:

    • 将每个人员的评分、排名和其他相关数据存储到目标表 t_dash_ppp_score_final 中。
  4. 处理特殊情况:

    • 如果某些业务类型的折算率或评分规则为空,则设置默认值。
    • 处理总分计算和排名逻辑。

存储过程的输出结果

执行 ppp40 后,目标表 t_dash_ppp_score_final 中会新增以下字段的数据:

  • ppp_type: 审单类型(如 '初审')。
  • ppp_month: 审单月份。
  • pernr: 审单人员编号。
  • score: 评分。
  • ppp_weight: 权重。
  • weight_score: 权重评分。
  • rank: 排名。

存储过程的意义

  • 为绩效评估提供依据:
    • 通过评分和排名,量化审单人员的工作表现。
  • 激励机制支持:
    • 评分和排名可以作为绩效考核和激励机制的基础。
  • 数据驱动决策:
    • 为管理者提供数据支持,帮助优化审单流程,提高整体效率。

总结

ppp40 存储过程的主要功能是计算审单人员的最终效率评分,并将结果存储到目标表 t_dash_ppp_score_final 中。它是审单效率计算流程的最后一个步骤,基于前序步骤的标椎工时、折算率和实际审单数量,结合评分规则,生成最终的评分和排名,为绩效评估和激励机制提供数据支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值