From afeeaebde614bd4e8ef20cee1402011da9c7f92b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 14 六月 2023 08:18:24 +0800
Subject: [PATCH] 修改报警list查询按时间逆序
---
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++----------
1 files changed, 107 insertions(+), 31 deletions(-)
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 c35cc97..ba0dfcf 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.constant.Global;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
@@ -13,6 +14,8 @@
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
+import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
+import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;
@@ -38,6 +41,8 @@
@Resource
private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
@Resource
+ private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper;
+ @Resource
private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
@Resource
private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper;
@@ -45,16 +50,20 @@
private ArdCamerasMapper ardCamerasMapper;
@Resource
private IHikClientService hikClientService;
+ @Resource
+ private ArdCamerasMapper camerasMapper;
@PostConstruct
public void initTask() {
List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
- /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�*/
for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) {
+ /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/
if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) {
ardVideoInspectTask.setMenualSwitch("鍏�");
- ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
}
+ ardVideoInspectTask.setCurrentStepId("");
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
}
}
@@ -108,7 +117,7 @@
public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId());
+ // ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId());
insertArdVideoInspectTaskStep(ardVideoInspectTask);
return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
}
@@ -165,15 +174,24 @@
*/
public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) {
List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
- String id = ardVideoInspectTask.getId();
+ //鑾峰彇鐩告満
+ ArdCameras camera = camerasMapper.selectArdCamerasById(ardVideoInspectTask.getCameraId());
+ Collections.sort(ardVideoInspectTaskStepList,new ArdVideoInspectTaskStepComparator(this.ardAlarmpointsWellMapper,camera.getLongitude(),camera.getLatitude()));
+ String taskId = ardVideoInspectTask.getId();
+ for (int i = 0; i < ardVideoInspectTaskStepList.size(); i++) {
+ ArdVideoInspectTaskStep step = ardVideoInspectTaskStepList.get(i);
+ step.setTaskId(taskId);
+ step.setOrderNumber(new Integer(i+1));
+ }
if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
- List<ArdVideoInspectTaskStep> list = new ArrayList<ArdVideoInspectTaskStep>();
for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
- ardVideoInspectTaskStep.setTaskId(id);
- list.add(ardVideoInspectTaskStep);
- }
- if (list.size() > 0) {
- ardVideoInspectTaskMapper.batchArdVideoInspectTaskStep(list);
+ if (ardVideoInspectTaskStep.getId() == null) {
+ //鏂扮殑姝ラ,娣诲姞
+ ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep);
+ } else {
+ //宸叉湁姝ラ,鏇存柊
+ ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep);
+ }
}
}
}
@@ -185,6 +203,9 @@
public void manualTaskRun(String TaskId) {
try {
ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+ if (!videoInspectTask.getMenualSwitch().equals("寮�")) {
+ return;
+ }
if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
return;
}
@@ -296,6 +317,7 @@
continue;
}
videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+
String currentStepId = videoInspectTask.getCurrentStepId();
String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
@@ -321,13 +343,30 @@
}
}
} else {
- if (StringUtils.isEmpty(videoInspectTask.getCurrentStepId()) || StringUtils.isEmpty(videoInspectTask.getCurrentStepStartTime())) {
- continue;
+// if(Global.task_record.contains(videoInspectTask.getId()))
+// {
+// /*鍋滄褰曞儚*/
+// CameraCmd cmd = new CameraCmd();
+// cmd.setCameraId(videoInspectTask.getCameraId());
+// cmd.setChannelNum(videoInspectTask.getChannel());
+// cmd.setOperator("sys_patrol_inspect");
+// cmd.setEnable(false);//鍋滄褰曞儚
+// String uuid = UUID.randomUUID().toString().replace("-", "");
+// String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
+// String recordName = videoInspectTask.getCameraId() + "/" + time + "/" + uuid + ".mp4";
+// cmd.setRecordBucketName("record");
+// cmd.setRecordObjectName(recordName);
+// cmd.setUploadMinio(true);
+// hikClientService.recordToMinio(cmd);
+// }
+ if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepId())) {
+ videoInspectTask.setCurrentStepId("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
}
- /*杩囨湡鐨勪换鍔℃竻绌哄綋鍓嶆楠や俊鎭�*/
- videoInspectTask.setCurrentStepId("");
- videoInspectTask.setCurrentStepStartTime("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTask(videoInspectTask);
+ if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepStartTime())) {
+ videoInspectTask.setCurrentStepId("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
+ }
}
}
} catch (Exception ex) {
@@ -401,6 +440,10 @@
.findFirst();
if (objectOptional.isPresent()) {
ArdVideoInspectTaskStep step = objectOptional.get();
+ /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
+ ardVideoInspectTask.setCurrentStepId(step.getId());
+ ardVideoInspectTask.setCurrentStepStartTime(DateUtils.getTime());
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
String wellId = step.getWellId();
if (!StringUtils.isNull(wellId)) {
/*鑾峰彇浜曞潗鏍�*/
@@ -425,25 +468,19 @@
cmd.setExpired(step.getRecordingTime());
boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
if (setTargetPosition) {
- /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
- cmd.setEnable(true);//鍚姩褰曞儚
- hikClientService.recordToMinio(cmd);
- /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
- ArdVideoInspectTask avit = new ArdVideoInspectTask();
- avit.setId(ardVideoInspectTask.getId());
- avit.setCurrentStepId(step.getId());
- avit.setCurrentStepStartTime(DateUtils.getTime());
- ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ if (!Global.task_record.contains(ardVideoInspectTask.getId())) {
+ /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
+ cmd.setEnable(true);//鍚姩褰曞儚
+ hikClientService.recordToMinio(cmd);
+ Global.task_record.add(ardVideoInspectTask.getId());
+ }
} else {
cmd.setEnable(false);//鍋滄褰曞儚
cmd.setUploadMinio(true);
hikClientService.recordToMinio(cmd);
/*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
- ArdVideoInspectTask avit = new ArdVideoInspectTask();
- avit.setId(ardVideoInspectTask.getId());
- avit.setCurrentStepId(step.getId());
- avit.setCurrentStepStartTime("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
}
}
}
@@ -482,9 +519,15 @@
cmd.setRecordObjectName(recordName);
cmd.setUploadMinio(true);
hikClientService.recordToMinio(cmd);
+ Global.task_record.remove(ardVideoInspectTask.getId());
/*鎻掑叆宸℃璁板綍*/
ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
ardVideoInspectRecord.setStepId(step.getId());
+ ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(step.getWellId());
+ if(StringUtils.isNotNull(ardAlarmpointsWell))
+ {
+ ardVideoInspectRecord.setWellName(ardAlarmpointsWell.getWellId());
+ }
Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, step.getRecordingTime());
ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartDate));
@@ -557,7 +600,7 @@
.findFirst()
.orElse(null);
avit.setCurrentStepId(nextStepId);
- ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(avit);
log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�" + nextStepId);
return nextStepId;
}
@@ -566,4 +609,37 @@
}
return "";
}
+
+ public List getTaskUsedCameraPeriods(String cameraId) {
+ return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId);
+ }
+
+ public List getCameraIdleTimeList(String cameraId) {
+ LinkedList<String> timeList = new LinkedList();
+ List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId);
+ for (Map p :
+ usedPeriods) {
+ timeList.add((String) p.get("start_time"));
+ timeList.add((String) p.get("end_time"));
+ }
+ //鍒ゆ柇绗竴涓捣濮嬬偣
+ if (timeList.getFirst().equals("00:00:00")) {
+ timeList.removeFirst();
+ } else {
+ timeList.addFirst("00:00:00");
+ }
+ //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂�
+ if (timeList.getLast().equals("23:59:59")) {
+ timeList.removeLast();
+ } else {
+ timeList.addLast("23:59:59");
+ }
+ //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
+ if (timeList.size() == 0) {
+ timeList.add("00:00:00");
+ timeList.add("23:59:59");
+ }
+
+ return timeList;
+ }
}
--
Gitblit v1.9.3