package com.nokia.tsl_data.dao;

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

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface TslDao {

    /**
     * 查询某天的河北_CEM移网质量投诉明细数据量
     * 
     * @param day
     * @return
     */
    int selectCompCountForDay(String day);

    /**
     * 查询河北_CEM高品质2日统计数据量
     * 
     * @param day
     * @return
     */
    int selectQualityCountForDay(String day);

    /**
     * 客户端-投诉问题解决满意度
     * 客户端-投诉问题解决率
     * 客户端-投诉问题响应率
     * 
     * @param day
     * @return
     */
    List<Map<String, Object>> selectClientRatioForDay(String day);

    /**
     * 查询历史处理时长
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectOldTsDurationForMonth(String monthId);

    /**
     * 
     * @param monthId
     */
    void insertOldTsDurationForMonth(String monthId);

    /**
     * 存入历史处理时长数据
     * 
     * @param map
     */
    void insertOldTsDuration(@Param("map") Map<String, Object> map);

    /**
     * 处理时长统计
     * 
     * @param day
     * @return
     */
    List<Map<String, Object>> selectTsDurationForDay(String day);

    /**
     * 超时工单统计
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectTimeoutTsCountForDay(String day);

    /**
     * 重复工单数和比例按截止日期和地市查询
     * 
     * @param day
     * @return
     */
    List<Map<String, Object>> selectRepeatTsCountForDay(String day);

    /**
     * 投诉清单按日按地市计数
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectCityTslForMonth(String day);

    /**
     * 投诉清单全省计数
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectAllTslForMonth(String day);

    /**
     * 投诉清单地市总数
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectCityAllForMonth(String day);

    /**
     * 投诉清单按月计算总数
     * 
     * @param monthId
     * @return
     */
    int selectAllForMonth(String day);

    /**
     * 查询用户数
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectUserCountForMonth(String monthId);

    /**
     * 查询期望万投率
     * 
     * @param monthId
     * @return
     */
    List<Map<String, Object>> selectTargetTsRatioForMonth(String monthId);

    /**
     * 插入用户数
     * 
     * @param map
     */
    void insertUserCount(@Param("map") Map<String, Object> map);

    /**
     * 插入目标万投比
     * 
     * @param map
     */
    void insertTargetTsRatio(@Param("map") Map<String, Object> map);
}
