package com.nantian.cloud.dbcapp.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nantian.cloud.dbcapp.vo.ApplyRecord;
import com.nantian.cloud.dbcapp.vo.EnterpriseEnergyDataVo;
import com.nantian.cloud.dbcapp.vo.ExceptionInfoVo;
import com.nantian.sc.cloud.common.core.util.R;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface EnterpriseEnergyDataService{

    //实时库数据导入energy_record库
    R getRealTime();

    //获取当月应送未送企业名单（含实时库）
    R noEnergyDataExcel(HttpServletResponse response, String epcStr, String type, String statDate, String sendDate) throws IOException ;

    //获取单月应送未送名单明细（含实时库）
    R noEnergyDataInfoExcel(HttpServletResponse response, String epcStr, String type, String statDate) throws IOException;

    //查询企业采集数据上传情况
    R energyDataByEpc(String epc, String statDate, String sendDate, String type);

    //查询企业采集数据
    R energyPage(Page page, String type, EnterpriseEnergyDataVo energyDataVo, String start, String end);

    //企业没有传数据的采集点
    R noDataCollectByEpc(String epc, String statDate);

    //查询企业综合能耗、是否超出耗能级别表
    R enterpriseTceExcel(HttpServletResponse response, String year, String epcStr, String type) throws IOException ;

    //企业指标明细表
    R enterpriseQuotaDetailExcel(HttpServletResponse response, String year, String epcStr, String type) throws IOException;

    //企业电力消耗明细
    R enterpriseElectricExcel(HttpServletResponse response, String year, String epcStr) throws IOException;

    //企业用能数据传送明细
    R enterpriseEnergyExcel(HttpServletResponse response, String year, String epcStr, String energyCode) throws IOException;

    //处理波动异常（多数据源修改）
    //R updateWaveException(ExceptionInfoVo data);

    //处理传输异常（数据补录至实时库）
    //R updateTransException(ExceptionInfoVo data);

    //企业数据补录至实时主库
    //R insertDataMaster(ExceptionInfoVo data);

    //企业删改数据
    R modifyData(List<ApplyRecord> applyRecordList);

    //异常处理
    //R updateException(List<ExceptionInfoVo> datas);

    //获取企业一级电力数据明细（按天统计）
    R enterpriseElectricDetail(String year);

    //能源计量审查信息推到计量管理与首页
    R etlGaugesManage(String planId, String epc, String type);

    //批量确认异常数据无误
    R confirmException(List<ExceptionInfoVo> data);

    //批量处理波动异常（提交政府审批）
    R updateWaveExceptionList(List<ExceptionInfoVo> data);

    //更新企业中间表
    void insertEnterpriseTmp();
}
