package com.securitycontrol.background.mapper;

import com.securitycontrol.entity.background.dto.DeviceBdDto;
import com.securitycontrol.entity.background.vo.DeviceBdChildVo;
import com.securitycontrol.entity.background.vo.DeviceBdDetailVo;
import com.securitycontrol.entity.background.vo.DeviceBdVo;
import com.securitycontrol.entity.background.vo.ProBdDevVo;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author：cwchen
 * @date：2024-03-20-13:12
 * @version：1.0
 * @description：边带设备-数据库访问层
 */
@Repository(value = "IDeviceOfBdMapper")
public interface IDeviceOfBdMapper {
    /**
     * 获取边带列表
     *
     * @param dto
     * @return List<DeviceBdVo>
     * @description
     * @author cwchen
     * @date 2024/3/20 14:23
     */
    List<DeviceBdVo> getDeviceBdList(DeviceBdDto dto);

    /**
     * 新增/修改边带
     *
     * @param vo
     * @description
     * @author cwchen
     * @date 2024/3/20 15:15
     */
    void addOrUpdateDeviceBd(DeviceBdVo vo);

    /**
     * 边带编码是否重复
     *
     * @param vo
     * @return int
     * @description
     * @author cwchen
     * @date 2024/3/20 16:46
     */
    int isBdCodeExist(DeviceBdVo vo);

    /**
     * 边带详情
     *
     * @param dto
     * @return DeviceBdVo
     * @description
     * @author cwchen
     * @date 2024/3/20 17:11
     */
    DeviceBdVo getDeviceBdById(DeviceBdDto dto);

    /**
     * 边带是否包含边带子设备
     *
     * @param dto
     * @return int
     * @description
     * @author cwchen
     * @date 2024/3/20 17:24
     */
    int isHasChildDeviceBd(DeviceBdDto dto);

    /**
     * 删除边带
     *
     * @param dto
     * @description
     * @author cwchen
     * @date 2024/3/20 17:36
     */
    void delDeviceBdById(DeviceBdDto dto);

    /**
     * 获取边带子设备列表
     *
     * @param dto
     * @return List<DeviceBdChildVo>
     * @description
     * @author cwchen
     * @date 2024/3/20 18:09
     */
    List<DeviceBdChildVo> getDeviceBdChildList(DeviceBdDto dto);

    /**
     * 新增/修改 边带子设备
     *
     * @param vo
     * @description
     * @author cwchen
     * @date 2024/3/20 19:14
     */
    void addOrUpdateDeviceBdChild(DeviceBdChildVo vo);

    /**
     * 边带设备编码是否重复
     *
     * @param vo
     * @return int
     * @description
     * @author cwchen
     * @date 2024/3/20 19:34
     */
    int isDeviceCodeExist(DeviceBdChildVo vo);

    /**
     * 边带设备详情
     *
     * @param dto
     * @return DeviceBdChildVo
     * @description
     * @author cwchen
     * @date 2024/3/20 19:51
     */
    DeviceBdChildVo getDeviceBdChildById(DeviceBdDto dto);

    /**
     * 删除边带设备
     *
     * @param dto
     * @description
     * @author cwchen
     * @date 2024/3/20 19:52
     */
    void delDeviceBdChildById(DeviceBdDto dto);

    /**
     * 边带设备绑定记录
     *
     * @param proBdDevVo
     * @description
     * @author cwchen
     * @date 2024/3/28 9:50
     */
    void addProBdDevData(ProBdDevVo proBdDevVo);

    /**
     * 边带是否绑定重复工程
     *
     * @param vo
     * @return int
     * @description
     * @author cwchen
     * @date 2024/3/28 9:57
     */
    int isRepeatBanding(DeviceBdVo vo);

    /**
     * 获取边带子设备详情列表
     *
     * @param dto
     * @return List<DeviceBdDetailVo>
     * @description
     * @author cwchen
     * @date 2024/4/2 17:00
     */
    List<DeviceBdDetailVo> getDeviceBdChildDetailList(DeviceBdDto dto);

    /**
     * 检测名称 是否存在
     *
     * @param vo
     * @return int
     * @description
     * @author cwchen
     * @date 2024/4/2 17:31
     */
    int isBdDeviceDetailExist(DeviceBdDetailVo vo);

    /**
     * 新增/修改边带子设备详情数据
     *
     * @param vo
     * @description
     * @author cwchen
     * @date 2024/4/2 17:31
     */
    void addOrUpdateDeviceBdChildDetail(DeviceBdDetailVo vo);

    /**
     * 边带子设备详情数据
     *
     * @param dto
     * @return DeviceBdDetailVo
     * @description
     * @author cwchen
     * @date 2024/4/2 17:39
     */
    DeviceBdDetailVo getDeviceBdChildDetailById(DeviceBdDto dto);

    /**
     * 删除边带子设备详情数据
     *
     * @param dto
     * @description
     * @author cwchen
     * @date 2024/4/2 17:40
     */
    void delDeviceBdChildDetail(DeviceBdDto dto);

    /**
     * 新增/修改 边带设备采集信息数据
     *
     * @param vo
     * @description
     * @author cwchen
     * @date 2024/4/3 9:39
     */
    void addOrUpdateDeviceValue(DeviceBdDetailVo vo);

    /**
     * 删除边带设备采集信息数据
     * @param dto
     * @description
     * @author cwchen
     * @date 2024/4/3 9:44
     */
    void delDeviceValue(DeviceBdDto dto);
}
