package com.zcxk.evaluation.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcxk.evaluation.dto.EvaluationReportQueryDto;
import com.zcxk.evaluation.dto.EvaluationResultQueryDto;
import com.zcxk.evaluation.dto.EvaluationResultUpdateDto;
import com.zcxk.evaluation.entity.EvaluationResultEntity;
import com.zcxk.evaluation.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * @ClassName EvaluationResultMapper
 * @Description: 考评结果
 * @Author lihui
 * @Date 2021/5/7
 * @Version V1.0
 **/
@Mapper
public interface EvaluationResultMapper {

    /***
     * 插入考评结果
     * @Author lihui
     * @Date 18:14 2021/5/8
     * @param item :  考评结果
     * @return java.lang.Integer
     **/
    Integer insertEvaluationResult(@Param("item")EvaluationResultEntity item);

    /***
     * 分页查询考评结果
     * @Author lihui
     * @Date 18:14 2021/5/8
     * @param page : 页码
     * @param dto :  参数
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.zcxk.evaluation.vo.EvaluationResultVo>
     **/
    Page<EvaluationResultVo> findPage(@Param("page")IPage<EvaluationResultQueryDto> page, @Param("dto") EvaluationResultQueryDto dto);

    /***
     * 查询考评状态
     * @Author lihui
     * @Date 18:15 2021/5/8
     * @param evaluationResultId :  结果ID
     * @return java.lang.Integer
     **/
    Integer findEvaluationState(Integer evaluationResultId);

    /***
     * 修改考评得分
     * @Author lihui
     * @Date 18:15 2021/5/8
     * @param updateDto : 修改参数
     * @return java.lang.Integer
     **/
    Integer updateEvaluationScore(EvaluationResultUpdateDto updateDto);

    /***
     * 查询人员绩效排名
     * @Author lihui
     * @Date 18:15 2021/5/8
     * @param dto : 修改参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationReportRankingVo>
     **/
    List<EvaluationReportRankingVo> findRanking(@Param("dto") EvaluationReportQueryDto dto);

    /***
     * 查询等级分布占比
     * @Author lihui
     * @Date 18:16 2021/5/13
     * @param dto :参数
     * @return java.util.List<com.zcxk.evaluation.vo.EvaluationGradePercentageVo>
     **/
    List<EvaluationGradePercentageVo> findGradePercentage(@Param("dto") EvaluationReportQueryDto dto);

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


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

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


}
