From 1432cdd8eb5ac75ef6277053efe3cced40b25187 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期三, 30 十月 2024 16:30:57 +0800
Subject: [PATCH] devCamera增加抓图方式字段,增加大华摄像头截图定时任务

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java                  |    4 +-
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/DevCameraDahuaTask.java           |   79 +++++++++++++++++++++++++++++++++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java |    3 +
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java    |    5 ++
 4 files changed, 88 insertions(+), 3 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java
index 21c2d29..fff9c6b 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java
@@ -17,9 +17,9 @@
 
     private static DHSavePath instance = new DHSavePath();
 
-    public final static String capturePath = "Z:/irs/Capture/";
+    public final static String capturePath = "D:/irs/Capture/";
 
-    public final static String modelPath = "Z:/irs/Model/";
+    public final static String modelPath = "D:/irs/Model/";
 
     public final static String capturePathUbuntu = "/home/dell/DLUT/irs/Capture/";
 
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java
index d07b9d4..f817efb 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java
@@ -8,6 +8,7 @@
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
+import com.iailab.framework.web.core.util.WebFrameworkUtils;
 import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO;
 import com.iailab.module.data.dev.dao.DevCameraDao;
 import com.iailab.module.data.dev.dto.DevCameraDTO;
@@ -87,6 +88,7 @@
     public void save(DevCameraDTO dto) {
         DevCameraEntity entity = ConvertUtils.sourceToTarget(dto, DevCameraEntity.class);
         entity.setCreateDate(new Date());
+        entity.setCreator(WebFrameworkUtils.getLoginUserId());
         insert(entity);
     }
 
@@ -94,6 +96,7 @@
     public void update(DevCameraDTO dto) {
         DevCameraEntity entity = ConvertUtils.sourceToTarget(dto, DevCameraEntity.class);
         entity.setUpdateDate(new Date());
+        entity.setUpdater(WebFrameworkUtils.getLoginUserId());
         updateById(entity);
     }
 
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java
index e90be76..7e9445b 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java
@@ -8,6 +8,7 @@
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
+import com.iailab.framework.web.core.util.WebFrameworkUtils;
 import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrPageReqVO;
 import com.iailab.module.data.dev.controller.admin.nvr.vo.DevNvrSaveReqVO;
 import com.iailab.module.data.dev.dahua.DHCapturePictureClient;
@@ -102,6 +103,7 @@
     public String save(DevNvrSaveReqVO saveReqVO) {
         DevNvrEntity entity = BeanUtils.toBean(saveReqVO, DevNvrEntity.class);
         entity.setCreateDate(new Date());
+        entity.setUpdater(WebFrameworkUtils.getLoginUserId());
         insert(entity);
         return entity.getId();
     }
@@ -109,7 +111,8 @@
     @Override
     public String update(DevNvrSaveReqVO saveReqVO) {
         DevNvrEntity entity = BeanUtils.toBean(saveReqVO, DevNvrEntity.class);
-        entity.setCreateDate(new Date());
+        entity.setUpdateDate(new Date());
+        entity.setUpdater(WebFrameworkUtils.getLoginUserId());
         updateById(entity);
         return entity.getId();
     }
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/DevCameraDahuaTask.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/DevCameraDahuaTask.java
new file mode 100644
index 0000000..5eed5c8
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/DevCameraDahuaTask.java
@@ -0,0 +1,79 @@
+package com.iailab.module.data.job.task;
+
+import com.iailab.module.data.dev.controller.admin.camera.vo.DevCameraPageReqVO;
+import com.iailab.module.data.dev.dahua.DHCapturePictureClient;
+import com.iailab.module.data.dev.dahua.DHClientFactory;
+import com.iailab.module.data.dev.dto.DevCameraDTO;
+import com.iailab.module.data.dev.enums.CaptureTypeEnum;
+import com.iailab.module.data.dev.service.DevCameraService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 大华摄像头截图定时任务
+ *
+ * @author Houzhongjian
+ * @Description
+ * @createTime 2024年10月30日
+ */
+@Component("devCameraDahuaTask")
+public class DevCameraDahuaTask implements ITask {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Resource
+    private DevCameraService devCameraService;
+
+    @Resource
+    private DHClientFactory dhClientFactory;
+
+    @Override
+    public void run(String params) {
+        logger.info("devCameraDahuaTask定时任务正在执行,参数为:{}", params);
+        try {
+            DevCameraPageReqVO cameraPageReqVO = new DevCameraPageReqVO();
+            List<DevCameraDTO> list = devCameraService.list(cameraPageReqVO);
+            if (CollectionUtils.isEmpty(list)) {
+                logger.info("Alarm List 为空");
+                return;
+            }
+            Map<String, List<DevCameraDTO>> alarmGroup = list.stream().collect(Collectors.groupingBy(DevCameraDTO::getNvrId));
+            for  (Map.Entry<String, List<DevCameraDTO>> nvr : alarmGroup.entrySet()) {
+                DHCapturePictureClient client = dhClientFactory.getClient(nvr.getKey());
+                try {
+                    if(!client.isLogin()) {
+                        dhClientFactory.reLogin(client, nvr.getKey());
+                    }
+                    if(!client.isLogin()) {
+                        continue;
+                    }
+                    List<DevCameraDTO> cameraList = nvr.getValue();
+                    for (int i = 0; i < cameraList.size(); i++) {
+                        DevCameraDTO camera = cameraList.get(i);
+                        boolean captureResult = false;
+                        if (CaptureTypeEnum.LOCAL.getCode().equals(camera.getCaptureType())) {
+                            captureResult = client.localCapturePicture(camera.getChannel(), camera.getCode());
+                        } else {
+                            captureResult = client.remoteCapturePicture(camera.getChannel(), camera.getCode());
+                        }
+                        logger.info(camera.getCode() + ":captureResult = " + captureResult);
+                        Thread.sleep(100);
+                    }
+                } catch (Exception ex) {
+                    logger.info("item:" + ex.getMessage());
+                }
+            }
+            logger.info("devCameraDahuaTask定时任务执行完成:" + LocalDateTime.now());
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            logger.info("devCameraDahuaTask定时任务失败时间:" + LocalDateTime.now());
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3