From 113cf98d7d26460363d7ef13990623a775c636a2 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 01 六月 2023 14:33:47 +0800
Subject: [PATCH] 优化光电巡检手动控制
---
/dev/null | 19 --
ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java | 2
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java | 2
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 123 +++++++-------
ard-work/src/main/java/com/ruoyi/inspect/controller/TaskController.java | 53 ++++++
ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java | 81 ++++++++++
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 58 +++---
ruoyi-admin/src/main/resources/application-ard.yml | 2
ruoyi-admin/src/main/resources/application.yml | 2
ard-work/src/main/java/com/ruoyi/device/hiksdk/common/GlobalVariable.java | 22 ++
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java | 2
ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java | 76 +++++++++
12 files changed, 326 insertions(+), 116 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/GlobalVariable.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/GlobalVariable.java
new file mode 100644
index 0000000..2fd88fc
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/GlobalVariable.java
@@ -0,0 +1,22 @@
+package com.ruoyi.device.hiksdk.common;
+
+import com.ruoyi.device.hiksdk.domain.recordInfo;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @ClassName: globalVariable
+ * @Description: 鍏ㄥ眬鍙橀噺
+ * @Author: Administrator
+ * @Date: 2023骞�01鏈�31鏃� 17:05
+ * @Version: 1.0
+ **/
+@Data
+public class GlobalVariable {
+ //淇濆瓨鐩告満鐧诲綍淇℃伅
+ public static Map<String, Integer> loginMap = new HashMap<>();
+ //淇濆瓨褰曞儚淇℃伅
+ public static Map<Integer, recordInfo> user_real_Map = new HashMap<>();
+}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/global/globalVariable.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/global/globalVariable.java
deleted file mode 100644
index 8a45b3c..0000000
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/common/global/globalVariable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ruoyi.device.hiksdk.common.global;
-
-import lombok.Data;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @ClassName: globalVariable
- * @Description: 鍏ㄥ眬鍙橀噺
- * @Author: Administrator
- * @Date: 2023骞�01鏈�31鏃� 17:05
- * @Version: 1.0
- **/
-@Data
-public class globalVariable {
- //淇濆瓨鐩告満鐧诲綍淇℃伅
- public static Map<String,Integer> loginMap=new HashMap<>();
-}
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 58a292a..ab13ecc 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
@@ -86,8 +86,10 @@
//鎵嬪姩褰曞儚
String record(CameraCmd cmd);
+
//鎵嬪姩褰曞儚
void recordToMinio(CameraCmd cmd);
+
//寮曞鐩爣浣嶇疆
boolean setTargetPosition(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 8ffb5d9..fe82c91 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
@@ -8,7 +8,7 @@
import com.ruoyi.constant.sdkPriority;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
-import com.ruoyi.device.hiksdk.common.global.globalVariable;
+import com.ruoyi.device.hiksdk.common.GlobalVariable;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.domain.recordInfo;
@@ -54,7 +54,6 @@
SysUserMapper sysUserMapper;
private static HCNetSDK hCNetSDK;
- private static Map<Integer, recordInfo> user_real_Map = new HashMap<>();
@Override
public void loadHCNetSDKLib() {
@@ -133,10 +132,10 @@
hCNetSDK.NET_DVR_Cleanup();
camera.setLoginId(-1);
}
- if (globalVariable.loginMap.containsKey(camera.getId())) {
- globalVariable.loginMap.remove(camera.getId());
+ if (GlobalVariable.loginMap.containsKey(camera.getId())) {
+ GlobalVariable.loginMap.remove(camera.getId());
}
- globalVariable.loginMap.put(camera.getId(), lUserID);
+ GlobalVariable.loginMap.put(camera.getId(), lUserID);
camera.setLoginId(lUserID);
camera.setChannel((int) m_strDeviceInfo.byStartChan);
@@ -194,13 +193,13 @@
*/
@Override
public boolean loginOut(String cameraId) {
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
boolean b = hCNetSDK.NET_DVR_Logout(userId);
if (b) {
- globalVariable.loginMap.remove(cameraId);
+ GlobalVariable.loginMap.remove(cameraId);
}
return b;
}
@@ -213,10 +212,10 @@
@Override
public boolean isOnLine(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
boolean isOnLine = hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0);
return isOnLine;
}
@@ -239,10 +238,10 @@
Integer channelNum = cmd.getChannelNum();
Integer speed = cmd.getSpeed();
Integer code = cmd.getCode();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
Integer dwStop;
if (enable) {
dwStop = 0;//寮�鍚�
@@ -324,10 +323,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
Integer dwFocusPos = cmd.getDwFocusPos();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG();
Pointer point = focusmodeCfg.getPointer();
@@ -351,10 +350,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return new HashMap<>();
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG();
Pointer point = focusmodeCfg.getPointer();
@@ -385,10 +384,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
Integer PresetIndex = cmd.getPresetIndex();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex);
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
@@ -408,10 +407,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
Integer PresetIndex = cmd.getPresetIndex();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex);
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
@@ -432,10 +431,10 @@
public String getVideoResolution(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return " ";
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
String ResResolution = "";
NET_DVR_COMPRESSIONCFG_V30 resolution = new NET_DVR_COMPRESSIONCFG_V30();
@@ -538,10 +537,10 @@
public Map<String, Object> getPtz(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return null;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
Pointer pioint = m_ptzPosCurrent.getPointer();
@@ -590,10 +589,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
Map<String, Double> ptz = cmd.getPtzMap();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
m_ptzPosCurrent.wAction = 1;
try {
@@ -622,10 +621,10 @@
public boolean setTargetPosition(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
m_ptzPosCurrent.wAction = 1;
try {
@@ -736,10 +735,10 @@
public int getPTZLockInfo(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return -1;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZ_LOCKCFG netDvrPtzLockcfg = new NET_DVR_PTZ_LOCKCFG();
Pointer point = netDvrPtzLockcfg.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -769,10 +768,10 @@
public boolean setZeroPtz(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new NET_DVR_INITIALPOSITIONCTRL();
initialpositionctrl.dwSize = initialpositionctrl.size();
@@ -801,10 +800,10 @@
public Map<String, Object> getPtzScope(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return new HashMap<>();
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZSCOPE m_ptzPosCurrent = new NET_DVR_PTZSCOPE();
Pointer point = m_ptzPosCurrent.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -850,10 +849,10 @@
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX();
Pointer point = struCameraParam.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -897,10 +896,10 @@
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX();
Pointer point = struDayNigh.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -946,10 +945,10 @@
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG();
Pointer point = struFocusMode.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -993,10 +992,10 @@
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
Integer dwStop;
if (enable) {
dwStop = 0;//寮�鍚�
@@ -1027,10 +1026,10 @@
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_DEVSERVER_CFG struDeicing = new NET_DVR_DEVSERVER_CFG();
Pointer point = struDeicing.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
@@ -1065,10 +1064,10 @@
public String captureJPEGPicture(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return "";
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
NET_DVR_WORKSTATE_V30 devwork = new NET_DVR_WORKSTATE_V30();
if (!hCNetSDK.NET_DVR_GetDVRWorkState_V30(userId, devwork)) {
// 杩斿洖Boolean鍊硷紝鍒ゆ柇鏄惁鑾峰彇璁惧鑳藉姏
@@ -1137,10 +1136,10 @@
public String picCutCate(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return "";
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
//鍥剧墖淇℃伅
NET_DVR_JPEGPARA jpeg = new NET_DVR_JPEGPARA();
//璁剧疆鍥剧墖鍒嗚鲸鐜�
@@ -1203,10 +1202,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
boolean enable = cmd.isEnable();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return "";
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
String path = "";
//棰勮鍙傛暟
NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO();
@@ -1220,7 +1219,7 @@
previewinfo.write();
int lRealHandle;
if (enable) {
- if (!user_real_Map.containsKey(userId)) {
+ if (!GlobalVariable.user_real_Map.containsKey(userId)) {
lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
if (lRealHandle == -1) {
int iErr = hCNetSDK.NET_DVR_GetLastError();
@@ -1249,9 +1248,9 @@
recordInfo info = new recordInfo();
info.setLRealHandle(lRealHandle);
info.setRecordPath(path);
- user_real_Map.put(userId, info);
+ GlobalVariable.user_real_Map.put(userId, info);
}
- recordInfo info = user_real_Map.get(userId);
+ recordInfo info = GlobalVariable.user_real_Map.get(userId);
if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 1, info.getRecordPath())) {
log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
return "淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负:" + hCNetSDK.NET_DVR_GetLastError();
@@ -1260,7 +1259,7 @@
//return info.getRecordPath();
return "";
} else {
- recordInfo info = user_real_Map.get(userId);
+ recordInfo info = GlobalVariable.user_real_Map.get(userId);
if (StringUtils.isNull(info)) {
return "";
}
@@ -1288,7 +1287,7 @@
} catch (IOException ex) {
log.error("涓婁紶鏂囦欢寮傚父锛�" + ex.getMessage());
}
- user_real_Map.remove(userId);
+ GlobalVariable.user_real_Map.remove(userId);
return url;
}
}
@@ -1299,10 +1298,10 @@
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChannelNum();
boolean enable = cmd.isEnable();
- if (!globalVariable.loginMap.containsKey(cameraId)) {
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return;
}
- Integer userId = globalVariable.loginMap.get(cameraId);
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
String path = "";
//寮哄埗I甯х粨鏋勪綋瀵硅薄
HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞�
@@ -1327,7 +1326,7 @@
previewinfo.write();
int lRealHandle;
if (enable) {
- if (!user_real_Map.containsKey(userId)) {
+ if (!GlobalVariable.user_real_Map.containsKey(userId)) {
lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
if (lRealHandle == -1) {
log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
@@ -1346,16 +1345,16 @@
recordInfo info = new recordInfo();
info.setLRealHandle(lRealHandle);
info.setRecordPath(path);
- user_real_Map.put(userId, info);
+ GlobalVariable.user_real_Map.put(userId, info);
}
- recordInfo info = user_real_Map.get(userId);
+ recordInfo info = GlobalVariable.user_real_Map.get(userId);
if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 2, info.getRecordPath())) {
log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
return;
}
log.info("褰曞儚寮�濮�");
} else {
- recordInfo info = user_real_Map.get(userId);
+ recordInfo info = GlobalVariable.user_real_Map.get(userId);
if (StringUtils.isNull(info)) {
return;
}
@@ -1369,7 +1368,7 @@
boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType);
if (b) {
log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/"+ BucketName + "/" + ObjectName);
- user_real_Map.remove(userId);
+ GlobalVariable.user_real_Map.remove(userId);
}
}
} catch (Exception ex) {
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/controller/TaskController.java b/ard-work/src/main/java/com/ruoyi/inspect/controller/TaskController.java
new file mode 100644
index 0000000..faf8110
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/inspect/controller/TaskController.java
@@ -0,0 +1,53 @@
+package com.ruoyi.inspect.controller;
+
+import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.inspect.domain.ArdVideoInspectTask;
+import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+import com.ruoyi.inspect.service.impl.InspectionTaskManager;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @Description: 宸℃浠诲姟
+ * @ClassName: TaskController
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�01鏃�9:19
+ * @Version: 1.0
+ **/
+@RestController
+@Api(tags = "宸℃浠诲姟")
+@Anonymous
+public class TaskController {
+ @Autowired
+ private InspectionTaskManager inspectionTaskManager;
+
+ @GetMapping("/startTask/{taskId}")
+ @ApiOperation("鎵嬪姩寮�鍚贰妫�")
+ AjaxResult startTask(@PathVariable String taskId) {
+ // 寮�鍚贰妫�浠诲姟
+ inspectionTaskManager.startInspectionTask(taskId);
+ return AjaxResult.success();
+ }
+ @ApiOperation("鎵嬪姩鍋滄宸℃")
+ @GetMapping("/stopTask/{taskId}")
+ AjaxResult stopTask(@PathVariable String taskId) {
+ // 鍋滄宸℃浠诲姟
+ inspectionTaskManager.stopInspectionTask(taskId);
+ return AjaxResult.success();
+ }
+ @ApiOperation("鏌ヨ宸插惎鍔ㄤ换鍔�")
+ @GetMapping("/getTaskList")
+ AjaxResult getTaskList() {
+ // 鍋滄宸℃浠诲姟
+ Set<String> taskIds = inspectionTaskManager.getTaskMap().keySet();
+ return AjaxResult.success(taskIds);
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
index 4f070de..92d62ca 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/IArdVideoInspectTaskService.java
@@ -69,7 +69,7 @@
/**
* 鎵嬪姩宸℃浠诲姟
*/
- public void manualTaskRun();
+ public void manualTaskRun(String TaskId);
/**
* 宸℃浠诲姟
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 126e3bc..85d6bb1 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
@@ -163,38 +163,33 @@
* 鎵嬪姩宸℃浠诲姟
*/
@Override
- public void manualTaskRun() {
- /*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
- ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
- ardVideoInspectTask.setInspectMode("鎵嬪姩");
- ardVideoInspectTask.setMenualSwitch("寮�");
- List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
- for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
- /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- if (ardVideoInspectTaskStepList.size() == 0) {
- continue;
+ public void manualTaskRun(String TaskId) {
+ ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+ if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
+ return;
+ }
+ String currentStepId = videoInspectTask.getCurrentStepId();
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+ if (StringUtils.isNull(currentStepId)||StringUtils.isEmpty(currentStepId)) {
+ //浠�1鍙锋楠ゅ紑濮�
+ videoInspectTask.setCurrentStepId(videoInspectTask.getArdVideoInspectTaskStepList().get(0).getId());
+ if(InspectionTaskManager.taskMap.containsKey(TaskId)) {
+ startRunStep(videoInspectTask);
}
- videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
- String currentStepId = videoInspectTask.getCurrentStepId();
- if (StringUtils.isNull(currentStepId)) {
- videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
- startRunStep(videoInspectTask);//寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
- } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
- if (StringUtils.isNull(videoInspectTask.getCurrentStepStartTime())) {
- //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (StringUtils.isNull(currentStepStartTime)||StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
startRunStep(videoInspectTask);
- } else {
- boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (expird) {
- //鍋滄褰曞儚
- stopRunStep(videoInspectTask);
- //鍒囨崲姝ラ
- String nextStepId = changeNextStep(videoInspectTask);
- //寮�濮嬩笅涓�姝ラ
- videoInspectTask.setCurrentStepId(nextStepId);
- startRunStep(videoInspectTask);
- }
}
}
}
@@ -244,6 +239,7 @@
}
}
}
+
@Override
public void taskRun() {
/*鎵弿鎵�鏈夊彲鎵ц浠诲姟1-鏃堕棿婊¤冻2-鑷姩*/
@@ -346,7 +342,7 @@
ArdVideoInspectTask avit = new ArdVideoInspectTask();
avit.setId(ardVideoInspectTask.getId());
avit.setCurrentStepId(step.getId());
- avit.setCurrentStepStartTime(null);
+ avit.setCurrentStepStartTime("");
ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
}
}
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java
new file mode 100644
index 0000000..3bcf69a
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTask.java
@@ -0,0 +1,76 @@
+package com.ruoyi.inspect.service.impl;
+
+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.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+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.config.MinioClientSingleton;
+import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
+import com.ruoyi.inspect.domain.ArdVideoInspectTask;
+import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
+import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
+import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
+import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+import org.thymeleaf.spring5.context.SpringContextUtils;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+/**
+ * @Description:
+ * @ClassName: InspectionTaskImpl
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�01鏃�8:57
+ * @Version: 1.0
+ **/
+@Slf4j(topic = "PatrolInspectionTask")
+class InspectionTask implements Runnable {
+
+ private String taskId;
+ private boolean isRunning;
+
+ public InspectionTask(String taskId) {
+ this.taskId = taskId;
+ this.isRunning = false;
+ }
+
+ public void start() {
+ isRunning = true;
+ Thread thread = new Thread(this);
+ thread.start();
+ }
+
+ public void stop() {
+ isRunning = false;
+ }
+
+ @Override
+ public void run() {
+ while (isRunning) {
+ // 宸℃浠诲姟鐨勫叿浣撻�昏緫
+ log.debug("宸℃浠诲姟鎵ц涓細" + taskId);
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ ArdVideoInspectTaskServiceImpl ardVideoInspectTaskService = SpringUtils.getBean(ArdVideoInspectTaskServiceImpl.class);
+ ardVideoInspectTaskService.manualTaskRun(taskId);
+ }
+
+ }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..377500d
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
@@ -0,0 +1,81 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.hiksdk.common.GlobalVariable;
+import com.ruoyi.device.hiksdk.service.IHikClientService;
+import com.ruoyi.device.hiksdk.service.impl.HikClientServiceImpl;
+import com.ruoyi.inspect.domain.ArdVideoInspectTask;
+import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @ClassName: InspectionTaskManager
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�01鏃�10:40
+ * @Version: 1.0
+ **/
+
+@Component
+@Slf4j(topic = "PatrolInspectionTask")
+public class InspectionTaskManager {
+
+ @Resource
+ ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
+ @Resource
+ private IHikClientService hikClientService;
+
+ public static Map<String, InspectionTask> taskMap;
+
+ public InspectionTaskManager() {
+ taskMap = new HashMap<>();
+ }
+
+ public Map<String, InspectionTask> getTaskMap() {
+ return taskMap;
+ }
+
+ public void startInspectionTask(String taskId) {
+ ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId);
+ ardVideoInspectTask.setCurrentStepId("");
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+
+ InspectionTask task = new InspectionTask(taskId);
+ task.start();
+ taskMap.put(taskId, task);
+ log.info("宸℃浠诲姟宸插惎鍔細" + taskId);
+ }
+
+ public void stopInspectionTask(String taskId) {
+ ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId);
+ ardVideoInspectTask.setCurrentStepId("");
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+
+ Integer userId = GlobalVariable.loginMap.get(ardVideoInspectTask.getCameraId());//鑾峰彇褰撳墠鐩告満鐨勭櫥褰旾D
+ if( GlobalVariable.user_real_Map.containsKey(userId))
+ { //褰撳墠鐩告満姝e湪褰曞儚锛屽垯鍋滄褰曞儚
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(ardVideoInspectTask.getCameraId());
+ cmd.setChannelNum(ardVideoInspectTask.getChannel());
+ cmd.setEnable(false);//鍋滄褰曞儚
+ hikClientService.recordToMinio(cmd);
+ }
+ InspectionTask task = taskMap.get(taskId);
+ if (task != null) {
+ task.stop();
+ taskMap.remove(taskId);
+ log.info("宸℃浠诲姟宸插仠姝細" + taskId);
+
+ } else {
+ log.info("鎵句笉鍒版寚瀹氱殑宸℃浠诲姟锛�" + taskId);
+ }
+ }
+}
diff --git a/ruoyi-admin/src/main/resources/application-ard.yml b/ruoyi-admin/src/main/resources/application-ard.yml
index d1f8fbe..3c47288 100644
--- a/ruoyi-admin/src/main/resources/application-ard.yml
+++ b/ruoyi-admin/src/main/resources/application-ard.yml
@@ -1,6 +1,6 @@
# minio閰嶇疆
minio:
- endpoint: http://192.168.1.55:9001
+ endpoint: http://192.168.1.15:9001
accessKey: admin
secretKey: xzx12345
# forest閰嶇疆
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index fa2b341..10a760b 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -70,7 +70,7 @@
# redis 閰嶇疆
redis:
# 鍦板潃
- host: 192.168.1.55
+ host: 192.168.1.15
# 绔彛锛岄粯璁や负6379
port: 6379
# 鏁版嵁搴撶储寮�
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
index 291f326..da32f82 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
@@ -38,7 +38,7 @@
//宸℃浠诲姟
public void scanRun() {
- ardVideoInspectTaskService.taskRun();
+ ardVideoInspectTaskService.autoTaskRun();
}
//鑷姩宸℃浠诲姟
--
Gitblit v1.9.3