package com.njcn.device.rstatintegrity.mapper;


import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.LineDataIntegrity;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
import com.njcn.device.pq.pojo.vo.RStatIntegrityVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 数据完整性日表 Mapper 接口
 * </p>
 *
 * @author hongawen
 * @since 2023-03-28
 */
public interface RStatIntegrityDMapper extends MppBaseMapper<RStatIntegrityD> {


    /**
     * 获取监测点数据完整性
     * @author cdf
     * @date 2023/3/29
     */
    List<LineDataIntegrity> getLineIntegrityRate(@Param("lineIds")List<String> lineIds,@Param("startTime")String startTime,@Param("endTime")String endTime);

    /***
     * 监测点完整性
     * @author wr
     * @date 2023-04-03 10:10
     * @param param
     * @return List<OnlineRate>
     */
    List<RStatIntegrityVO> getOnIntegrityByIds(@Param("param") OnlineRateParam param);

    List<RStatIntegrityVO> getOnIntegrityByIdsAndTime (@Param("list")List<String> lineIds,@Param("startTime")String startTime,@Param("endTime")String endTime);

    /**
     * @Description: 通过监测点集合查询总监测点数据完整性
     * @param param
     * @return: java.lang.Float
     * @Author: wr
     * @Date: 2024/1/8 14:01
     */
    Float selectTotalIntegrityByLineIds(@Param("param") LineBaseQueryParam param);

    /**
     * 获取监测点数据完整性
     * @author xy
     * @date 2025/11/25
     */
    List<RStatIntegrityVO> getLineIntegrityRateInfo(@Param("lineIds")List<String> lineIds,@Param("startTime")String startTime,@Param("endTime")String endTime);

    /**
     * 获取监测点数据完整性为0的数据
     * @author xy
     * @date 2025/12/10
     */
    List<OnlineMonitorVo> getNoData(@Param("lineIds")List<String> lineIds, @Param("startTime")String startTime, @Param("endTime")String endTime);
}
