From 0821887bbcfe49328dc676adab058f7e94d0e27d Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 13 九月 2023 14:56:37 +0800
Subject: [PATCH] 修复雷达报警投影距离 取消雷达坐标转84坐标

---
 src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java |   48 +++++++++++++++++++++++-------------------------
 1 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
index 9314aa7..9ee1b35 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -6,17 +6,17 @@
 import com.ard.alarm.camera.service.IArdCamerasService;
 import com.ard.alarm.external.domain.ArdEquipExternal;
 import com.ard.alarm.external.service.IArdEquipExternalService;
-import com.ard.config.MinioClientSingleton;
+import com.ard.utils.minio.MinioUtil;
 import com.ard.utils.other.ByteUtils;
 import com.ard.utils.hiksdk.common.GlobalVariable;
 import com.ard.utils.hiksdk.domain.AccessControlHostEventInfo;
 import com.ard.utils.hiksdk.domain.CameraEventInfo;
 import com.ard.utils.hiksdk.domain.ExternalAlarmEventInfo;
 import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK;
-import com.ard.utils.hiksdk.util.minio.MinioUtils;
 import com.ard.utils.other.DateUtils;
-import com.ard.utils.other.SpringTool;
 import com.ard.utils.mqtt.MqttConsumer;
+import com.ard.utils.spring.SpringUtils;
+import com.ard.utils.uuid.IdUtils;
 import com.sun.jna.Pointer;
 import lombok.extern.slf4j.Slf4j;
 
@@ -56,11 +56,11 @@
         //log.debug("鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
         switch (lCommand) {
             case HCNetSDK.COMM_ALARM_V30:
-                log.debug("绉诲姩渚︽祴");
+                //log.debug("绉诲姩渚︽祴");
                 ArdCameras ardCameras = new ArdCameras();
                 ardCameras.setIp(sDeviceIP);
                 ardCameras.setPort(wLinkPort);
-                IArdCamerasService ardCamerasService = SpringTool.getApplicationContext().getBean(IArdCamerasService.class);
+                IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
                 ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
                 HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30();
                 netDvrAlarminfoV30.write();
@@ -75,12 +75,12 @@
                         info.setCameraName(camera.getName());
                         info.setCameraId(camera.getId());
                         info.setCameraIp(camera.getIp());
+                        info.setCameraPort(camera.getPort());
                         info.setCameraType(camera.getGdtype());
                         info.setCameraChannel(Integer.valueOf(netDvrAlarminfoV30.byChannel[0]));
                         info.setLongitude(camera.getLongitude());
                         info.setLatitude(camera.getLatitude());
                         info.setAlarmType("绉诲姩渚︽祴");
-                        printLog(info);
                         //鍥剧墖瀛樺叆minio
                         url = savePicture(info);
                         info.setPicUrl(url);
@@ -89,12 +89,12 @@
                 }
 
             case HCNetSDK.COMM_ALARM_RULE:
-                log.debug("琛屼负鍒嗘瀽淇℃伅鎶ヨ淇℃伅涓婃姤");
+                //log.debug("琛屼负鍒嗘瀽淇℃伅鎶ヨ淇℃伅涓婃姤");
                 //region 琛屼负鍒嗘瀽淇℃伅
                 ardCameras = new ArdCameras();
                 ardCameras.setIp(sDeviceIP);
                 ardCameras.setPort(wLinkPort);
-                ardCamerasService = SpringTool.getApplicationContext().getBean(IArdCamerasService.class);
+                ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
                 ArdCameras ardCamera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
 
                 HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM();
@@ -111,7 +111,8 @@
                 info.setAlarmTime(sTime);
                 info.setCameraName(ardCamera.getName());
                 info.setCameraId(ardCamera.getId());
-                info.setCameraIp(ipaddr);
+                info.setCameraIp(ardCamera.getIp());
+                info.setCameraPort(ardCamera.getPort());
                 info.setCameraType(ardCamera.getGdtype());
                 info.setCameraChannel(channel);
                 info.setLongitude(ardCamera.getLongitude());
@@ -121,7 +122,6 @@
                     case 1: //region绌胯秺璀︽垝闈� (瓒婄晫渚︽祴)
                         info.setAlarmType("瓒婄晫渚︽祴鎶ヨ");
                         strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class);
-                        printLog(info);
                         //鍥剧墖瀛樺叆minio
                         url = savePicture(info);
                         info.setPicUrl(url);
@@ -141,7 +141,6 @@
                     case 4: //region 鍛ㄧ晫鍏ヤ镜
                         info.setAlarmType("鍛ㄧ晫鍏ヤ镜鎶ヨ");
                         strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class);
-                        printLog(info);
                         //鍥剧墖瀛樺叆minio
                         url = savePicture(info);
                         info.setPicUrl(url);
@@ -185,12 +184,12 @@
 //                log.debug("GPS鎶ヨ淇℃伅涓婃姤(鏆備笉瑙f瀽)");
 //                break;
             case HCNetSDK.COMM_ALARMHOST_CID_ALARM:
-                log.debug("鎶ヨ涓绘満CID鎶ュ憡鎶ヨ涓婃姤");
+                //log.debug("鎶ヨ涓绘満CID鎶ュ憡鎶ヨ涓婃姤");
                 //region 鎶ヨ涓绘満鎶ヨ澶勭悊
                 ArdEquipExternal ardEquipExternal = new ArdEquipExternal();
                 ardEquipExternal.setIp(sDeviceIP);
                 ardEquipExternal.setPort(wLinkPort);
-                IArdEquipExternalService ardEquipExternalService = SpringTool.getApplicationContext().getBean(IArdEquipExternalService.class);
+                IArdEquipExternalService ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
                 ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal);
 
 
@@ -272,10 +271,11 @@
                 break;
             case HCNetSDK.COMM_ALARM_ACS:
                 //region 闂ㄧ涓绘満鎶ヨ澶勭悊
+
                 ArdEquipExternal accessControlHost = new ArdEquipExternal();
                 accessControlHost.setIp(sDeviceIP);
                 accessControlHost.setPort(wLinkPort);
-                ardEquipExternalService = SpringTool.getApplicationContext().getBean(IArdEquipExternalService.class);
+                ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
                 accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost);
 
                 HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO();
@@ -290,13 +290,12 @@
                     // log.debug("闈炰簨浠舵姤璀︽暟鎹笂鎶�(鏆備笉瑙f瀽)");
                     break;
                 }
+
                 int dwMinor = strACSInfo.dwMinor;
                 if (dwMinor != 80 && dwMinor != 104) {
                     //鍙В鏋愮湡浜烘娴嬪け璐ュ拰浜鸿劯鎶撴媿澶辫触鐨勬绫诲瀷浜嬩欢
                     break;
                 }
-//                log.info("闂ㄧ涓绘満鎶ヨ涓婁紶");
-//                log.info("銆愪富绫诲瀷銆戜簨浠�");
                 String alarmType = "";
                 switch (dwMinor) {
                     case 104:
@@ -306,13 +305,12 @@
                         alarmType = "浜鸿劯鎶撴媿澶辫触";
                         break;
                 }
+                log.debug("闂ㄧ涓绘満鎶ヨ涓婁紶:"+alarmType);
                 String alarmTime = DateUtils.convertDate(parseAlarmTime(strACSInfo.struTime), "yyyy-M-d H:m:s");
 
                 //浜嬩欢鍥剧墖澶勭悊
                 int dwPicDataLen = strACSInfo.dwPicDataLen;
                 if (dwPicDataLen > 0) {
-                    SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-                    String newName = sf.format(new Date());
                     try {
                         //灏嗗瓧鑺傚啓鍏ユ枃浠�
                         long offset = 0;
@@ -322,10 +320,10 @@
                         buffers.get(bytes);
                         InputStream input = new ByteArrayInputStream(bytes);
                         String bucketName = "pic";
-                        String objectName = "alarm_" + newName + ".jpeg";
-                        boolean uploadObject = MinioUtils.uploadObject(bucketName, objectName, input, "image/JPEG");
+                        String objectName = "alarm/" + IdUtils.simpleUUID() + ".jpeg";
+                        boolean uploadObject = MinioUtil.uploadObject(bucketName, objectName, input,input.available(), "image/JPEG");
                         if (uploadObject) {
-                            url = MinioClientSingleton.domainUrl + "/" + bucketName + "/" + objectName;
+                            url = MinioUtil.getBucketObjectUrl(bucketName, objectName);
                             //log.debug("涓婁紶鏂囦欢鎴愬姛!" + url);
                         }
                     } catch (Exception e) {
@@ -401,15 +399,15 @@
      */
     private String savePicture(CameraEventInfo info) {
         CameraCmd cmd = new CameraCmd();
-        ArdCameras Cameras = GlobalVariable.cameraMap.get(info.getCameraIp());
+        String key=info.getCameraIp()+":"+info.getCameraPort();
+        ArdCameras Cameras = GlobalVariable.cameraMap.get(key);
         if (Cameras == null) {
             return "";
         }
         cmd.setCameraId(Cameras.getId());
         cmd.setChannelNum(info.getCameraChannel());
         cmd.setBucketName("pic");
-        String UUID = java.util.UUID.randomUUID().toString().replace("-", "");
-        String filename = info.getCameraName() + "/" + info.getAlarmType() + "/" + UUID + ".jpg";
+        String filename =  "alarm" + "/" + IdUtils.simpleUUID() + ".jpg";
         cmd.setObjectName(filename);
         String url = HikClientUtil.picCutCate(cmd);
         return url;
@@ -448,7 +446,7 @@
      * 閫氱敤鍏夌數鎶ヨ鎺ㄩ�乵qtt
      */
     private void publishMqtt(CameraEventInfo info) {
-        // printLog(info);
+         printLog(info);
         MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info));
     }
 

--
Gitblit v1.9.3