package com.huatek.busi.service.curve;

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

import com.huatek.busi.dto.CurveSensorEntityDto;
import com.huatek.busi.dto.curve.BaseCurveQueryDto;
import com.huatek.busi.dto.curve.CircleCurveSensorRequestDto;
import com.huatek.busi.dto.curve.CurveSensorRequestDto;
import com.huatek.busi.dto.monitor.BusiOnlineMonitorTrendDataDto;
import com.huatek.busi.entity.CurveSensorEntity;
import com.huatek.busi.vo.curve.PointItemVo;
import com.huatek.busi.vo.echarts.CirCleChartVo;
import com.huatek.busi.vo.echarts.CircleEchartLineDataVo;
import com.huatek.busi.vo.echarts.EchartLineDataVo;

/**
 * sensor曲线图，一天一个点 Service
 *
 * @author anker_cheng
 * @date Aug 30, 2019 1:43:27 PM
 */
public interface CurveSensorEntityService {

    /**
     * 保存折线图的点
     * 
     * @param baseCurve
     * @param day
     *            日期
     * @param subType
     *            子类型，一个子类型代表一条曲线
     * @param daylyPointList
     *            数据列表
     */
    void doExecute(BaseCurveQueryDto baseCurve, LocalDate day, String subType, List<PointItemVo> daylyPointList);

    CurveSensorEntity saveCurveSensorEntity(CurveSensorEntityDto curveSensorEntityDto);

    void saveCurveSensorPointEntity(CurveSensorEntity entity, List<PointItemVo> daylyPointList);

    /**
     * 获取变压器工作状态图数据
     * 
     * @param param
     *            参数
     * @return
     */
    EchartLineDataVo getTransformerRunStateData(CurveSensorRequestDto param);

    /**
     * EchartDataVo 获取历史数据
     * 
     * @param param
     *            CurveSensorRequestDto 参数
     * @return
     */
    EchartLineDataVo getHistoryData(CurveSensorRequestDto param);

    /**
     * EchartDataVo 获取趋势图数据
     * 
     * @param param
     *            CurveSensorRequestDto 参数
     * @return
     */
    EchartLineDataVo getTrendData(CurveSensorRequestDto param);

    /**
     * 在线监测数据获取趋势图
     * 
     * @param busiOnlineMonitorDataDto
     *            参数
     * @return
     */
    EchartLineDataVo getTrendData(BusiOnlineMonitorTrendDataDto busiOnlineMonitorDataDto);

}