package com.xiaoniu.subsystem.business.service;

import com.xiaoniu.common.core.vo.AnalysisLineVO;
import com.xiaoniu.common.core.vo.LabelAndValueNameVO;
import com.xiaoniu.common.core.vo.LabelAndValueVO;
import com.xiaoniu.subsystem.business.domain.dto.ExpenseStatisticsDTO;
import com.xiaoniu.subsystem.business.domain.dto.ExpenseStatisticsDTO;
import com.xiaoniu.subsystem.business.domain.vo.*;

import java.util.List;

/**
 * @Author haoxuyang
 * @Date 2024/11/29 14:27
 */
public interface IStatisticalAnalysisService {
    /**
     * 历年优秀学员统计
     *
     * @return AnalysisLineVO
     */
    AnalysisLineVO excellentStudent();

    /**
     * 计划、实际参训人数统计
     *
     * @return NumberParticipantsVO
     */
    NumberParticipantsVO numberParticipants();

    /**
     * 历年参训人员统计
     *
     * @return AnalysisLineVO
     */
    AnalysisLineVO overYearsParticipants();

    /**
     * 参训人员培训类型占比图
     *
     * @return LabelAndValueVO
     */
    List<LabelAndValueVO> trainingType();

    /**
     * 参训人员入学摸底考试与结业考核成绩对比图
     *
     * @return AnalysisLineVO
     */
    AnalysisLineVO comparisonGrades();

    /**
     * 参训人员成绩占比图
     *
     * @return LabelAndValueVO
     */
    List<LabelAndValueVO> scoreProportion();

     /**
     * @description: 费用统计-人员统计
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:10
     */
    List<LabelAndValueNameVO> expensePersonnel(ExpenseStatisticsDTO dto);

    /**
     * @description: 费用统计-培训费
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:10
     */
    AnalysisLineVO expenseAmount(ExpenseStatisticsDTO dto);

    /**
     * @description: 费用统计-费用类型
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:13
     */
    TypeStatisticsVO expenseType(ExpenseStatisticsDTO dto);

    /**
     * @description: 费用统计-承训单位费用占比
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:13
     */
    TypeStatisticsVO expenseUnit(ExpenseStatisticsDTO dto);
    /**
     * @description: 费用统计-战区费用占比
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:13
     */
    TypeStatisticsVO expenseOperations(ExpenseStatisticsDTO dto);
    /**
     * @description: 费用统计-人均费用统计
     * @author: 孙松涛
     * @createTime: 2024/12/2 9:13
     */
    AnalysisLineVO expensePerCapita(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-计划、实际参训人数统计
     *
     * @param dto dto
     * @return NumberParticipantsVO
     */
    NumberParticipantsVO flightNumberParticipants(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-培训班数量
     *
     * @param dto dto
     * @return AnalysisLineVO
     */
    AnalysisLineVO flightTrainingCourseNum(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-各承训开设班次数量占比
     *
     * @param dto dto
     * @return LabelAndValueVO
     */
    List<LabelAndValueVO> flightNumProportion(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-培训状态
     *
     * @param dto dto
     * @return LabelAndValueVO
     */
    FlightTrainingStatusVO flightTrainingStatus(ExpenseStatisticsDTO dto);

    /**
     * 培训类型
     *
     * @param dto dto
     * @return LabelAndValueNameVO
     */
    List<LabelAndValueVO> flightTrainingType(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-参训人员占比
     *
     * @param dto dto
     * @return AnalysisLineVO
     */
    AnalysisLineVO flightDistributionTrainees(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-参训人员占比
     *
     * @param dto dto
     * @return LabelAndValueNameVO
     */
    FlightDistributionProportionVO flightDistributionProportion(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-历年优秀率
     *
     * @param dto dto
     * @return AnalysisLineVO
     */
    AnalysisLineVO flightAnnualExcellenceRate(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-成绩占比图
     *
     * @param dto dto
     * @return LabelAndValueNameVO
     */
    List<LabelAndValueVO> flightProportionGrades(ExpenseStatisticsDTO dto);

    /**
     * 班次统计-费用结算信息统计
     *
     * @param dto dto
     * @return AnalysisLineVO
     */
    AnalysisLineVO flightExpenseSettlement(ExpenseStatisticsDTO dto);
}
