package com.nantian.cloud.dbcapp.mapper.record;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nantian.cloud.dbcapp.entity.BigScreenModel;
import com.nantian.cloud.dbcapp.vo.BigScreenVo;
import com.nantian.cloud.dbcapp.vo.DataHomeDataVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.access.method.P;

import java.util.List;
import java.util.Map;


@Mapper
public interface DataHomeMapper {

    IPage<DataHomeDataVo> getData(Page<Object> page, @Param("regionCode") String regionCode, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeCode") String tradeCode, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    List<Map<String, String>> getTradeRanking( @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    Map<String, String> getTradeTotal( @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    //获取3年行业能耗趋势
    List<Map<String, String>> getTradeTrends( @Param("yearArr")String[] yearArr, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    //获取3年地区能耗趋势
    List<Map<String, String>> getRegionTrends(@Param("yearArr") String[] yearArr, @Param("tradeStr") String tradeStr);

    IPage<DataHomeDataVo> getElectricityData(Page<Object> page, @Param("regionCode") String regionCode, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeCode") String tradeCode, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    List<Map<String, String>> getElectricityDatas(@Param("regionCode") String regionCode, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeCode") String tradeCode, @Param("tradeType") String tradeType, @Param("type") String type, @Param("tradeStr") String tradeStr);

    //获取企业3年能耗趋势(企业能耗合计值过滤负数)
    IPage<DataHomeDataVo> getTrendsDetail(Page page, @Param("regionCode") String regionCode, @Param("yearArr") String[] yearArr, @Param("tradeCode") String tradeCode, @Param("tradeType") String tradeType, @Param("tradeStr") String tradeStr);

    List<Map<String, String>> getEnergyConsumptionRatio(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeStr") String tradeStr, @Param("energyStr") String energyStr);

    List<Map<String, String>> getEnergyConsumptionTrends(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeType") String tradeType, @Param("type") String type, @Param("tradeStr") String tradeStr, @Param("energyStr") String energyStr, @Param("list") String[] energyArr);

    IPage<DataHomeDataVo> getEnergyConsumptionDetail(Page page, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tradeType") String tradeType, @Param("tradeCode") String tradeCode, @Param("energyName") String energyName, @Param("tradeStr") String tradeStr, @Param("energyStr") String energyStr);

    List<Map<String, String>> getOverLimit(@Param("startTime") String startTime, @Param("endTime") String endTime);

    List<Map<String, String>> getOverLimitDetail(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("regionCode") String regionCode, @Param("tradeStr") String tradeStr, @Param("type") String type);
}
