package cn.cecep.talroad.mapper.analysis;

import cn.cecep.talroad.domain.analysis.SRaOnlineEmissionsGas;
import cn.cecep.talroad.vo.GasPollEmissionsVO;
import cn.cecep.talroad.vo.analysis.MaxEmissionsVO;
import cn.cecep.talroad.vo.analysis.MonthTotalEmissionsVO;
import cn.cecep.talroad.vo.analysis.SRaOnlineEmissionsGasVo;
import cn.cecep.talroad.vo.query.analysis.SRaOnlineEmissionsGasQuery;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 在线监测排放监控-气污染要素Mapper接口
 *
 * @author szhpt
 * @date 2023-03-24*/
@Mapper
public interface SRaOnlineEmissionsGasMapper extends BaseMapper<SRaOnlineEmissionsGas>
{
    /**
     * 查询在线监测排放监控-气污染要素列表
     *
     * @param sRaOnlineEmissionsGas 在线监测排放监控-气污染要素
     * @return 在线监测排放监控-气污染要素集合
     */
    public List<SRaOnlineEmissionsGas> selectSRaOnlineEmissionsGasList(SRaOnlineEmissionsGas sRaOnlineEmissionsGas);


    /**
     * 查询前720小时内最大排放量
     * @return
     */
    List<MaxEmissionsVO> select720HourAgoMaxEmissions(@Param("outletCode") String outletCode, @Param("factoryId")String factoryId);


    /**
     * 查询月/季度 排放总量
     * @param factoryId
     * @param dateStr
     * @return
     */
    List<MonthTotalEmissionsVO> selectMonthTotalData(@Param("factoryId") String factoryId,@Param("dateStr")String dateStr,@Param("selectType") int selectType);

    /**
     * 废气 年统计数据
     */
    List<GasPollEmissionsVO> selectEmissionDataList(@Param("factoryId") String factoryId,
                                                    @Param("dateType") String dateType,
                                                    @Param("startDateTime") String startDateTime,
                                                    @Param("endDateTime") String endDateTime,
                                                    @Param("pollNames") String[] pollNames,
                                                    @Param("industry") String industry,
                                                    @Param("groupByField") String groupByField);

    List<SRaOnlineEmissionsGasVo.ChartDataVo> selectChartData(@Param("searchVo") SRaOnlineEmissionsGasQuery.CharDataSearchVo searchVo);
}
