package cn.cecep.talroad.mapper.analysis;

import cn.cecep.talroad.domain.analysis.SRaOnlineEmissionsWater;
import cn.cecep.talroad.vo.GasPollEmissionsVO;
import cn.cecep.talroad.vo.WaterPollEmissionsVO;
import cn.cecep.talroad.vo.analysis.MaxEmissionsVO;
import cn.cecep.talroad.vo.analysis.MonthTotalEmissionsVO;
import cn.cecep.talroad.vo.analysis.SRaOnlineEmissionsWaterVo;
import cn.cecep.talroad.vo.query.analysis.SRaOnlineEmissionsWaterQuery;
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 SRaOnlineEmissionsWaterMapper extends BaseMapper<SRaOnlineEmissionsWater>
{
    /**
     * 查询在线监测排放监控-水污染要素列表
     *
     * @param sRaOnlineEmissionsWater 在线监测排放监控-水污染要素
     * @return 在线监测排放监控-水污染要素集合
     */
    public List<SRaOnlineEmissionsWater> selectSRaOnlineEmissionsWaterList(SRaOnlineEmissionsWater sRaOnlineEmissionsWater);

    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<WaterPollEmissionsVO> 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<SRaOnlineEmissionsWaterVo.ChartDataVo> selectChartData(@Param("searchVo") SRaOnlineEmissionsWaterQuery.CharDataSearchVo searchVo);
}
