package com.huatek.busi.service.curve;

import java.time.LocalDate;
import java.util.List;

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

/**
 * sensor折线图接口定义
 * 
 * @author anker_cheng
 * @date 2019/08/30
 */
public interface BaseCurveSensorService extends ParameterizedTypeService{

    /**
     * 每天显示的点个数
     * 
     * @return
     */
    default int pointCountPerDay() {
        return 6;
    }

    /**
     * 获取一天的所有sensor列表
     * 
     * @param day
     *            日期
     * @return
     */
    List<BaseCurveQueryDto> findSensorCodeList(LocalDate day);

    /**
     * 获取一天的数据
     * 
     * @param sensorCode
     *            传感器编码
     * @param day
     *            日期
     * @return
     */
    List<PointItemVo> findDaylyPointList(BaseCurveQueryDto baseCurve, LocalDate day, String subType);

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