From 6bab172dc8767e93c8889c15a146c76e4d38e9c0 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期六, 27 七月 2024 09:23:04 +0800 Subject: [PATCH] 电磁锁报警查询bug修改提交 --- ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 47 insertions(+), 13 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java index 9715c97..4f86e8f 100644 --- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java @@ -28,6 +28,8 @@ import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; +import com.ruoyi.device.tower.domain.ArdTowers; +import com.ruoyi.device.tower.mapper.ArdTowersMapper; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.utils.data.Query; import com.ruoyi.utils.gis.GisUtil; @@ -57,6 +59,9 @@ private ArdWellGuideCameraMapper ardWellGuideCameraMapper; @Resource private ArdCamerasMapper ardCamerasMapper; + + @Resource + private ArdTowersMapper ardTowersMapper; @Autowired protected Validator validator; @@ -846,6 +851,10 @@ @Override public List<Map<String, Object>> getCameraVideoLable(Long deptId, String cameraId, Float p, Float t, Float fHorFieldAngle, Float fVerFieldAngle) { ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); + ArdTowers ardTowers = ardTowersMapper.selectArdTowersByCameraId(cameraId); + if(ardTowers == null){ + return null; + } //灏忎笁瑙掑舰鑵� Double xy = Math.tan(Math.PI/2 - (Math.PI * 2 - Math.PI * t/180) - Math.PI * fVerFieldAngle/180/2)*ardCameras.getAltitude()/Math.cos(Math.PI * fHorFieldAngle/180/2); //澶т笁瑙掑舰鑵� @@ -919,23 +928,48 @@ } List<Map<String,Object>> result = new ArrayList(); - for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ - Map<String,Object> map = new HashMap(); - double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); - double Angle_A = GetAngle(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); - double Angle_E = Math.atan((ardCameras.getAltitude() - 0) / distance_Target) * 180 / Math.PI; + if(ardTowers.getAltitude() > 5){//鏈夐珮绋� + for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ + Map<String,Object> map = new HashMap(); + double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); - Angle_A = Angle_A - (p - fHorFieldAngle/2);//瑙嗗満瑙掑唴鏂逛綅 - Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//瑙嗗満瑙掑唴淇话 - if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.08)){//鏈�涓婏紝鏈�宸︼紝鏈�鍙冲幓鎺� - map.put("id",ardAlarmpointsWell.getId()); - map.put("wellId",ardAlarmpointsWell.getWellId()); - map.put("horFieldProportion",Angle_A/fHorFieldAngle);//妯悜鍗犳瘮 - map.put("verFieldProportion",Angle_E/fVerFieldAngle);//绾靛悜鍗犳瘮 - result.add(map); + double Angle_A = GetAngle(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); + //double Angle_E = Math.atan((ardCameras.getAltitude() - 0) / distance_Target) * 180 / Math.PI;//鏃犻珮绋� + double Angle_E = Math.atan((ardCameras.getAltitude() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//鏈夐珮绋� + + Angle_A = Angle_A - (p - fHorFieldAngle/2);//瑙嗗満瑙掑唴鏂逛綅 + Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//瑙嗗満瑙掑唴淇话 + if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.92)){//鏈�涓婏紝鏈�宸︼紝鏈�鍙冲幓鎺� + map.put("id",ardAlarmpointsWell.getId()); + map.put("wellId",ardAlarmpointsWell.getWellId()); + map.put("horFieldProportion",Angle_A/fHorFieldAngle);//妯悜鍗犳瘮 + map.put("verFieldProportion",Angle_E/fVerFieldAngle);//绾靛悜鍗犳瘮 + result.add(map); + } + } + }else{//鏃犻珮绋� + for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ + Map<String,Object> map = new HashMap(); + double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); + + double Angle_A = GetAngle(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); + double Angle_E = Math.atan((ardCameras.getAltitude() - 0) / distance_Target) * 180 / Math.PI;//鏃犻珮绋� + //double Angle_E = Math.atan((ardCameras.getAltitude() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//鏈夐珮绋� + + Angle_A = Angle_A - (p - fHorFieldAngle/2);//瑙嗗満瑙掑唴鏂逛綅 + Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//瑙嗗満瑙掑唴淇话 + if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.92)){//鏈�涓婏紝鏈�宸︼紝鏈�鍙冲幓鎺� + map.put("id",ardAlarmpointsWell.getId()); + map.put("wellId",ardAlarmpointsWell.getWellId()); + map.put("horFieldProportion",Angle_A/fHorFieldAngle);//妯悜鍗犳瘮 + map.put("verFieldProportion",Angle_E/fVerFieldAngle);//绾靛悜鍗犳瘮 + result.add(map); + } } } + + return result; } -- Gitblit v1.9.3