package org.dromara.ems.base.service;

import org.dromara.ems.base.domain.EmsBaseMonitorInfo;
import org.dromara.ems.base.domain.TreeSelects;

import java.util.List;

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

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

    /**
     * 根据设备编号查询本设备能源类型
     * @param monitorCode
     * @return
     */
    public String selectEmsBaseMonitorTypeByMonitorCode(String monitorCode);

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

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

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

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

    /**
     * 查询计量设备信息下拉树结构
     * */
    List<TreeSelects> selectBaseMonitorInfoTreeList(EmsBaseMonitorInfo baseMonitorInfo);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param
     * @return 下拉树结构列表
     */
    public List<TreeSelects> buildMonitorInfoTreeSelect(List<EmsBaseMonitorInfo> baseMonitorInfruoyi);

    /**
     * 构建前端所需要树结构
     *
     * @param
     * @return 树结构列表
     */
    public List<EmsBaseMonitorInfo> buildMonitorInfoTree(List<EmsBaseMonitorInfo> baseMonitorInfruoyi);
}
