package com.dayou.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dayou.dto.AssetsStatisticalSelectDTO;
import com.dayou.vo.*;

import java.util.List;

/**
 * <p>
 * 资产业务统计报表 服务类
 * </p>
 *
 * @author GouGengquan
 * @since 2024-07-31
 */
public interface IAssetsStatisticalStatementService {

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

    /**
     * 资产台账导出
     * @param dto 查询dto
     * @return Page<AssetsLedgerVO>
     */
    List<AssetsLedgerVO> assetsLedgerVOExport(AssetsStatisticalSelectDTO dto);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}
