package com.tofly.xrtygis.custom.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.xrtygis.custom.entity.vo.UserDeptHotlineVo;
import com.tofly.xrtygis.entity.Pfrecord;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * @author 泡泡
 */
public interface NewHotlineMapper {

    /**
     * 获取客户信息
     * @param dto 条件
     * @param page page
     * @return page
     */
    Page<Map> getClientInfo(Page page, @Param("dto") String dto);

    /**
     * 获取员工信息
     * @param dto 条件
     * @param page page
     * @return page
     */
    Page<Map> getEmployeeInfo(Page page,@Param("dto") String dto);

    /**
     * 呼叫转移信息查询
     * @param dept 部门
     * @param dto 条件
     * @return page
     */
    List<Map> callShiftQuery(@Param("dept") String dept,@Param("dto") String dto);

    /**
     * 录音评分统计
     * @param page page
     * @param crew 人员
     * @param start 开始时间
     * @param end 结束时间
     * @return paeg
     */
    List<Map<String, Object>> getRecordGrade(Page page,@Param("crew") String crew,@Param("start") String start,@Param("end") String end);

    /**
     * 查询人员评分详细信息 (分页)
     * @param page page
     * @param crew 人员
     * @param start 开始时间
     * @param end 结束时间
     * @return paeg
     */
    Page<List<Pfrecord>> getRecordInfo(Page page, @Param("crew") String crew, @Param("start") String start, @Param("end") String end);

    /**
     * 查询人员评分详细信息 (不分页)
     * @param crew 人员
     * @param start 开始时间
     * @param end 结束时间
     * @return paeg
     */
    List<Pfrecord> getRecordInfo(@Param("crew") String crew, @Param("start") String start, @Param("end") String end);

    /**
     * 工单统计
     * @param page page
     * @return page
     */
    Page<Map> workOrderStatistics(Page page,@Param("start") String start, @Param("end") String end,@Param("gdlx") String gdlx,@Param("gdzt") String gdzt,@Param("djry") String djry);

    Page<Map> workOrderInfo(Page page,@Param("gdlx") String gdlx, @Param("start") String start, @Param("end") String end, @Param("type") String type,@Param("gdzt") String gdzt,@Param("djry") String djry);

    List<Map> workOrderInfo(@Param("gdlx") String gdlx, @Param("start") String start, @Param("end") String end, @Param("type") String type,@Param("gdzt") String gdzt,@Param("djry") String djry);

    Page<Map> payAReturnVisitInfo(Page page, @Param("gdlx") String gdlx, @Param("start") String start, @Param("end") String end, @Param("pass") String pass,@Param("gdzt") String gdzt,@Param("djry") String djry);

    List<Map> payAReturnVisitInfo(@Param("gdlx") String gdlx, @Param("start") String start, @Param("end") String end, @Param("pass") String pass,@Param("gdzt") String gdzt,@Param("djry") String djry);

    Page<Map> returnVisitCount(Page page,@Param("start") String start, @Param("end") String end,@Param("gdlx") String gdlx,@Param("gdzt") String gdzt,@Param("djry") String djry);

    Page<Map> selectClientInfo(Page page,@Param("dto") String dto);

//    Page<Map> selectClientCost(Page page,@Param("dto") String dto);

    Page<Map> orderQualityCount(Page page,@Param("start") String start, @Param("end") String end,@Param("gdlx") String gdlx,@Param("gdzt") String gdzt,@Param("djry") String djry);

    Page<Map> notTheQualityInfo(Page page,@Param("type") String type, @Param("start") String start, @Param("end") String end,@Param("gdzt") String gdzt,@Param("djry") String djry,@Param("code") String code);

    boolean updateGdInfo(String gdbh);

    List<Map> getCrewInfo();

    List<Map> getworkOrderType();

    List<Map<String, Object>> getRoleInfo(@Param("userId") Long userId);

    List<Map> telGetInfo(@Param("tel") String tel);

    Page<Map> allocation(Page page,@Param("str") String str,@Param("qybm") String qybm,@Param("qydbm") String qydbm);

    @Select("select NAME from TF_SMPN_DEPARTMENT_X where ID = #{deptId} and rownum = 1")
    String getDeptNameById(@Param("deptId") Long deptId);
    @Select("select id deptId,NAME deptName from TF_SMPN_DEPARTMENT_X ")
    List<UserDeptHotlineVo> gerDeptNameMap();
    @Select("select REAL_NAME from TF_SMPN_USER_X where USERNAME = #{empcode} and rownum = 1")
    String getRealNameById(@Param("empcode") String empcode);
    @Select("select username userCode,REAL_NAME userName from TF_SMPN_USER_X ")
    List<UserDeptHotlineVo> getRealNameMap();
    @Select("select ID,USERNAME,REAL_NAME from TF_SMPN_USER_X where DEPARTMENT_ID = 4")
    List<Map> getHisTable();
}
