package com.xzzn.ems.mapper;

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

import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.domain.vo.BatteryClusterDataDetailVo;
import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
import com.xzzn.ems.domain.vo.DateSearchRequest;
import org.apache.ibatis.annotations.Param;

/**
 * 单体电池实时数据Mapper接口
 *
 * @author xzzn
 * @date 2025-06-19
 */
public interface EmsBatteryDataMapper
{
    /**
     * 查询单体电池实时数据
     *
     * @param id 单体电池实时数据主键
     * @return 单体电池实时数据
     */
    public EmsBatteryData selectEmsBatteryDataById(Long id);

    /**
     * 查询单体电池实时数据列表
     *
     * @param emsBatteryData 单体电池实时数据
     * @return 单体电池实时数据集合
     */
    public List<EmsBatteryData> selectEmsBatteryDataList(EmsBatteryData emsBatteryData);

    /**
     * 新增单体电池实时数据
     *
     * @param emsBatteryData 单体电池实时数据
     * @return 结果
     */
    public int insertEmsBatteryData(EmsBatteryData emsBatteryData);

    /**
     * 修改单体电池实时数据
     *
     * @param emsBatteryData 单体电池实时数据
     * @return 结果
     */
    public int updateEmsBatteryData(EmsBatteryData emsBatteryData);

    /**
     * 删除单体电池实时数据
     *
     * @param id 单体电池实时数据主键
     * @return 结果
     */
    public int deleteEmsBatteryDataById(Long id);

    /**
     * 批量删除单体电池实时数据
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsBatteryDataByIds(Long[] ids);

    /**
     * 根据电池簇设备id获取下面所有单体电池
     * @param clusterDeviceId
     * @return
     */
    public List<BatteryDataStatsListVo> getAllBatteryDataByClusterId(@Param("clusterDeviceId") String clusterDeviceId,@Param("siteId") String siteId);


    int insertEmsBatteryDataList(List<EmsBatteryData> emsBatteryDataList);

}
