package com.njcn.harmonic.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 合格率统计日表(越限次数) Mapper 接口
 * </p>
 *
 * @author wr
 * @since 2023-04-03
 */
public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {

    List<RStatLimitRateDVO> getSumPassRate(
            @Param("ids") List<String> lineIndexes,
            @Param("statTime") String searchBeginTime,
            @Param("endTime") String searchEndTime);


    List<MonitorOverLimitVO> getSumLimitRateByLineIndexes(
            @Param("ids") List<String> lineIndexes,
            @Param("statTime") String searchBeginTime,
            @Param("endTime") String searchEndTime);

    Page<MonitorOverLimitVO> getSumLimitRatePage(Page<RStatLimitRateDPO> p,
                                                 @Param("ids") List<String> lineIndexes,
                                                 @Param("statTime") String searchBeginTime,
                                                 @Param("endTime") String searchEndTime);

    List<MonitorOverLimitVO.DataVO> getPercentages(
                                                    @Param("ids") List<String> lineIndexes,
                                                    @Param("statTime") String searchBeginTime,
                                                    @Param("endTime") String searchEndTime);


    /**
     * 数据查询
     * @param list
     * @param startTime
     * @param endTime
     * @return
     */
    List<RStatLimitRateDPO> getSumPassRateList( @Param("ids") List<String> list,
                                                @Param("statTime") String startTime,
                                                @Param("endTime") String endTime);

    /**
     * 获取综合评估下的指标完整率
     * @param list
     * @param startTime
     * @param endTime
     * @return111
     */
    List<RStatLimitRateDPO> getAssessTargetRate( @Param("ids") List<String> list,
                                                @Param("statTime") String startTime,
                                                @Param("endTime") String endTime);

    /**
     * 获取监测点的超标次数
     * @param list
     * @param startTime
     * @param endTime
     * @return
     */
    List<RStatLimitRateDPO> getAllOverTimes( @Param("ids") List<String> list,
                                                 @Param("statTime") String startTime,
                                                 @Param("endTime") String endTime);
}
