package com.njcn.influx.service;

import com.njcn.influx.pojo.dto.StatisticalDataDTO;

import java.util.List;

/**
 * Description:
 * Date: 2023/6/2  16:00【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
public interface CommonService {

    /**
     * 根据条件获取监测点数据
     *
     * @param lineId     监测点Id
     * @param tableName  表名
     * @param columnName 字段名
     * @param phasic     相别
     * @param dataType   数据类型
     * @return
     */
    StatisticalDataDTO getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType, String clDId);

    /**
     * 根据条件获取监测点数据
     *
     * @param lineIds    监测点Id
     * @param tableName  表名
     * @param columnName 字段名
     * @param phasic     相别
     * @param dataType   数据类型
     */
    List<StatisticalDataDTO> getDeviceRtData(List<String> lineIds, String tableName, String columnName, String phasic, String dataType,String process);

    /**
     * @param lineIds    监测点Id
     * @param tableName  表名
     * @param columnName 字段名
     * @param phasic     相别
     * @param dataType   数据类型
     * @param startTime  start time
     * @param endTime    end time
     * @Description: getDeviceRtDataByTime
     * @return: java.util.List<com.njcn.influx.pojo.dto.StatisticalDataDTO>
     * @Author: clam
     * @Date: 2023/6/13
     */
    List<StatisticalDataDTO> getDeviceRtDataByTime(List<String> lineIds, String tableName, String columnName, String phasic, String dataType, String startTime, String endTime,String process);

    /**
     * 根据条件获取监测点时间范围内的最大最小值
     *
     * @param lineId     监测点Id
     * @param tableName  表名
     * @param columnName 字段名
     */
    StatisticalDataDTO getLineHistoryData(String lineId, String tableName, String columnName, String startTime, String endTime, String clDId);

    /***
     * 当表名、字段、统计方式均不确定时，代码拼接好sql
     * @author hongawen
     * @date 2023/7/14 15:23
     * @param sql influx-sql语句
     * @return StatisticalDataDTO
     */
    StatisticalDataDTO selectBySql(StringBuilder sql);
    /*获取各个模块温度数据*/

    /**
     *
     * @param lineId
     * @param tableName apf_data
     * @param columnName Apf_Temp_Env
     * @return
     */
    List<StatisticalDataDTO> getTopTemperature(String lineId,String tableName, String columnName,String process);
}
