From ef0ed9877417b7efb3a6ec72121bee56720f6939 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 01 七月 2023 17:28:04 +0800
Subject: [PATCH] 优化提交
---
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 77 ++++++----
ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/mapper/ArdAlarmRadarMapper.java | 36 ++--
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/imageUtil/waterMarkUtil.java | 26 +--
ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java | 2
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 222 +++++++++++++++++--------------
ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java | 4
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java | 9
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 10
ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java | 4
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java | 17 +
10 files changed, 218 insertions(+), 189 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index fcf5f7e..b90aa40 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -29,23 +29,20 @@
import com.ruoyi.utils.tools.GisTool;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
-import com.ruoyi.device.hiksdk.common.GlobalVariable;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.utils.tube.GeoPoint;
import com.ruoyi.utils.tube.TubeTools;
+import lombok.AllArgsConstructor;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
-
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.PriorityBlockingQueue;
import java.util.stream.Collectors;
-
/**
* @Description: 鍏ㄥ眬鎶ヨ涓氬姟
@@ -76,8 +73,6 @@
private ISysConfigService configService;
@Resource
private ArdCamerasMapper ardCamerasMapper;
- @Resource
- private IHikClientService hikClientService;
@Resource
private RedisCache redisCache;
@Resource
@@ -137,8 +132,7 @@
.setCount(ardAlarmStealelec.getCount())
.setTotal(ardAlarmStealelec.getTotal());
return globalAlarmData;
- })
- .collect(Collectors.toList());
+ }).collect(Collectors.toList());
case 1002:
List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime);
return ardAlarmCameras.stream()
@@ -152,8 +146,7 @@
.setCount(ardAlarmCamera.getCount())
.setTotal(ardAlarmCamera.getTotal());
return globalAlarmData;
- })
- .collect(Collectors.toList());
+ }).collect(Collectors.toList());
case 1003:
List<ArdAlarmRadar> ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "杩愬姩鐩爣妫�娴�");
return ardAlarmRadars.stream()
@@ -167,8 +160,7 @@
.setCount(ardAlarmRadar.getCount())
.setTotal(ardAlarmRadar.getTotal());
return globalAlarmData;
- })
- .collect(Collectors.toList());
+ }).collect(Collectors.toList());
case 1004:
ardAlarmRadars = ardAlarmRadarMapper.selectListAllByCommand(refreshTime, "鐑簮妫�娴�");
return ardAlarmRadars.stream()
@@ -182,8 +174,7 @@
.setCount(ardAlarmRadar.getCount())
.setTotal(ardAlarmRadar.getTotal());
return globalAlarmData;
- })
- .collect(Collectors.toList());
+ }).collect(Collectors.toList());
case 1014:
List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
return ardAlarmTubes.stream()
@@ -198,8 +189,7 @@
.setCount(ardAlarmTube.getCount())
.setTotal(ardAlarmTube.getTotal());
return globalAlarmData;
- })
- .collect(Collectors.toList());
+ }).collect(Collectors.toList());
default:
return null;
}
@@ -224,38 +214,33 @@
aas.setParams(params);
aas.setPageNum(pageNum);
aas.setPageSize(pageSize);
- List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectArdAlarmStealelecList(aas);
- return ardAlarmStealelecs;
+ return ardAlarmStealelecMapper.selectArdAlarmStealelecList(aas);
case 1002:
ArdAlarmCamera aac = new ArdAlarmCamera();
aac.setParams(params);
aac.setPageNum(pageNum);
aac.setPageSize(pageSize);
- List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectArdAlarmCameraList(aac);
- return ardAlarmCameras;
+ return ardAlarmCameraMapper.selectArdAlarmCameraList(aac);
case 1003:
ArdAlarmRadar aar = new ArdAlarmRadar();
aar.setParams(params);
aar.setPageNum(pageNum);
aar.setPageSize(pageSize);
aar.setAlarmType("杩愬姩鐩爣妫�娴�");
- List<ArdAlarmRadar> ardAlarmRadar = ardAlarmRadarMapper.selectArdAlarmRadarList(aar);
- return ardAlarmRadar;
+ return ardAlarmRadarMapper.selectArdAlarmRadarList(aar);
case 1004:
ArdAlarmRadar aarr = new ArdAlarmRadar();
aarr.setParams(params);
aarr.setPageNum(pageNum);
aarr.setPageSize(pageSize);
aarr.setAlarmType("鐑簮妫�娴�");
- List<ArdAlarmRadar> ardAlarmRadarr = ardAlarmRadarMapper.selectArdAlarmRadarList(aarr);
- return ardAlarmRadarr;
+ return ardAlarmRadarMapper.selectArdAlarmRadarList(aarr);
case 1014:
ArdAlarmTube aat = new ArdAlarmTube();
aat.setParams(params);
aat.setPageNum(pageNum);
aat.setPageSize(pageSize);
- List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectArdAlarmTubeList(aat);
- return ardAlarmTubes;
+ return ardAlarmTubeMapper.selectArdAlarmTubeList(aat);
}
return null;
}
@@ -277,7 +262,7 @@
if (StringUtils.isNotNull(ardAlarmStealelec)) {
String describe = ardAlarmStealelec.getDescribe();
String startTime = fmt.format(ardAlarmStealelec.getStartTime());
- int i = ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime());
+ ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime());
return ardAlarmStealelec;
}
case 1014:
@@ -285,7 +270,7 @@
if (StringUtils.isNotNull(ardAlarmTube)) {
String tubeId = ardAlarmTube.getTubeId();
String alarmTime = fmt.format(ardAlarmTube.getAlarmTime());
- int i = ardAlarmTubeMapper.updateViewTimeByTubeId(tubeId, alarmTime, DateUtils.getTime());
+ ardAlarmTubeMapper.updateViewTimeByTubeId(tubeId, alarmTime, DateUtils.getTime());
return ardAlarmTube;
}
default:
@@ -423,7 +408,6 @@
if (count >= 3) {
ardAlarmRadar.setGuideFlag(1);
ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
-
//鑾峰彇闆疯揪鎵�鍦ㄥ涓婄殑澶у厜鐢�
String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
@@ -532,4 +516,37 @@
return minDistanceCameraId;
}
+ public static void main(String[] args) {
+ Comparator<Obj> PriorityDescCom = Comparator.comparingInt(Obj::getPriority).reversed();
+ Comparator<Obj> NumDescCom = Comparator.comparingInt(Obj::getNum).reversed();
+ Comparator<Obj> receiveTimeAscCom = Comparator.comparing(Obj::getAlarmTime);
+ Comparator<Obj> comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(receiveTimeAscCom);
+
+ PriorityBlockingQueue<Obj> priorityQueue = new PriorityBlockingQueue<>(1000,comparator);
+
+ priorityQueue.add(new Obj(999,1,"2023-07-01 16:00:01"));
+ priorityQueue.add(new Obj(999,2,"2023-07-01 16:00:01"));
+ priorityQueue.add(new Obj(999,3,"2023-07-01 16:00:01"));
+
+ List<Obj> elements = new ArrayList<>(priorityQueue);
+ elements.sort(priorityQueue.comparator()); // 浣跨敤闃熷垪鐨勬瘮杈冨櫒杩涜鎺掑簭
+ for (Obj task : elements) {
+ log.info("姝e湪鎺掗槦銆恜riority銆�" + task.getPriority()+"銆恘um銆�" + task.getNum() + "銆恆larmTime銆�" + task.getAlarmTime());
+ }
+ log.info("===================================================================");
+ priorityQueue.add(new Obj(999,5,"2023-07-01 16:00:01"));
+ PriorityBlockingQueue queue = new PriorityBlockingQueue<>(priorityQueue);
+ while (priorityQueue.size() > 0) {
+ Obj task = priorityQueue.poll();
+ log.info("姝e湪鎺掗槦銆恜riority銆�" + task.getPriority()+"銆恘um銆�" + task.getNum() + "銆恆larmTime銆�" + task.getAlarmTime());
+ }
+ }
+ @Data
+ @AllArgsConstructor
+ static class Obj
+ {
+ Integer priority;
+ Integer num;
+ String alarmTime;
+ }
}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
index 659afcc..c3ff35d 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
@@ -41,22 +41,19 @@
cmd.setOperator(guideTask.getAlarmType());
cmd.setExpired(30);
cmd.setRecordBucketName("record");
- cmd.setRecordObjectName("alarm");
+ cmd.setRecordObjectName("alarm_"+guideTask.getAlarmId());
log.debug("寮�濮嬪紩瀵�");
boolean guideRes = hikClientService.guideTargetPosition(cmd);
if (guideRes) {
log.debug("寮曞鎴愬姛");
hikClientService.controlLock(cmd);//涓婇攣
- cmd.setEnable(true);//寮�濮嬪綍鍍�
- hikClientService.recordToMinio(cmd);//寮�濮嬪綍鍍�
+ hikClientService.recordStart(cmd);//寮�濮嬪綍鍍�
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
log.info("褰撳墠浠诲姟ID"+guideTask.getAlarmId()+"绾跨▼琚粓姝�");
}
- cmd.setEnable(false);//鍋滄褰曞儚
- cmd.setUploadMinio(true);//涓婁紶minio
- String url = hikClientService.recordToMinio(cmd);//鍋滄褰曞儚杩斿洖url
+ String url = hikClientService.recordStopToMinio(cmd);//鍋滄褰曞儚杩斿洖url
if (StringUtils.isNotEmpty(url)) {
switch (guideTask.getAlarmType()) {
case "sys_tube_leak":
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/mapper/ArdAlarmRadarMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/mapper/ArdAlarmRadarMapper.java
index ae971ad..f8962b2 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/mapper/ArdAlarmRadarMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radarAlarm/mapper/ArdAlarmRadarMapper.java
@@ -9,15 +9,14 @@
/**
* 闆疯揪鎶ヨMapper鎺ュ彛
- *
+ *
* @author ard
* @date 2023-06-28
*/
-public interface ArdAlarmRadarMapper
-{
+public interface ArdAlarmRadarMapper {
/**
* 鏌ヨ闆疯揪鎶ヨ
- *
+ *
* @param id 闆疯揪鎶ヨ涓婚敭
* @return 闆疯揪鎶ヨ
*/
@@ -25,7 +24,7 @@
/**
* 鏌ヨ闆疯揪鎶ヨ鍒楄〃
- *
+ *
* @param ardAlarmRadar 闆疯揪鎶ヨ
* @return 闆疯揪鎶ヨ闆嗗悎
*/
@@ -33,7 +32,7 @@
/**
* 鏂板闆疯揪鎶ヨ
- *
+ *
* @param ardAlarmRadar 闆疯揪鎶ヨ
* @return 缁撴灉
*/
@@ -41,7 +40,7 @@
/**
* 淇敼闆疯揪鎶ヨ
- *
+ *
* @param ardAlarmRadar 闆疯揪鎶ヨ
* @return 缁撴灉
*/
@@ -49,7 +48,7 @@
/**
* 鍒犻櫎闆疯揪鎶ヨ
- *
+ *
* @param id 闆疯揪鎶ヨ涓婚敭
* @return 缁撴灉
*/
@@ -57,25 +56,26 @@
/**
* 鎵归噺鍒犻櫎闆疯揪鎶ヨ
- *
+ *
* @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
* @return 缁撴灉
*/
public int deleteArdAlarmRadarByIds(String[] ids);
- public List<ArdAlarmRadar> selectListAllByCommand(@Param("refreshTime")String refreshTime,@Param("alarmType")String alarmType);
- int selectCountByAlarmTime(@Param("refreshTime")String refreshTime,@Param("alarmType")String alarmType);
+ public List<ArdAlarmRadar> selectListAllByCommand(@Param("refreshTime") String refreshTime, @Param("alarmType") String alarmType);
+
+ int selectCountByAlarmTime(@Param("refreshTime") String refreshTime, @Param("alarmType") String alarmType);
/**
* 閫氳繃闆疯揪id鎵惧埌鍏宠仈濉斾笂鐨勫ぇ鍏夌數id
- *
*/
- String getCameraByRadar(String radarId);
+ String getCameraByRadar(String radarId);
- /**
- * 鏌ユ壘5鍒嗛挓鍐呭紩瀵艰繃鐨勮褰�
- * */
- public ArdAlarmRadar getArdAlarmRadarWithGuide(ArdAlarmRadar ardAlarmRadar);
+ /**
+ * 鏌ユ壘5鍒嗛挓鍐呭紩瀵艰繃鐨勮褰�
+ */
+ public ArdAlarmRadar getArdAlarmRadarWithGuide(ArdAlarmRadar ardAlarmRadar);
- public int getArdAlarmRadarWithNotGuide(@Param("ardAlarmRadar")ArdAlarmRadar ardAlarmRadar, @Param("guideTime")Date guideTime);
+ public int getArdAlarmRadarWithNotGuide(@Param("ardAlarmRadar") ArdAlarmRadar ardAlarmRadar, @Param("guideTime") Date guideTime);
+
}
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
index 4ed36a0..79aa9f5 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
@@ -3,11 +3,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
-
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService;
-import com.ruoyi.common.annotation.Anonymous;
-import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -26,7 +23,6 @@
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java b/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
index 9f39667..db9981e 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/domain/CameraCmd.java
@@ -39,6 +39,4 @@
String recordBucketName;
/*褰曞儚鏂囦欢鍚嶇О*/
String recordObjectName;
- /*鏄惁涓婁紶minio*/
- boolean isUploadMinio;
}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
index 3f9325e..2d43e0e 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
@@ -2,13 +2,11 @@
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
-
-import java.io.IOException;
import java.util.Map;
/**
* @ClassName: sdkClinet
- * @Description:娴峰悍鎿嶄綔瀹㈡埛绔帴鍙g被
+ * @Description: 娴峰悍鎿嶄綔瀹㈡埛绔帴鍙g被
* @Author: Administrator
* @Date: 2023骞�01鏈�17鏃� 15:59
* @Version: 1.0
@@ -35,7 +33,7 @@
boolean setFocusPos(CameraCmd cmd);
//鑾峰彇鑱氱劍鍊�
- Map getFocusPos(CameraCmd cmd);
+ Map<String,Object> getFocusPos(CameraCmd cmd);
//璁剧疆棰勭疆浣�
boolean setPreset(CameraCmd cmd);
@@ -93,9 +91,16 @@
//鎵嬪姩褰曞儚
String record(CameraCmd cmd);
- //鎵嬪姩褰曞儚
- String recordToMinio(CameraCmd cmd);
//寮曞鐩爣浣嶇疆
boolean guideTargetPosition(CameraCmd cmd);
+
+ //寮�濮嬪綍鍍�
+ void recordStart(CameraCmd cmd);
+
+ //鍋滄褰曞儚-涓婁紶minio-杩斿洖褰曞儚url
+ String recordStopToMinio(CameraCmd cmd);
+
+ //鍋滄褰曞儚-涓嶄笂浼爉inio
+ void recordStopNotToMinio(CameraCmd cmd);
}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index 3a4971f..590b551 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -2,7 +2,6 @@
import com.ruoyi.common.annotation.SdkOperate;
import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
import com.ruoyi.device.hiksdk.common.GlobalVariable;
@@ -20,11 +19,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import sun.misc.BASE64Encoder;
-
import javax.annotation.Resource;
import java.io.*;
import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.nio.ByteBuffer;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
@@ -618,9 +615,9 @@
NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
m_ptzPosCurrent.wAction = 1;
try {
- String p = String.valueOf((int) ((double) ptz.get("p") * 10));
- String t = String.valueOf((int) ((double) ptz.get("t") * 10));
- String z = String.valueOf((int) ((double) ptz.get("z") * 10));
+ String p = String.valueOf((int) (ptz.get("p") * 10));
+ String t = String.valueOf((int) (ptz.get("t") * 10));
+ String z = String.valueOf((int) (ptz.get("z") * 10));
m_ptzPosCurrent.wPanPos = (short) (Integer.parseInt(p, 16));
m_ptzPosCurrent.wTiltPos = (short) (Integer.parseInt(t, 16));
m_ptzPosCurrent.wZoomPos = (short) (Integer.parseInt(z, 16));
@@ -745,8 +742,7 @@
return -1;
} else {
netDvrPtzLockcfg.read();
- int byWorkMode = netDvrPtzLockcfg.byWorkMode;
- return byWorkMode;
+ return netDvrPtzLockcfg.byWorkMode;
}
}
@@ -871,7 +867,6 @@
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.info("璁剧疆閫忛浘澶辫触,璇风◢鍚庨噸璇�" + code);
- return false;
}
log.info("璁剧疆閫忛浘鎴愬姛");
return bool;
@@ -920,7 +915,6 @@
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.info("璁剧疆澶滆澶辫触,璇风◢鍚庨噸璇�" + code);
- return false;
}
log.info("璁剧疆澶滆鎴愬姛");
return bool;
@@ -967,7 +961,6 @@
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.info("璁剧疆鑱氱劍妯″紡澶辫触,璇风◢鍚庨噸璇�" + code);
- return false;
}
log.info("璁剧疆鑱氱劍妯″紡鎴愬姛");
return bool;
@@ -1010,7 +1003,7 @@
return false;
}
Integer userId = GlobalVariable.loginMap.get(cameraId);
- Integer dwStop;
+ int dwStop;
if (enable) {
dwStop = 0;//寮�鍚�
} else {
@@ -1020,7 +1013,6 @@
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.info("璁剧疆浜戝彴鍔犵儹澶辫触,璇风◢鍚庨噸璇�" + code);
- return false;
}
log.info("璁剧疆浜戝彴鍔犵儹鎴愬姛");
return bool;
@@ -1064,7 +1056,6 @@
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.info("璁剧疆闀滃ご闄ゅ啺澶辫触,璇风◢鍚庨噸璇�" + code);
- return false;
}
log.info("璁剧疆闀滃ご闄ゅ啺鎴愬姛");
return bool;
@@ -1073,7 +1064,7 @@
/**
* 鎴浘 杩旂粰鍓嶇
*
- * @param cmd
+ * @param cmd 鐩告満鍛戒护
*/
public String captureJPEGPicture(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
@@ -1100,41 +1091,11 @@
boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a);
log.info("-----------杩欓噷寮�濮嬪浘鐗囧瓨鍏ュ唴瀛�----------" + is);
-
BASE64Encoder encoder = new BASE64Encoder();
String png_base64 = encoder.encodeBuffer(jpegBuffer);//杞崲鎴恇ase64涓�
png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//鍒犻櫎 \r\n
log.info("-----------澶勭悊瀹屾垚鎴浘鏁版嵁----------");
return png_base64;
-
-// ByteArrayInputStream in = new ByteArrayInputStream(jpegBuffer.array(), 0, a.getValue());
-// OutputStream outputStream = null;
-// try {
-// //1銆佽缃畆esponse 鍝嶅簲澶� //璁剧疆椤甸潰涓嶇紦瀛�,娓呯┖buffer
-// response.reset();
-// //瀛楃缂栫爜
-// response.setCharacterEncoding("UTF-8");
-// //浜岃繘鍒朵紶杈撴暟鎹�
-// response.setContentType("multipart/form-data");
-// //璁剧疆鍝嶅簲澶�
-// response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpeg", "UTF-8"));
-//
-// outputStream = response.getOutputStream();
-// // LoginUser loginUser = LoginContext.me().getLoginUser();
-// waterMarkUtil.markImageByIO("", in, outputStream, null, "jpeg");
-// outputStream.flush();
-// } catch (Exception e) {
-// e.printStackTrace();
-// log.error("鎶撳浘澶辫触锛岃绋嶅悗閲嶈瘯");
-// } finally {
-// try {
-// outputStream.close();
-// } catch (IOException e) {
-// log.error("鎶撳浘澶辫触锛岃绋嶅悗閲嶈瘯");
-// }
-// }
-
-
}
/**
@@ -1264,16 +1225,6 @@
GlobalVariable.previewMap.remove(cameraId);
}
log.info("褰曞儚鍋滄");
- //瀛樺叆minio
- String BucketName = cmd.getRecordBucketName();
- String ObjectName = cmd.getRecordObjectName();
- String ContentType = "video/MP4";
- FileInputStream stream = new FileInputStream(path);
- boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType);
- if (b) {
- url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName);
- log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/" + BucketName + "/" + ObjectName);
- }
}
return url;
} catch (Exception ex) {
@@ -1283,14 +1234,13 @@
}
@Override
- public String recordToMinio(CameraCmd cmd) {
+ public void recordStart(CameraCmd cmd) {
try {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
- boolean enable = cmd.isEnable();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return "";
+ return;
}
Integer userId = GlobalVariable.loginMap.get(cameraId);
//寮哄埗I甯х粨鏋勪綋瀵硅薄
@@ -1313,53 +1263,125 @@
previewinfo.bBlocked = 0;//0- 闈為樆濉炲彇娴侊紝1-闃诲鍙栨祦
previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡
previewinfo.write();
- if (enable) {
- if (GlobalVariable.previewMap.containsKey(cameraId)) {
- Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
- hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
- GlobalVariable.previewMap.remove(cameraId);
- log.debug("鍋滄褰撳墠褰曞儚");
- }
- int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
- if (lRealHandle == -1) {
- log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
- return "";
- }
- log.debug("鍙栨祦鎴愬姛");
- GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());
- GlobalVariable.previewMap.put(cameraId, lRealHandle);
- if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
- log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
- return "";
- }
- log.debug("褰曞儚寮�濮�");
- } else {
- if (GlobalVariable.previewMap.containsKey(cameraId)) {
- Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
- hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
- GlobalVariable.previewMap.remove(cameraId);
- }
- log.debug("褰曞儚鍋滄");
- //瀛樺叆minio
- String BucketName = cmd.getRecordBucketName();
- String ObjectName = cmd.getRecordObjectName();
- String ContentType = "video/MP4";
- FileInputStream stream = new FileInputStream(path);
- String simpleUUID = IdUtils.simpleUUID();
- String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
- String recordName = cameraId + "/" + time + "/" + ObjectName + "_" + simpleUUID + ".mp4";
- boolean b = MinioUtils.uploadObject(BucketName, recordName, stream, stream.available(), ContentType);
- if (b) {
- String url = MinioClientSingleton.domainUrl + "/" + BucketName + "/" + recordName;
- log.debug("涓婁紶鏂囦欢鎴愬姛!" + url);
- return url;
- }
+ if (GlobalVariable.previewMap.containsKey(cameraId)) {
+ Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
+ hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
+ GlobalVariable.previewMap.remove(cameraId);
+ log.debug("鍋滄褰撳墠褰曞儚");
}
- return "";
+ int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
+ if (lRealHandle == -1) {
+ log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
+ return;
+ }
+ log.debug("鍙栨祦鎴愬姛");
+ GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName());
+ GlobalVariable.previewMap.put(cameraId, lRealHandle);
+ if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
+ log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
+ return;
+ }
+ log.debug("褰曞儚寮�濮�");
+ } catch (Exception ex) {
+ log.error("寮�濮嬪綍鍍忓紓甯�" + ex.getMessage());
+ }
+ }
+
+ @Override
+ public String recordStopToMinio(CameraCmd cmd) {
+ String url = "";
+ try {
+ String cameraId = cmd.getCameraId();
+ Integer channelNum = cmd.getChannelNum();
+ String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
+ return "";
+ }
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
+ //region 寮哄埗I甯�
+ HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞�
+ netDvrIFrame.read();
+ netDvrIFrame.dwChannel = channelNum;//鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆
+ netDvrIFrame.byStreamType = 0;
+ netDvrIFrame.dwSize = netDvrIFrame.size();
+ netDvrIFrame.write();
+ if (!hCNetSDK.NET_DVR_RemoteControl(userId, 3402, netDvrIFrame.getPointer(), netDvrIFrame.dwSize)) {
+ log.error("寮哄埗I甯� 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
+ }
+ //endregion
+ //region 棰勮鍙傛暟
+ NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO();
+ previewinfo.read();
+ previewinfo.lChannel = channelNum;
+ previewinfo.dwStreamType = 0;//鐮佹祦绫诲瀷锛�0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-涓夌爜娴侊紝3-铏氭嫙鐮佹祦锛屼互姝ょ被鎺�
+ previewinfo.dwLinkMode = 0;//杩炴帴鏂瑰紡锛�0-TCP鏂瑰紡锛�1-UDP鏂瑰紡锛�2-澶氭挱鏂瑰紡锛�3-RTP鏂瑰紡锛�4-RTP/RTSP锛�5-RTP/HTTP锛�6-HRUDP锛堝彲闈犱紶杈擄級锛�7-RTSP/HTTPS锛�8-NPQ
+ previewinfo.hPlayWnd = null;//鎾斁绐楀彛鐨勫彞鏌勶紝涓篘ULL琛ㄧず涓嶈В鐮佹樉绀恒��
+ previewinfo.bBlocked = 0;//0- 闈為樆濉炲彇娴侊紝1-闃诲鍙栨祦
+ previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡
+ previewinfo.write();
+ //endregion
+ if (GlobalVariable.previewMap.containsKey(cameraId)) {
+ Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
+ hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
+ GlobalVariable.previewMap.remove(cameraId);
+ }
+ log.debug("褰曞儚鍋滄");
+ //瀛樺叆minio
+ String BucketName = cmd.getRecordBucketName();
+ String ObjectName = cmd.getRecordObjectName();
+ String ContentType = "video/MP4";
+ FileInputStream stream = new FileInputStream(path);
+ String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
+ String recordName = cameraId + "/" + time + "/" + ObjectName + ".mp4";
+ boolean b = MinioUtils.uploadObject(BucketName, recordName, stream, stream.available(), ContentType);
+ if (b) {
+ url = MinioClientSingleton.domainUrl + "/" + BucketName + "/" + recordName;
+ log.debug("涓婁紶鏂囦欢鎴愬姛!" + url);
+ }
+ return url;
} catch (Exception ex) {
log.error("褰曞儚寮傚父" + ex.getMessage());
return "";
}
}
+ @Override
+ public void recordStopNotToMinio(CameraCmd cmd) {
+ try {
+ String cameraId = cmd.getCameraId();
+ Integer channelNum = cmd.getChannelNum();
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
+ return;
+ }
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
+ //寮哄埗I甯х粨鏋勪綋瀵硅薄
+ HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞�
+ netDvrIFrame.read();
+ netDvrIFrame.dwChannel = channelNum;//鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆
+ netDvrIFrame.byStreamType = 0;
+ netDvrIFrame.dwSize = netDvrIFrame.size();
+ netDvrIFrame.write();
+ if (!hCNetSDK.NET_DVR_RemoteControl(userId, 3402, netDvrIFrame.getPointer(), netDvrIFrame.dwSize)) {
+ log.error("寮哄埗I甯� 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
+ }
+ //棰勮鍙傛暟
+ NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO();
+ previewinfo.read();
+ previewinfo.lChannel = channelNum;
+ previewinfo.dwStreamType = 0;//鐮佹祦绫诲瀷锛�0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-涓夌爜娴侊紝3-铏氭嫙鐮佹祦锛屼互姝ょ被鎺�
+ previewinfo.dwLinkMode = 0;//杩炴帴鏂瑰紡锛�0-TCP鏂瑰紡锛�1-UDP鏂瑰紡锛�2-澶氭挱鏂瑰紡锛�3-RTP鏂瑰紡锛�4-RTP/RTSP锛�5-RTP/HTTP锛�6-HRUDP锛堝彲闈犱紶杈擄級锛�7-RTSP/HTTPS锛�8-NPQ
+ previewinfo.hPlayWnd = null;//鎾斁绐楀彛鐨勫彞鏌勶紝涓篘ULL琛ㄧず涓嶈В鐮佹樉绀恒��
+ previewinfo.bBlocked = 0;//0- 闈為樆濉炲彇娴侊紝1-闃诲鍙栨祦
+ previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡
+ previewinfo.write();
+ if (GlobalVariable.previewMap.containsKey(cameraId)) {
+ Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
+ hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
+ GlobalVariable.previewMap.remove(cameraId);
+ }
+ log.debug("褰曞儚鍋滄");
+ } catch (Exception ex) {
+ log.error("褰曞儚鍋滄寮傚父" + ex.getMessage());
+ }
+ }
}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/imageUtil/waterMarkUtil.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/imageUtil/waterMarkUtil.java
index bda1c8a..4b5e098 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/imageUtil/waterMarkUtil.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/imageUtil/waterMarkUtil.java
@@ -17,8 +17,7 @@
import java.io.OutputStream;
/**
- * 鍥剧墖姘村嵃宸ュ叿绫�
- *
+ * 鍥剧墖姘村嵃宸ュ叿绫�
*/
public class waterMarkUtil {
@@ -31,7 +30,7 @@
// 姘村嵃鏂囧瓧瀛椾綋
private static final Font font = new Font("瀹嬩綋", Font.BOLD, 30);
// 姘村嵃鏂囧瓧棰滆壊
- private static final Color color = Color.white;
+ private static final Color color = Color.blue;
/**
* 缁欏浘鐗囨坊鍔犳按鍗版枃瀛�
@@ -152,15 +151,14 @@
e.printStackTrace();
}
}
+
+ public static void main(String[] args) {
+ String srcImgPath = "G:\\data\\pic\\7aad76110e7c478598da6b82d7446246.jpeg";
+ String text = "synjones";
+ // 缁欏浘鐗囨坊鍔犳按鍗版枃瀛�
+ //markImage(text, srcImgPath, "G:\\data\\pic\\寰俊鎴浘姘村嵃.png");
+ // 缁欏浘鐗囨坊鍔犳按鍗版枃瀛�,姘村嵃鏂囧瓧鏃嬭浆-45
+ markImage(text, srcImgPath, "G:\\data\\pic\\7aad76110e7c478598da6b82d7446246姘村嵃.png", 45);
+ System.out.println("缁欏浘鐗囨坊鍔犳按鍗版枃瀛楀畬姣�");
+ }
}
-// public static void main(String[] args) {
-// String srcImgPath = "D:\\testSmile.jpg";
-// String text = "JCccc";
-// // 缁欏浘鐗囨坊鍔犳按鍗版枃瀛�
-// markImage(text, srcImgPath, "D:\\testSmileWithMark.jpg");
-// // 缁欏浘鐗囨坊鍔犳按鍗版枃瀛�,姘村嵃鏂囧瓧鏃嬭浆-45
-// markImage(text, srcImgPath, "D:\\testSmileWithMarkRotate.jpg", -45);
-// System.out.println("缁欏浘鐗囨坊鍔犳按鍗版枃瀛楀畬姣�");
-// }
-
-
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
index e8123e7..4c32163 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -6,6 +6,7 @@
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
@@ -453,8 +454,7 @@
boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
if (setTargetPosition) {
/*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
- cmd.setEnable(true);//鍚姩褰曞儚
- hikClientService.recordToMinio(cmd);
+ hikClientService.recordStart(cmd);
} else {
/*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
ardVideoInspectTask.setCurrentStepStartTime("");
@@ -541,11 +541,9 @@
cmd.setCameraId(cameraId);
cmd.setChannelNum(channel);
cmd.setOperator("sys_patrol_inspect");
- cmd.setEnable(false);//鍋滄褰曞儚
cmd.setRecordBucketName("record");
- cmd.setRecordObjectName("inspect");
- cmd.setUploadMinio(true);
- String url= hikClientService.recordToMinio(cmd);
+ cmd.setRecordObjectName("inspect_"+ IdUtils.fastSimpleUUID());
+ String url= hikClientService.recordStopToMinio(cmd);
/*鎻掑叆宸℃璁板綍*/
ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
ardVideoInspectRecord.setStepId(step.getId());
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
index b56f6f3..d440ac7 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
@@ -77,9 +77,7 @@
CameraCmd cmd = new CameraCmd();
cmd.setCameraId(ardVideoInspectTask.getCameraId());
cmd.setChannelNum(ardVideoInspectTask.getChannel());
- cmd.setEnable(false);//鍋滄褰曞儚
- cmd.setUploadMinio(false);
- hikClientService.recordToMinio(cmd);
+ hikClientService.recordStopNotToMinio(cmd);
GlobalVariable.previewMap.remove(cameraId);
}
/*鍋滄浠诲姟*/
--
Gitblit v1.9.3