package cn.com.tenlion.systembase.dao.statistics;

import cn.com.tenlion.systembase.pojo.dtos.statistics.StatisticsDTO;
import cn.com.tenlion.systembase.pojo.dtos.statistics.StatisticsLineDTO;
import ink.wgink.exceptions.SearchException;
import org.springframework.stereotype.Repository;

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

/**
 * @ClassName: IStatisticsDao
 * @Description: 统计
 * @Author: CodeFactory
 * @Date: 2021-11-22 15:31:23
 * @Version: 3.0
 **/
@Repository
public interface IStatisticsDao {

    /**
     * 综治中心数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer comprehensiveCenterCount(Map<String, Object> params) throws SearchException;

    /**
     * 学校数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer schoolCount(Map<String, Object> params) throws SearchException;

    /**
     * 重点区域数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer keyAreaCount(Map<String, Object> params) throws SearchException;

    /**
     * 重点场所数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer keyPlaceCount(Map<String, Object> params) throws SearchException;

    /**
     * 学校类型占比
     * @param params
     * @return
     */
    List<StatisticsDTO> schoolInfo(Map<String, Object> params) throws SearchException;

    /**
     * 学校重点人员(危害程度/是否关注)
     * @param params
     * @return
     */
    List<StatisticsDTO> personKeyInfo(Map<String, Object> params) throws SearchException;

    /**
     * 学校安全事件侦破情况
     * @param params
     * @return
     */
    List<StatisticsDTO> caseDetectInfo(Map<String, Object> params) throws SearchException;

    /**
     * 重点区域排查占比(案件类型/案件发生场所)
     * @param params
     * @return
     */
    List<StatisticsDTO> areaSecurityInfo(Map<String, Object> params) throws SearchException;

    /**
     * 重特大案(事)件
     * @param params
     * @return
     */
    List<StatisticsDTO> majorInfo(Map<String, Object> params) throws SearchException;

    /**
     * 年度重大事件统计
     * @param params
     * @return
     */
    StatisticsDTO caseInfo(Map<String, Object> params) throws SearchException;

    /**
     * 年度重点场所/区域巡查统计
     * @param params
     * @return
     */
    List<StatisticsDTO> keyPlaceInfo(Map<String, Object> params) throws SearchException;

    /**
     * 重点区域巡查数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer keyAreaPatrolCount(Map<String, Object> params) throws SearchException;

    /**
     * 重点场所巡查数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer keyPlacePatrolCount(Map<String, Object> params) throws SearchException;

    /**
     * 非公有经济组织数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer organizeCount(Map<String, Object> params) throws SearchException;

    /**
     * 社会组织数量
     * @param params
     * @return
     * @throws SearchException
     */
    Integer enterpriseCount(Map<String, Object> params) throws SearchException;
}