diff --git a/ruoyi-video/pom.xml b/ruoyi-video/pom.xml
index 79ebf93..8f352d4 100644
--- a/ruoyi-video/pom.xml
+++ b/ruoyi-video/pom.xml
@@ -109,6 +109,10 @@
com.ruoyi
ruoyi-framework
+
+ com.ruoyi
+ ruoyi-quartz
+
diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/controller/AlarmRecordController.java b/ruoyi-video/src/main/java/com/ruoyi/video/controller/AlarmRecordController.java
index 671e01d..80b4a83 100644
--- a/ruoyi-video/src/main/java/com/ruoyi/video/controller/AlarmRecordController.java
+++ b/ruoyi-video/src/main/java/com/ruoyi/video/controller/AlarmRecordController.java
@@ -8,6 +8,7 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.video.domain.AlarmRecord;
+import com.ruoyi.video.domain.bo.alarmBatchBo;
import com.ruoyi.video.service.InspectionTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -34,7 +35,6 @@ public class AlarmRecordController extends BaseController {
/**
* 查询报警记录列表
*/
- @PreAuthorize("@ss.hasPermi('video:alarm:list')")
@GetMapping("/list")
public TableDataInfo list(AlarmRecord alarmRecord) {
startPage();
@@ -45,7 +45,6 @@ public class AlarmRecordController extends BaseController {
/**
* 导出报警记录列表
*/
- @PreAuthorize("@ss.hasPermi('video:alarm:export')")
@Log(title = "报警记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, AlarmRecord alarmRecord) {
@@ -57,7 +56,6 @@ public class AlarmRecordController extends BaseController {
/**
* 处理报警记录
*/
- @PreAuthorize("@ss.hasPermi('video:alarm:handle')")
@Log(title = "处理报警记录", businessType = BusinessType.UPDATE)
@PostMapping("/handle")
public AjaxResult handle(@RequestParam Long alarmId,
@@ -71,12 +69,12 @@ public class AlarmRecordController extends BaseController {
/**
* 批量处理报警记录
*/
- @PreAuthorize("@ss.hasPermi('video:alarm:handle')")
@Log(title = "批量处理报警记录", businessType = BusinessType.UPDATE)
@PostMapping("/batchHandle")
- public AjaxResult batchHandle(@RequestParam Long[] alarmIds,
- @RequestParam String handleStatus,
- @RequestParam(required = false) String handleRemark) {
+ public AjaxResult batchHandle(@RequestBody alarmBatchBo alarmBatchBo) {
+ Long[] alarmIds = alarmBatchBo.getAlarmIds();
+ String handleStatus = alarmBatchBo.getHandleStatus();
+ String handleRemark = alarmBatchBo.getHandleRemark();
String handleBy = SecurityUtils.getUsername();
int successCount = 0;
for (Long alarmId : alarmIds) {
diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/domain/bo/alarmBatchBo.java b/ruoyi-video/src/main/java/com/ruoyi/video/domain/bo/alarmBatchBo.java
new file mode 100644
index 0000000..ebd5daa
--- /dev/null
+++ b/ruoyi-video/src/main/java/com/ruoyi/video/domain/bo/alarmBatchBo.java
@@ -0,0 +1,10 @@
+package com.ruoyi.video.domain.bo;
+
+import lombok.Data;
+
+@Data
+public class alarmBatchBo {
+ private Long[] alarmIds;
+ private String handleStatus;
+ private String handleRemark;
+}
diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/service/VideoAnalysisService.java b/ruoyi-video/src/main/java/com/ruoyi/video/service/VideoAnalysisService.java
index 40ce9e5..b005dd0 100644
--- a/ruoyi-video/src/main/java/com/ruoyi/video/service/VideoAnalysisService.java
+++ b/ruoyi-video/src/main/java/com/ruoyi/video/service/VideoAnalysisService.java
@@ -64,6 +64,8 @@ public class VideoAnalysisService {
@Autowired
private com.ruoyi.video.mapper.InspectionTaskRecordMapper inspectionTaskRecordMapper;
+ @Autowired
+ private InspectionTaskMapper inspectionTaskMapper;
// 检测器配置 - 支持环境变量配置
private static final String PYTHON_API_URL = System.getenv().getOrDefault("PYTHON_API_URL", "http://localhost:8000") + "/api/detect/file";
@@ -225,6 +227,9 @@ public class VideoAnalysisService {
*/
private void createAlarmRecordForRecord(InspectionTask task, com.ruoyi.video.domain.InspectionTaskRecord record,
Detection detection, Mat frame, long frameCount) throws Exception {
+ //创建记录之前应该给task加上报警次数
+ task.setAlarmCount(task.getAlarmCount() + 1);
+ inspectionTaskMapper.updateInspectionTask(task);
// 创建告警图像临时文件
File alarmImageFile = File.createTempFile("alarm_", ".jpg");
diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java b/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java
index 4fc25ed..e10acd9 100644
--- a/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java
+++ b/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java
@@ -2,6 +2,7 @@ package com.ruoyi.video.service.impl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.quartz.util.CronUtils;
import com.ruoyi.video.domain.*;
import com.ruoyi.video.domain.dto.CameraDto;
import com.ruoyi.video.mapper.InspectionTaskMapper;
@@ -83,16 +84,15 @@ public class InspectionTaskServiceImpl implements InspectionTaskService {
@Override
public int insertInspectionTask(InspectionTask inspectionTask) {
inspectionTask.setCreateTime(DateUtils.getNowDate());
- // 这些字段在新版实体类中可能不存在,需要进行调整
- // inspectionTask.setExecuteCount(0L);
- // inspectionTask.setAlarmCount(0L);
+ inspectionTask.setExecuteCount(0L);
+ inspectionTask.setAlarmCount(0L);
// 获取设备信息
Device device = deviceService.selectDeviceByDeviceId(inspectionTask.getDeviceId());
- // 新版实体类可能不需要设备名称
- // if (device != null) {
- // inspectionTask.setDeviceName(device.getIp());
- // }
+
+ if (device != null) {
+ inspectionTask.setDeviceName(device.getIp());
+ }
return inspectionTaskMapper.insertInspectionTask(inspectionTask);
}
@@ -171,7 +171,12 @@ public class InspectionTaskServiceImpl implements InspectionTaskService {
try {
// 更新任务状态为执行中
// task.setStatus("1");
-// inspectionTaskMapper.updateInspectionTask(task);
+ // 更新最后执行时间和下次执行时间
+ task.setLastExecuteTime(new Date());
+ task.setNextExecuteTime(CronUtils.getNextExecution(task.getCronExpression()));
+ //更新执行次数
+ task.setExecuteCount(task.getExecuteCount() + 1);
+ inspectionTaskMapper.updateInspectionTask(task);
// 获取设备信息
Device device = deviceService.selectDeviceByDeviceId(task.getDeviceId());