src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -1,6 +1,7 @@ package com.ard.alarm.camera.service.impl; import java.util.*; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.mapper.ArdCamerasMapper; import com.ard.alarm.camera.service.IArdCamerasService; @@ -30,20 +31,28 @@ private ArdCamerasMapper ardCamerasMapper; @Resource private ArdEquipExternalMapper ardEquipExternalMapper; @Override public void run(ApplicationArguments args) throws Exception { //å è½½sdkåº HikClientUtil.loadHCNetSDKLib(); //è·åå ¨é¨æµ·åº·å çµ //è·åå ¨é¨æµ·åº·å çµå°è¯ç»å½ List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasList(new ArdCameras()); HikClientUtil.loginAllCamera(ardCameras); //è·åå ¨é¨æµ·åº·æ¥è¦ä¸»æº ArdEquipExternal ardEquipExternal= new ArdEquipExternal(); ardEquipExternal.setFactory("1"); ardEquipExternal.setType("1"); List<ArdEquipExternal> ardEquipExternals = ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal); HikClientUtil.loginAllAlarmHost(ardEquipExternals); //è·åå ¨é¨æµ·åº·æ¥è¦ä¸»æºå°è¯ç»å½ 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); } /** * æ¥è¯¢ç¸æºè®¾å¤ * src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
@@ -22,6 +22,14 @@ */ public ArdEquipExternal selectArdEquipExternalById(String id); /** * æ¥è¯¢external * * @param ardEquipExternal external * @return externaléå */ public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal); /** * æ¥è¯¢externalå表 * src/main/java/com/ard/alarm/external/service/IArdEquipExternalService.java
@@ -1,28 +1,36 @@ package com.ard.alarm.external.service; import java.util.List; import com.ard.alarm.external.domain.ArdEquipExternal; /** * externalServiceæ¥å£ * * * @author zj * @date 2023-03-13 */ public interface IArdEquipExternalService { public interface IArdEquipExternalService { /** * æ¥è¯¢external * * * @param id externalä¸»é® * @return external */ public ArdEquipExternal selectArdEquipExternalById(String id); /** * æ¥è¯¢external * * @param ardEquipExternal external * @return externaléå */ public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal); /** * æ¥è¯¢externalå表 * * * @param ardEquipExternal external * @return externaléå */ src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -33,6 +33,11 @@ return ardEquipExternalMapper.selectArdEquipExternalById(id); } @Override public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) { return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal); } /** * æ¥è¯¢externalå表 * src/main/java/com/ard/utils/hiksdk/domain/AccessControlHostEventInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ package com.ard.utils.hiksdk.domain; import lombok.Data; /** * @Description: é¨ç¦ä¸»æºäºä»¶ä¿¡æ¯ * @ClassName: AccessControlHostEventInfo * @Author: åèä¹ * @Date: 2023å¹´07æ10æ¥14:25 * @Version: 1.0 **/ @Data public class AccessControlHostEventInfo { /** * äºä»¶æµæ°´å· */ Integer serialNo; /** * é¨ç¼å· */ Integer doorNo; /** * é²åºç±»å */ String defenseType; /** * æ¥è¦æ¶é´ */ String alarmTime; /** * æ¥è¦äºä»¶ç±»å */ String alarmType; /** * å¾çurl */ String picUrl; /** * å ³èé¨ç¦ä¸»æºid */ String acsId; } src/main/java/com/ard/utils/hiksdk/domain/CameraEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/alarmEventInfo.java ÐÞ¸Ä @@ -3,14 +3,14 @@ import lombok.Data; /** * @ClassName alarmInfo * @Description: * @ClassName CameraAlarmEventInfo * @Description: éç¨å çµäºä»¶ä¿¡æ¯ * @Author åèä¹ * @Date 2023/2/16 20:31 * @Version 1.0 */ @Data public class alarmEventInfo { public class CameraEventInfo { /** * æ¥è¦åç§° src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -4,15 +4,14 @@ import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.alarm.camera.service.IArdCamerasService; import com.ard.alarm.camera.service.impl.ArdCamerasServiceImpl; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.external.service.IArdEquipExternalService; import com.ard.alarm.external.service.impl.ArdEquipExternalServiceImpl; import com.ard.config.MinioClientSingleton; import com.ard.utils.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.domain.alarmEventInfo; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.hiksdk.util.minio.MinioUtils; import com.ard.utils.DateUtils; @@ -20,11 +19,8 @@ import com.ard.utils.mqtt.MqttConsumer; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import javax.xml.bind.DatatypeConverter; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.*; import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Date; @@ -55,9 +51,7 @@ Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort); String sTime;//äºä»¶æ¶é´ String url;//äºä»¶å¾ç alarmEventInfo info;//äºä»¶ä¿¡æ¯ String url = "";//äºä»¶å¾ç //lCommandæ¯ä¼ çæ¥è¦ç±»å switch (lCommand) { case HCNetSDK.COMM_ALARM_RULE: @@ -77,7 +71,7 @@ sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//äºä»¶æ¶é´ String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设å¤ip Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//éé info = new alarmEventInfo(); CameraEventInfo info = new CameraEventInfo(); info.setAlarmName("人åè¡ä¸ºåæ"); info.setAlarmTime(sTime); info.setCameraName(ardcamere.getName()); @@ -153,11 +147,12 @@ break; case HCNetSDK.COMM_ALARMHOST_CID_ALARM: log.info("æ¥è¦ä¸»æº CID æ¥åæ¥è¦ä¸ä¼ "); //region æ¥è¦ä¸»æºæ¥è¦å¤ç ArdEquipExternal ardEquipExternal = new ArdEquipExternal(); ardEquipExternal.setIp(sDeviceIP); ardEquipExternal.setPort(wLinkPort); IArdEquipExternalService ardEquipExternalService = SpringTool.getApplicationContext().getBean(IArdEquipExternalService.class); ardEquipExternal = ardEquipExternalService.selectArdEquipExternalList(ardEquipExternal).get(0); ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal); HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM(); @@ -234,6 +229,122 @@ externalAlarmEventInfo.setAlarmTime(struTriggerTime); externalAlarmEventInfo.setAlarmHostId(ardEquipExternal.getId()); publishMqtt(externalAlarmEventInfo); //endregion break; case HCNetSDK.COMM_ALARM_ACS: //region é¨ç¦ä¸»æºæ¥è¦å¤ç ArdEquipExternal accessControlHost = new ArdEquipExternal(); accessControlHost.setIp(sDeviceIP); accessControlHost.setPort(wLinkPort); ardEquipExternalService = SpringTool.getApplicationContext().getBean(IArdEquipExternalService.class); accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost); HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO(); strACSInfo.write(); Pointer acsInfo = strACSInfo.getPointer(); acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size()); strACSInfo.read(); int dwMajor = strACSInfo.dwMajor; if (dwMajor != 5) { //åªè·åäºä»¶ break; } int dwMinor = strACSInfo.dwMinor; if (dwMinor != 80 && dwMinor != 104) { //åªè§£æçäººæ£æµå¤±è´¥åäººè¸ææå¤±è´¥ç次类åäºä»¶ break; } // log.info("é¨ç¦ä¸»æºæ¥è¦ä¸ä¼ "); // log.info("ã主类åãäºä»¶"); String alarmType = ""; switch (dwMinor) { case 104: alarmType = "çäººæ£æµå¤±è´¥"; break; case 80: alarmType = "äººè¸ææå¤±è´¥"; break; } 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; ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen); byte[] bytes = new byte[strACSInfo.dwPicDataLen]; buffers.rewind(); 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"); if (uploadObject) { url = MinioClientSingleton.domainUrl + "/" + bucketName + "/" + objectName; //log.debug("ä¸ä¼ æä»¶æå!" + url); } } catch (Exception e) { log.error("å¾çä¿å失败"); } } HCNetSDK.NET_DVR_ACS_EVENT_INFO struAcsEventInfo = strACSInfo.struAcsEventInfo; int byType = struAcsEventInfo.byType; String defenseType = ""; switch (byType) { case 0: defenseType = "峿¶é²åº"; break; case 1: defenseType = "24å°æ¶é²åº"; break; case 2: defenseType = "å»¶æ¶é²åº"; break; case 3: defenseType = "å é¨é²åº"; break; case 4: defenseType = "é¥åé²åº"; break; case 5: defenseType = "ç«è¦é²åº"; break; case 6: defenseType = "å¨çé²åº"; break; case 7: defenseType = "24å°æ¶æ 声é²åº"; break; case 8: defenseType = "24å°æ¶è¾ å©é²åº"; break; case 9: defenseType = "24å°æ¶éå¨é²åº"; break; case 10: defenseType = "é¨ç¦ç´§æ¥å¼é¨é²åº"; break; case 11: defenseType = "é¨ç¦ç´§æ¥å ³é¨é²åº"; break; default: defenseType = "æ "; break; } AccessControlHostEventInfo accessControlHostEventInfo = new AccessControlHostEventInfo(); accessControlHostEventInfo.setSerialNo(struAcsEventInfo.dwSerialNo); accessControlHostEventInfo.setAlarmType(alarmType); accessControlHostEventInfo.setDoorNo(struAcsEventInfo.dwDoorNo); accessControlHostEventInfo.setDefenseType(defenseType); accessControlHostEventInfo.setAlarmTime(alarmTime); accessControlHostEventInfo.setPicUrl(url); accessControlHostEventInfo.setAcsId(accessControlHost.getId()); publishMqtt(accessControlHostEventInfo); //endregion break; default: log.info("æªç¥æ¥è¦äºä»¶ç±»å:lCommand:" + Integer.toHexString(lCommand)); @@ -266,7 +377,7 @@ 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, inputStream.available(), "image/jpeg"); boolean uploadRes = MinioUtils.uploadObject("pic", filename, inputStream, "image/jpeg"); if (uploadRes) { url = MinioClientSingleton.domainUrl + filename; log.info("åå ¥minioå¾çå°åï¼" + url); @@ -279,9 +390,9 @@ } /** * æä¿åå¾ç * ç¸æºæªå¾ */ private String savePicture(alarmEventInfo info) { private String savePicture(CameraEventInfo info) { CameraCmd cmd = new CameraCmd(); ArdCameras Cameras = GlobalVariable.cameraMap.get(info.getCameraIp()); cmd.setCameraId(Cameras.getId()); @@ -297,7 +408,7 @@ /** * æå°éç¨å çµæ¥å¿ */ private void printLog(alarmEventInfo info) { private void printLog(CameraEventInfo info) { log.info("ãè§åã" + info.getAlarmName() + "ãè§åidã" + info.getRuleId() + "ãç±»åã" + info.getAlarmType() + "ãæ¶é´ã" + info.getAlarmTime() + "ãç¸æºidã" + info.getCameraId() + "ãç¸æºã" + info.getCameraName() + "ãIPã" + info.getCameraIp() + "ãééã" + info.getCameraChannel() + "ãåå·ã" + info.getCameraType() + @@ -305,7 +416,7 @@ } /** * æå°å¤èæ¥è¦æ¥å¿ * æå°æ¥è¦ä¸»æºäºä»¶æ¥å¿ */ private void printLog(ExternalAlarmEventInfo info) { log.info("ãæ¥è¦IDã" + info.getAlarmId() + "ãæ¥è¦åç§°ã" + info.getAlarmName() + @@ -314,19 +425,37 @@ } /** * æå°é¨ç¦äºä»¶æ¥å¿ */ private void printLog(AccessControlHostEventInfo info) { log.info("ãæ¥è¦IDã" + info.getSerialNo() + "ã设å¤ç¼å·ã"+ "ãé¨ç¼å·ã" + info.getDoorNo() + "ãäºä»¶ç±»åã" + info.getAlarmType() + "ãé²åºç±»åã" + info.getDefenseType()+"ãæ¶é´ã" + info.getAlarmTime() + "ãé¨ç¦ä¸»æºIDã" + info.getAcsId()); } /** * éç¨å çµæ¥è¦æ¨émqtt */ private void publishMqtt(alarmEventInfo info) { private void publishMqtt(CameraEventInfo info) { // printLog(info); MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info)); } /** * å¤èæ¥è¦æ¨émqtt * æ¥è¦ä¸»æºäºä»¶æ¨émqtt */ private void publishMqtt(ExternalAlarmEventInfo info) { printLog(info); MqttConsumer.publish(2, false, "external", JSON.toJSONString(info)); } /** * é¨ç¦äºä»¶æ¨émqtt */ private void publishMqtt(AccessControlHostEventInfo info) { printLog(info); MqttConsumer.publish(2, false, "accessControl", JSON.toJSONString(info)); } /** @@ -341,4 +470,17 @@ byte bySecond = netDvrTimeEx.bySecond; return wYear + "-" + byMonth + "-" + byDay + " " + byHour + ":" + byMinute + ":" + bySecond; } /** * æ¶é´æ ¼å¼å */ private String parseAlarmTime(HCNetSDK.NET_DVR_TIME netDvrTimeEx) { int wYear = netDvrTimeEx.dwYear; int byMonth = netDvrTimeEx.dwMonth; int byDay = netDvrTimeEx.dwDay; int byHour = netDvrTimeEx.dwHour; int byMinute = netDvrTimeEx.dwMinute; int bySecond = netDvrTimeEx.dwSecond; return wYear + "-" + byMonth + "-" + byDay + " " + byHour + ":" + byMinute + ":" + bySecond; } } src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
@@ -3,6 +3,7 @@ import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.config.MinioClientSingleton; import com.ard.utils.ByteUtils; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.domain.DeviceInfo; @@ -19,7 +20,6 @@ import java.io.*; import java.nio.ByteBuffer; import java.util.*; /** @@ -173,6 +173,7 @@ log.info("ç»å½å¼å¸¸ï¼" + errorCode); } } /** * @æè¿° ç»å½ææç¸æº * @åæ° [] @@ -185,7 +186,7 @@ try { for (ArdCameras camera : ardCameras) { Thread.sleep(100); DeviceInfo info=new DeviceInfo(); DeviceInfo info = new DeviceInfo(); info.setDeviceId(camera.getId()); info.setIp(camera.getIp()); info.setPort(camera.getPort()); @@ -199,6 +200,7 @@ log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½æææ¥è¦ä¸»æº * @åæ° [] @@ -211,7 +213,7 @@ try { for (ArdEquipExternal alarmHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info=new DeviceInfo(); DeviceInfo info = new DeviceInfo(); info.setDeviceId(alarmHost.getId()); info.setIp(alarmHost.getIp()); info.setPort(alarmHost.getPort()); @@ -225,7 +227,32 @@ log.error("åå§åæ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææé¨ç¦ä¸»æº * @åæ° [] * @è¿åå¼ void * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public static void loginAllAccessControlHost(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()); login(info); String ip = accessControlHost.getIp(); GlobalVariable.alarmHostMap.put(ip, accessControlHost); } } catch (Exception ex) { log.error("åå§åæ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° 注éç»å½ * @åæ° [dvrLogin] @@ -269,7 +296,7 @@ * @param lUserID å¯ä¸æ è¯ç¬¦ * @param lAlarmHandle æ¥è¦å¤çå¨ */ public static int setupAlarmChan(int lUserID, int lAlarmHandle) { public static int setupAlarmChan(String deviceIpPort, int lUserID, int lAlarmHandle) { // æ ¹æ®è®¾å¤æ³¨åçæçlUserID建ç«å¸é²çä¸ä¼ ééï¼å³æ°æ®çä¸ä¼ éé if (lUserID == -1) { log.info("è¯·å æ³¨å"); @@ -296,12 +323,12 @@ // å¸é²æåï¼è¿åå¸é²æåçæ°æ®ä¼ è¾ééå· lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); if (lAlarmHandle == -1) { log.error("设å¤å¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); log.error("设å¤ã" + deviceIpPort + "ãå¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); // 注é éæ¾sdkèµæº logout(lUserID); return lAlarmHandle; } else { log.info("设å¤å¸é²æå"); log.info("设å¤ã" + deviceIpPort + "ãå¸é²æå"); return lAlarmHandle; } } @@ -361,13 +388,14 @@ InputStream input = new ByteArrayInputStream(array); String url = ""; try { boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, input.available(), ContentType); boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, ContentType); if (b) { url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; // url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); // url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; url = MinioClientSingleton.domainUrl + "/" + cmd.getBucketName() + "/" + cmd.getObjectName(); log.debug("ä¸ä¼ æä»¶æå!" + url); } } catch (IOException ex) { } catch (Exception ex) { log.error("ä¸ä¼ æä»¶å¼å¸¸ï¼" + ex.getMessage()); } return url; @@ -385,7 +413,7 @@ * 2023/7/6 10:48 */ public static String getDefenseZoneName(CameraCmd cmd) { String name=""; String name = ""; try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getWZoneIndex();//ééå·==é²åºå· @@ -411,6 +439,5 @@ } return name; } } src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
@@ -19,19 +19,21 @@ public class LoginResultCallBack implements HCNetSDK.FLoginResultCallBack { private DeviceInfo deviceInfo; public LoginResultCallBack(DeviceInfo deviceInfo) { this.deviceInfo=deviceInfo; public LoginResultCallBack(DeviceInfo deviceInfo) { this.deviceInfo = deviceInfo; } @Override public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) { String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort(); if (dwResult == 1) { GlobalVariable.loginMap.put(deviceInfo.getDeviceId(), lUserID); log.info(deviceInfo.getIp() + ":" + deviceInfo.getPort() + "ç»å½æå"); log.info("设å¤ã" + deviceIpPort + "ãç»å½æå"); // 设置æ¥è¦åè°å½æ°ï¼å»ºç«æ¥è¦ä¸ä¼ ééï¼å¯ç¨å¸é²ï¼ HikClientUtil.setupAlarmChan(lUserID, -1); HikClientUtil.setupAlarmChan(deviceIpPort, lUserID, -1); } else { log.info(deviceInfo.getIp() + ":" + deviceInfo.getPort() + "ç»å½å¤±è´¥"); log.info("设å¤ã" + deviceIpPort + "ãç»å½å¤±è´¥"); } return 1; } src/main/java/com/ard/utils/hiksdk/util/minio/MinioUtils.java
@@ -289,12 +289,12 @@ * @param size ⼤⼩ * @param contextType ç±»å Image/jpeg æµè§å¨å¯ä»¥ç´æ¥æå¼ï¼å¦åä¸è½½ */ public static boolean uploadObject(String bucketName, String objectName, InputStream stream, long size, String contextType) { public static boolean uploadObject(String bucketName, String objectName, InputStream stream, String contextType) { try { PutObjectArgs putObjectArgs = PutObjectArgs.builder() .bucket(bucketName) .object(objectName) .stream(stream, size, -1) .stream(stream, stream.available(), -1) .contentType(contextType) .build(); ObjectWriteResponse objectWriteResponse = MinioClientSingleton.getMinioClient().putObject(putObjectArgs); src/main/resources/mapper/ArdEquipExternalMapper.xml
@@ -34,7 +34,20 @@ c.altitude from ard_equip_external c </sql> <select id="selectArdEquipExternal" parameterType="ArdEquipExternal" resultMap="ArdEquipExternalResult"> <include refid="selectArdEquipExternalVo"/> <where> <if test="name != null and name != ''">and c.name like '%'||#{name}||'%'</if> <if test="type != null and type != ''">and c.type = #{type}</if> <if test="factory != null and factory != ''">and c.factory = #{factory}</if> <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) )) </if> <if test="userId != null and userId != ''">and c.user_id = #{userId}</if> <if test="ip != null and ip != ''">and c.ip = #{ip}</if> <if test="port != null and port != ''">and c.port = #{port}</if> </where> </select> <select id="selectArdEquipExternalList" parameterType="ArdEquipExternal" resultMap="ArdEquipExternalResult"> <include refid="selectArdEquipExternalVo"/> <where>