houzhongjian
2024-10-30 1432cdd8eb5ac75ef6277053efe3cced40b25187
devCamera增加抓图方式字段,增加大华摄像头截图定时任务
已修改3个文件
已添加1个文件
91 ■■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/dahua/DHSavePath.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevCameraServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/dev/service/impl/DevNvrServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/DevCameraDahuaTask.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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/";
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);
    }
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();
    }
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());
        }
    }
}