package com.njcn.harmonic.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.RStatLimitTargetCountVO;
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 合格率统计日表(是否越限) Mapper 接口
 * </p>
 *
 * @author wr
 * @since 2023-04-23
 */
public interface RStatLimitTargetDMapper extends BaseMapper<RStatLimitTargetDPO> {

    /**
     * 谐波电压查询
     * @return
     */
    List<RStatLimitTargetDPO> getSumV(@Param("ids") List<String> list,
                             @Param("startTime") String startTime,
                             @Param("endTime") String endTime);

    /**
     * 谐波电压相加查询
     * @return
     */
    Integer getSumAddV(@Param("ids") List<String> list,
                                      @Param("startTime") String startTime,
                                      @Param("endTime") String endTime);

    /**
     * 谐波电流查询
     * @return
     */
    List<RStatLimitTargetDPO> getSumI(@Param("ids") List<String> list,
                                      @Param("startTime") String startTime,
                                      @Param("endTime") String endTime);

    /**
     * 谐波电流相加查询
     * @return
     */
    Integer getSumAddI(@Param("ids") List<String> list,
                                      @Param("startTime") String startTime,
                                      @Param("endTime") String endTime);

    /**
     * 获取越线监测点
     * @return
     */
    List<String> getLinesTarget(@Param("ids") List<String> ids,
                                   @Param("startTime") String startTime,
                                   @Param("endTime") String endTime);

    List<RStatLimitTargetDPO> getSumTarget(@Param("ids") List<String> ids,
                                @Param("startTime") String startTime,
                                @Param("endTime") String endTime);

    List<RStatLimitTargetVO> getSumTargetDetails(@Param("ids") List<String> ids,
                                          @Param("startTime") String startTime,
                                          @Param("endTime") String endTime);

    List<RStatLimitTargetVO> getSumTargetDetails2(@Param("ids") List<String> ids,
                                                 @Param("startTime") String startTime,
                                                 @Param("endTime") String endTime);

    List<RStatLimitTargetCountVO> getSumTargetCountDayes(@Param("ids") List<String> ids,
                                                         @Param("startTime") String startTime,
                                                         @Param("endTime") String endTime);

    /**
     * 获取谐波电压越线监测点
     *
     * @return
     */
    List<String> getLinesHarmTarget(@Param("ids") List<String> ids,
                                    @Param("startTime") String startTime,
                                    @Param("endTime") String endTime);

}
