package com.bonus.bracelet.mapper;

import com.bonus.common.entity.bracelet.vo.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * BraceletMapper 手环管理
 */
@Repository(value = "BraceletMapper")
public interface BraceletMapper {

    /**
     * 手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getBraceletLists(BraceletVo data);

    /**
     * 手环箱绑定手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getShBindLists(BraceletVo data);

    /**
     * 未绑定手环列表
     * @param data
     * @return
     */
    List<BraceletVo> getShBindNoLists(BraceletVo data);

    /**
     * 手环箱管理页面手环箱列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxallLists(ShboxVo data);

    /**
     * 手环箱列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxLists(ShboxVo data);

    /**
     * 手环绑定选择列表
     * @param data
     * @return
     */
    List<ShboxVo> getShboxBindLists(ShboxVo data);

    /**
     * 获取人员管理表中领用人名称
     * @param id
     * @return
     */
    String getBraceletPersonName(int id);

    /**
     * 获取临时人员管理表中领用人名称
     * @param id
     * @return
     */
    String getDeviceLyPersonNameTemp(int id);

        /**
     * 根据手环箱id获得详细信息
     * @param shboxId
     * @return
     */
    public ShboxVo selectBoxById(Integer shboxId);


    /**
     * 根据手环箱id获得刷新详细信息
     * @param shboxId
     * @return
     */
    public ShboxVo selectBoxNewById(Integer shboxId);
//
//    /**
//     * 判断设备名称是否存在
//     *
//     * @param vo
//     * @return int
//     * @author cwchen
//     * @date 2024/7/17 14:41
//     */
//    DeviceVo isExist(DeviceVo vo);
//
    /**
     * 新增时手环编号是否重复
     * @param vo
     * @return
     */
    BraceletVo isCodeExist(ShboxVo vo);

    /**
     * 新增时级联编码是否重复
     * @param vo
     * @return
     */
    AttributeVo isDataCodeExist(AttributeVo vo);

    /**
     * 新增时手环箱编号是否重复
     * @param vo
     * @return
     */
    ShboxVo isBoxCodeExistTemp(ShboxVo vo);


    /**
     * 新增时手环箱名称是否重复
     * @param vo
     * @return
     */
    ShboxVo isBoxNameExistTemp(ShboxVo vo);

    /**
     * 修改时手环箱编号是否重复
     * @param vo
     * @return
     */
    ShboxVo isBoxCodeExist(ShboxVo vo);


    /**
     * 修改时手环箱名称是否重复
     * @param vo
     * @return
     */
    ShboxVo isBoxNameExist(ShboxVo vo);

    /**
     * 修改手环信息
     * @param vo
     * @return
     */
       int updateSh(ShboxVo vo);

    /**
     * 修改手环箱信息
     * @param vo
     * @return
     */
    int updateShbox(ShboxVo vo);

    /**
     * 新增手环信息
     * @param vo
     * @return
     */
    int addSh(ShboxVo vo);

    /**
     * 新增设备属性信息
     * @param vo
     * @return
     */
    int addAttribute(AttributeVo vo);

    /**
     * 新增手环箱信息
     * @param vo
     * @return
     */
    int addBox(ShboxVo vo);


    /**
     * 手环绑定选择页面绑定手环信息
     * @param vo
     * @return
     */
    int addShBind(ShboxVo vo);

    /**
     * 解除绑定
     * @param vo
     * @return
     */
    int delSh(BraceletVo vo);

    /**
     * 删除手环信息
     * @param shId
     * @return
     */
    int delShById(int shId);

    /**
     * 删除手环箱信息
     * @param shboxId
     * @return
     */
    int delShboxById(int shboxId);

    /**
     * 绑定
     * @param shboxId
     * @param shId
     */
    void bindSh(@Param("shboxId") int shboxId, @Param("shId") int shId);
}
