package com.ruoyi.asset.service;

import java.util.List;

import cn.hutool.core.lang.tree.Tree;
import com.ruoyi.asset.domain.TbLocation;
import com.ruoyi.common.core.domain.TreeEntity;
import com.ruoyi.common.core.domain.TreeSelect;

/**
 * 所属位置Service接口
 * 
 * @author 原动力
 * @date 2023-05-15
 */
public interface ITbLocationService 
{
    /**
     * 查询所属位置
     * 
     * @param id 所属位置主键
     * @return 所属位置
     */
    public TbLocation selectTbLocationById(Long id);

    /**
     * 查询所属位置
     *
     * @param number 位置编号
     * @return 所属位置
     */
    TbLocation selectTbLocationByNumber(String number);

    List<TbLocation> selectTbLocationListByNumbers(List<String> numbers);

    /**
     * 查询所属位置列表
     * 
     * @param tbLocation 所属位置
     * @return 所属位置集合
     */
    public List<TbLocation> selectTbLocationList(TbLocation tbLocation);

    public List<TbLocation> selectTree(TbLocation tbLocation);

    public List<TreeSelect> selectTreeSelect(Long id);



    /**
     * 新增所属位置
     * 
     * @param tbLocation 所属位置
     * @return 结果
     */
    public int insertTbLocation(TbLocation tbLocation);

    /**
     * 修改所属位置
     * 
     * @param tbLocation 所属位置
     * @return 结果
     */
    public int updateTbLocation(TbLocation tbLocation);

    /**
     * 批量删除所属位置
     * 
     * @param ids 需要删除的所属位置主键集合
     * @return 结果
     */
    public int deleteTbLocationByIds(Long[] ids);

    /**
     * 删除所属位置信息
     * 
     * @param id 所属位置主键
     * @return 结果
     */
    public int deleteTbLocationById(Long id);

    /**
     * 生成位置二维码库
     */
    void createQrCodeDataByLocation(TbLocation tbLocation);

    /**
     * 查看位置二维码
     *
     * @param locationNumber 位置编码
     */
    byte[] selectQrCodeByLocationNumber(String locationNumber);

    /**
     * 下载位置二维码
     *
     * @param locationIds 位置Id集合
     * @return 临时资源路径
     */
    String downloadQrCode(List<Long> locationIds);
}
