From 082c2aaee8e42b5e4e3af6ecbcff9e7fdac0e8dc Mon Sep 17 00:00:00 2001 From: yiming Date: Fri, 1 Apr 2022 11:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=B5=81=E5=A4=9A=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/CameraController.java | 72 ++++++++++--------- .../java/com/zhehekeji/web/entity/Camera.java | 4 +- .../zhehekeji/web/service/CameraService.java | 8 +++ .../com/zhehekeji/web/service/PlcService.java | 3 - .../zhehekeji/web/service/StreetService.java | 4 ++ web/src/main/resources/application-dev.yml | 4 +- 6 files changed, 54 insertions(+), 41 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraController.java index 50b94cf..5154e8f 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraController.java @@ -22,6 +22,9 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.*; import java.util.List; +import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; @Api(value = "camera",tags = "球机管理") @RestController @@ -119,8 +122,6 @@ public class CameraController { @PostMapping("/io/toPtz") @ApiOperation(value = "转至球机IO配置点") public Result toPtz(@RequestBody CameraIOPtz req) { - //todo - //validatorUtil.validate(req); Integer ptzId = cameraService.getPtzId(req.getCameraIOId()); cameraControlModule.toPtz(ptzId,req.getCameraId()); return Result.success(); @@ -129,40 +130,41 @@ public class CameraController { @GetMapping("/downloadConfig") @ApiOperation(value = "视频直播配置") public Result downloadConfig() throws IOException { - File directory = new File("D:\\hzleaper_auto_install/rtsp2webRTC"); - if(!directory.exists()){ - directory.mkdirs(); - } - File file = new File("D:\\hzleaper_auto_install/rtsp2webRTC/config.json"); - if (file.exists()) { // 如果已存在,删除旧文件 - file.delete(); + List cameraList = cameraService.allCameras(); + Map> map = cameraList.stream().collect(Collectors.groupingBy(Camera::getRtcServer)); + for(Map.Entry> entry: map.entrySet()){ + File file = new File(entry.getKey()+"-config.json"); + if (file.exists()) { // 如果已存在,删除旧文件 + file.delete(); + } + file.createNewFile(); + List cameras = entry.getValue(); + JSONObject jsonObject = new JSONObject(); + JSONObject server = new JSONObject(); + server.put("http_port",":8083"); + String [] strings = new String[1]; + strings[0] = "stun:stun.l.google.com:19302"; + server.put("ice_servers",strings); + server.put("ice_username",""); + server.put("ice_credential",""); + jsonObject.put("server",server); + JSONObject streams = new JSONObject(); + cameras.forEach(camera -> { + JSONObject obj = new JSONObject(); + obj.put("on_demand",false); + obj.put("disable_audio",true); + obj.put("url",camera.getRtsp()); + streams.put("camera"+camera.getId(),obj); + }); + jsonObject.put("streams",streams); + Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); + + write.write(jsonObject.toJSONString()); + write.flush(); + write.close(); + log.info("downloadConfig:{}",entry.getKey()); + } - file.createNewFile(); - List cameras = cameraService.allCameras(); - JSONObject jsonObject = new JSONObject(); - JSONObject server = new JSONObject(); - server.put("http_port",":8083"); - String [] strings = new String[1]; - strings[0] = "stun:stun.l.google.com:19302"; - server.put("ice_servers",strings); - server.put("ice_username",""); - server.put("ice_credential",""); - jsonObject.put("server",server); - JSONObject streams = new JSONObject(); - cameras.forEach(camera -> { - JSONObject obj = new JSONObject(); - obj.put("on_demand",false); - obj.put("disable_audio",true); - obj.put("url",camera.getRtsp()); - streams.put("camera"+camera.getId(),obj); - }); - jsonObject.put("streams",streams); - Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); - - write.write(jsonObject.toJSONString()); - write.flush(); - write.close(); - log.info("downloadConfig"); return Result.success(); } diff --git a/web/src/main/java/com/zhehekeji/web/entity/Camera.java b/web/src/main/java/com/zhehekeji/web/entity/Camera.java index 7a0408b..6a68825 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Camera.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Camera.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; import java.time.LocalDateTime; @Data @@ -29,6 +28,9 @@ public class Camera { private String rtsp; + private String rtcServer; + + private Integer rtcServerPort; @ApiModelProperty(value = "预置点 增长值",hidden = true) private Integer ptzId; 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 cffc419..a2aad86 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -21,6 +21,7 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -56,6 +57,10 @@ public class CameraService { camera.setPort(configProperties.getCameraConfig().getCameraPort()); camera.setUpdateTime(LocalDateTime.now()); camera.setRtsp("rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getIp()+":554/cam/realmonitor?channel=1&subtype=0"); + if(StringUtils.isEmpty(camera.getRtcServer())){ + camera.setRtcServer("127.0.0.1"); + } + camera.setRtcServerPort(8083); try { cameraMapper.insert(camera); } catch (DuplicateKeyException e) { @@ -68,6 +73,9 @@ public class CameraService { public void edit(Camera camera) { camera.setUpdateTime(LocalDateTime.now()); camera.setPtzId(null); + if(StringUtils.isEmpty(camera.getRtcServer())){ + camera.setRtcServer("127.0.0.1"); + } try { cameraMapper.updateById(camera); } catch (DuplicateKeyException e) { 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 0f8c0e5..549a2e5 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -418,10 +418,7 @@ public class PlcService { update.setPicPaths(order.getPicPaths()); log.debug(" update order set pics:{},orderNum:{}", update.getPicPaths(), orderInfo.getOrderNum()); orderMapper.updateById(update); - // 盘点历史纪录 - } - } } diff --git a/web/src/main/java/com/zhehekeji/web/service/StreetService.java b/web/src/main/java/com/zhehekeji/web/service/StreetService.java index ffea962..4708a44 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StreetService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StreetService.java @@ -60,8 +60,10 @@ public class StreetService { if(street.getCamera2Id() != null && street.getCamera2Id() != 0 && street.getCamera1Id() != null && street.getCamera1Id() != 0){ //如果两个球机 就显示2列 street.setVideoStyleColumn(2); + street.setVideoStyleRow(1); }else { street.setVideoStyleColumn(1); + street.setVideoStyleRow(1); } try { @@ -158,8 +160,10 @@ public class StreetService { if(street.getCamera2Id() != null && street.getCamera2Id() != 0 && street.getCamera1Id() != null && street.getCamera1Id() != 0){ //如果两个球机 就显示2列 street.setVideoStyleColumn(2); + street.setVideoStyleRow(1); }else { street.setVideoStyleColumn(1); + street.setVideoStyleRow(1); } try { streetMapper.updateById(street); diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index 08a2bb7..54bc987 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -50,8 +50,8 @@ ksec: port: 9000 # ------------ 实时视频流 全部页面的格式 行列数量 videoStyleConfig: - videoStyleRow: 2 - videoStyleColumn: 2 + videoStyleRow: 3 + videoStyleColumn: 3 # ------------光源--- # -------------type 0:没有光源 1:JYDam # -----------1:JYDam 配置num和index