From 2078aee230bc109d66da296da8b7f24377befa1b Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 20 十二月 2024 11:08:44 +0800
Subject: [PATCH] 1

---
 ycl-platform/src/main/java/com/dahua/netsdk/lib/callback/impl/AnalyzerDataCB.java |  323 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 230 insertions(+), 93 deletions(-)

diff --git a/ycl-platform/src/main/java/com/dahua/netsdk/lib/callback/impl/AnalyzerDataCB.java b/ycl-platform/src/main/java/com/dahua/netsdk/lib/callback/impl/AnalyzerDataCB.java
index f1b14bc..ffba0f9 100644
--- a/ycl-platform/src/main/java/com/dahua/netsdk/lib/callback/impl/AnalyzerDataCB.java
+++ b/ycl-platform/src/main/java/com/dahua/netsdk/lib/callback/impl/AnalyzerDataCB.java
@@ -3,6 +3,9 @@
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.nio.charset.Charset;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 import com.alibaba.fastjson.JSON;
@@ -13,17 +16,32 @@
 import com.dahua.netsdk.lib.NetSDKLib;
 import com.dahua.netsdk.lib.ToolKits;
 import com.ycl.entity.video.VideoAlarmReport;
+import com.ycl.entity.video.VideoPoint;
+import com.ycl.service.caseHandler.IViolationsService;
 import com.ycl.service.oss.OssService;
+import com.ycl.service.video.IVideoAlarmReportService;
+import com.ycl.service.video.impl.IVideoPointService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * 鏅鸿兘鎶ヨ浜嬩欢鍥炶皟
  */
+@Component
 public class AnalyzerDataCB implements NetSDKLib.fAnalyzerDataCallBack {
 
 
     @Autowired
     private OssService ossService;
+
+    @Autowired
+    private IVideoPointService videoPointService;
+
+    @Autowired
+    private IVideoAlarmReportService videoAlarmReportService;
+
+    @Autowired
+    private IViolationsService violationsService;
 
     private final File picturePath;
     private static AnalyzerDataCB instance;
@@ -114,85 +132,164 @@
             }
             case EVENT_IVS_CITY_MOTORPARKING: /// 1 鍩庡競鏈哄姩杞﹁繚鍋滀簨浠�
             {
-                NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO msg = new NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
-                stuFileInfo = msg.stuFileInfo;
-                System.out.println(" 鍩庡競鏈哄姩杞﹁繚鍋滀簨浠� 鏃堕棿(UTC)锛�" + msg.UTC + " 閫氶亾鍙�:" + msg.nChannelID + "杩濆仠鎸佺画鏃堕暱(鍗曚綅绉�)锛�"
-                        + msg.nParkingDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�:" + msg.nObjectNum);
-                System.out.println("stuEventInfoEx = " + msg.stuEventInfoEx.toString());
-                System.out.println("byVehicleHeadDirection = " + msg.byVehicleHeadDirection);
-                if (stuFileInfo != null) { // 淇濆瓨鍥剧墖
-                    String bigPicture = picturePath + File.separator
-                            + String.format("Big_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
-                            stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
-                            stuFileInfo.bFileType, stuFileInfo.nGroupId);
-                    ToolKits.savePicture(pBuffer, 0, dwBufSize, bigPicture);
-                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
-                        String smallPicture = picturePath + File.separator
-                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
-                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
-                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
-                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
-                    }
-                }
-                if (msg.nImageInfoNum > 0) {
-                    System.out.println("Picture Arr got, number +" + msg.nImageInfoNum);
-                    NET_IMAGE_INFO_EX2[] pstuImageInfo = new NET_IMAGE_INFO_EX2[msg.nImageInfoNum];
-                    for (int i = 0; i < msg.nImageInfoNum; i++) {
-                        pstuImageInfo[i] = new NET_IMAGE_INFO_EX2();
-                    }
-                    ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, pstuImageInfo);
-                    for (int i = 0; i < msg.nImageInfoNum; i++) {
-                        System.out.println("pstuImageInfo[" + i + "].nOffset:" + pstuImageInfo[i].nOffset);
-                        System.out.println("pstuImageInfo[" + i + "].nLength:" + pstuImageInfo[i].nLength);
-                        if (pstuImageInfo != null && pstuImageInfo[i].nLength > 0) {
-                            System.out.println("pstuImageInfo[" + i + "] picture received!");
-                            String bigPicture = picturePath + "\\" + System.currentTimeMillis()
-                                    + "related_MOTORPARKING_pstuImageInfo_" + i + ".jpg";
-                            ToolKits.savePicture(pBuffer, pstuImageInfo[i].nOffset, pstuImageInfo[i].nLength, bigPicture);
-                        }
-                    }
+                NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO info = new NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
 
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("闈炴満鍔ㄨ溅涔卞仠鏀�");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
                 }
+
+                stuFileInfo = info.stuFileInfo;
+                System.out.println(" 鍩庡競鏈哄姩杞﹁繚鍋滀簨浠� 鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濆仠鎸佺画鏃堕暱(鍗曚綅绉�)锛�"
+                        + info.nParkingDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�:" + info.nObjectNum);
+
+//                if (stuFileInfo != null) { // 淇濆瓨鍥剧墖
+//                    String bigPicture = picturePath + File.separator
+//                            + String.format("Big_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
+//                            stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
+//                            stuFileInfo.bFileType, stuFileInfo.nGroupId);
+//                    ToolKits.savePicture(pBuffer, 0, dwBufSize, bigPicture);
+//                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+//                        String smallPicture = picturePath + File.separator
+//                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
+//                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
+//                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
+//                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+//                    }
+//                }
+//                if (msg.nImageInfoNum > 0) {
+//                    System.out.println("Picture Arr got, number +" + msg.nImageInfoNum);
+//                    NET_IMAGE_INFO_EX2[] pstuImageInfo = new NET_IMAGE_INFO_EX2[msg.nImageInfoNum];
+//                    for (int i = 0; i < msg.nImageInfoNum; i++) {
+//                        pstuImageInfo[i] = new NET_IMAGE_INFO_EX2();
+//                    }
+//                    ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, pstuImageInfo);
+//                    for (int i = 0; i < msg.nImageInfoNum; i++) {
+//                        System.out.println("pstuImageInfo[" + i + "].nOffset:" + pstuImageInfo[i].nOffset);
+//                        System.out.println("pstuImageInfo[" + i + "].nLength:" + pstuImageInfo[i].nLength);
+//                        if (pstuImageInfo != null && pstuImageInfo[i].nLength > 0) {
+//                            System.out.println("pstuImageInfo[" + i + "] picture received!");
+//                            String bigPicture = picturePath + "\\" + System.currentTimeMillis()
+//                                    + "related_MOTORPARKING_pstuImageInfo_" + i + ".jpg";
+//                            ToolKits.savePicture(pBuffer, pstuImageInfo[i].nOffset, pstuImageInfo[i].nLength, bigPicture);
+//                        }
+//                    }
+//
+//                }
 
                 break;
             }
             case EVENT_IVS_CITY_NONMOTORPARKING: /// 2 鍩庡競闈炴満鍔ㄨ溅杩濆仠浜嬩欢
             {
-                NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO msg = new NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
-                stuFileInfo = msg.stuFileInfo;
+                NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO info = new NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("闈炴満鍔ㄨ溅涔卞仠鏀�");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
                 System.out.println(
-                        " 鍩庡競闈炴満鍔ㄨ溅杩濆仠浜嬩欢 鏃堕棿(UTC)锛�" + msg.UTC + " 閫氶亾鍙�:" + msg.nChannelID + "妫�娴嬪埌鐨勭墿浣撲釜鏁�:" + msg.nObjectNum);
+                        " 鍩庡競闈炴満鍔ㄨ溅杩濆仠浜嬩欢 鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "妫�娴嬪埌鐨勭墿浣撲釜鏁�:" + info.nObjectNum);
                 break;
             }
             case EVENT_IVS_HOLD_UMBRELLA: /// 6 杩濊鎾戜紴妫�娴嬩簨浠�
             {
-                NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO msg = new NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
-                stuFileInfo = msg.stuFileInfo;
+                NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO info = new NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("杩濊鎾戜紴");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
                 System.out.println(
-                        " 杩濊鎾戜紴妫�娴嬩簨浠� 鏃堕棿(UTC)锛�" + msg.UTC + " 閫氶亾鍙�:" + msg.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)" + msg.nViolationDuration);
+                        " 杩濊鎾戜紴妫�娴嬩簨浠� 鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)" + info.nViolationDuration);
                 break;
             }
             case EVENT_IVS_SHOPPRESENCE: /// 7 鍗犻亾缁忚惀
             {
-                NetSDKLib.DEV_EVENT_SHOPPRESENCE_INFO msg = new NetSDKLib.DEV_EVENT_SHOPPRESENCE_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
+                NetSDKLib.DEV_EVENT_SHOPPRESENCE_INFO info = new NetSDKLib.DEV_EVENT_SHOPPRESENCE_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
 
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("鍗犻亾缁忚惀");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
+                System.out.println(" 鍗犻亾缁忚惀妫�娴嬩簨浠� 鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
+                        + info.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + info.nObjectNum);
+                break;
             }
             case EVENT_IVS_DUSTBIN_OVER_FLOW: /// 9 鍨冨溇妗舵弧婧㈡娴嬩簨浠�
             {
-                NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO msg = new NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
-                stuFileInfo = msg.stuFileInfo;
-                System.out.println(" 鍨冨溇妗舵弧婧㈡娴嬩簨浠� 鏃堕棿(UTC)锛�" + msg.UTC + " 閫氶亾鍙�:" + msg.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
-                        + msg.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + msg.nObjectNum);
+                NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO info = new NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("鍨冨溇绠辨弧婧�");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
+                System.out.println(" 鍨冨溇妗舵弧婧㈡娴嬩簨浠� 鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
+                        + info.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + info.nObjectNum);
                 break;
             }
             case EVENT_IVS_GARBAGE_PLASTICBAG: /// 10 鎵撳寘鍨冨溇
             {
+                NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO info = new NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
 
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("鎵撳寘鍨冨溇");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
+                System.out.println(" 鎵撳寘鍨冨溇妫�娴嬩簨浠�  鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
+                        + info.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + info.nObjectNum);
+                break;
             }
             case EVENT_IVS_DOOR_FRONT_DIRTY: /// < 闂ㄥ墠鑴忎贡妫�娴嬩簨浠�
             {
@@ -205,11 +302,23 @@
             }
             case EVENT_IVS_GARBAGE_EXPOSURE: /// 11 鍨冨溇鏆撮湶妫�娴嬩簨浠�
             {
-                NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO msg = new NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO();
-                ToolKits.GetPointerData(pAlarmInfo, msg);
-                stuFileInfo = msg.stuFileInfo;
-                System.out.println(" 鍨冨溇鏆撮湶妫�娴嬩簨浠�  鏃堕棿(UTC)锛�" + msg.UTC + " 閫氶亾鍙�:" + msg.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
-                        + msg.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + msg.nObjectNum);
+                NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO info = new NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO();
+                ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("鏆撮湶鍨冨溇");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
+                stuFileInfo = info.stuFileInfo;
+                System.out.println(" 鍨冨溇鏆撮湶妫�娴嬩簨浠�  鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + "杩濇硶鎸佺画鏃堕暱(鍗曚綅绉�)"
+                        + info.nViolationDuration + "妫�娴嬪埌鐨勭墿浣撲釜鏁�" + info.nObjectNum);
                 break;
             }
             case EVENT_IVS_VIOLENT_THROW_DETECTION: /// < 鏆村姏鎶涚墿浜嬩欢浜嬩欢
@@ -250,57 +359,75 @@
             {
                 DEV_EVENT_STREET_SUNCURE_INFO info = new DEV_EVENT_STREET_SUNCURE_INFO();
                 ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("娌胯鏅炬寕");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
                 stuFileInfo = info.stuFileInfo;
                 System.out.println(" 娌胯鏅炬檼浜嬩欢  鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + " 杩濇硶鎸佺画鏃堕棿: "
                         + info.nViolationDuration + " 妫�娴嬪埌鐨勭墿浣撴暟閲�: " + info.nObjectNum);
-                for (int i = 0; i < info.nObjectNum; i++) {
-                    stPicInfo = info.stuObjects[i].stPicInfo;
-                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
-                        String smallPicture = picturePath + File.separator
-                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
-                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
-                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
-                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
-                    }
-                }
+
                 break;
             }
             case EVENT_IVS_OUTDOOR_ADVERTISEMENT: // 14 鎴峰骞垮憡浜嬩欢
             {
                 DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO info = new DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO();
                 ToolKits.GetPointerData(pAlarmInfo, info);
+
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("杩濊鎴峰骞垮憡");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
                 stuFileInfo = info.stuFileInfo;
                 System.out.println(" 鎴峰骞垮憡浜嬩欢  鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + " 杩濇硶鎸佺画鏃堕棿: "
                         + info.nViolationDuration + " 妫�娴嬪埌鐨勭墿浣撴暟閲�: " + info.nObjectNum);
-                for (int i = 0; i < info.nObjectNum; i++) {
-                    stPicInfo = info.stuObjects[i].stPicInfo;
-                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
-                        String smallPicture = picturePath + File.separator
-                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
-                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
-                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
-                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
-                    }
-                }
+
+
                 break;
             }
-            case EVENT_IVS_HUDDLE_MATERIAL:// 13 涔卞爢鐗╂枡妫�娴嬩簨浠�   id 648
+            case EVENT_IVS_HUDDLE_MATERIAL:// 13 涔卞爢鐗╂枡妫�娴嬩簨浠�   id 648  涔卞爢鐗╂枡
             {
                 DEV_EVENT_HUDDLE_MATERIAL_INFO info = new DEV_EVENT_HUDDLE_MATERIAL_INFO();
                 ToolKits.GetPointerData(pAlarmInfo, info);
+                videoAlarmReport.setAlarmObj(JSON.toJSONString(info));
+                videoAlarmReport.setAlarmTime(LocalDateTime.of(info.UTC.dwYear, info.UTC.dwMonth, info.UTC.dwDay, info.UTC.dwHour, info.UTC.dwMinute, info.UTC.dwSecond));
+
+                VideoPoint videoPoint = videoPointService.getByChannelId(info.nChannelID);
+                videoAlarmReport.setChannel(String.valueOf(info.nChannelID));
+                videoAlarmReport.setAlarmId(String.valueOf(info.nEventID));
+                videoAlarmReport.setAlarmName("涔卞爢鐗╂枡");
+                if (videoPoint != null) {
+                    videoAlarmReport.setPlatResourceId(videoPoint.getPlatResourceId());
+                }
+
                 stuFileInfo = info.stuFileInfo;
                 System.out.println(" 涔卞爢鐗╂枡妫�娴嬩簨浠�  鏃堕棿(UTC)锛�" + info.UTC + " 閫氶亾鍙�:" + info.nChannelID + " 杩濇硶鎸佺画鏃堕棿: "
                         + info.nViolationDuration + " 妫�娴嬪埌鐨勭墿浣撴暟閲�: " + info.nObjectNum);
-                for (int i = 0; i < info.nObjectNum; i++) {
-                    stPicInfo = info.stuObjects[i].stPicInfo;
-                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
-                        String smallPicture = picturePath + File.separator
-                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
-                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
-                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
-                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
-                    }
-                }
+//                for (int i = 0; i < info.nObjectNum; i++) {
+//                    stPicInfo = info.stuObjects[i].stPicInfo;
+//                    if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+//                        String smallPicture = picturePath + File.separator
+//                                + String.format("Small_%d_%s_%d_%d_%d_%d.jpg", dwAlarmType,
+//                                stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount, stuFileInfo.bIndex,
+//                                stuFileInfo.bFileType, stuFileInfo.nGroupId);
+//                        ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+//                    }
+//                }
                 break;
             }
             case EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION: //鍨冨溇妗舵湭鐩栫洊瀛愭娴嬩簨浠�
@@ -344,11 +471,21 @@
 //                        stuFileInfo.bFileType, stuFileInfo.nGroupId);
 //                ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
 //            }
-            String extension = "jpg";
-            String picData = ossService.uploadImages(new ByteArrayInputStream(pBuffer.getByteArray(stPicInfo.dwOffSet, dwBufSize)), extension);
-            videoAlarmReport.setPicData(picData);
-        }
+            try {
 
+                String extension = "jpg";
+                String picData = ossService.uploadImages(new ByteArrayInputStream(pBuffer.getByteArray(stPicInfo.dwOffSet, dwBufSize)), extension, 0);
+                videoAlarmReport.setPicData(picData);
+
+            } catch (Exception ex) {
+                System.out.println("淇濆瓨鍥剧墖閿欒锛�" + ex.getMessage());
+            }
+        }
+        videoAlarmReportService.save(videoAlarmReport);
+
+        List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
+        videoAlarmReports.add(videoAlarmReport);
+        violationsService.saveFromVideo(videoAlarmReports);
 
         return 0;
     }

--
Gitblit v1.8.0