From a767f8b7e2aabf9bb3bb98344e8c559c71c1d442 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 11 八月 2023 14:40:28 +0800
Subject: [PATCH] 过滤通用光电报警只保留移动侦测、周界入侵报警、越界侦测报警 增加报警主机、门禁主机、通用光电数据同步
---
src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java | 124 +++++++++--
src/main/java/com/ard/utils/tcp/ClientHandler.java | 4
src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java | 156 +++++++++++++
src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java | 5
src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java | 4
src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java | 206 +++++++++---------
src/main/resources/logback-spring.xml | 26 ++
src/main/resources/mapper/ArdCamerasMapper.xml | 4
src/main/resources/mapper/ArdEquipExternalMapper.xml | 4
src/main/java/com/ard/alarm/camera/domain/ArdCameras.java | 9
src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java | 101 +++++++-
src/main/java/com/ard/alarm/external/domain/ArdEquipExternal.java | 4
12 files changed, 483 insertions(+), 164 deletions(-)
diff --git a/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java b/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
index f10e0f7..5fa12ca 100644
--- a/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
+++ b/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
@@ -17,10 +17,7 @@
@NoArgsConstructor
public class ArdCameras {
private static final long serialVersionUID = 1L;
- public ArdCameras(String gdtype)
- {
- this.gdtype=gdtype;
- }
+
/**
* id
*/
@@ -172,4 +169,8 @@
private Integer loginId;
private String operatorId;
private Date operatorExpired;
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ private Date updateTime;
}
diff --git a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
index 7a52bec..7b0f9ab 100644
--- a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -1,6 +1,10 @@
package com.ard.alarm.camera.service.impl;
import java.util.*;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import com.ard.alarm.camera.domain.ArdCameras;
import com.ard.alarm.camera.mapper.ArdCamerasMapper;
@@ -27,30 +31,62 @@
@Slf4j(topic = "camera")
@Order(4)
public class ArdCamerasServiceImpl implements IArdCamerasService, ApplicationRunner {
+ private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+
+ public static List<ArdCameras> ardCameraList = new ArrayList<>();
+
@Resource
private ArdCamerasMapper ardCamerasMapper;
- @Resource
- private ArdEquipExternalMapper ardEquipExternalMapper;
@Override
- public void run(ApplicationArguments args) {
+ public void run(ApplicationArguments args) {
//鍔犺浇sdk搴�
HikClientUtil.loadHCNetSDKLib();
//鑾峰彇鍏ㄩ儴娴峰悍鍏夌數灏濊瘯鐧诲綍
- List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
- HikClientUtil.loginAllCamera(ardCameras);
- //鑾峰彇鍏ㄩ儴娴峰悍鎶ヨ涓绘満灏濊瘯鐧诲綍
- ArdEquipExternal alarmHost = new ArdEquipExternal();
- alarmHost.setFactory("1");
- alarmHost.setType("1");
- List<ArdEquipExternal> alarmHosts = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
- HikClientUtil.loginAllAlarmHost(alarmHosts);
- //鑾峰彇鍏ㄩ儴闂ㄧ涓绘満灏濊瘯鐧诲綍
- ArdEquipExternal accessControlHost = new ArdEquipExternal();
- accessControlHost.setFactory("1");
- accessControlHost.setType("6");
- List<ArdEquipExternal>accessControlHosts = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost);
- HikClientUtil.loginAllAccessControlHost(accessControlHosts);
+ ardCameraList = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
+ HikClientUtil.loginAllCamera(ardCameraList);
+ syncTask();
+ }
+
+ /**
+ * 鍚屾浠诲姟
+ * 鍒樿嫃涔�
+ * 2023/8/11 9:09:27
+ */
+ private void syncTask() {
+ scheduler.scheduleAtFixedRate(() -> {
+ try {
+ //region 瀹氭椂鍚屾鐩告満
+ List<ArdCameras> newArdCameraList = ardCamerasMapper.selectArdCamerasList(new ArdCameras());
+ //闇�瑕佹洿鏂扮殑鏁版嵁
+ List<ArdCameras> updateList = sameListWithDifferent(ardCameraList, newArdCameraList);
+ if (updateList.size() > 0) {
+ HikClientUtil.logoutAllCamera(updateList);
+ HikClientUtil.loginAllCamera(updateList);
+ ardCameraList.clear();
+ ardCameraList.addAll(newArdCameraList);
+ }
+ //闇�瑕佸垹闄ょ殑鏁版嵁
+ List<ArdCameras> delList = diffList(ardCameraList, newArdCameraList);
+ if (delList.size() > 0) {
+ HikClientUtil.logoutAllCamera(delList);
+ for (ArdCameras ardCameras : delList) {
+ ardCameraList.remove(ardCameras);
+ }
+ }
+ //闇�瑕佹柊澧炵殑鏁版嵁
+ List<ArdCameras> inserList = diffList(newArdCameraList, ardCameraList);
+ if (inserList.size() > 0) {
+ HikClientUtil.loginAllCamera(inserList);
+ for (ArdCameras ardCameras : inserList) {
+ ardCameraList.add(ardCameras);
+ }
+ }
+ //endregion
+ } catch (Exception e) {
+ log.error("鍚屾鐩告満浠诲姟鎵ц鍑洪敊" + e.getMessage());
+ }
+ }, 10, 10, TimeUnit.SECONDS);
}
/**
@@ -74,4 +110,35 @@
public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras) {
return ardCamerasMapper.selectArdCamerasList(ardCameras);
}
+
+
+ // 姹備袱涓璞ist鐨勫樊闆�
+ private List<ArdCameras> diffList(List<ArdCameras> oldArrayList, List<ArdCameras> newArrayList) {
+ List<ArdCameras> resultList = oldArrayList.stream()
+ .filter(item -> !newArrayList.stream().map(e -> e.getId()).collect(Collectors.toList()).contains(item.getId()))
+ .collect(Collectors.toList());
+ return resultList;
+ }
+
+ //姹備袱涓璞ist鐨勪氦闆嗗瓧娈典笉鍚孖d鐩稿悓
+ private List<ArdCameras> sameListWithDifferent(List<ArdCameras> oldList, List<ArdCameras> newList) {
+ List<ArdCameras> differentFieldsList = newList.stream()
+ .filter(newItem -> {
+ ArdCameras oldItem = oldList.stream()
+ .filter(item -> item.getId().equals(newItem.getId()))
+ .findFirst()
+ .orElse(null);
+
+ return oldItem == null ||
+ !Objects.equals(oldItem.getUpdateTime(), newItem.getUpdateTime()) ||
+ !Objects.equals(oldItem.getIp(), newItem.getIp()) ||
+ !Objects.equals(oldItem.getPort(), newItem.getPort()) ||
+ !Objects.equals(oldItem.getUsername(), newItem.getUsername()) ||
+ !Objects.equals(oldItem.getPassword(), newItem.getPassword());
+
+ })
+ .collect(Collectors.toList());
+
+ return differentFieldsList;
+ }
}
diff --git a/src/main/java/com/ard/alarm/external/domain/ArdEquipExternal.java b/src/main/java/com/ard/alarm/external/domain/ArdEquipExternal.java
index 9d517e0..1ef1ae9 100644
--- a/src/main/java/com/ard/alarm/external/domain/ArdEquipExternal.java
+++ b/src/main/java/com/ard/alarm/external/domain/ArdEquipExternal.java
@@ -2,6 +2,8 @@
import lombok.Data;
+import java.util.Date;
+
/**
* 澶栬仈璁惧绠$悊瀵硅薄 ard_equip_external
*
@@ -52,4 +54,6 @@
/** 鐢ㄦ埛id */
private String userId;
+ private Date updateTime;
+
}
diff --git a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
index 2753ea4..9d77347 100644
--- a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
+++ b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -1,35 +1,171 @@
package com.ard.alarm.external.service.impl;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import com.ard.alarm.camera.domain.ArdCameras;
import com.ard.alarm.external.domain.ArdEquipExternal;
import com.ard.alarm.external.mapper.ArdEquipExternalMapper;
import com.ard.alarm.external.service.IArdEquipExternalService;
+import com.ard.utils.hiksdk.service.impl.HikClientUtil;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
/**
* externalService涓氬姟灞傚鐞�
- *
+ *
* @author zj
* @date 2023-03-13
*/
@Service
-public class ArdEquipExternalServiceImpl implements IArdEquipExternalService
-{
+@Slf4j(topic = "external")
+@Order(5)
+public class ArdEquipExternalServiceImpl implements IArdEquipExternalService, ApplicationRunner {
+ private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+ public static List<ArdEquipExternal> ardAlarmHostList = new ArrayList<>();
+ public static List<ArdEquipExternal> ardAccessHostList = new ArrayList<>();
@Autowired
private ArdEquipExternalMapper ardEquipExternalMapper;
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ //鑾峰彇鍏ㄩ儴娴峰悍鎶ヨ涓绘満灏濊瘯鐧诲綍
+ ArdEquipExternal alarmHost = new ArdEquipExternal();
+ alarmHost.setFactory("1");
+ alarmHost.setType("1");
+ ardAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+ HikClientUtil.loginAllAlarmHost(ardAlarmHostList);
+ //鑾峰彇鍏ㄩ儴闂ㄧ涓绘満灏濊瘯鐧诲綍
+ ArdEquipExternal accessControlHost = new ArdEquipExternal();
+ accessControlHost.setFactory("1");
+ accessControlHost.setType("6");
+ ardAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost);
+ HikClientUtil.loginAllAccessControlHost(ardAccessHostList);
+ syncTask();
+ }
+
+ /**
+ * 鍚屾浠诲姟
+ * 鍒樿嫃涔�
+ * 2023/8/11 9:09:27
+ */
+ private void syncTask() {
+ scheduler.scheduleAtFixedRate(() -> {
+ try {
+ //region 瀹氭椂鍚屾鎶ヨ涓绘満
+ ArdEquipExternal alarmHost = new ArdEquipExternal();
+ alarmHost.setFactory("1");
+ alarmHost.setType("1");
+ List<ArdEquipExternal> newAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+ //闇�瑕佹洿鏂扮殑鏁版嵁
+ List<ArdEquipExternal> updateList = sameListWithDifferent(ardAlarmHostList, newAlarmHostList);
+ if (updateList.size() > 0) {
+ HikClientUtil.logoutAllAlarmHost(updateList);
+ HikClientUtil.loginAllAlarmHost(updateList);
+ ardAlarmHostList.clear();
+ ardAlarmHostList.addAll(newAlarmHostList);
+ }
+ //闇�瑕佸垹闄ょ殑鏁版嵁
+ List<ArdEquipExternal> delList = diffList(ardAlarmHostList, newAlarmHostList);
+ if (delList.size() > 0) {
+ HikClientUtil.logoutAllAlarmHost(delList);
+ for (ArdEquipExternal ardEquipExternal : delList) {
+ ardAlarmHostList.remove(ardEquipExternal);
+ }
+ }
+ //闇�瑕佹柊澧炵殑鏁版嵁
+ List<ArdEquipExternal> inserList = diffList(newAlarmHostList, ardAlarmHostList);
+ if (inserList.size() > 0) {
+ HikClientUtil.loginAllAlarmHost(inserList);
+ for (ArdEquipExternal ardEquipExternal : inserList) {
+ ardAlarmHostList.add(ardEquipExternal);
+ }
+ }
+
+ //endregion
+ //region 瀹氭椂鍚屾闂ㄧ涓绘満
+ alarmHost = new ArdEquipExternal();
+ alarmHost.setFactory("1");
+ alarmHost.setType("6");
+ List<ArdEquipExternal> newAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+ //闇�瑕佹洿鏂扮殑鏁版嵁
+ updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList);
+ if (updateList.size() > 0) {
+ HikClientUtil.logoutAllAlarmHost(updateList);
+ HikClientUtil.loginAllAlarmHost(updateList);
+ ardAccessHostList.clear();
+ ardAccessHostList.addAll(newAccessHostList);
+ }
+ //闇�瑕佸垹闄ょ殑鏁版嵁
+ delList = diffList(ardAccessHostList, newAccessHostList);
+ if (delList.size() > 0) {
+ HikClientUtil.logoutAllAccessControlHost(delList);
+ for (ArdEquipExternal ardEquipExternal : delList) {
+ ardAccessHostList.remove(ardEquipExternal);
+ }
+ }
+ //闇�瑕佹柊澧炵殑鏁版嵁
+ inserList = diffList(newAccessHostList, ardAccessHostList);
+ if (inserList.size() > 0) {
+ HikClientUtil.loginAllAccessControlHost(inserList);
+ for (ArdEquipExternal ardEquipExternal : inserList) {
+ ardAccessHostList.add(ardEquipExternal);
+ }
+ }
+ //endregion
+ } catch (Exception e) {
+ log.error("鍚屾澶栬仈浠诲姟鎵ц鍑洪敊" + e.getMessage());
+ }
+ }, 10, 10, TimeUnit.SECONDS);
+ }
+
+
+ //姹備袱涓璞ist鐨勪氦闆嗗瓧娈典笉鍚孖d鐩稿悓
+ private List<ArdEquipExternal> sameListWithDifferent(List<ArdEquipExternal> oldList, List<ArdEquipExternal> newList) {
+ List<ArdEquipExternal> differentFieldsList = newList.stream()
+ .filter(newItem -> {
+ ArdEquipExternal oldItem = oldList.stream()
+ .filter(item -> item.getId().equals(newItem.getId()))
+ .findFirst()
+ .orElse(null);
+
+ return oldItem == null ||
+ !Objects.equals(oldItem.getUpdateTime(), newItem.getUpdateTime()) ||
+ !Objects.equals(oldItem.getIp(), newItem.getIp()) ||
+ !Objects.equals(oldItem.getPort(), newItem.getPort()) ||
+ !Objects.equals(oldItem.getUsername(), newItem.getUsername()) ||
+ !Objects.equals(oldItem.getPassword(), newItem.getPassword());
+ })
+ .collect(Collectors.toList());
+
+ return differentFieldsList;
+ }
+
+
+ // 姹備袱涓璞ist鐨勫樊闆�
+ private List<ArdEquipExternal> diffList(List<ArdEquipExternal> oldArrayList, List<ArdEquipExternal> newArrayList) {
+ List<ArdEquipExternal> resultList = oldArrayList.stream()
+ .filter(item -> !newArrayList.stream().map(e -> e.getId()).collect(Collectors.toList()).contains(item.getId()))
+ .collect(Collectors.toList());
+ return resultList;
+ }
+
/**
* 鏌ヨexternal
- *
+ *
* @param id external涓婚敭
* @return external
*/
@Override
- public ArdEquipExternal selectArdEquipExternalById(String id)
- {
+ public ArdEquipExternal selectArdEquipExternalById(String id) {
return ardEquipExternalMapper.selectArdEquipExternalById(id);
}
@@ -40,14 +176,14 @@
/**
* 鏌ヨexternal鍒楄〃
- *
+ *
* @param ardEquipExternal external
* @return external
*/
@Override
- public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal)
- {
+ public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) {
return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal);
}
+
}
diff --git a/src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java b/src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java
index 6eee57f..5e79fef 100644
--- a/src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java
+++ b/src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java
@@ -19,6 +19,10 @@
public static Map<String, ArdCameras> cameraMap = new HashMap<>();
//淇濆瓨鐩告満淇℃伅key:ip value:鎶ヨ涓绘満瀵硅薄
public static Map<String, ArdEquipExternal> alarmHostMap = new HashMap<>();
+ //淇濆瓨鐩告満淇℃伅key:ip value:闂ㄧ涓绘満瀵硅薄
+ public static Map<String, ArdEquipExternal> accessHostMap = new HashMap<>();
//淇濆瓨鐩告満鐧诲綍淇℃伅key:cameraId value:loginId
public static Map<String, Integer> loginMap = new HashMap<>();
+ //淇濆瓨鐩告満鐨勫竷闃蹭俊鎭痥ey:cameraId value:lAlarmHandle
+ public static Map<String, Integer> alarmMap = new HashMap<>();
}
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 898dc85..9314aa7 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
@@ -46,26 +46,56 @@
*/
@Override
public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
-
- String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP);
- Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort);
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP);//璁惧IP鍦板潃
+ Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort);//璁惧閫氳绔彛
CameraEventInfo info;
String sTime;//浜嬩欢鏃堕棿
String url = "";//浜嬩欢鍥剧墖
- Boolean isSnapPic=true;
//lCommand鏄紶鐨勬姤璀︾被鍨�
- log.debug("鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
+ //log.debug("鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
switch (lCommand) {
case HCNetSDK.COMM_ALARM_V30:
- log.debug("绉诲姩渚︽祴銆佽棰戜涪澶便�侀伄鎸°�両O淇″彿閲忕瓑鎶ヨ淇℃伅(鏆備笉瑙f瀽)");
- case HCNetSDK.COMM_ALARM_RULE:
- log.debug("琛屼负鍒嗘瀽淇℃伅鎶ヨ淇℃伅涓婃姤");
- //region 琛屼负鍒嗘瀽淇℃伅
+ log.debug("绉诲姩渚︽祴");
ArdCameras ardCameras = new ArdCameras();
ardCameras.setIp(sDeviceIP);
ardCameras.setPort(wLinkPort);
IArdCamerasService ardCamerasService = SpringTool.getApplicationContext().getBean(IArdCamerasService.class);
- ArdCameras ardcamere = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
+ ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
+ HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30();
+ netDvrAlarminfoV30.write();
+ Pointer pNDAInfo = netDvrAlarminfoV30.getPointer();
+ pNDAInfo.write(0, pAlarmInfo.getByteArray(0, netDvrAlarminfoV30.size()), 0, netDvrAlarminfoV30.size());
+ netDvrAlarminfoV30.read();
+ switch (netDvrAlarminfoV30.dwAlarmType) {
+ case 3:
+ info = new CameraEventInfo();
+ info.setAlarmName("绉诲姩渚︽祴");
+ info.setAlarmTime(fmt.format(new Date()));
+ info.setCameraName(camera.getName());
+ info.setCameraId(camera.getId());
+ info.setCameraIp(camera.getIp());
+ 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);
+ publishMqtt(info);
+ break;
+ }
+
+ case HCNetSDK.COMM_ALARM_RULE:
+ log.debug("琛屼负鍒嗘瀽淇℃伅鎶ヨ淇℃伅涓婃姤");
+ //region 琛屼负鍒嗘瀽淇℃伅
+ ardCameras = new ArdCameras();
+ ardCameras.setIp(sDeviceIP);
+ ardCameras.setPort(wLinkPort);
+ ardCamerasService = SpringTool.getApplicationContext().getBean(IArdCamerasService.class);
+ ArdCameras ardCamera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM();
strVcaAlarm.write();
@@ -79,80 +109,81 @@
info = new CameraEventInfo();
info.setAlarmName("浜哄憳琛屼负鍒嗘瀽");
info.setAlarmTime(sTime);
- info.setCameraName(ardcamere.getName());
- info.setCameraId(ardcamere.getId());
+ info.setCameraName(ardCamera.getName());
+ info.setCameraId(ardCamera.getId());
info.setCameraIp(ipaddr);
- info.setCameraType(ardcamere.getGdtype());
+ info.setCameraType(ardCamera.getGdtype());
info.setCameraChannel(channel);
- info.setLongitude(ardcamere.getLongitude());
- info.setLatitude(ardcamere.getLatitude());
- info.setAlarmType(ardcamere.getGdtype());
+ info.setLongitude(ardCamera.getLongitude());
+ info.setLatitude(ardCamera.getLatitude());
info.setRuleId(ruleID);
switch (strVcaAlarm.struRuleInfo.wEventTypeEx) {
case 1: //region绌胯秺璀︽垝闈� (瓒婄晫渚︽祴)
info.setAlarmType("瓒婄晫渚︽祴鎶ヨ");
strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class);
+ printLog(info);
+ //鍥剧墖瀛樺叆minio
+ url = savePicture(info);
+ info.setPicUrl(url);
+ publishMqtt(info);
//endregion
break;
- case 2: //region 鐩爣杩涘叆鍖哄煙
- info.setAlarmType("鐩爣杩涘叆鍖哄煙鎶ヨ");
- strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
- //endregion
- break;
- case 3: //region 鐩爣绂诲紑鍖哄煙
- info.setAlarmType("鐩爣绂诲紑鍖哄煙鎶ヨ");
- strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
- //endregion
- break;
+// case 2: //region 鐩爣杩涘叆鍖哄煙
+// info.setAlarmType("鐩爣杩涘叆鍖哄煙鎶ヨ");
+// strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
+// //endregion
+// break;
+// case 3: //region 鐩爣绂诲紑鍖哄煙
+// info.setAlarmType("鐩爣绂诲紑鍖哄煙鎶ヨ");
+// strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
+// //endregion
+// break;
case 4: //region 鍛ㄧ晫鍏ヤ镜
info.setAlarmType("鍛ㄧ晫鍏ヤ镜鎶ヨ");
strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class);
+ printLog(info);
+ //鍥剧墖瀛樺叆minio
+ url = savePicture(info);
+ info.setPicUrl(url);
+ publishMqtt(info);
//endregion
break;
- case 5: //region 寰樺緤
- info.setAlarmType("寰樺緤浜嬩欢鎶ヨ");
- //endregion
- break;
- case 8: //region 蹇�熺Щ鍔�(濂旇窇)
- info.setAlarmType("蹇�熺Щ鍔�(濂旇窇)浜嬩欢鎶ヨ");
- //endregion
- break;
- case 13: //region 鐗╁搧閬楃暀浜嬩欢
- info.setAlarmType("鐗╁搧閬楃暀浜嬩欢鎶ヨ");
- //endregion
- break;
- case 14: //region 鐗╁搧鎷垮彇浜嬩欢
- info.setAlarmType("鐗╁搧鎷垮彇浜嬩欢浜嬩欢鎶ヨ");
- //endregion
- break;
- case 20: //region 鍊掑湴妫�娴�
- info.setAlarmType("鍊掑湴浜嬩欢瑙﹀彂");
- //endregion
- break;
- case 44: //region 鐜╂墜鏈�
- info.setAlarmType("鐜╂墜鏈烘姤璀︿簨浠�");
- //endregion
- break;
+// case 5: //region 寰樺緤
+// info.setAlarmType("寰樺緤浜嬩欢鎶ヨ");
+// //endregion
+// break;
+// case 8: //region 蹇�熺Щ鍔�(濂旇窇)
+// info.setAlarmType("蹇�熺Щ鍔�(濂旇窇)浜嬩欢鎶ヨ");
+// //endregion
+// break;
+// case 13: //region 鐗╁搧閬楃暀浜嬩欢
+// info.setAlarmType("鐗╁搧閬楃暀浜嬩欢鎶ヨ");
+// //endregion
+// break;
+// case 14: //region 鐗╁搧鎷垮彇浜嬩欢
+// info.setAlarmType("鐗╁搧鎷垮彇浜嬩欢浜嬩欢鎶ヨ");
+// //endregion
+// break;
+// case 20: //region 鍊掑湴妫�娴�
+// info.setAlarmType("鍊掑湴浜嬩欢瑙﹀彂");
+// //endregion
+// break;
+// case 44: //region 鐜╂墜鏈�
+// info.setAlarmType("鐜╂墜鏈烘姤璀︿簨浠�");
+// //endregion
+// break;
default:
- // log.debug("鏈煡琛屼负浜嬩欢绫诲瀷:" + strVcaAlarm.struRuleInfo.wEventTypeEx);
- isSnapPic=false;
+ // log.debug("鏈煡琛屼负浜嬩欢绫诲瀷:" + strVcaAlarm.struRuleInfo.wEventTypeEx);
break;
}
//endregion
- //鍥剧墖瀛樺叆minio
- if(isSnapPic) {
- url = savePicture(info);
- info.setPicUrl(url);
- publishMqtt(info);
- }
-
break;
- case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT:
- log.debug("浜鸿劯妫�娴嬩簨浠朵笂鎶�(鏆備笉瑙f瀽)");
- break;
- case HCNetSDK.COMM_GISINFO_UPLOAD:
- log.debug("GPS鎶ヨ淇℃伅涓婃姤(鏆備笉瑙f瀽)");
- break;
+// case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT:
+// log.debug("浜鸿劯妫�娴嬩簨浠朵笂鎶�(鏆備笉瑙f瀽)");
+// break;
+// case HCNetSDK.COMM_GISINFO_UPLOAD:
+// log.debug("GPS鎶ヨ淇℃伅涓婃姤(鏆備笉瑙f瀽)");
+// break;
case HCNetSDK.COMM_ALARMHOST_CID_ALARM:
log.debug("鎶ヨ涓绘満CID鎶ュ憡鎶ヨ涓婃姤");
//region 鎶ヨ涓绘満鎶ヨ澶勭悊
@@ -256,7 +287,7 @@
if (dwMajor != 5) {
//鍙幏鍙栦簨浠�
- log.debug("闈炰簨浠舵姤璀︽暟鎹笂鎶�(鏆備笉瑙f瀽)");
+ // log.debug("闈炰簨浠舵姤璀︽暟鎹笂鎶�(鏆備笉瑙f瀽)");
break;
}
int dwMinor = strACSInfo.dwMinor;
@@ -357,47 +388,13 @@
//endregion
break;
default:
- log.debug("鏈煡鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
+ // log.debug("鏈煡鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
break;
}
return true;
}
- /**
- * @鎻忚堪 淇濆瓨鍥剧墖灏佽鏂规硶
- * @鍙傛暟 [strVcaAlarm, eventName, eventNameEng]
- * @杩斿洖鍊� java.lang.String
- * @鍒涘缓浜� 鍒樿嫃涔�
- * @鍒涘缓鏃堕棿 2023/2/17 15:05
- * @淇敼浜哄拰鍏跺畠淇℃伅
- */
- private String savePicture(HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm, String eventName, String eventNameEng) {
- String url = "";
- if ((strVcaAlarm.dwPicDataLen > 0) && (strVcaAlarm.byPicTransType == 0)) {
- String currentTime = new SimpleDateFormat("yyyyMMdd").format(new Date());
- try {
- //瀛樺叆minio
- long offset = 0;
- ByteBuffer buffers = strVcaAlarm.pImage.getByteBuffer(offset, strVcaAlarm.dwPicDataLen);
- byte[] bytes = new byte[strVcaAlarm.dwPicDataLen];
- buffers.rewind();
- buffers.get(bytes);
- InputStream inputStream = new ByteArrayInputStream(bytes);
- String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//璁惧ip
- String UUID = java.util.UUID.randomUUID().toString().replace("-", "");
- String filename = ipaddr + "/" + currentTime + "/" + eventNameEng + "/" + UUID + ".jpg";
- boolean uploadRes = MinioUtils.uploadObject("pic", filename, inputStream, "image/jpeg");
- if (uploadRes) {
- url = MinioClientSingleton.domainUrl + filename;
- log.info("鍐欏叆minio鍥剧墖鍦板潃锛�" + url);
- }
- } catch (Exception ex) {
- log.error(eventName + "澶勭悊鍥剧墖寮傚父锛�" + ex.getMessage());
- }
- }
- return url;
- }
/**
* 鐩告満鎴浘
@@ -405,8 +402,7 @@
private String savePicture(CameraEventInfo info) {
CameraCmd cmd = new CameraCmd();
ArdCameras Cameras = GlobalVariable.cameraMap.get(info.getCameraIp());
- if(Cameras==null)
- {
+ if (Cameras == null) {
return "";
}
cmd.setCameraId(Cameras.getId());
@@ -442,9 +438,9 @@
* 鎵撳嵃闂ㄧ浜嬩欢鏃ュ織
*/
private void printLog(AccessControlHostEventInfo info) {
- log.debug("銆愭姤璀D銆�" + info.getSerialNo() + "銆愯澶囩紪鍙枫��"+
+ log.debug("銆愭姤璀D銆�" + info.getSerialNo() + "銆愯澶囩紪鍙枫��" +
"銆愰棬缂栧彿銆�" + info.getDoorNo() + "銆愪簨浠剁被鍨嬨��" + info.getAlarmType() +
- "銆愰槻鍖虹被鍨嬨��" + info.getDefenseType()+"銆愭椂闂淬��" + info.getAlarmTime() +
+ "銆愰槻鍖虹被鍨嬨��" + info.getDefenseType() + "銆愭椂闂淬��" + info.getAlarmTime() +
"銆愰棬绂佷富鏈篒D銆�" + info.getAcsId());
}
diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java b/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
index 428c3fe..1faeb54 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
@@ -121,11 +121,8 @@
/**
* @鎻忚堪 娉ㄥ唽鐧诲綍 闆嗘垚浜嶯ET_DVR_Login_V30锛屾敮鎸佸悓姝ュ拰寮傛鐧诲綍
- * @鍙傛暟 [dvrLogin]
- * @杩斿洖鍊� java.lang.Integer
* @鍒涘缓浜� 鍒樿嫃涔�
* @鍒涘缓鏃堕棿 2023/1/17 16:12
- * @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static void login(DeviceInfo deviceInfo) {
// 鍒濆鍖�
@@ -173,12 +170,34 @@
}
/**
+ * @鎻忚堪 鐢ㄦ埛娉ㄩ攢
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/1/17 16:12
+ */
+ public static void logout(DeviceInfo deviceInfo) {
+ String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort();
+ //鎾ら槻
+ if (GlobalVariable.alarmMap.containsKey(deviceInfo.getDeviceId())) {
+ Integer lAlarmHandle = GlobalVariable.alarmMap.get(deviceInfo.getDeviceId());
+ boolean b = hCNetSDK.NET_DVR_CloseAlarmChan_V30(lAlarmHandle);
+ if (b) {
+ log.debug("璁惧銆�" + deviceIpPort + "銆戞挙闃叉垚鍔�");
+ }
+ }
+ //鐧诲嚭
+ if (GlobalVariable.loginMap.containsKey(deviceInfo.getDeviceId())) {
+ Integer lUserID = GlobalVariable.loginMap.get(deviceInfo.getDeviceId());
+ boolean b = hCNetSDK.NET_DVR_Logout(lUserID);
+ if (b) {
+ log.debug("璁惧銆�" + deviceIpPort + "銆戞敞閿�鎴愬姛");
+ }
+ }
+ }
+
+ /**
* @鎻忚堪 鐧诲綍鎵�鏈夌浉鏈�
- * @鍙傛暟 []
- * @杩斿洖鍊� void
* @鍒涘缓浜� 鍒樿嫃涔�
* @鍒涘缓鏃堕棿 2023/2/3 10:10
- * @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static void loginAllCamera(List<ArdCameras> ardCameras) {
try {
@@ -191,8 +210,30 @@
info.setUsername(camera.getUsername());
info.setPassword(camera.getPassword());
login(info);
- String ip = camera.getIp();
- GlobalVariable.cameraMap.put(ip, camera);
+ GlobalVariable.cameraMap.put(camera.getIp(), camera);
+ }
+ } catch (Exception ex) {
+ log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
+ }
+ }
+
+ /**
+ * @鎻忚堪 鐧诲嚭鎵�鏈夌浉鏈�
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/3 10:10
+ */
+ public static void logoutAllCamera(List<ArdCameras> ardCameras) {
+ try {
+ for (ArdCameras camera : ardCameras) {
+ Thread.sleep(100);
+ DeviceInfo info = new DeviceInfo();
+ info.setDeviceId(camera.getId());
+ info.setIp(camera.getIp());
+ info.setPort(camera.getPort());
+ info.setUsername(camera.getUsername());
+ info.setPassword(camera.getPassword());
+ logout(info);
+ GlobalVariable.cameraMap.remove(camera.getIp());
}
} catch (Exception ex) {
log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
@@ -201,11 +242,8 @@
/**
* @鎻忚堪 鐧诲綍鎵�鏈夋姤璀︿富鏈�
- * @鍙傛暟 []
- * @杩斿洖鍊� void
* @鍒涘缓浜� 鍒樿嫃涔�
* @鍒涘缓鏃堕棿 2023/2/3 10:10
- * @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static void loginAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) {
try {
@@ -225,14 +263,34 @@
log.error("鍒濆鍖栨姤璀︿富鏈哄紓甯革細" + ex.getMessage());
}
}
-
/**
- * @鎻忚堪 鐧诲綍鎵�鏈夐棬绂佷富鏈�
- * @鍙傛暟 []
- * @杩斿洖鍊� void
+ * @鎻忚堪 鐧诲嚭鎵�鏈夋姤璀︿富鏈�
* @鍒涘缓浜� 鍒樿嫃涔�
* @鍒涘缓鏃堕棿 2023/2/3 10:10
- * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ public static void logoutAllAlarmHost(List<ArdEquipExternal> ardEquipExternals)
+ {
+ try {
+ for (ArdEquipExternal alarmHost : ardEquipExternals) {
+ Thread.sleep(100);
+ DeviceInfo info = new DeviceInfo();
+ info.setDeviceId(alarmHost.getId());
+ info.setIp(alarmHost.getIp());
+ info.setPort(alarmHost.getPort());
+ info.setUsername(alarmHost.getUsername());
+ info.setPassword(alarmHost.getPassword());
+ logout(info);
+ String ip = alarmHost.getIp();
+ GlobalVariable.alarmHostMap.remove(ip);
+ }
+ } catch (Exception ex) {
+ log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
+ }
+ }
+ /**
+ * @鎻忚堪 鐧诲綍鎵�鏈夐棬绂佷富鏈�
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/3 10:10
*/
public static void loginAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) {
try {
@@ -246,13 +304,35 @@
info.setPassword(accessControlHost.getPassword());
login(info);
String ip = accessControlHost.getIp();
- GlobalVariable.alarmHostMap.put(ip, accessControlHost);
+ GlobalVariable.accessHostMap.put(ip, accessControlHost);
}
} catch (Exception ex) {
log.error("鍒濆鍖栨姤璀︿富鏈哄紓甯革細" + ex.getMessage());
}
}
-
+ /**
+ * @鎻忚堪 鐧诲嚭鎵�鏈夐棬绂佷富鏈�
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/3 10:10
+ */
+ public static void logoutAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) {
+ try {
+ for (ArdEquipExternal accessControlHost : ardEquipExternals) {
+ Thread.sleep(100);
+ DeviceInfo info = new DeviceInfo();
+ info.setDeviceId(accessControlHost.getId());
+ info.setIp(accessControlHost.getIp());
+ info.setPort(accessControlHost.getPort());
+ info.setUsername(accessControlHost.getUsername());
+ info.setPassword(accessControlHost.getPassword());
+ logout(info);
+ String ip = accessControlHost.getIp();
+ GlobalVariable.accessHostMap.remove(ip);
+ }
+ } catch (Exception ex) {
+ log.error("鍒濆鍖栨姤璀︿富鏈哄紓甯革細" + ex.getMessage());
+ }
+ }
/**
* @鎻忚堪 娉ㄩ攢鐧诲綍
* @鍙傛暟 [dvrLogin]
@@ -324,10 +404,8 @@
log.error("璁惧銆�" + deviceIpPort + "銆戝竷闃插け璐ワ紝閿欒鐮�==========銆�" + hCNetSDK.NET_DVR_GetLastError());
// 娉ㄩ攢 閲婃斁sdk璧勬簮
logout(lUserID);
- return lAlarmHandle;
} else {
log.debug("璁惧銆�" + deviceIpPort + "銆戝竷闃叉垚鍔�");
- return lAlarmHandle;
}
}
return lAlarmHandle;
@@ -374,11 +452,11 @@
//璁剧疆鍥剧墖澶у皬
ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024);
// 鎶撳浘鍒板唴瀛橈紝鍗曞抚鏁版嵁鎹曡幏骞朵繚瀛樻垚JPEG瀛樻斁鍦ㄦ寚瀹氱殑鍐呭瓨绌洪棿涓�
- log.debug("-----------杩欓噷寮�濮嬪皝瑁� NET_DVR_CaptureJPEGPicture_NEW---------");
+ // log.debug("-----------杩欓噷寮�濮嬪皝瑁� NET_DVR_CaptureJPEGPicture_NEW---------");
boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
- log.debug("-----------杩欓噷寮�濮嬪浘鐗囧瓨鍏ュ唴瀛�----------" + is);
+ //log.debug("-----------杩欓噷寮�濮嬪浘鐗囧瓨鍏ュ唴瀛�----------" + is);
if (is) {
- log.debug("hksdk(鎶撳浘)-缁撴灉鐘舵�佸��(0琛ㄧず鎴愬姛):" + hCNetSDK.NET_DVR_GetLastError());
+ // log.debug("hksdk(鎶撳浘)-缁撴灉鐘舵�佸��(0琛ㄧず鎴愬姛):" + hCNetSDK.NET_DVR_GetLastError());
byte[] array = jpegBuffer.array();
//瀛樺偍鍒癿inio
diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java b/src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
index 2c12155..244e9af 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
@@ -29,7 +29,10 @@
GlobalVariable.loginMap.put(deviceInfo.getDeviceId(), lUserID);
log.debug("璁惧銆�" + deviceIpPort + "銆戠櫥褰曟垚鍔�");
// 璁剧疆鎶ヨ鍥炶皟鍑芥暟锛屽缓绔嬫姤璀︿笂浼犻�氶亾锛堝惎鐢ㄥ竷闃诧級
- HikClientUtil.setupAlarmChan(deviceIpPort, lUserID, -1);
+ int lAlarmHandle = HikClientUtil.setupAlarmChan(deviceIpPort, lUserID, -1);
+ if (lAlarmHandle != -1) {
+ GlobalVariable.alarmMap.put(deviceInfo.getDeviceId(), lAlarmHandle);
+ }
} else {
log.debug("璁惧銆�" + deviceIpPort + "銆戠櫥褰曞け璐�");
}
diff --git a/src/main/java/com/ard/utils/tcp/ClientHandler.java b/src/main/java/com/ard/utils/tcp/ClientHandler.java
index 3937fdb..b7ebb4d 100644
--- a/src/main/java/com/ard/utils/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/tcp/ClientHandler.java
@@ -208,7 +208,7 @@
if (targetNum == 0) {
return;
}
- log.info("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum);
+ log.debug("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum);
//瑙f瀽NET_TARGET_UNIT(64鏄疦ET_TARGET_HEAD鐨勫瓧鑺傛暟)
int uintSize = (payloadSizeToDecimal - 64) / targetNum;
@@ -327,7 +327,7 @@
byte[] wTargetNum = Arrays.copyOfRange(data, 8, 10);
wTargetNum = ByteUtils.toLittleEndian(wTargetNum);
targetNum = ByteUtils.bytesToDecimal(wTargetNum);
- log.info("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum);
+ log.debug("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum);
if (targetNum == 0) {
return;
}
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index f65b886..a68ba92 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -76,6 +76,28 @@
<onMismatch>DENY</onMismatch>
</filter>
</appender>
+ <!--澶栬仈璁惧鎶ヨ鏃ュ織杈撳嚭-->
+ <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/external.log</file>
+ <!--寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠�-->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!--鏃ュ織鏂囦欢鍚嶆牸寮�-->
+ <fileNamePattern>${log.path}/external.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶60澶�-->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!--杩囨护鐨勭骇鍒�-->
+ <level>INFO</level>
+ <!--鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛�-->
+ <onMatch>ACCEPT</onMatch>
+ <!--涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛�-->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
<!--Netty鏃ュ織杈撳嚭-->
<appender name="netty" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/netty.log</file>
@@ -148,6 +170,10 @@
<logger name="camera" level="INFO">
<appender-ref ref="camera"/>
</logger>
+ <!--澶栬仈璁惧鎶ヨ鎿嶄綔鏃ュ織-->
+ <logger name="external" level="INFO">
+ <appender-ref ref="external"/>
+ </logger>
<!--Netty鏃ュ織-->
<logger name="netty" level="INFO">
<appender-ref ref="netty"/>
diff --git a/src/main/resources/mapper/ArdCamerasMapper.xml b/src/main/resources/mapper/ArdCamerasMapper.xml
index 5f5e419..2ecf053 100644
--- a/src/main/resources/mapper/ArdCamerasMapper.xml
+++ b/src/main/resources/mapper/ArdCamerasMapper.xml
@@ -32,6 +32,7 @@
<result property="operatorExpired" column="operator_expired"/>
<result property="camMaxVisibleDistance" column="cam_max_visible_distance"/>
<result property="camAlarmGuideEnable" column="cam_alarm_guide_enable"/>
+ <result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectArdCamerasVo">
@@ -60,7 +61,8 @@
c.operator_id,
c.operator_expired,
c.cam_max_visible_distance,
- c.cam_alarm_guide_enable
+ c.cam_alarm_guide_enable,
+ c.update_time
from ard_cameras c
</sql>
diff --git a/src/main/resources/mapper/ArdEquipExternalMapper.xml b/src/main/resources/mapper/ArdEquipExternalMapper.xml
index a7550e1..0cd93bf 100644
--- a/src/main/resources/mapper/ArdEquipExternalMapper.xml
+++ b/src/main/resources/mapper/ArdEquipExternalMapper.xml
@@ -18,6 +18,7 @@
<result property="altitude" column="altitude"/>
<result property="deptId" column="dept_id"/>
<result property="userId" column="user_id"/>
+ <result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectArdEquipExternalVo">
@@ -31,7 +32,8 @@
c.password,
c.longitude,
c.latitude,
- c.altitude
+ c.altitude,
+ c.update_time
from ard_equip_external c
</sql>
<select id="selectArdEquipExternal" parameterType="ArdEquipExternal" resultMap="ArdEquipExternalResult">
--
Gitblit v1.9.3