package com.inspur.device.service; import com.inspur.device.domain.SmsbDevice; import com.inspur.device.domain.bo.HttpHeartbeatReq; import com.inspur.device.domain.bo.SmsbDeviceBo; import com.inspur.device.domain.vo.*; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; import java.util.List; /** * 设备Service接口 * * @author Hao Li * @date 2025-01-20 */ public interface ISmsbDeviceService { /** * 查询设备 * * @param id 主键 * @return 设备 */ SmsbDeviceVo queryById(Long id); /** * 分页查询设备列表 * * @param bo 查询条件 * @param pageQuery 分页参数 * @return 设备分页列表 */ TableDataInfo queryPageList(SmsbDeviceBo bo, PageQuery pageQuery); /** * 查询符合条件的设备列表 * * @param bo 查询条件 * @return 设备列表 */ List queryList(SmsbDeviceBo bo); /** * 新增设备 * * @param bo 设备 * @return 是否新增成功 */ Boolean insertByBo(SmsbDeviceBo bo); /** * 修改设备 * * @param bo 设备 * @return 是否修改成功 */ Boolean updateByBo(SmsbDeviceBo bo); /** * 校验并批量删除设备信息 * * @param ids 待删除的主键集合 * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); /** * 校验设备是否存在 * @param serialNumber * @param mac * @return */ Boolean checkExist(String serialNumber,String mac); /** * 根据标识符查询设备 * @param identifier * @return */ SmsbDeviceVo getDeviceByIdentifier(String identifier); /** * 根据设备ID查询设备 * @param deviceId * @return */ SmsbDeviceVo getDeviceCacheById(Long deviceId); /** * 设备数量统计 * @return */ DeviceStatisticsVo deviceStatistics(); /** * 设备运行详情 * @param id * @return */ SmsbDeviceRunInfoVo getRunInfo(Long id); /** * 更新设备状态 * @param smsbDeviceVo * @return */ SmsbDeviceVo updateDeviceStatus(SmsbDeviceVo smsbDeviceVo); /** * 根据租户ID查询设备列表 * @param bo * @param pageQuery * @return */ TableDataInfo queryPageListByTenantId(SmsbDeviceBo bo, PageQuery pageQuery); /** * 前端设备上传截图 * @param identifier * @param timestamp * @param file * @return */ R screenshotUpload(String identifier, Long timestamp, MultipartFile file); /** * 前端设备心跳接口 * @param requestParam * @return */ R heartbeat(HttpHeartbeatReq requestParam); /** * 前端设备多功能卡上报 * @param frontMultiCardUploadVo * @return */ R uploadMultiCard(FrontMultiCardUploadVo frontMultiCardUploadVo); /** * 根据设备ID获取多功能卡数据 * @param id * @return */ List getDeviceMultiCardList(Long id); }