diff --git a/modules/common/src/main/java/encryptor/Encryptor.java b/modules/common/src/main/java/encryptor/Encryptor.java index 5c027ed..cf2b345 100644 --- a/modules/common/src/main/java/encryptor/Encryptor.java +++ b/modules/common/src/main/java/encryptor/Encryptor.java @@ -25,7 +25,7 @@ public class Encryptor { public static void main(String[] args) { - String noEncrypt = "178BFBFF00860F01Z22PEUHNS"; + String noEncrypt = "BFEBFBFF000306F2WD-WXM2D43LEJVF"; String encrypt = Encryptor.encryptStr(noEncrypt); System.out.println(encrypt); } diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java index 2b2c0ef..a92afd5 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java @@ -324,9 +324,6 @@ public class CameraControlController { @PostMapping("/mp4/{id}") @ApiOperation(value = "录像") public Result MP4(@PathVariable Integer id) { - checkLogin(id); - LocalDateTime localDateTime = LocalDateTime.of(2022,7,21,8,20); - cameraControlModule.downloadMp4(id,"E:\\work\\"+localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", localDateTime,localDateTime.plusMinutes(3)); return Result.success(); } @@ -337,7 +334,14 @@ public class CameraControlController { if (CameraConnMap.getConnId(cameraId) == null) { Boolean ok = false; if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) { - ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId).intValue()); + if(CameraConnMap.getConnId(cameraId) != null) { + ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId).intValue()); + }else { + Camera camera = cameraMapper.selectById(cameraId); + if(cameraService.cameraLogin(camera)){ + ok = true; + } + } } else { ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId)); } diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java index 2e3236c..88f77c9 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java @@ -109,7 +109,7 @@ public interface CameraControlModule { boolean pic(Integer cameraId, int channel, String realPath); - void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end); + void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end,int channelId); /** * 设置预置点 diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraDelayTask.java b/web/src/main/java/com/zhehekeji/web/lib/CameraDelayTask.java index 3552de4..e22302c 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraDelayTask.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraDelayTask.java @@ -19,6 +19,7 @@ public class CameraDelayTask implements Delayed { private String path; + private Integer channelId; /** * 0 : mp4 1:jpeg */ diff --git a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java index f37e459..fe642c8 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java @@ -13,8 +13,9 @@ public class TaskDelayExecutor { private static DelayQueue queue = new DelayQueue<>(); - public static void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime) { + public static void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime,Integer channelId) { CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, startTime, endTime,path, 0,delayTime); + cameraDelayTask.setChannelId(channelId); queue.add(cameraDelayTask); } @@ -45,7 +46,7 @@ public class TaskDelayExecutor { if(cameraDelayTask.getType() == 0){ - cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); + cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime(),cameraDelayTask.getChannelId()); }else if(cameraDelayTask.getType() == 1){ cameraControlModule.pic(cameraDelayTask.getCameraId(),0, cameraDelayTask.getPath()); }else if(cameraDelayTask.getType() == 2){ diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java index f6458a4..e4feb92 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java @@ -290,7 +290,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule { return picResult; } - public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { + public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end,int channelId) { PathUtil.checkDirc(path); HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME(); diff --git a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java index aca83de..fca23a3 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java @@ -277,7 +277,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { return ok; } - public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { + public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end,int channelId) { PathUtil.checkDirc(path); NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME(); diff --git a/web/src/main/java/com/zhehekeji/web/service/CameraService.java b/web/src/main/java/com/zhehekeji/web/service/CameraService.java index 8b1f7a6..f954fc2 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -2,6 +2,7 @@ package com.zhehekeji.web.service; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zhehekeji.core.util.Assert; @@ -41,7 +42,7 @@ import java.util.stream.Collectors; @Service @Slf4j -public class CameraService { +public class CameraService extends ServiceImpl { @Resource private CameraMapper cameraMapper; @@ -103,7 +104,12 @@ public class CameraService { } camera.setPort(configProperties.getCameraConfig().getCameraPort()); camera.setUser(configProperties.getCameraConfig().getCameraUser()); - camera.setRtsp("rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getIp()+":554/h264/ch1/sub/av_stream"); + //老URL,小于64路的NVR或混合录像机的IP通道从33开始;大于等于64路的NVR的IP通道从1开始 + int channel =1; + if(camera.getRecorderIp() !=null) { + channel = Integer.parseInt(camera.getChannel().substring(1)) + 32; + } + camera.setRtsp("rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getRecorderIp()+":554/h264/ch"+channel+"/sub/av_stream"); try { cameraMapper.updateById(camera); } catch (DuplicateKeyException e) { @@ -358,11 +364,14 @@ public class CameraService { } } - public void cameraLogin(Camera camera){ + public boolean cameraLogin(Camera camera){ NetSDKLib.LLong lLong = cameraControlLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); if(lLong != null){ log.info("camera login success,cameraId:{},ip:{}",camera.getId(),camera.getIp()); CameraConnMap.conn(camera.getId(),lLong); + return true; + }else { + return false; } } diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 7f3cc47..88ee4ec 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -18,6 +18,7 @@ import com.zhehekeji.web.service.damLightSource.JYDamHelper; import com.zhehekeji.web.service.hikLightSource.HikControlSocket; import com.zhehekeji.web.service.ksec.KsecNettyClient; import com.zhehekeji.web.service.sick.SickSocket; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -277,13 +278,24 @@ public class PlcService { orderMapper.updateById(upd); } + public static void main(String[] args) { + Integer channel = Integer.parseInt("D2".substring(1)) +32; + System.out.println(channel); + } + public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) { String path = PathUtil.createFileName("mp4",cameraId); + Camera camera = cameraService.getById(cameraId); + Integer channelId = 0; + if(camera.getChannel() == null && camera.getChannel().contains("D")){ + channelId = Integer.parseInt(camera.getChannel().substring(1)) +32; + } + Integer finalChannelId = channelId; Thread thread = new Thread(new Runnable() { @Override public void run() { String realPath = configProperties.getSavePath().getMp4Path() + path; - TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,configProperties.getCameraConfig().getDelayDownloadMp4()); + TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,configProperties.getCameraConfig().getDelayDownloadMp4(), finalChannelId); } }); thread.start();