package com.zcxk.charge.core.dao;

import com.zcxk.charge.api.dto.query.HomePageReportDto;
import com.zcxk.charge.api.vo.*;
import com.zcxk.core.common.pojo.ProgramItem;
import com.zcxk.core.common.pojo.UserCondition;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * @description
 * @author  wangli
 * @data 2021/2/24 13:43
 */
@Mapper
public interface HomePageReportMapper {


    /**
     * getDeviceWaterForSixMonth
     * @param dto
     * @param userCondition
     * @return
     */
    List<DeviceWaterSupplyVo > getDeviceWaterForSixMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getDeviceWaterForMonth
     * @param dto
     * @param userCondition
     * @return
     */
    List<DeviceWaterSupplyVo > getDeviceWaterForMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getDeviceWaterForDay
     * @param dto
     * @param userCondition
     * @return
     */
    List<DeviceWaterSupplyVo > getDeviceWaterForDay(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * countSceneByType
     * @param dto
     * @param userCondition
     * @return
     */
    CompanyCountVo countSceneByType(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getWaterSalesDetails
     * @param dto
     * @param userCondition
     * @return
     */
    CompanyProduceVo getWaterSalesDetails(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getPipeNetworkQualification
     * @param dto
     * @param userCondition
     * @return
     */
    WaterQualityRateVo getPipeNetworkQualification(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getWaterQualification
     * @param dto
     * @param userCondition
     * @return
     */
    WaterQualityRateVo getWaterQualification(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getMonitorDataFifteenDays
     * @param dto
     * @param userCondition
     * @return
     */
    List<DeviceWaterSupplyVo> getMonitorDataFifteenDays(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getWaterQualificationForScene
     * @param dto
     * @param userCondition
     * @return
     */
    BigDecimal getWaterQualificationForScene(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getWaterQualificationByMonth
     * @param dto
     * @param userCondition
     * @return
     */
    BigDecimal getWaterQualificationByMonth(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

    /**
     * getWaterSupplyData
     * @param dto
     * @param userCondition
     * @return
     */
    List<WaterSupplyDataVo> getWaterSupplyData(@Param("dto")HomePageReportDto dto, @Param("user")UserCondition userCondition);

}
