package com.ruoyi.asset.service;

import java.util.List;
import com.ruoyi.asset.domain.AmsRfidTag;

/**
 * RFID标签Service接口
 * 
 * @author Yangk
 * @date 2026-06-05
 */
public interface IAmsRfidTagService 
{
    /**
     * 查询RFID标签
     * 
     * @param tagId RFID标签主键
     * @return RFID标签
     */
    public AmsRfidTag selectAmsRfidTagByTagId(Long tagId);

    /**
     * 查询RFID标签列表
     * 
     * @param amsRfidTag RFID标签
     * @return RFID标签集合
     */
    public List<AmsRfidTag> selectAmsRfidTagList(AmsRfidTag amsRfidTag);

    /**
     * 校验标签编码是否唯一
     *
     * @param amsRfidTag RFID标签
     * @return 结果
     */
    public boolean checkTagCodeUnique(AmsRfidTag amsRfidTag);

    /**
     * 校验EPC编码是否唯一
     *
     * @param amsRfidTag RFID标签
     * @return 结果
     */
    public boolean checkEpcCodeUnique(AmsRfidTag amsRfidTag);

    /**
     * 新增RFID标签
     * 
     * @param amsRfidTag RFID标签
     * @return 结果
     */
    public int insertAmsRfidTag(AmsRfidTag amsRfidTag);

    /**
     * 修改RFID标签
     * 
     * @param amsRfidTag RFID标签
     * @return 结果
     */
    public int updateAmsRfidTag(AmsRfidTag amsRfidTag);

    /**
     * 作废RFID标签
     *
     * @param tagId RFID标签主键
     * @param operName 操作用户
     * @return 结果
     */
    public int voidAmsRfidTagByTagId(Long tagId, String operName);

    /**
     * 解绑RFID标签
     *
     * @param tagId RFID标签主键
     * @param operUserId 操作用户ID
     * @param operUserName 操作用户名称
     * @param operName 操作登录账号
     * @return 结果
     */
    public int unbindAmsRfidTagByTagId(Long tagId, Long operUserId, String operUserName, String operName);

    /**
     * 批量删除RFID标签
     * 
     * @param tagIds 需要删除的RFID标签主键集合
     * @return 结果
     */
    public int deleteAmsRfidTagByTagIds(String tagIds);

    /**
     * 删除RFID标签信息
     * 
     * @param tagId RFID标签主键
     * @return 结果
     */
    public int deleteAmsRfidTagByTagId(Long tagId);
}
