package com.dayou.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dayou.dto.AssetsStatisticalSelectDTO;
import com.dayou.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AssetsStatisticalStatementMapper {

    /**
     * 获取资产台账
     * @param dto 查询dto
     * @return Page<AssetsLedgerVO>
     */
    Page<AssetsLedgerVO> getAssetsLedgerVO(@Param("page") Page page, @Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 获取资产台账
     * @param dto 查询dto
     * @return List<AssetsLedgerVO>
     */
    List<AssetsLedgerVO> assetsLedgerVOExport(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估部绩效扣分查询
     * @param dto 查询dto
     * @return List<AssetsPerformanceDeductionVO>
     */
    List<AssetsPerformanceDeductionVO> getAssetsPerformanceDeductionVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估部绩效扣分导出
     * @param dto 查询dto
     * @return Page<AssetsPerformanceDeductionVO>
     */
    List<AssetsPerformanceDeductionVO> assetsPerformanceDeductionVOExport(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 查询错误详情列表
     * @param page 分页
     * @param dto 查询dto
     * @return Page<AssetsPerformanceDeductionDetailVO>
     */
    Page<AssetsPerformanceDeductionDetailVO> getAssetsPerformanceDeductionDetail(@Param("page") Page page, @Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 错误详情列表导出
     * @param dto 查询dto
     * @return Page<AssetsPerformanceDeductionDetailVO>
     */
    List<AssetsPerformanceDeductionDetailVO> assetsPerformanceDeductionDetailExport(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估人员绩效扣分查询
     * @param dto 查询dto
     * @return List<AssetsPerformanceDeductionVO>
     */
    List<AssetsPerformanceDeductionVO> getAssetsPerformanceDeductionVOByEvaluator(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估人员绩效扣分导出
     * @param dto 查询dto
     * @return List<AssetsPerformanceDeductionVO>
     */
    List<AssetsPerformanceDeductionVO> assetsPerformanceDeductionVOByEvaluatorExport(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估部效率查询
     * @param dto 查询dto
     * @return List<AssetsEvaluateDepEfficiencyVO>
     */
    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluateDepEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 评估人员效率查询
     * @param dto 查询dto
     * @return List<AssetsEvaluateDepEfficiencyVO>
     */
    List<AssetsEvaluateEfficiencyVO> getAssetsEvaluatePerEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 效率详情列表查询
     * @param page 分页
     * @param dto 查询dto
     * @return Page<AssetsEvaluateEfficiencyDetailVO>
     */
    Page<AssetsEfficiencyDetailVO> getAssetsEvaEffDetailVO(@Param("page") Page page, @Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 效率详情列表导出
     * @param dto 查询dto
     * @return List<AssetsEvaluateEfficiencyDetailVO>
     */
    List<AssetsEfficiencyDetailVO> assetsEvaEffDetailVOExport(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 市场部效率查询
     * @param dto 查询dto
     * @return List<AssetsMarketEfficiencyVO>
     */
    List<AssetsMarketEfficiencyVO> getAssetsMarketDepEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 客户经理效率查询
     * @param dto 查询dto
     * @return List<AssetsMarketEfficiencyVO>
     */
    List<AssetsMarketEfficiencyVO> getAssetsMarketPerEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 资产客户效率值(总)查询
     * @param dto 查询dto
     * @return List<AssetsCustomerEfficiencyVO>
     */
    List<AssetsCustomerEfficiencyVO> getAssetsCustomerTotalEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

    /**
     * 资产客户效率值(客户经理)查询
     * @param dto 查询dto
     * @return List<AssetsCustomerEfficiencyVO>
     */
    List<AssetsCustomerEfficiencyVO> getAssetsCustomerManagerEfficiencyVO(@Param("dto") AssetsStatisticalSelectDTO dto);

}
