package com.ruoyi.ems.service;

import com.ruoyi.ems.domain.EmsObjAttr;
import com.ruoyi.ems.domain.EmsObjAttrDto;

import java.util.List;

/**
 * 能源对象属性Service接口
 *
 * @author ruoyi
 * @date 2024-09-23
 */
public interface IEmsObjAttrService {
    /**
     * 查询能源对象属性
     *
     * @param id 能源对象属性主键
     * @return 能源对象属性
     */
    EmsObjAttr selectObjAttrById(Long id);

    /**
     * 查询能源对象属性列表
     *
     * @param objAttr 能源对象属性
     * @return 能源对象属性集合
     */
    List<EmsObjAttr> selectObjAttrList(EmsObjAttr objAttr);

    /**
     * 查询能源对象属性列表
     *
     * @param modelCode 模型编号
     * @return 能源对象属性集合
     */
    List<EmsObjAttr> selectByModelCode(String modelCode);

    /**
     * 查询能源对象属性
     *
     * @param modelCode 对象模型
     * @param objType   对象类型
     * @param objCode   对象编号
     * @return 能源对象属性集合
     */
    List<EmsObjAttrDto> selectObjAttrItem(String modelCode, Integer objType, String objCode);

    /**
     * 新增能源对象属性
     *
     * @param objAttr 能源对象属性
     * @return 结果
     */
    int insertObjAttr(EmsObjAttr objAttr);

    /**
     * 批量新增能源对象属性
     *
     * @param list 能源对象能力
     * @return 结果
     */
    int insertBatch(List<EmsObjAttr> list);

    /**
     * 修改能源对象属性
     *
     * @param objAttr 能源对象属性
     * @return 结果
     */
    int updateObjAttr(EmsObjAttr objAttr);

    /**
     * 批量删除能源对象属性
     *
     * @param ids 需要删除的能源对象属性主键集合
     * @return 结果
     */
    int deleteObjAttrByIds(Long[] ids);

    /**
     * 根据模型编号删除
     *
     * @param modelCode 模型编号
     * @return 结果
     */
    int deleteByModelCode(String modelCode);
}
