package org.dromara.ems.base.mapper;

import org.dromara.ems.base.domain.EmsBaseMonitorInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 计量设备信息Mapper接口
 * 
 * @author Yinq
 * @date 2024-05-08
 */
public interface EmsBaseMonitorInfoMapper 
{
    /**
     * 查询计量设备信息
     * 
     * @param objId 计量设备信息主键
     * @return 计量设备信息
     */
    public EmsBaseMonitorInfo selectEmsBaseMonitorInfoByObjId(Long objId);

    /**
     * 查询计量设备信息列表
     * 
     * @param emsBaseMonitorInfo 计量设备信息
     * @return 计量设备信息集合
     */
    public List<EmsBaseMonitorInfo> selectEmsBaseMonitorInfoList(EmsBaseMonitorInfo emsBaseMonitorInfo);

    /**
     * 新增计量设备信息
     * 
     * @param emsBaseMonitorInfo 计量设备信息
     * @return 结果
     */
    public int insertEmsBaseMonitorInfo(EmsBaseMonitorInfo emsBaseMonitorInfo);

    /**
     * 修改计量设备信息
     * 
     * @param emsBaseMonitorInfo 计量设备信息
     * @return 结果
     */
    public int updateEmsBaseMonitorInfo(EmsBaseMonitorInfo emsBaseMonitorInfo);

    /**
     * 删除计量设备信息
     * 
     * @param objId 计量设备信息主键
     * @return 结果
     */
    public int deleteEmsBaseMonitorInfoByObjId(Long objId);

    /**
     * 批量删除计量设备信息
     * 
     * @param objIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsBaseMonitorInfoByObjIds(Long[] objIds);

    /**
     * 根据设备编码查询本设备的能源类型
     * @param monitorCode
     * @return
     */
    public String selectEmsBaseMonitorTypeByMonitorCode(String monitorCode);
    
    /**
     * 根据设备编码列表查询设备信息
     * @param monitorCodes 设备编码列表
     * @return 设备信息列表
     */
    public List<EmsBaseMonitorInfo> selectMonitorInfoByCodes(@Param("monitorCodes") List<String> monitorCodes);
}
