package com.huatek.busi.service;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.dto.BusiEvaMonitorConfigDto;
import com.huatek.busi.vo.BusiEvaMonitorConfigVo;
import com.huatek.busi.vo.BusiEvaMonitorEquipmentVo;
import com.huatek.busi.vo.BusiEvaMonitorRefVo;
import com.huatek.busi.vo.BusiEvaMonitorUnitIndicatorsVo;
import com.huatek.busi.vo.BusiEvaMonitorUnitVo;
import com.huatek.busi.vo.BusiSensorVo;

/**
 * 考评指标配置 Service
 *
 * @author anker_cheng
 * @date Jul 23, 2019 9:50:32 AM
 */
public interface BusiEvaMonitorConfigService {

    /**
     * 获取监测设备(类型)名称列表
     * 
     * @return
     */
    List<BusiEvaMonitorEquipmentVo> findBusiEvaMonitorEquipmentList();

    /**
     * 获取监测单元列表
     * 
     * @param equipTypeId
     *            监测设备（类型）ID
     * @return
     */
    List<BusiEvaMonitorUnitVo> findBusiEvaMonitorUnitList(String equipTypeId);

    /**
     * 获取单元考核指标列表
     * 
     * @param unitId
     *            监测单元
     * @return
     */
    List<BusiEvaMonitorUnitIndicatorsVo> findBusiEvaMonitorUnitIndicators(String unitId);

    /**
     * 获取监测单元下的传感器列表
     * 
     * @param unitId
     *            监测单元
     * @return 传感器列表{@code BusiEvaSensorVo}
     */
    List<BusiSensorVo> findSensorList(String evaMonitorEquipmentTypeId, String evaMonitorUnitId);
//
//    /**
//     * 查询sensorId配置的考评指标
//     * 
//     * @param sensorId
//     *            传感器ID
//     * @return
//     */
//    List<String> selectShowAttr(String sensorId);

    /**
     * 获取传感器编码配置的考评指标
     * 
     * @param sensorCode
     *            传感器编码
     * @return 考评指标
     */
    List<BusiEvaMonitorUnitIndicatorsVo> findIndicatorsBySensorCode(String sensorCode);

    /**
     * 分页查找查找 考评指标配置
     *
     * @param busiEvaMonitorConfigDto
     *            考评指标配置Dto
     * @return PageInfo<BusiEvaMonitorConfigVo> 考评指标配置List
     */
    PageInfo<BusiEvaMonitorConfigVo> findBusiEvaMonitorConfigPage(BusiEvaMonitorConfigDto busiEvaMonitorConfigDto);

    /**
     * 通过id查找 考评指标配置
     *
     * @param id
     *            主键
     * @return BusiEvaMonitorConfig 考评指标配置
     */
    BusiEvaMonitorConfigVo findBusiEvaMonitorConfigVo(String id);

    /**
     * 删除 考评指标配置
     *
     * @param token
     *            token
     * @param ids
     *            考评指标配置ID数组
     * @return int 影响的行数
     */
    int deleteBusiEvaMonitorConfig(String token, String[] ids);

    int saveOrUpdate(String token, BusiEvaMonitorConfigDto busiEvaMonitorConfigDto);
    
    /**
     * 导出考评指标配置
     *
     * @param busiEvaMonitorConfigDto 考评指标配置Dto
     * @return Map<String,Object>
     */
    Map<String,Object> exportBusiEvaMonitorConfig(BusiEvaMonitorConfigDto busiEvaMonitorConfigDto);
    
    /**
     * 获取监测单元
     * 
     * @param equipmentType 外挂设备类型
     * @param type  主设备分类(大类;1：变压器 2:GIS 3:测温 4：避雷器)
     * @return
     */
   BusiEvaMonitorUnitVo findBusiEvaMonitorUnit(String equipmentType,String type);
   
   /**
    * 获取考核单元与考核指标关系List
    * @params unitId 监测单元ID
    */
   List<BusiEvaMonitorRefVo> findBusiEvaMonitorRefList(String unitId,String phase);
   
   /**
    * 获取传感器考核指标List
    * @params sensorId 传感器编号
    */
   List<BusiEvaMonitorUnitIndicatorsVo> findBusiEvaMonitorUnitIndicatorsList(String sensorId);
   
   /**
    * 删除考评指标
    */
   int deleteBusiEvaMonitorConfig(String sensorId);
   
   
}
