package com.ruoyi.asset.mapper;

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

/**
 * 资产位置Mapper接口
 * 
 * @author Yangk
 * @date 2026-06-04
 */
public interface AmsAssetLocationMapper 
{
    /**
     * 查询资产位置
     * 
     * @param locationId 资产位置主键
     * @return 资产位置
     */
    public AmsAssetLocation selectAmsAssetLocationByLocationId(Long locationId);

    /**
     * 查询资产位置列表
     * 
     * @param amsAssetLocation 资产位置
     * @return 资产位置集合
     */
    public List<AmsAssetLocation> selectAmsAssetLocationList(AmsAssetLocation amsAssetLocation);

    /**
     * 根据位置编码查询资产位置
     *
     * @param locationCode 位置编码
     * @return 资产位置
     */
    public AmsAssetLocation checkLocationCodeUnique(String locationCode);

    /**
     * 统计资产位置被资产和业务记录引用的数量
     *
     * @param locationId 位置ID
     * @return 引用数量
     */
    public int countLocationReferences(Long locationId);

    /**
     * 新增资产位置
     * 
     * @param amsAssetLocation 资产位置
     * @return 结果
     */
    public int insertAmsAssetLocation(AmsAssetLocation amsAssetLocation);

    /**
     * 修改资产位置
     * 
     * @param amsAssetLocation 资产位置
     * @return 结果
     */
    public int updateAmsAssetLocation(AmsAssetLocation amsAssetLocation);

    /**
     * 删除资产位置
     * 
     * @param locationId 资产位置主键
     * @return 结果
     */
    public int deleteAmsAssetLocationByLocationId(Long locationId);

    /**
     * 批量删除资产位置
     * 
     * @param locationIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAmsAssetLocationByLocationIds(String[] locationIds);
}
