package com.tofly.xrtygis.custom.mapper;

import com.tofly.xrtygis.custom.entity.vo.CollectionRateVo;
import com.tofly.xrtygis.custom.entity.vo.LargeUseWaterVo;
import org.apache.ibatis.annotations.Param;

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

public interface LscreenMapper {
    Map<String, Object> getUseWater(@Param("year") String year, @Param("lastYear")String lastYear);

    Map<String, Object> getUserCount(@Param("yearAndMonth") String yearAndMonth);

    List<LargeUseWaterVo> getLargeUseWater(@Param("topNum") Integer topNum);

    /**
     * 上月多种分类的收费数据和用水量收入情况统计
     * @return
     */
    Map<String, Object> getUserYsXzAndMoney(@Param("typeNames") List<String> typeNames);

    Map<String, Object> getLastSfQf();

    Map<String, Object> GetMeterReadingRate(@Param("yearAndMonth") String yearAndMonth);

    /**
     *
     * @param startYear 开始年
     * @param endYear  接收年
     * @return
     */
    List<CollectionRateVo> GetCollectionRate(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);

    Map<String, Object> getQf3Data(@Param("yearAndMonth")String yearAndMonth);

    List<Map<String, Object>> getNearPay(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);

    /**
     * 用户用水量统计
     * @param startYear 开始年
     * @param endYear  接收年
     * @return
     */
    List<Map<String, Object>> getNearNumber(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);

    /**
     * 近12月收费方式统计
    * @return
     */
    List<Map<String, Object>> getqdPay(@Param("month") Integer month);

    /**
     * 获取当前年月有效用户
     * @param yearAndMonth
     * @return
     */
    Integer getRecordTotal(@Param("yearAndMonth") String yearAndMonth);

    Map<String, Object> getUserWaterType(@Param("typeNames") List<String> typeNames);

    Map<String, Object> getSalesWaterTotal(@Param("typeNames")List<String> typeNames);

    Map<String, Object> getPayInfo();

    List<Map<String, Object>> getPayMoneyInfo(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);

    Map<String, Object> getPayUserInfo(@Param("typeNames")List<String> typeNames);

    List<Map<String, Object>> getWaterType();

    /**
     * 生产，销售 水量，按照月统计
     * @param yearAndMonth 年月 yyyyMM
     * @return
     */
    Map<String, Object> getSalesWaterCount(@Param("yearAndMonth")String yearAndMonth);


    Map<String, Object> getUserAndMoneyReport();
}
