diff --git a/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java b/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java index 9e2b126..36d8a2f 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java @@ -39,6 +39,31 @@ public class RealTimeController { public Result> allCameras(Integer index) { return Result.success(cameraService.allCameras(index)); } + @GetMapping("/allCameras1") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras1() { + return Result.success(cameraService.allCamerasPage(1)); + } + @GetMapping("/allCameras2") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras2() { + return Result.success(cameraService.allCamerasPage(2)); + } + @GetMapping("/allCameras3") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras3() { + return Result.success(cameraService.allCamerasPage(3)); + } + + @GetMapping("/allCameras4") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras4() { + return Result.success(cameraService.allCamerasPage(4)); + } @GetMapping("/wallStyle") @ApiOperation(value = "视频墙样式") diff --git a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java index aa1e52b..1a65a8a 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java @@ -84,18 +84,7 @@ public class StreetController { List lightSources = lightSourceService.getLightSource(); lightSources.forEach(lightSource -> { - JSONObject obj = JSONObject.parseObject(configProperties.getLightSource().getInfo()); - if(configProperties.getLightSource().getType() == 1){ - - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.openDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); - equip.DisConnect(); - - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1); - } + lightSourceService.controllerLightSource(lightSource,1); }); @@ -109,16 +98,7 @@ public class StreetController { List lightSources = lightSourceService.getLightSource(); lightSources.forEach(lightSource -> { - JSONObject obj = JSONObject.parseObject(configProperties.getLightSource().getInfo()); - if(configProperties.getLightSource().getType() == 1){ - - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.closeDO(equip,obj.getInteger("index")); - Integer status = JYDamHelper.ReadStatus(equip,obj.getInteger("num"),obj.getInteger("index")); - log.info("ip:{},status:{}",lightSource.getIp(),status); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0); - } + lightSourceService.controllerLightSource(lightSource,0); }); @@ -130,15 +110,7 @@ public class StreetController { public Result openStreetLightSource(@PathVariable Integer streetId){ List lightSources = lightSourceService.getLightSourceByStreetId(streetId); lightSources.forEach(lightSource -> { - if(configProperties.getLightSource().getType() == 1){ - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.openDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); - equip.DisConnect(); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1); - } + lightSourceService.controllerLightSource(lightSource,1); }); @@ -150,15 +122,7 @@ public class StreetController { public Result closeStreetLightSource(@PathVariable Integer streetId){ List lightSources = lightSourceService.getLightSourceByStreetId(streetId); lightSources.forEach(lightSource -> { - if(configProperties.getLightSource().getType() == 1){ - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.closeDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); - equip.DisConnect(); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0); - } + lightSourceService.controllerLightSource(lightSource,0); }); diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java index ec95d39..8033e3c 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java @@ -1,10 +1,12 @@ package com.zhehekeji.web.lib; +import com.zhehekeji.web.entity.Camera; import com.zhehekeji.web.lib.hik.HCNetSDK; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * camera login handler @@ -16,6 +18,7 @@ public class CameraConnMap { * value: loginId */ public static Map cameraMap = new HashMap<>(); + public static Map cameraInfoMap = new ConcurrentHashMap<>(); /** * key:loginId 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 20aeb68..b76f89c 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 @@ -7,6 +7,7 @@ import com.zhehekeji.common.util.SpringContextUtil; import com.zhehekeji.core.util.Assert; import com.zhehekeji.web.Application; import com.zhehekeji.web.config.ConfigProperties; +import com.zhehekeji.web.entity.Camera; import com.zhehekeji.web.lib.CameraConnMap; import com.zhehekeji.web.lib.CameraControlModule; import com.zhehekeji.web.lib.joyware.NetSDKLib; @@ -43,13 +44,16 @@ public class HikCameraControlModuleImpl implements CameraControlModule { public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int dwPTZCommand,int dwStop) { int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_UP, 0); + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.TILT_UP, 0); } public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) { int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_UP, 1); + + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.TILT_UP, 1); } /** @@ -58,13 +62,17 @@ public class HikCameraControlModuleImpl implements CameraControlModule { public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_DOWN, 0); + + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.TILT_DOWN, 0); } public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) { int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_DOWN, 1); + + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.TILT_DOWN, 1); } /** @@ -72,42 +80,52 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.PAN_LEFT, 0); + boolean picResult = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.PAN_LEFT, 0); + if (!picResult) { + log.error("pic error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); + } + return picResult; } public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.PAN_LEFT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.PAN_LEFT, 1); } /** * 向右 */ public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.PAN_RIGHT, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.PAN_RIGHT, 0); } public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.PAN_RIGHT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.PAN_RIGHT, 1); } /** * 向左上 */ public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.UP_LEFT, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.UP_LEFT, 0); } public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.UP_LEFT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.UP_LEFT, 1); } /** @@ -115,23 +133,26 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.UP_RIGHT, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.UP_RIGHT, 0); } public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.UP_RIGHT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.UP_RIGHT, 1); } /** * 向左下 */ public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.DOWN_LEFT, 0); + Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.DOWN_LEFT, 0); if(!ok){ log.error("error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); } @@ -139,22 +160,25 @@ public class HikCameraControlModuleImpl implements CameraControlModule { } public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.DOWN_LEFT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.DOWN_LEFT, 1); } /** * 向右下 */ public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int dwPTZCommand, int dwStop) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.DOWN_RIGHT, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.DOWN_RIGHT, 0); } public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.DOWN_RIGHT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.DOWN_RIGHT, 1); } /** @@ -162,14 +186,16 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.ZOOM_IN, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.ZOOM_IN, 0); } public boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.ZOOM_IN, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.ZOOM_IN, 1); } /** @@ -177,42 +203,48 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.ZOOM_OUT, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.ZOOM_OUT, 0); } public boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.ZOOM_OUT, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.ZOOM_OUT, 1); } /** * 变焦+ */ public boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.FOCUS_NEAR, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.FOCUS_NEAR, 0); } public boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.FOCUS_NEAR, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.FOCUS_NEAR, 1); } /** * 变焦- */ public boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.FOCUS_FAR, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.FOCUS_FAR, 0); } public boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.FOCUS_FAR, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.FOCUS_FAR, 1); } /** @@ -220,14 +252,16 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.IRIS_OPEN, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.IRIS_OPEN, 0); } public boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.IRIS_OPEN, 1); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.IRIS_OPEN, 1); } /** @@ -235,25 +269,28 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int dwPTZCommand) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.IRIS_CLOSE, 0); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.IRIS_CLOSE, 0); } public boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); - Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.IRIS_CLOSE, 1); + Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, camera.getChannel(), HCNetSDK.IRIS_CLOSE, 1); return ok; } public boolean pic(Integer cameraId, int nChannelID, String path) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); PathUtil.checkDirc(path); int lUserId = CameraConnMap.getConnId(cameraId).intValue(); short wPicSize = 3; short wPicQuality = 0; HCNetSDK.NET_DVR_JPEGPARA jpegpara = new HCNetSDK.NET_DVR_JPEGPARA(wPicSize, wPicQuality); - boolean picResult = HikLoginModuleImpl.hcNetsdk.NET_DVR_CaptureJPEGPicture(lUserId, 1, jpegpara, path); + boolean picResult = HikLoginModuleImpl.hcNetsdk.NET_DVR_CaptureJPEGPicture(lUserId, camera.getChannel(), jpegpara, path); if (!picResult) { log.error("pic error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); } @@ -265,8 +302,10 @@ public class HikCameraControlModuleImpl implements CameraControlModule { /*start = start.minusMinutes(1); end = end.minusMinutes(1);*/ ConfigProperties configProperties = SpringContextUtil.getBean(ConfigProperties.class); + start = start.minusNanos(configProperties.getCameraConfig().getDelayStartDownloadMp4() *10000); - end = start.plusNanos(configProperties.getCameraConfig().getDelayEndDownloadMp4() *10000); + end = end.plusNanos(configProperties.getCameraConfig().getDelayEndDownloadMp4() *10000); + log.info("downloadMp4 start:{},end:{}",start,end); PathUtil.checkDirc(path); HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME(); startTime.setTime(start.getYear(), start.getMonthValue(), start.getDayOfMonth(), start.getHour(), start.getMinute(), start.getSecond()); @@ -318,9 +357,9 @@ public class HikCameraControlModuleImpl implements CameraControlModule { log.info("download over,cameraId:{}",cameraId); String ffmpegFile = path+"ffmpeg.mp4"; convetor(path,ffmpegFile); - PathUtil.deleteFile(path); + //PathUtil.deleteFile(path); File file = new File(ffmpegFile); - file.renameTo(new File(path)); + //file.renameTo(new File(path)); }else { log.debug("cameraId:{},progress:{}",cameraId,nPos.getValue()); } @@ -387,8 +426,9 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public void ptz(Integer ptzId, String name, Integer cameraId) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int dwzCommand = HCNetSDK.SET_PRESET; - Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwzCommand, ptzId.intValue()); + Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), camera.getChannel(), dwzCommand, ptzId.intValue()); if(!ok){ log.error("ptz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); } @@ -402,8 +442,9 @@ public class HikCameraControlModuleImpl implements CameraControlModule { */ public void toPtz(Integer ptzId, Integer cameraId) { + Camera camera = CameraConnMap.cameraInfoMap.get(cameraId); int dwPTZCommand = HCNetSDK.GOTO_PRESET; - Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwPTZCommand, ptzId); + Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), camera.getChannel(), dwPTZCommand, ptzId); if(!ok){ log.error("toPtz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); } 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 460f268..7556525 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -33,7 +33,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.IOException; +import java.io.*; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @@ -96,13 +96,34 @@ public class CameraService { } String getRtsp(Camera camera) { int channel = 1; - if (camera.getChannelString() != null && camera.getChannelString().startsWith("D")) { - channel = Integer.parseInt(camera.getChannelString().replace("D","")) + 31; - } + channel = Integer.parseInt(camera.getChannelString()); camera.setChannel(channel); return "rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getIp()+":554/Streaming/Channels/"+channel+"01"; } + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("D:\\WeChet\\WeChat Files\\wxid_ttkf0xgmyihv22\\FileStorage\\File\\2024-09\\config.json")); + BufferedWriter writer = new BufferedWriter(new FileWriter("D:\\WeChet\\WeChat Files\\wxid_ttkf0xgmyihv22\\FileStorage\\File\\2024-09\\config.json"))) { + StringBuilder contentBuilder = new StringBuilder(); + String replacedLine = ""; + for (int i =99; i > 30; i--){ + + replacedLine = replacedLine.replace(i+"01", (i-31)+"01"); + } + // 替换字符串 + // 添加到 StringBuilder + contentBuilder.append(replacedLine).append(System.lineSeparator()); + + + // 清空文件内容 + writer.write(""); + // 将修改后的内容写回文件 + writer.write(contentBuilder.toString()); + System.out.println("字符串替换成功!"); + } catch (IOException e) { + System.err.println("文件处理失败:" + e.getMessage()); + } + } public void edit(Camera camera) { camera.setUpdateTime(LocalDateTime.now()); camera.setPtzId(null); @@ -154,9 +175,7 @@ public class CameraService { @Override public void run() { try { - if(camera.getChannel()!=null && camera.getChannel() > 30){ - camera.setChannelString("D"+(camera.getChannel()-31)); - }else camera.setChannelString(camera.getChannel()+""); + camera.setChannelString(camera.getChannel()+""); Boolean ok = false; if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){ ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue()); @@ -180,18 +199,14 @@ public class CameraService { public Camera detail(Integer id){ Camera camera = cameraMapper.selectById(id); - if(camera.getChannel()!=null && camera.getChannel() > 30){ - camera.setChannelString("D"+(camera.getChannel()-31)); - }else camera.setChannelString(camera.getChannel()+""); + camera.setChannelString(camera.getChannel()+""); return camera; } public List allCameras(){ List cameras = cameraMapper.selectByMap(new HashMap<>()); for (Camera camera :cameras){ - if(camera.getChannel()!=null && camera.getChannel() > 30){ - camera.setChannelString("D"+(camera.getChannel()-31)); - } else camera.setChannelString(camera.getChannel()+""); + camera.setChannelString(camera.getChannel()+""); } return cameras; } @@ -205,6 +220,13 @@ public class CameraService { String key = strings[index]; return cameraMap.get(key); } + public List allCamerasPage(int index){ + Integer size = configProperties.getVideoStyleConfig().getVideoStyleColumn() * configProperties.getVideoStyleConfig().getVideoStyleRow(); + String limit = "limit " + ((index-1) * size) + "," + size; + List cameras = cameraMapper.selectList(new QueryWrapper().last(limit)); + + return cameras; + } /** * 导入IO配置 * diff --git a/web/src/main/java/com/zhehekeji/web/service/CronTab.java b/web/src/main/java/com/zhehekeji/web/service/CronTab.java index 200cf10..c10c676 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CronTab.java +++ b/web/src/main/java/com/zhehekeji/web/service/CronTab.java @@ -48,6 +48,8 @@ public class CronTab { private static BigInteger timeDIff = BigInteger.valueOf(10*60*1000); private static int gByte = 1024* 1024 * 1024; + @Resource + private LightSourceService lightSourceService; @Scheduled(cron = "0 0 0 * * ?") //@Scheduled(cron = "0 0/1 * * * *") @@ -80,16 +82,7 @@ public class CronTab { if((BigInteger.valueOf(timeStamp).subtract(BigInteger.valueOf(entry.getValue()))).compareTo(timeDIff) > 0){ List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",entry.getKey())); lightSources.forEach(lightSource -> { - if(configProperties.getLightSource().getType() == 1){ - - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.closeDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); - equip.DisConnect(); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0); - } + lightSourceService.controllerLightSource(lightSource,0); }); it.remove(); } diff --git a/web/src/main/java/com/zhehekeji/web/service/InitService.java b/web/src/main/java/com/zhehekeji/web/service/InitService.java index 7e80310..33cc2a9 100644 --- a/web/src/main/java/com/zhehekeji/web/service/InitService.java +++ b/web/src/main/java/com/zhehekeji/web/service/InitService.java @@ -22,6 +22,8 @@ import javax.annotation.Resource; import java.util.HashMap; import java.util.List; +import static com.zhehekeji.web.lib.CameraConnMap.cameraInfoMap; + /** * 服务初始化 * 上位机、 plc、球机 连接 @@ -127,6 +129,8 @@ public class InitService implements ApplicationRunner { @Override public void run() { cameraService.cameraLogin(camera); + + cameraInfoMap.put(camera.getId(),camera); } } diff --git a/web/src/main/java/com/zhehekeji/web/service/LightSourceService.java b/web/src/main/java/com/zhehekeji/web/service/LightSourceService.java index 3f60d19..fb56c5a 100644 --- a/web/src/main/java/com/zhehekeji/web/service/LightSourceService.java +++ b/web/src/main/java/com/zhehekeji/web/service/LightSourceService.java @@ -1,25 +1,98 @@ package com.zhehekeji.web.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.entity.LightSource; import com.zhehekeji.web.mapper.LightSourceMapper; +import com.zhehekeji.web.service.damLightSource.JYDAMEquip; +import com.zhehekeji.web.service.damLightSource.JYDamHelper; +import com.zhehekeji.web.service.hikLightSource.HikControlSocket; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; import java.util.HashMap; import java.util.List; @Service +@Slf4j public class LightSourceService { @Autowired private LightSourceMapper lightSourceMapper; - public List getLightSource(){ + @Resource + private ConfigProperties configProperties; + + public List getLightSource() { return lightSourceMapper.selectByMap(new HashMap<>()); } - public List getLightSourceByStreetId(Integer streetId){ - return lightSourceMapper.selectList(new QueryWrapper().eq("street_id",streetId)); + public boolean controllerLightSource(LightSource lightSource, int status) { + JSONObject obj = JSONObject.parseObject(configProperties.getLightSource().getInfo()); + //1开灯 0关灯 + if (status == 1) { + if (configProperties.getLightSource().getType() == 1) { + + JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(), lightSource.getPort()); + JYDamHelper.openDO(equip, configProperties.getLightSource().getIndex()); + Integer stat = JYDamHelper.ReadStatus(equip, configProperties.getLightSource().getNum(), configProperties.getLightSource().getIndex()); + log.info("ip:{},status:{}", lightSource.getIp(), stat); + equip.DisConnect(); + + } else if (configProperties.getLightSource().getType() == 2) { + HikControlSocket.openLight(lightSource.getIp(), lightSource.getPort(), configProperties.getLightSource().getIndex(), 1); + } else if (configProperties.getLightSource().getType() == 3) { + relay(lightSource.getIp(), lightSource.getPort(),status); + } + } else { + if (configProperties.getLightSource().getType() == 1) { + + JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(), lightSource.getPort()); + JYDamHelper.closeDO(equip, configProperties.getLightSource().getIndex()); + Integer stat = JYDamHelper.ReadStatus(equip, configProperties.getLightSource().getNum(), configProperties.getLightSource().getIndex()); + log.info("ip:{},status:{}", lightSource.getIp(), stat); + equip.DisConnect(); + + } else if (configProperties.getLightSource().getType() == 2) { + HikControlSocket.openLight(lightSource.getIp(), lightSource.getPort(), configProperties.getLightSource().getIndex(), 0); + } else if (configProperties.getLightSource().getType() == 3) { + relay(lightSource.getIp(), lightSource.getPort(),status); + } + } + return true; + } + + public static void relay(String host, int port, int status) { + byte[] data; + if (status == 1) { + data = new byte[]{0x01, 0x05, 0x00, 0x01, (byte) 0xFF, 0x00, (byte) 0xDD, (byte) 0xFA}; + } else { + data = new byte[]{0x01, 0x05, 0x00, 0x01, (byte) 0x00, 0x00, (byte) 0x9C, (byte) 0x0A}; + } + + + try (Socket socket = new Socket(host, port); + DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream())) { + socket.setSoTimeout(1000); + // 发送数据 + outputStream.write(data); + outputStream.flush(); + + System.out.println("Data sent successfully."); + + } catch (IOException e) { + System.err.println("Error sending data: " + e.getMessage()); + e.printStackTrace(); + } + } + + public List getLightSourceByStreetId(Integer streetId) { + return lightSourceMapper.selectList(new QueryWrapper().eq("street_id", streetId)); } } 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 70496cf..cda82b5 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -71,6 +71,8 @@ public class PlcService { @Resource private RFIDService rfidService; @Resource + private LightSourceService lightSourceService; + @Resource private CheckLogMapper checkLogMapper; private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1,8,200,TimeUnit.MINUTES,new ArrayBlockingQueue<>(100000)); @@ -101,7 +103,10 @@ public class PlcService { */ public void orderStart(PlcCmdInfo plcCmdInfo) { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); - + List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); + lightSources.forEach(lightSource -> { + lightSourceService.controllerLightSource(lightSource,1); + }); if (street != null) { if(plcCmdInfo.getLeftRight1() == 1){ if(plcCmdInfo.getRow1()>street.getLeftRow() && plcCmdInfo.getColumn1() > street.getLeftColumn()){ @@ -141,6 +146,8 @@ public class PlcService { public void orderStop(PlcCmdInfo plcCmdInfo) { LocalDateTime endTime = LocalDateTime.now(); Street street = streetMapper.getStreetByPlcId(plcCmdInfo.getPlcId()); + + List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); if (street == null) { return; } @@ -173,7 +180,9 @@ public class PlcService { update.setVideoPath2(path); } orderMapper.updateById(update); - + lightSources.forEach(lightSource -> { + lightSourceService.controllerLightSource(lightSource,0); + }); } public void orderStopByWarn(String orderNum) { @@ -560,10 +569,7 @@ public class PlcService { long startTime = System.currentTimeMillis(); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); CronTab.putTime(street.getId()); - List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); - lightSources.forEach(lightSource -> { - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1); - }); + Integer cameraId = getCameraByPlcCmd(plcCmdInfo,plcCmdInfo.getLeftRight1()); if(plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2){ diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 03fbe0c..f8d3cee 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -61,7 +61,7 @@ savePath: # ------------服务端类型 0:TCP(罗伯泰克) 1:KSEC(JSON)(昆船) serverMode: 1 ksec: - ip: 192.168.168.11 + ip: 127.0.0.1 port: 8001 #重连次数 默认10次 reconnectNum: -1 diff --git a/web/src/main/resources/mapper/OrderMapper.xml b/web/src/main/resources/mapper/OrderMapper.xml index bd556c7..d0c157e 100644 --- a/web/src/main/resources/mapper/OrderMapper.xml +++ b/web/src/main/resources/mapper/OrderMapper.xml @@ -7,7 +7,7 @@ from `order` t - and t.order_num = #{req.orderNum} + and t.order_num like concat('%', #{req.orderNum},'%') and t.start_time >= #{req.startTimestamp} and t.start_time <= #{req.endTimestamp}