package com.bootdo.datas.dao;

import com.bootdo.datas.domain.DataDO;
import com.bootdo.datas.dto.DateAndCountDTO;
import com.bootdo.datas.dto.MapDataDTO;
import com.bootdo.datas.dto.NameAndValueDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 重要数据表
 * @author admin
 * @email admin@163.com
 * @date 2022-03-06 10:37:54
 */
@Mapper
public interface DataDao {

	/**
	 * ]
	 * 获取地图数据
	 *
	 * @return
	 */
	List<MapDataDTO> mapDataList(@Param("dataLevel") String dataLevel);

	/**
	 * 上报数据趋势统计
	 *
	 * @return
	 */
    List<DateAndCountDTO> trendData(@Param("provinceName") String provinceName);

    /**
     * 所属行业子类统计
     *
     * @param provinceName
     * @return
     */
    List<NameAndValueDTO> IndustryData(@Param("provinceName") String provinceName);

    /**
     * 行业类别 统计
     *
     * @param provinceName
     * @return
     */
    List<NameAndValueDTO> industryTypeData(@Param("provinceName") String provinceName);

    /**
     * 数据级别 统计
     *
     * @param provinceName
     * @param dataLevel
     * @return
     */
    List<DateAndCountDTO> dataLevelData(@Param("provinceName") String provinceName,
                                        @Param("dataLevel") String dataLevel);

	/**
	 * 计算审核通过率
	 *
	 * @param provinceName
	 * @return
	 */
	Double dataAuditData(@Param("provinceName") String provinceName);

	/**
	 * 统计数据所属分类
	 *
	 * @return
	 */
	List<NameAndValueDTO> dataCategoryData(@Param("provinceName") String provinceName);


    /**
     * 根据do条件获取数据集合
     *
     * @param dataDO
     * @return
     */
    List<DataDO> getByCondition(DataDO dataDO);

    /**
     * 根据条件获取 备案 审批通过数据
     *
     * @param parameter
     * @return
     */
    List<DataDO> portalDataList(Map<String, Object> parameter);

    /**
     * 根据条件获取 备案 审批通过数据 总数量
     *
     * @param parameter
     * @return
     */
    Long portalDataListCount(Map<String, Object> parameter);

}
