package com.ard.work.device.camera.service; import com.ard.common.core.web.domain.AjaxResult; import com.ard.common.security.utils.SecurityUtils; import com.ard.work.api.domian.ArdCamera; import com.ard.work.api.domian.ArdChannel; import com.ard.work.api.domian.CameraCmd; import com.ard.work.device.camera.domain.CameraFilterDTO; import com.ard.work.device.camera.domain.GeoDTO; import java.util.*; import java.util.stream.Collectors; /** * 相机设备Service接口 * * @author 刘苏义 * @date 2023-02-11 */ public interface IArdCameraService { /** * 查询相机设备 * * @param id 相机设备主键 * @return 相机设备 */ public ArdCamera selectArdCameraById(String id); /** * 查询相机设备 * * @param name 相机设备名称 * @return 相机设备 */ public ArdCamera selectArdCameraByName(String name); /** * 查询相机设备列表 * * @param ardCamera 相机设备 * @return 相机设备集合 */ public List selectArdCameraList(ArdCamera ardCamera); /** * 查询所有相机 * * @param ardCamera 相机设备 * @return 相机设备集合 */ public List selectArdCameraListAll(ArdCamera ardCamera); /** * 新增相机设备 * * @param ardCamera 相机设备 * @return 结果 */ public int insertArdCamera(ArdCamera ardCamera); /** * 修改相机设备 * * @param ardCamera 相机设备 * @return 结果 */ public int updateArdCamera(ArdCamera ardCamera); /** * 更新相机状态 * * @param cameraId 相机主键 * @param state 状态 * @return 结果 */ public int updateCameraState(String cameraId, String state); void updateAlarmGuideEnable(ArdCamera ardCamera); /** * 修改相机设备位置和朝向 * * @param cameraId 相机id * @param longitude 经度 * @param latitude 纬度 * @param altitude 高度 * @param baseYaw 朝向 * @return 结果 */ public int updateCameraLocationAndYaw(String cameraId, Double longitude, Double latitude, Double altitude, Float baseYaw); /** * 批量删除相机设备 * * @param ids 需要删除的相机设备主键集合 * @return 结果 */ public int deleteArdCameraByIds(String[] ids); /** * 删除相机设备信息 * * @param id 相机设备主键 * @return 结果 */ public int deleteArdCameraById(String id); /** * 导入相机设备信息 * * @param ardCameraList 相机设备数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 操作用户 * @return 结果 */ public String importCamera(List ardCameraList, Boolean isUpdateSupport, String operName); /** * 校验用户是否有数据权限 * * @param userId 用户id */ public void checkCameraDataScope(Long userId); /** * 校验相机是否唯一 * * @param camera 相机 * @return 结果 */ public String checkCameraIpAndPortUnique(ArdCamera camera); /** * 同步通道 * * @param oldArrayList 旧通道列表(库中) * @param newArrayList 新通道列表(sdk) * @return * @author 刘苏义 * @date 2024/8/23 16:28 */ public void asyncChannel(List oldArrayList, List newArrayList); /** * 操控锁定 0-解锁 1-锁定 * * @param cmd 相机指令 * @author 刘苏义 * @date 2024/8/23 15:16 */ public AjaxResult controlLock(CameraCmd cmd); /** * 操控解锁 * * @param cmd 相机指令 * @author 刘苏义 * @date 2024/8/23 15:16 */ public AjaxResult controlUnLock(CameraCmd cmd); /** * 通过坐标,获取附近的相机 * * @param cmd 相机指令 * @author XiaJiJian * @date 2024-09-13 */ public TreeMap getNearbyCameras(CameraCmd cmd); /** * 获取圆内所有相机 * * @param geoDto 几何实体 * @author 刘苏义 * @date 2024-09-13 */ public List getCircularCameras(GeoDTO geoDto); /** * 获取多边形内所有相机 * * @param geoDto 几何实体 * @author 刘苏义 * @date 2024-09-13 */ public List getPolygonCameras(GeoDTO geoDto); /** * 获取雷达所在塔上的大光电 * * @param radarId 雷达id * @author wmm * @date 2024-10 */ public ArdCamera getCameraByRadar(String radarId); /** * 获取可视范围内的摄像头 * * @param cameraFilterDTO 过滤实体 * @author 刘苏义 * @date 2024-11-4 */ public List getCamerasInVisibleRange(CameraFilterDTO cameraFilterDTO); public Map selectArdCameraAllInfoById(String id); public List> selectArdCameraAllInfoByUserId(Long userId); public List> getCameraAllInfoByPosition(Long userId, Map para); }