package com.xzzn.ems.mapper;

import java.util.List;
import com.xzzn.ems.domain.EmsSiteSetting;
import com.xzzn.ems.domain.vo.SiteDeviceListVo;
import com.xzzn.ems.domain.vo.SiteTotalInfoVo;
import org.apache.ibatis.annotations.Param;

/**
 * 站点Mapper接口
 *
 * @author xzzn
 * @date 2025-06-20
 */
public interface EmsSiteSettingMapper
{
    /**
     * 查询站点
     *
     * @param id 站点主键
     * @return 站点
     */
    public EmsSiteSetting selectEmsSiteSettingById(Long id);

    /**
     * 查询站点列表
     *
     * @param emsSiteSetting 站点
     * @return 站点集合
     */
    public List<EmsSiteSetting> selectEmsSiteSettingList(EmsSiteSetting emsSiteSetting);

    /**
     * 新增站点
     *
     * @param emsSiteSetting 站点
     * @return 结果
     */
    public int insertEmsSiteSetting(EmsSiteSetting emsSiteSetting);

    /**
     * 修改站点
     *
     * @param emsSiteSetting 站点
     * @return 结果
     */
    public int updateEmsSiteSetting(EmsSiteSetting emsSiteSetting);

    /**
     * 删除站点
     *
     * @param id 站点主键
     * @return 结果
     */
    public int deleteEmsSiteSettingById(Long id);

    /**
     * 批量删除站点
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsSiteSettingByIds(Long[] ids);

    /**
     * 获取站点总信息
     * @return
     */
    public SiteTotalInfoVo getSiteTotalInfo();

    /**
     * 根据站点id获取站点信息
     * @param siteId
     * @return
     */
    public EmsSiteSetting selectEmsSiteSettingBySiteId(String siteId);


    /**
     * 根据站点名称和投运时间获取站点列表
     * @param siteName
     * @param startTime
     * @param endTime
     * @return
     */
    public List<EmsSiteSetting> getSiteInfoList(@Param("siteName")String siteName, @Param("startTime")String startTime, @Param("endTime")String endTime);

    /**
     * 获取站点的设备列表
     * @return
     */
    public List<SiteDeviceListVo> getAllSiteDeviceList(@Param("siteId") String siteId, @Param("deviceCategory") String deviceCategory);


    public List<SiteDeviceListVo> getAllSiteDeviceListNoDisp(@Param("siteId") String siteId, @Param("deviceCategory") String deviceCategory);

    public List<String> getAllSiteId();
}
