package cn.cecep.talroad.service.analysis;

import cn.cecep.talroad.domain.analysis.SRaRealTimeAnalysisCo;
import cn.cecep.talroad.vo.EChartsVO;
import cn.cecep.talroad.vo.query.analysis.SRaRealTimeAnalysisCoQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import freemarker.template.TemplateException;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

/**
 * co放散分析Service接口
 *
 * @author szhpt
 * @date 2023-03-24*/
public interface ISRaRealTimeAnalysisCoService extends IService<SRaRealTimeAnalysisCo>
{
    /**
     * 查询co放散分析列表
     *
     * @param sRaRealTimeAnalysisCo co放散分析
     * @return co放散分析集合
     */
    public List<SRaRealTimeAnalysisCo> selectSRaRealTimeAnalysisCoList(SRaRealTimeAnalysisCoQuery sRaRealTimeAnalysisCo);

    /**
     * 工序options
     * @param industryCategoryCode
     * @return
     */
    List<Map<String, Object>> pullWorkingProcedureOptions(String industryCategoryCode);

    IPage<SRaRealTimeAnalysisCo> selectSRaRealTimeAnalysisCoListPage(SRaRealTimeAnalysisCoQuery sRaRealTimeAnalysisCo);

    EChartsVO resultCurve(String deviceId, String monitoringStartTime, String monitoringEndTime);

    String analysisCurveEndTime(String deviceId, String monitoringStartTime, String monitoringEndTime);

    /**
     * 导出CO放散数据为word文档
     * @param sRaRealTimeAnalysisCo 查询条件
     * @param response 响应对象
     */
    void exportCoDataToWord(SRaRealTimeAnalysisCoQuery sRaRealTimeAnalysisCo, HttpServletResponse response) throws IOException, TemplateException, NoSuchMethodException, InvocationTargetException, IllegalAccessException;

    EChartsVO coalEmissionsChart(String deviceId, String monitoringStartTime, String monitoringEndTime);
}
