/**
 * 
 */
package com.huatek.busi.service;

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

import com.github.pagehelper.PageInfo;
import com.huatek.busi.common.SiteConstants.ExternalTypeEnum;
import com.huatek.busi.common.SiteConstants.SiteTreeEnum;
import com.huatek.busi.dto.BusiSensorDto;
import com.huatek.busi.dto.BusiSensorQueryParamDto;
import com.huatek.busi.vo.BusiSensorVo;

/**
  * @ClassName: BusiSensorService
  * @FullClassPath: com.huatek.busi.service.BusiSensorService
  * @Description: 传感器服务.
  * @author: Arno
  * @date: Jul 18, 2019 3:25:25 PM
  * @version: 1.0
  */

public interface BusiSensorService {
    /** 
	* @Title: page 
	* @Description: 分页 
	* @createDate: Jul 18, 2019 3:27:03 PM
	* @param   
	* @return   PageInfo<BusiSensorVo>    
	* @throws 
	*/
	Map<String, Object> page(BusiSensorDto busiSensorDto);
	
	/** 
	* @Title: add 
	* @Description: 新增传感器 
	* @createDate: Jul 19, 2019 1:35:32 PM
	* @param   
	* @return   boolean    
	* @throws 
	*/ 
	boolean add(BusiSensorVo busiSensorVo);
	
	/** 
	* @Title: update 
	* @Description: 修改传感器 
	* @createDate: Jul 19, 2019 1:35:44 PM
	* @param   
	* @return   boolean    
	* @throws 
	*/ 
	boolean update(String token,BusiSensorVo busiSensorVo);
	
	/** 
	* @Title: delete 
	* @Description: 删除传感器 
	* @createDate: Jul 19, 2019 1:35:57 PM
	* @param    ids
	* @return   boolean    
	* @throws 
	*/ 
	boolean delete(String ids, String  equipmentType);

    /**
     * 获取传感器相关信息
     * 
     * @param type
     *            类型(外挂设备类型)
     * @param sensorCode
     *            传感器编码
     * @return BusiSensorVo
     */
    BusiSensorVo getBusiSensorVo(ExternalTypeEnum type, String sensorCode);

    /**
     * 获取传感器相关信息
     * 
     * @param siteTreeEnum
     *            站点树主设备类型
     * @param sensorCode
     *            传感器编码
     * @return BusiSensorVo
     */
    BusiSensorVo getBusiSensorVo(SiteTreeEnum siteTreeEnum, String sensorCode);
    BusiSensorVo getBusiSensorVoById(SiteTreeEnum siteTreeEnum, String id);

    List<BusiSensorVo> querySensorByEquipMentIdAndType(String equipmentId,String type);
    List<BusiSensorVo> findSensorList(ExternalTypeEnum type, String equipmentId);
    List<BusiSensorVo> findSensorList(SiteTreeEnum siteTreeEnum, String equipmentId);
    List<BusiSensorVo> findSensorList(SiteTreeEnum siteTreeEnum, String[] equipmentType);
    
    List<BusiSensorVo> findSensorList(SiteTreeEnum siteTreeEnum, BusiSensorQueryParamDto param);
    
    
    public int findSensorCount(String externalType,String equipmentType);
}
