package com.zcxk.evaluation.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcxk.evaluation.dto.EvaluationResultDto;
import com.zcxk.evaluation.dto.EvaluationReportDto;
import com.zcxk.evaluation.vo.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName EvaluationResultService
 * @Description: 考评结果业务处理
 * @Author lihui
 * @Date 2021/5/7
 * @Version V1.0
 **/
public interface EvaluationResultService {

    /***
     * 分页查询
     * @Author lihui
     * @Date 18:29 2021/5/17
     * @param dto : 请求参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.zcxk.evaluation.vo.EvaluationResultVo>
     **/
    IPage<EvaluationResultVo> findPage(EvaluationResultDto dto);


    /***
     * 查询人员绩效排名
     * @Author lihui
     * @Date 18:29 2021/5/17
     * @param dto : 请求参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationReportRankingVo>
     **/
    List<EvaluationReportRankingVo> findRanking(EvaluationReportDto dto);

    /***
     * 查询等级占比率
     * @Author lihui
     * @Date 18:29 2021/5/17
     * @param dto : 请求参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationGradePercentageVo>
     **/
    List<EvaluationGradePercentageVo> findGradePercentage(EvaluationReportDto dto);

    /***
     * 统计绩效合格数
     * @Author lihui
     * @Date 18:29 2021/5/17
     * @param dto : 查询参数
     * @param qualifiedValue :
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationQualifiedNumberVo>
     **/
    List<EvaluationQualifiedNumberVo> countQualifiedNumber(EvaluationReportDto dto, BigDecimal qualifiedValue);

    /***
     * 统计绩效人均值
     * @Author lihui
     * @Date 18:29 2021/5/17
     * @param dto :查询参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationPerformanceAvgVo>
     **/
    List<EvaluationPerformanceAvgVo> countPerformanceAvg(EvaluationReportDto dto);

    /***
     * 查询考评结果
     * @author lihui
     * @date 14:49 2021/5/19
     * @param dto : 查询参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationResultVo>
     **/
    List<EvaluationResultVo> listEvaluationResult(@Param("dto") EvaluationResultDto dto);
}
