package cn.cecep.talroad.service;

import cn.cecep.talroad.vo.*;
import cn.cecep.talroad.vo.homepage.*;
import cn.cecep.talroad.vo.query.EffectiveMonitoringRateQuery;
import cn.cecep.talroad.vo.query.analysis.MonitoringPointWarningDetailsQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * 地图-企业点位坐标
 *
 * @author szhpt
 * @date 2023-01-10*/
public interface HomePageMapService
{
    HpmCompanyOverviewVo selectCompanyOverview(String industry,String regionCode);

    HpmMeriRatingOverviewVo selectMeritRatingOverview(String industry,String regionCode);

    HpmEnvironmentOverviewVo selectOnvironmentOverview(String industry,String regionCode);

    HpmEmissionTrackingOverviewVo selectEmissionTrackingOverview(String emissionType,String regionCode);

    HpmEmissionRatioOverviewVo selectEmissionRatioOverview(String regionCode);

    HpmEnterprisePopVo selectEnterpriseMapPop(String factoryId);

    List<ImportPollutionDischargeVo> selectImportPollutionDischarge(String regionCode);

    EnvironmentCreditPropVo selectProportionOfEcologicalEnvironmentCredit();

    DistributionOfMajorEmittersVo selectRankingStat(String pollutantType,String regionCode);

    EChartsVO enterpriseMapPopEmissionTrends(String factoryId, String dataType, String monitoringStartTime, String monitoringEndTime);

    EChartsVO selectEnterpriseMapPopYield(String factoryId, String dataType, String startTime, String endTime);

    EChartsVO emissionTrends(String factoryId, String selectType, String dataType, String monitoringStartTime, String monitoringEndTime);

    Boolean cleanRedisByCacheNames(String redisKey);

    OverviewOnlineMonitorsVo overviewOnlineMonitors();


    EChartsVO monitoringPointWarning(String type);

    IPage<MonitoringPointWarningDetailsVo> monitoringPointWarningDetails(MonitoringPointWarningDetailsQuery query);

    List<MonitoringPointWarningDetailsVo> exportMonitoringPointWarningDetails(MonitoringPointWarningDetailsQuery query);

    List<EnterpriseIssuesTopVo> enterpriseIssuesTop();

    EChartsVO effectiveMonitoringRate(EffectiveMonitoringRateQuery query);

    List<RegionalOnlineMonitoringVo> regionalOnlineMonitoring(EffectiveMonitoringRateQuery query);

    Boolean initializeBasDeviceParamAll(String[] paramKeys);

    void findOrInsertEL(String factoryId,String paramKey,String datetype);
    void findOrInsertOnLine(String factoryId,String paramKey,String datetype);
    void findOrInsertInorganization(String factoryId,String paramKey,String datetype);
    
    List<HpmEmissionTrackingMonVo> getEmissionTrackingMon(String factoryId, String monitoringPointId, String startTime, String endTime);

    BMainEmissionAndstatusScaleVo selectEmissionAndstatusScale(String regionCode);
}
