package com.ruoyi.alarm.radar.service.impl; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.alarm.radar.service.ArdRadarService; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.ICameraSdkService; import com.ruoyi.device.radar.mapper.ArdEquipRadarMapper; import com.ruoyi.storage.minio.domain.jsonbean.JsonsRootBean; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; /** * @Description: 雷达业务 * @ClassName: ArdRadarServiceImpl * @Author: 刘苏义 * @Date: 2023年11月02日9:00:08 **/ @Slf4j(topic = "guideQueue") @Service public class ArdRadarServiceImpl implements ArdRadarService { @Resource ICameraSdkService iCameraSdkService; @Resource ArdEquipRadarMapper ardEquipRadarMapper; /** * 异步执行强制引导 * 刘苏义 * 2023/11/2 9:00:55 */ @Override @Async public void forceGuide(String msg) { try { Map msgMap = JSONObject.parseObject(msg, Map.class); if (msgMap != null) { Double p = Double.parseDouble(msgMap.get("p").toString()); Double t = Double.parseDouble(msgMap.get("t").toString()); Double z = Double.parseDouble(msgMap.get("z").toString()); String radarId = msgMap.get("radarId").toString(); //获取雷达所在塔上的大光电 String cameraIdWithTower = ardEquipRadarMapper.getCameraByRadar(radarId); if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) { log.debug("获取到雷达塔上的光电:" + cameraIdWithTower); //如果雷达塔上有光电 CameraCmd cmd = new CameraCmd(cameraIdWithTower, 1); cmd.setOperator("sys_radar_force"); Map ptzMap = new HashMap<>(); ptzMap.put("p", p); ptzMap.put("t", t); ptzMap.put("z", z); cmd.setPtzMap(ptzMap); boolean res = iCameraSdkService.setPtz(cmd); if (res) { log.debug("强制引导成功"); } else { log.debug("强制引导失败"); } } else { log.debug("未获取到雷达塔上的光电"); } } } catch (Exception ex) { log.error("强制引导异常:"+ ex.getMessage()); } } }