| | |
| | | import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper; |
| | | import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; |
| | | import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; |
| | | import com.ruoyi.alarmpoints.well.domain.ArdWellGuideCamera; |
| | | import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; |
| | | import com.ruoyi.alarmpoints.well.mapper.ArdWellGuideCameraMapper; |
| | | import com.ruoyi.common.config.ARDConfig; |
| | | import com.ruoyi.common.constant.CacheConstants; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.utils.ConfigUtils; |
| | |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.utils.tube.GeoPoint; |
| | | import com.ruoyi.utils.tube.TubeTools; |
| | | import com.ruoyi.utils.websocket.util.WebSocketUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.File; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.ruoyi.utils.tools.ArdTool.writeStringToFile; |
| | | |
| | | |
| | | /** |
| | |
| | | private ArdAlarmAccessMapper ardAlarmAccessMapper; |
| | | @Resource |
| | | private ArdAlarmExternalMapper ardAlarmExternalMapper; |
| | | //@Resource |
| | | //private ArdAlarmRadarMapper ardAlarmRadarMapper; |
| | | @Resource |
| | | private ArdAlarmRadarMoveMapper ardAlarmRadarMoveMapper; |
| | | @Resource |
| | |
| | | private QueueHandler queueHandler; |
| | | @Resource |
| | | private ArdEquipRadarMapper ardEquipRadarMapper; |
| | | @Resource |
| | | private ArdWellGuideCameraMapper ardWellGuideCameraMapper; |
| | | |
| | | //endregion |
| | | |
| | | /** |
| | |
| | | * @修改人和其它信息 |
| | | */ |
| | | @Override |
| | | public Object selectAlarmList(Integer command, String beginTime, String endTime, Integer pageNum, Integer pageSize) { |
| | | public Object selectAlarmList(String name,Integer command, String beginTime, String endTime, Integer pageNum, Integer pageSize) { |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("beginTime", beginTime); |
| | | params.put("endTime", endTime); |
| | | switch (command) { |
| | | case 1001: |
| | | ArdAlarmStealelec aas = new ArdAlarmStealelec(); |
| | | aas.setName(name); |
| | | aas.setParams(params); |
| | | aas.setPageNum(pageNum); |
| | | aas.setPageSize(pageSize); |
| | | return ardAlarmStealelecMapper.selectArdAlarmStealelecList(aas); |
| | | case 1002: |
| | | ArdAlarmCamera aac = new ArdAlarmCamera(); |
| | | aac.setCameraName(name); |
| | | aac.setParams(params); |
| | | aac.setPageNum(pageNum); |
| | | aac.setPageSize(pageSize); |
| | | return ardAlarmCameraMapper.selectArdAlarmCameraList(aac); |
| | | case 1003: |
| | | ArdAlarmRadarMove aarm = new ArdAlarmRadarMove(); |
| | | aarm.setName(name); |
| | | aarm.setParams(params); |
| | | aarm.setPageNum(pageNum); |
| | | aarm.setPageSize(pageSize); |
| | |
| | | return ardAlarmRadarMoveMapper.selectArdAlarmRadarMoveList(aarm); |
| | | case 1004: |
| | | ArdAlarmRadarFire aarf = new ArdAlarmRadarFire(); |
| | | aarf.setName(name); |
| | | aarf.setParams(params); |
| | | aarf.setPageNum(pageNum); |
| | | aarf.setPageSize(pageSize); |
| | |
| | | return ardAlarmRadarFireMapper.selectArdAlarmRadarFireList(aarf); |
| | | case 1007: |
| | | ArdAlarmRadarPump aarp = new ArdAlarmRadarPump(); |
| | | aarp.setName(name); |
| | | aarp.setParams(params); |
| | | aarp.setPageNum(pageNum); |
| | | aarp.setPageSize(pageSize); |
| | |
| | | return ardAlarmRadarPumpMapper.selectArdAlarmRadarPumpList(aarp); |
| | | case 1005: |
| | | ArdAlarmExternal aae = new ArdAlarmExternal(); |
| | | aae.setAlarmName(name); |
| | | aae.setParams(params); |
| | | aae.setPageNum(pageNum); |
| | | aae.setPageSize(pageSize); |
| | |
| | | return ardAlarmExternalMapper.selectArdAlarmExternalList(aae); |
| | | case 1006: |
| | | ArdAlarmAccess aaa = new ArdAlarmAccess(); |
| | | aaa.setAcsName(name); |
| | | aaa.setParams(params); |
| | | aaa.setPageNum(pageNum); |
| | | aaa.setPageSize(pageSize); |
| | |
| | | return ardAlarmAccessMapper.selectArdAlarmAccessList(aaa); |
| | | case 1009: |
| | | ArdAlarmApponekey aaak = new ArdAlarmApponekey(); |
| | | aaak.setName(name); |
| | | aaak.setParams(params); |
| | | aaak.setPageNum(pageNum); |
| | | aaak.setPageSize(pageSize); |
| | | return ardAlarmApponekeyMapper.selectArdAlarmApponekeyList(aaak); |
| | | case 1010: |
| | | ArdAlarmWall aaw = new ArdAlarmWall(); |
| | | aaw.setWallName(name); |
| | | aaw.setParams(params); |
| | | aaw.setPageNum(pageNum); |
| | | aaw.setPageSize(pageSize); |
| | | return ardAlarmWallMapper.selectArdAlarmWallList(aaw); |
| | | case 1012: |
| | | ArdAlarmDigitization3 aad3 = new ArdAlarmDigitization3(); |
| | | aad3.setfName(name); |
| | | aad3.setParams(params); |
| | | aad3.setPageNum(pageNum); |
| | | aad3.setPageSize(pageSize); |
| | | return ardAlarmDigitization3Mapper.selectArdAlarmDigitization3List(aad3); |
| | | case 1014: |
| | | ArdAlarmTube aat = new ArdAlarmTube(); |
| | | aat.setTubeName(name); |
| | | aat.setParams(params); |
| | | aat.setPageNum(pageNum); |
| | | aat.setPageSize(pageSize); |
| | | return ardAlarmTubeMapper.selectArdAlarmTubeList(aat); |
| | | case 1015: |
| | | ArdAlarmSuperBrain aasb = new ArdAlarmSuperBrain(); |
| | | aasb.setAlarmName(name); |
| | | aasb.setParams(params); |
| | | aasb.setPageNum(pageNum); |
| | | aasb.setPageSize(pageSize); |
| | |
| | | if (StringUtils.isNull(longitude) || StringUtils.isNull(latitude)) { |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{longitude, latitude}; |
| | | String cameraId = getCameraByNear(new double[]{ardAlarmTube.getLongitude(), ardAlarmTube.getLatitude()}); |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(longitude).setLatitude(latitude); |
| | | String cameraId = getCameraByNear(guidePoint); |
| | | if (StringUtils.isNotEmpty(cameraId)) { |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setAlarmId(cameraId) |
| | | .setCameraId(cameraId) |
| | | .setAlarmId(ardAlarmTube.getId()) |
| | | .setAlarmType("sys_tube_leak") |
| | | .setReceiveTime(ardAlarmTube.getCreateTime()) |
| | | .setTargetPosition(coordinate); |
| | | .setTargetPosition(guidePoint); |
| | | messagesEnqueued(guideDataDto); |
| | | } |
| | | //endregion |
| | |
| | | String alarmpointName = ardAlarmRadar.getName();//兴趣点名称 |
| | | ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName); |
| | | if (well == null) { |
| | | return; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("80000", alarmpointName); |
| | | WebSocketUtils.sendMessageAll(map); |
| | | String filePath = ARDConfig.getDownloadPath() + "noExistWell.txt"; |
| | | writeStringToFile(alarmpointName, filePath); |
| | | continue; |
| | | } |
| | | |
| | | Double longitude = well.getLongitude(); |
| | |
| | | if (StringUtils.isNull(ardAlarmExternal.getLongitude()) || StringUtils.isNull(ardAlarmExternal.getLatitude())) { |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//引导坐标 |
| | | String cameraId = getCameraByNear(coordinate);//最近相机ID |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmExternal.getLongitude()).setLatitude(ardAlarmExternal.getLatitude()); |
| | | //引导坐标 |
| | | String cameraId = getCameraByNear(guidePoint);//最近相机ID |
| | | if (StringUtils.isNotEmpty(cameraId)) { |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setAlarmId(cameraId) |
| | | .setCameraId(cameraId) |
| | | .setAlarmId(ardAlarmExternal.getId()) |
| | | .setAlarmType("sys_external") |
| | | .setReceiveTime(ardAlarmExternal.getCreateTime()) |
| | | .setTargetPosition(coordinate) |
| | | .setTargetPosition(guidePoint) |
| | | .setWellId(well.getId()); |
| | | messagesEnqueued(guideDataDto); |
| | | } |
| | |
| | | if (StringUtils.isNull(ardAlarmAccess.getLongitude()) || StringUtils.isNull(ardAlarmAccess.getLatitude())) { |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//引导坐标 |
| | | String cameraId = getCameraByNear(coordinate);//最近相机ID |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmAccess.getLongitude()).setLatitude(ardAlarmAccess.getLatitude());//引导坐标 |
| | | String cameraId = getCameraByNear(guidePoint);//最近相机ID |
| | | if (StringUtils.isNotEmpty(cameraId)) { |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setAlarmId(cameraId) |
| | | .setCameraId(cameraId) |
| | | .setAlarmId(ardAlarmAccess.getId()) |
| | | .setAlarmType("sys_external") |
| | | .setReceiveTime(ardAlarmAccess.getCreateTime()) |
| | | .setTargetPosition(coordinate); |
| | | .setTargetPosition(guidePoint); |
| | | messagesEnqueued(guideDataDto); |
| | | } |
| | | //endregion |
| | |
| | | } |
| | | GuideTask guideTask = new GuideTask(); |
| | | guideTask.setCameraId(cameraId);//相机ID |
| | | guideTask.setIsGuidePTZ(guideDataDto.getIsGuidePTZ()); |
| | | if(guideTask.getIsGuidePTZ()) |
| | | { |
| | | guideTask.setTargetPTZ(guideDataDto.getGuidePTZ()); |
| | | } |
| | | String alarmType = guideDataDto.getAlarmType(); |
| | | switch (alarmType) { |
| | | case "运动目标检测": |
| | |
| | | /** |
| | | * 获取附近开启报警引导功能光电 |
| | | */ |
| | | private String getCameraByNear(double[] targetPosition) { |
| | | private String getCameraByNear(GuidePoint guidePoint) { |
| | | String minDistanceCameraId = ""; |
| | | try { |
| | | //获取所有大光电 |
| | |
| | | continue; |
| | | } |
| | | double[] camPosition = new double[]{camera.getLongitude(), camera.getLatitude()}; |
| | | double[] targetPosition = new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()}; |
| | | double distance = GisUtil.getDistance(targetPosition, camPosition); |
| | | if (distance != 0.0 && distance <= camera.getCamMaxVisibleDistance()) { |
| | | distanceMap.put(camera.getId(), distance); |
| | |
| | | |
| | | //获取相机引导入队 |
| | | private void getCameraGuideToQueue(GuideDataDto guideDataDto) { |
| | | //获取雷达所在塔上的大光电 |
| | | ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId()); |
| | | if (StringUtils.isNotNull(cameraWithTower)) { |
| | | log.debug("获取到雷达塔上的光电:" + cameraWithTower.getId()); |
| | | //如果雷达塔上有光电 |
| | | guideDataDto.setCameraId(cameraWithTower.getId()); |
| | | //获取兴趣点关联的相机 |
| | | ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(guideDataDto.getWellId()); |
| | | ArdWellGuideCamera ardWellGuideCamera = new ArdWellGuideCamera(); |
| | | ardWellGuideCamera.setWellId(well.getId()); |
| | | List<ArdWellGuideCamera> ardWellGuideCameras = ardWellGuideCameraMapper.selectArdWellGuideCameraList(ardWellGuideCamera); |
| | | if (ardWellGuideCameras.size() > 0) { |
| | | //优先获取井关联相机的预置位 |
| | | ardWellGuideCamera = ardWellGuideCameras.get(0); |
| | | guideDataDto.setIsGuidePTZ(true); |
| | | guideDataDto.setCameraId(ardWellGuideCamera.getCameraId()); |
| | | guideDataDto.setGuidePTZ(new GuidePTZ() |
| | | .setP1(ardWellGuideCamera.getP1()) |
| | | .setT1(ardWellGuideCamera.getT1()) |
| | | .setZ1(ardWellGuideCamera.getZ1()) |
| | | .setP2(ardWellGuideCamera.getP2()) |
| | | .setT2(ardWellGuideCamera.getT2()) |
| | | .setZ2(ardWellGuideCamera.getZ2()) |
| | | ); |
| | | messagesEnqueued(guideDataDto); |
| | | } else { |
| | | log.debug("未获取到雷达塔上的光电,无法引导"); |
| | | //获取雷达所在塔上的大光电 |
| | | ArdCameras cameraWithTower = ardEquipRadarMapper.getCameraByRadar(guideDataDto.getRadarId()); |
| | | if (StringUtils.isNotNull(cameraWithTower)) { |
| | | log.debug("获取到雷达塔上的光电:" + cameraWithTower.getId()); |
| | | //如果雷达塔上有光电 |
| | | guideDataDto.setIsGuidePTZ(false); |
| | | guideDataDto.setCameraId(cameraWithTower.getId()); |
| | | messagesEnqueued(guideDataDto); |
| | | } else { |
| | | log.debug("未获取到雷达塔上的光电,无法引导"); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | log.debug("坐标为空不引导"); |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{ardAlarmRadarMove.getLongitude(), ardAlarmRadarMove.getLatitude()};//报警坐标 |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarMove.getLongitude()) |
| | | .setLatitude(ardAlarmRadarMove.getLatitude()); |
| | | //报警坐标 |
| | | //引导入队 |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setRadarId(ardAlarmRadarMove.getRadarId()) |
| | |
| | | .setAlarmType(ardAlarmRadarMove.getAlarmType()) |
| | | .setReceiveTime(ardAlarmRadarMove.getCreateTime()) |
| | | .setWellId(ardAlarmRadarMove.getWellId()) |
| | | .setTargetPosition(coordinate); |
| | | .setTargetPosition(guidePoint); |
| | | getCameraGuideToQueue(guideDataDto);//获取相机入队 |
| | | } |
| | | |
| | |
| | | log.debug("坐标为空不引导"); |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{ardAlarmRadarFire.getLongitude(), ardAlarmRadarFire.getLatitude()};//报警坐标 |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarFire.getLongitude())//报警坐标 |
| | | .setLatitude(ardAlarmRadarFire.getLatitude()); |
| | | //引导入队 |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setRadarId(ardAlarmRadarFire.getRadarId()) |
| | |
| | | .setAlarmType(ardAlarmRadarFire.getAlarmType()) |
| | | .setReceiveTime(ardAlarmRadarFire.getCreateTime()) |
| | | .setWellId(ardAlarmRadarFire.getWellId()) |
| | | .setTargetPosition(coordinate); |
| | | .setTargetPosition(guidePoint); |
| | | getCameraGuideToQueue(guideDataDto);//获取相机入队 |
| | | } |
| | | |
| | |
| | | log.debug("坐标为空不引导"); |
| | | return; |
| | | } |
| | | double[] coordinate = new double[]{ardAlarmRadarPump.getLongitude(), ardAlarmRadarPump.getLatitude()};//报警坐标 |
| | | GuidePoint guidePoint = new GuidePoint().setLongitude(ardAlarmRadarPump.getLongitude()) |
| | | .setLatitude(ardAlarmRadarPump.getLatitude());//报警坐标 |
| | | //引导入队 |
| | | GuideDataDto guideDataDto = new GuideDataDto() |
| | | .setRadarId(ardAlarmRadarPump.getRadarId()) |
| | |
| | | .setAlarmType(ardAlarmRadarPump.getAlarmType()) |
| | | .setReceiveTime(ardAlarmRadarPump.getCreateTime()) |
| | | .setWellId(ardAlarmRadarPump.getWellId()) |
| | | .setTargetPosition(coordinate); |
| | | .setTargetPosition(guidePoint); |
| | | getCameraGuideToQueue(guideDataDto);//获取相机入队 |
| | | } |
| | | |