package com.engine.matfron.service;

import com.engine.matfron.entity.OptionVO;
import com.engine.matfron.entity.PortalTopVO;

import java.util.LinkedList;
import java.util.Map;


/**
 * @Author liang.cheng
 * @Date 2023/9/26 5:51 PM
 * @Description: 统计分析门户
 * @Version 1.0
 */
public interface StatisticsPortalService {

    /**
     * @Description: 门户顶部
     * @Author: liang.cheng
     * @Date: 2023/9/27 4:02 PM
     * @param: []
     * @return: com.engine.matfron.entity.PortalTopVO
     */
    LinkedList<PortalTopVO> getPortalTop();

    /**
     * @Description: 一级部门人数统计
     * @Author: liang.cheng
     * @Date: 2023/9/27 5:40 PM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getPortalDepartment();

    /**
     * @Description: 各月份分部总人数
     * @Author: liang.cheng
     * @Date: 2023/9/28 11:23 AM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getPortalSubCompany();

    /**
     * @Description: 民族分析
     * @Author: liang.cheng
     * @Date: 2023/10/9 9:52 AM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getPortalEthnic();

    /**
     * @Description: 归属地分析
     * @Author: liang.cheng
     * @Date: 2023/10/10 5:57 PM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getHomePlace();

    /**
     * @Description: 学历分析
     * @Author: liang.cheng
     * @Date: 2023/10/9 9:53 AM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getEducational();

    /**
     * @Description: 司龄统计
     * @Author: liang.cheng
     * @Date: 2023/10/9 11:21 AM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getSurname();

    /**
     * @Description: 年龄与性别分析
     * @Author: liang.cheng
     * @Date: 2023/10/9 2:32 PM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getAgeAndSex();

    /**
     * @Description: 职务类别统计
     * @Author: liang.cheng
     * @Date: 2023/10/9 5:52 PM
     * @param: []
     * @return: com.engine.matfron.entity.OptionVO
     */
    OptionVO getJobType();

    /**
     * @Description: 当月多部门离职率统计
     * @Author: liang.cheng
     * @Date: 2023/10/9 7:00 PM
     * @param: [departmentIds]
     * @return: map
     */
    Map<String,Object> getLeaveMonth(String departmentIds);

    /**
     * @Description: 年度离职率统计
     * @Author: liang.cheng
     * @Date: 2023/10/10 9:37 AM
     * @param: [departmentIds]
     * @return: map
     */
    Map<String,Object> getLeaveYear(String departmentIds);


}
