package com.yeejoin.amos.boot.module.jxiop.biz.mapper2;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.FullViewRecallDataDTO;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanHealthIndexDto;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthIndex;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanHealthLevel;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanWarningRecord;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvWarningRecord;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 *  Mapper 接口
 *
 * @author system_generator
 * @date 2023-08-15
 */
public interface IdxBizFanHealthIndexMapper extends BaseMapper<IdxBizFanHealthIndex> {

    BigDecimal getHealthScoreInfo(@Param("areaCode") String areaCode, @Param("stationCode") String stationCode);

    BigDecimal getHealthScoreInfoByStation(@Param("stationCode") String stationCode, @Param("tableName") String tableName);


    List<Map<String, Object>> getHealthListInfo(@Param("areaCode") String areaCode, @Param("stationCode") String stationCode);

    List<Map<String, Object>> getAllEquipAlarmInfo(@Param("tableName") String tableName);

    List<Map<String, Object>> getHealthInfoByArea();

    List<Map<String, Object>> getAllEquipAlarmInfoByStation();


    List<Map<String, Object>> getHealthInfoByStation(@Param("areaCode") String areaCode);

    List<Map<String, Object>> equipWarningRadarMap(@Param("stationCode") String stationCode);

    List<Map<String, Object>> getAllEquipAlarmInfoAnalysisByStationType(@Param("tableName") String tableName,
                                                                        @Param("areaCode") String areaCode,
                                                                        @Param("stationType") String stationType);

    List<Map<String, Object>> getAllEquipAlarmInfoAnalysisByArea(@Param("areaCode") String areaCode);

    List<Map<String, Object>> getSubSystemInfo(@Param("equipmentName") String equipmentName, @Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getFanInfoByPage(@Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getFanHealthInfoList(@Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getSumSystemListByEquipment(@Param("gatewayId") String gatewayId, @Param("equipmentName") String equipmentName);

    List<Map<String, Object>> getPointNameListBySumSystem(@Param("gatewayId") String gatewayId, @Param("subSystem") String subSystem);


    List<Map<String, Object>> getHealthInfoBySubSystem(@Param("subSystem") String subSystem, @Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getWarningInfoBySubSystem(@Param("subSystem") String subSystem, @Param("gatewayId") String gatewayId);




    List<Map<String, Object>> getPvInfoByPage(@Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getPvHealthInfoList(@Param("gatewayId") String gatewayId);



    List<Map<String, Object>> getPvSubSystemInfo(@Param("subarray") String subarray, @Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getPvSumSystemListByEquipment(@Param("gatewayId") String gatewayId, @Param("subarray") String subarray);





    List<Map<String, Object>> getPvHealthInfoBySubSystem(@Param("equipmentName") String equipmentName, @Param("gatewayId") String gatewayId);
    List<Map<String, Object>> getPvWarningInfoBySubSystem(@Param("equipmentName") String equipmentName, @Param("gatewayId") String gatewayId);

    List<Map<String, Object>> getPvPointNameListBySumSystem(@Param("gatewayId") String gatewayId, @Param("equipmentName") String equipmentName);



    String getPointNameByIndexAddress(@Param("varDesc") String varDesc,
                                      @Param("tableName") String tableName);

    List<FullViewRecallDataDTO> getFullViewRecall();

    List<Map<String, Object>> getStationIndexInfo();

    List<Map<String, Object>> getEquipmentIndexInfo();

    List<Map<String, Object>> getSubSystemIndexInfo();

    List<Map<String, Object>> getPointNameIndexInfo();


    List<IdxBizFanHealthLevel> getHealthLevelInfoList();


    List<String> getAddressInfo();

    List<Map<String,Object>>  queryForLeftTableList(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME,Integer current,Integer size);

    int queryForLeftTableListCount(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME);

    Map<String,Object> queryForLeftTableListNum(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME);

    List<Map<String,Object>>  queryForLeftTableListByPoint(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME,String POINTNAME,Integer current,Integer size);

    List<Map<String,Object>>  selectPointByANALYSISTYPE(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME,String POINTNAME,String startTime,String endTime);
    Map<String,Object> getFanEquipStatusByStation(String STATION);

    int queryForLeftTableListByPointCount(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME,String POINTNAME);

    Map<String,Object> queryForLeftTableListByPointNum(String STATION, String HEALTHLEVEL,String EQUIPMENTNAME,String POINTNAME);

    List<IdxBizFanWarningRecord> warningData(String STATION, String SUBARRAY, String EQUIPMENTNAME);
    Integer pointNum(String STATION, String SUBARRAY, String EQUIPMENTNAME);

}
