From 30f70fd08d363232dc30c89302a14eeb8598056e Mon Sep 17 00:00:00 2001
From: lxj <15683799673@163.com>
Date: Sun, 13 Jul 2025 17:43:02 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A2=AF=E6=8E=A7=E5=AF=B9=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 9 ++---
.../runner/HikDeviceApplicationRunner.java | 17 ++++++++--
.../sis/sdk/hik/calback/HikAlarmCallBack.java | 34 +++++++++++++++++++
3 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/pom.xml b/pom.xml
index 360d154..5331daa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,15 +91,12 @@
dev
- 47.109.37.87:8848
- 47.109.37.87:4560
-
-
+ 192.168.24.101:8848
+ 192.168.24.101:4560
DEFAULT_GROUP
DEFAULT_GROUP
nacos
nacos
-
@@ -107,8 +104,6 @@
prod
prod
-
-
47.109.37.87:8848
47.109.37.87:4560
DEFAULT_GROUP
diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/runner/HikDeviceApplicationRunner.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/runner/HikDeviceApplicationRunner.java
index 268f874..e0a303b 100644
--- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/runner/HikDeviceApplicationRunner.java
+++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/runner/HikDeviceApplicationRunner.java
@@ -13,6 +13,7 @@ import org.springframework.boot.ApplicationRunner;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
+import java.util.Arrays;
import java.util.List;
@Slf4j
@@ -37,18 +38,28 @@ public class HikDeviceApplicationRunner implements ApplicationRunner {
@Async
public void hikElevatorInfoLogin() {
- List sisElevatorInfoVos = elevatorInfoService.queryAll();
+ /*List sisElevatorInfoVos = elevatorInfoService.queryAll();
if (CollUtil.isNotEmpty(sisElevatorInfoVos)) {
sisElevatorInfoVos.forEach(item -> {
// 执行设备登录操作
HikApiService.getInstance().login(item.getControlIp(), item.getControlPort().shortValue(), item.getControlAccount(), item.getControlPwd());
- // todo 更新设备心跳信息
});
+ }*/
+ String ip = "192.168.24.188";
+ short port = 8000;
+ String account = "admin";
+ String pwd = "qweasd123";
+ HikApiService.getInstance().login(ip, port, account, pwd);
+ List arrs = Arrays.asList(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
+ for (int i = 0; i < arrs.size(); i++) {
+ HikApiService.getInstance().controlGateway(ip, (i + 1), arrs.get(i));
}
+
}
+ @Async
public void hikNetCameraLogin() {
- String ip = "192.168.24.17";
+ String ip = "192.168.24.19";
short port = 8000;
String account = "admin";
String pwd = "xzf13579";
diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java
index fedfff0..ae40039 100644
--- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java
+++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java
@@ -2,22 +2,30 @@ package org.dromara.sis.sdk.hik.calback;
import cn.hutool.core.codec.Base64Encoder;
import com.sun.jna.Pointer;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sis.sdk.hik.HCNetSDK;
+import org.dromara.sis.sdk.hik.HikApiService;
+import org.dromara.sis.sdk.huawei.HuaWeiBoxApi;
import org.springframework.stereotype.Component;
import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.List;
@Slf4j
@Component
+@RequiredArgsConstructor
public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 {
+ private final HuaWeiBoxApi huaWeiBoxApi;
private static final int COMM_UPLOAD_FACESNAP_RESULT = 0x1112;
@Override
public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
if (lCommand == COMM_UPLOAD_FACESNAP_RESULT) {// 读取抓拍人脸数据
+ long s = System.currentTimeMillis();
log.info("hik 抓拍信息上报完成,lCommand={}", lCommand);
HCNetSDK.NET_VCA_FACESNAP_RESULT result = new HCNetSDK.NET_VCA_FACESNAP_RESULT();
result.write();
@@ -29,6 +37,7 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 {
byte[] smallImg = new byte[result.dwFacePicLen];
buffers.rewind();
buffers.get(smallImg);
+ String dir = "";
// 读取人脸大图
// ByteBuffer buffers1 = result.pBuffer2.getByteBuffer(0, result.dwBackgroundPicLen);
// byte[] bigImg = new byte[result.dwBackgroundPicLen];
@@ -36,6 +45,31 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 {
// buffers1.get(bigImg);
// todo 进行人脸比对
String smallImgBase64Str = Base64Encoder.encode(smallImg);
+
+ long s1 = System.currentTimeMillis();
+ Long person = huaWeiBoxApi.findPerson(smallImgBase64Str);
+ log.info("人脸比对执行完成,耗时:{}", System.currentTimeMillis() - s1);
+ if (person == null) {
+ log.info("未命中人脸数据,暂不处理。");
+ log.info("权限下发执行完成,耗时:{}", System.currentTimeMillis() - s);
+ return true;
+ }
+ log.info("人脸比对完成,personId={}", person);
+// List arrs = Arrays.asList(2, 2, 2, 3, 3, 3 ,3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
+ List arrs = Arrays.asList(3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
+ for (int i = 0; i < arrs.size(); i++) {
+ HikApiService.getInstance().controlGateway("192.168.24.188", (i + 1), arrs.get(i));
+ }
+ log.info("权限下发执行完成,耗时:{}", System.currentTimeMillis() - s);
+ try {
+ Thread.sleep(10000L);
+ List ass = Arrays.asList(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
+ for (int i = 0; i < arrs.size(); i++) {
+ HikApiService.getInstance().controlGateway("192.168.24.188", (i + 1), arrs.get(i));
+ }
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
} else {
log.info("未知报警类型,lCommand={}", lCommand);
}