package cn.timer.api.dao.yggl;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.dto.yggl.EmpQuery;
import cn.timer.api.dto.yggl.YgQueryDto;
import cn.timer.api.dto.yggl.YgbintuDto;
import cn.timer.api.dto.yggl.YgglCartogramDto;
import cn.timer.api.dto.zzgl.DepartmentStaffDto;

/**
 * 员工档案+统计图查询
 *
 * @author dsc 2019-11-23
 */
@Repository
public interface YgglMainEmpMapper extends BaseMapper<YgglMainEmp> {
	/**
	 * 人事仪表盘
	 * @param userBean
	 * @return
	 */
	List<YgbintuDto> rsybp(Integer orgCode);

	/**
	 * 查询当月离职人数
	 * @param userBean
	 * @return
	 */
	Integer benyueLz(Integer orgCode);

	/**
	 * 查询当月转正人数
	 * @param userBean
	 * @return
	 */
	Integer benyueZz(Integer orgCode);
	/**
	 * 查询员工信息
	 * @param userBean
	 * @return
	 */
	List<YgQueryDto> queryEmpMessage(@Param("orgCode") Integer orgCode,@Param("isInsure")Integer isInsure);


	/**
	 * 查询在职员工(试用员工人数+正式员工人数)
	 * @param userBean
	 * @return
	 */
	YgglCartogramDto queryInservice(UserBean userBean);

	/**
	 * 查询当月入职人数
	 * @param userBean
	 * @return
	 */
	YgglCartogramDto queryInduction(UserBean userBean);

	/**
	 * 查询本月转正人数
	 * @param userBean
	 * @return
	 */
	YgglCartogramDto queryPositive(UserBean userBean);

	/**
	 * 查询员工平均年龄
	 * @param userBean
	 * @return
	 */
	YgglCartogramDto queryAvgAge(UserBean userBean);

	/**
	 * 查询部门名称及人数
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryDepartmentNum(UserBean userBean);

	/**
	 * 查询岗位名称及人数
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryJobsNum(UserBean userBean);

	/**
	 * 学历及人数查询
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryEducation(UserBean userBean);

	/**
	 * 员工年龄分布查询
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryEmpAge(UserBean userBean);

	/**
	 * 籍贯统计(省份)人数分布查询
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryNativeplace(UserBean userBean);

	/**
	 * 员工工龄分布查询
	 * @param userBean
	 * @return
	 */
	List<YgglCartogramDto> queryWorkingAge(UserBean userBean);

	/**
	 * 员工列表
	 * @param page
	 * @param empQuery
	 * @return
	 */
	IPage<YgglMainEmp> selectME(Page<YgglMainEmp> page,@Param("param") EmpQuery empQuery);

	List<DepartmentStaffDto> DepartmentStaff(Integer orgcode,Integer upid);

	List<YgglMainEmp> selectListByIds(@Param("array")String[] ids);

	List<YgglMainEmp> selectListByIZjNum(@Param("array")String[] zjNum,@Param("orgCode") Integer orgCode);
}