package com.xzzn.ems.service;

import java.util.List;

import com.xzzn.ems.domain.EmsPointMatch;
import com.xzzn.ems.domain.vo.DevicePointMatchExportVo;
import com.xzzn.ems.domain.vo.DevicePointMatchVo;
import com.xzzn.ems.domain.vo.ImportPointDataRequest;
import com.xzzn.ems.domain.vo.ImportPointTemplateRequest;

/**
 * 点位匹配Service接口
 *
 * @author xzzn
 * @date 2025-11-04
 */
public interface IEmsPointMatchService
{
    /**
     * 查询点位匹配列表
     *
     * @param emsPointMatch 点位匹配
     * @return 点位匹配集合
     */
    public List<DevicePointMatchExportVo> selectEmsPointMatchList(EmsPointMatch emsPointMatch);


    /**
     * 上传点位清单
     * @param userList
     * @param updateSupport
     * @param operName
     * @return
     */
    public String importPoint(List<EmsPointMatch> userList, boolean updateSupport, String operName);

    /**
     * 上传设备的点位清单
     * @param request
     * @return
     * @throws Exception
     */
    public List<DevicePointMatchVo> importDataByDevice(ImportPointDataRequest request, String operName);

    /**
     * 按站点导入模板点位数据
     * @param request 请求参数
     * @param operName 操作人
     * @return 导入结果信息
     */
    public String importTemplateBySite(ImportPointTemplateRequest request, String operName);

    /**
     * 查询点位配置列表
     *
     * @param emsPointMatch 点位配置
     * @return 点位配置列表
     */
    public List<EmsPointMatch> selectPointMatchConfigList(EmsPointMatch emsPointMatch);

    /**
     * 查询点位配置详情
     *
     * @param id 主键ID
     * @return 点位配置
     */
    public EmsPointMatch selectPointMatchById(Long id);

    /**
     * 新增点位配置
     *
     * @param emsPointMatch 点位配置
     * @return 结果
     */
    public int insertPointMatch(EmsPointMatch emsPointMatch);

    /**
     * 修改点位配置
     *
     * @param emsPointMatch 点位配置
     * @return 结果
     */
    public int updatePointMatch(EmsPointMatch emsPointMatch);

    /**
     * 删除点位配置
     *
     * @param ids 主键集合
     * @return 结果
     */
    public int deletePointMatchByIds(Long[] ids);
}
