package com.huatek.busi.mapper.curve;

import java.time.LocalDateTime;
import java.util.List;

import com.huatek.busi.dto.curve.CircleCurveSensorRequestDto;
import com.huatek.busi.entity.BusiGeneratorAmpl;
import com.huatek.busi.vo.BusiGeneratorAmplBaiDuVo;
import org.apache.ibatis.annotations.Param;

import com.huatek.busi.dto.curve.BaseCurveQueryDto;
import com.huatek.busi.dto.curve.PointItemDto;
import com.huatek.busi.vo.curve.PointItemVo;

/**
 * 折线图定时任务调用方法抽象
 * 
 * @author anker_cheng
 * @date 2019/09/06
 */
public interface BaseCurveSensorMapper {

    /**
     * 获取所有的传感器编码
     * 
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return
     */
    List<BaseCurveQueryDto> findSensorCodeList(@Param("startTime") LocalDateTime startTime,
        @Param("endTime") LocalDateTime endTime);

    /**
     * 获取生成曲线的点
     * 
     * @param baseCurveDto
     * @param subType
     *            子类型——曲线类型
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return
     */
    List<PointItemVo> findDaylyPointList(@Param("dto") BaseCurveQueryDto baseCurveDto, @Param("subType") String subType,
        @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);

    /**
     * 获取某一个传感器一段时间内某个数据的统计信息
     * 
     * @param param
     * @return count统计、total求和、min最小值、max最大值
     */
    PointItemDto getDaylyPointStatistics(BaseCurveQueryDto param);
}
