gao.qiang пре 1 година
родитељ
комит
5af23e5250

+ 2 - 2
business-service/src/main/java/com/ozs/entity/BaseRailwayManagement.java

@@ -44,9 +44,9 @@ public class BaseRailwayManagement extends BaseEntity implements Serializable {
     private String railwayCode;
 
     /**
-     * 线路类型(1普铁2高铁3重载铁路)
+     * 线路类型(1=高铁,2=普铁,3=重载铁路)
      */
-    @Excel(name = "线路类型", readConverterExp = "1=高铁,2=普,3=重载铁路")
+    @Excel(name = "线路类型", readConverterExp = "1=高铁,2=普,3=重载铁路")
     private Integer railwayType;
 
     /**

+ 2 - 1
business-service/src/main/java/com/ozs/entity/BaseTerminal.java

@@ -92,9 +92,10 @@ public class BaseTerminal implements Serializable {
     private String remark;
 
     /**
-     * 机车名称
+     * 关联机车号
      */
     @TableField(exist = false)
+    @Excel(name = "关联机车号")
     private String vehicleCode;
 
 //    /**

+ 6 - 0
business-service/src/main/java/com/ozs/entity/VehiclePosition.java

@@ -47,6 +47,12 @@ public class VehiclePosition implements Serializable {
     @Excel(name = "终端编码")
     private String terminalCode;
 
+    /**
+     *终端编码
+     */
+    @Excel(name = "终端编码")
+    private String terminalCodes;
+
     /**
      *车辆行驶位置
      */

+ 11 - 0
business-service/src/main/java/com/ozs/service/impl/BaseTerminalServiceImpl.java

@@ -228,6 +228,17 @@ public class BaseTerminalServiceImpl extends ServiceImpl<BaseTerminalMapper, Bas
         List<BaseTerminal> baseVehicleTerminalList = baseTerminalMapper.selectList(wrapper);
         for (BaseTerminal baseVehicleTerminal1 : baseVehicleTerminalList) {
             baseVehicleTerminal1.setStatusStr(baseVehicleTerminal1.getStatus() == 1 ? "在线" : "离线");
+            LambdaQueryWrapper<BaseVehicleTerminal> wrapper1 = new LambdaQueryWrapper<>();
+            wrapper1.eq(BaseVehicleTerminal::getTerminalCode, baseVehicleTerminal1.getTerminalCode());
+            BaseVehicleTerminal baseVehicleTerminals = baseVehicleTerminalMapper.selectOne(wrapper1);
+            if (!ObjectUtils.isEmpty(baseVehicleTerminals)) {
+                LambdaQueryWrapper<BaseVehicle> wrapper2 = new LambdaQueryWrapper<>();
+                wrapper2.eq(BaseVehicle::getVehicleCode, baseVehicleTerminals.getVehicleCode());
+                BaseVehicle baseVehicle = baseVehicleMapper.selectOne(wrapper2);
+                if (!ObjectUtils.isEmpty(baseVehicle)) {
+                    baseVehicleTerminal1.setVehicleCode(baseVehicle.getVehicleCode());
+                }
+            }
         }
         return baseVehicleTerminalList;
     }

+ 38 - 32
business-service/src/main/java/com/ozs/utils/CameraUtil.java

@@ -260,6 +260,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
     /**
      * web页面实时流接口
+     *
      * @param cameraCode
      * @param channel
      * @return
@@ -561,7 +562,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         host = caneraConfig.getHost();
         appKey = caneraConfig.getAppKey();
         appSecret = caneraConfig.getAppSecret();
-        rtmpUrl=caneraConfig.getRtmpUrl();
+        rtmpUrl = caneraConfig.getRtmpUrl();
     }
 
     /**
@@ -704,6 +705,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
     /**
      * web页面视频回放接口
+     *
      * @param code
      * @param startTm
      * @param endTm
@@ -744,8 +746,8 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             @Override
             public String call() throws Exception {
                 // 执行网络请求...
-                log.info(ffmpegPath + " -re -i /opt/streams/compress/" + code + ".mp4  -c:v copy -c:a copy -f flv "+rtmpUrl+"/live/" + code);
-                cmdCameraUtil.cmd(ffmpegPath + " -re -i /opt/streams/compress/" + code + ".mp4  -c:v copy -c:a copy -f flv "+rtmpUrl+"/live/" + code);
+                log.info(ffmpegPath + " -re -i /opt/streams/compress/" + code + ".mp4  -c:v copy -c:a copy -f flv " + rtmpUrl + "/live/" + code);
+                cmdCameraUtil.cmd(ffmpegPath + " -re -i /opt/streams/compress/" + code + ".mp4  -c:v copy -c:a copy -f flv " + rtmpUrl + "/live/" + code);
                 return "Response";
             }
         };
@@ -759,7 +761,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         }
 
         executor.shutdown();
-        return  bakUrlRtsp+"/live/"+code;
+        return bakUrlRtsp + "/live/" + code;
     }
 
 
@@ -767,9 +769,9 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      * RTSP流视频压缩
      */
     public void videoCompression(String code) {
-                // 执行网络请求...
-                log.info(ffmpegPath + " -i /opt/streams/map/"+code+".mp4 -c:v libx264 -s 640x480 -c:a adpcm_swf -ar 44100 /opt/streams/compress/" + code+".mp4");
-                cmdCameraUtil.cmd(ffmpegPath + " -i /opt/streams/map/"+code+".mp4 -c:v libx264 -s 640x480 -c:a adpcm_swf -ar 44100 /opt/streams/compress/" + code+".mp4");
+        // 执行网络请求...
+        log.info(ffmpegPath + " -i /opt/streams/map/" + code + ".mp4 -c:v libx264 -s 640x480 -c:a adpcm_swf -ar 44100 /opt/streams/compress/" + code + ".mp4");
+        cmdCameraUtil.cmd(ffmpegPath + " -i /opt/streams/map/" + code + ".mp4 -c:v libx264 -s 640x480 -c:a adpcm_swf -ar 44100 /opt/streams/compress/" + code + ".mp4");
     }
 
 
@@ -940,10 +942,11 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
     /**
      * 车载终端实时流调用的远程天网接口
+     *
      * @param camerasVo
      * @param channel
      */
-    public  String apiPreviewURLs(CamerasVo camerasVo) {
+    public String apiPreviewURLs(CamerasVo camerasVo) {
         /**
          *  jsonBody.put("cameraIndexCode", "01ea43e6676f4e47bd6c5cd9e02aa006");
          *         jsonBody.put("streamType", 0);
@@ -963,13 +966,14 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             JSONObject data = outJson.getJSONObject("data");
             String urls = data.getString("url");
             return urls;
-        }else {
+        } else {
             return "1";
         }
     }
 
     /**
      * web页面实时流调用的远程天网接口
+     *
      * @param camerasVo
      * @param channel
      */
@@ -1000,6 +1004,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
     /**
      * 报警回放本地测试
      * 从天网拉回放流,然后根据url把流下载下来变成文件,然后进行视频压缩
+     *
      * @param list
      * @param alarmPlayTimeValue
      */
@@ -1008,7 +1013,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         CompletableFuture future = CompletableFuture.supplyAsync(() -> {
             log.info("异步任务开始-----》");
 //            for (String code : list) {
-            String code="42010001541320000024";
+            String code = "70b0bd685b0d4df1b4faf74ff5c1e7fd";
             PlaybackVo playbackVo = new PlaybackVo();
             playbackVo.setCameraIndexCode(code);
             // 获取当前时间
@@ -1021,7 +1026,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
             playbackVo.setBeginTime(beforeTenMinutes.format(formatter));
             //现在当前时间:后续需要修改成报警时间的后几分钟
-            playbackVo.setEndTime(afterTenMinutes.format(formatter));
+            playbackVo.setEndTime(currentTime.format(formatter));
             // jsonBody.put("protocol","rtsp");
             //        jsonBody.put("expand","streamform=rtp");
             playbackVo.setProtocol("rtsp");
@@ -1030,34 +1035,35 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             String body = JSONObject.toJSONString(playbackVo);
             //调用天网接口
             log.info("body----->" + body);
-//            String playbackURLs = getPreviewURLs("/api/video/v1/cameras/playbackURLs", body);
-//            log.info("playbackURLs----->" + playbackURLs);
-//            JSONObject outJson = (JSONObject) JSONObject.parse(playbackURLs);
-//            if ("0".equals(outJson.getString("code"))) {
-//                log.info("outJson----->" + outJson);
-//                JSONObject data = outJson.getJSONObject("data");
-//                String urls = data.getString("url");
-//                log.info("--------------->urls::" + urls);
-
-            String FilePath = "/opt/streams/map/"+code+".mp4";
+            String playbackURLs = getPreviewURLs("/api/video/v1/cameras/playbackURLs", body);
+            log.info("playbackURLs----->" + playbackURLs);
+            JSONObject outJson = (JSONObject) JSONObject.parse(playbackURLs);
+            if ("0".equals(outJson.getString("code"))) {
+                log.info("outJson----->" + outJson);
+                JSONObject data = outJson.getJSONObject("data");
+                String urls = data.getString("url");
+                log.info("--------------->urls::" + urls);
+
+                String FilePath = "/opt/streams/map/" + code + ".mp4";
 //                String FilePath = "/opt/streams/map/01ea43e6676f4e47bd6c5cd9e02aa006.mp4";
 //            try {
 //                TimeUnit.SECONDS.sleep(62*Integer.parseInt(alarmPlayTimeValue));
 //            } catch (InterruptedException e) {
 //                e.printStackTrace();
 //            }
-            Process process = rtspToMP4.StartRecord(ffmpegPath, "rtsp://124.70.58.209:8554/"+code+"/"+code, FilePath);
-            log.info("------playbackURLs----->>>>:" + process);
-            if (null != process) {
-                map.put(code, process);
-            }
-            try {
-                TimeUnit.SECONDS.sleep(70*Integer.parseInt(alarmPlayTimeValue));
-            } catch (InterruptedException e) {
-                e.printStackTrace();
+                Process process = rtspToMP4.StartRecord(ffmpegPath, urls, FilePath);
+                log.info("------playbackURLs----->>>>:" + process);
+                if (null != process) {
+                    map.put(code, process);
+                }
+                try {
+                    TimeUnit.SECONDS.sleep(70 * Integer.parseInt(alarmPlayTimeValue));
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                log.info("------videoCompression----->>>>:");
+                videoCompression(code);
             }
-            log.info("------videoCompression----->>>>:");
-            videoCompression(code);
             return 1;
         });
         future.join();

+ 6 - 6
business-service/src/main/resources/mapper/VehiclePositionMapper.xml

@@ -43,9 +43,14 @@
         order by a.create_time desc
     </select>
     <select id="vehiclePositionPage" resultType="com.ozs.entity.VehiclePosition">
-        SELECT /*+ GROUP_OPT_FLAG(1)*/ pos.*, ter.terminal_name AS terminalName, ter.status AS sta
+        SELECT /*+ GROUP_OPT_FLAG(1)*/ pos.*, ter.terminal_name AS terminalName, ter.terminal_code AS terminalCodes, ter.status AS sta
         FROM vehicle_position pos
         RIGHT JOIN base_terminal ter ON pos.terminal_code = ter.terminal_code
+        AND pos.create_time = (
+        SELECT MAX(create_time)
+        FROM vehicle_position
+        WHERE terminal_code = ter.terminal_code
+        )
         <where>
             <if test="terminalCode != null and terminalCode != ''">
                 AND ter.terminal_code = #{terminalCode}
@@ -57,11 +62,6 @@
                 AND ter.status = #{status}
             </if>
         </where>
-        AND pos.create_time = (
-        SELECT MAX(create_time)
-        FROM vehicle_position
-        WHERE terminal_code = ter.terminal_code
-        )
         GROUP BY ter.terminal_code
         ORDER BY pos.create_time
     </select>

+ 14 - 12
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -524,18 +524,20 @@ public class BaseCameraManagementController extends BaseController {
 //        baseCameraManagement.setMilesRange(begin + "-" + end);
 //        baseCameraManagement.setLongitudeAndLatitude(baseCameraManagement.getInstallLongitude() + "," + baseCameraManagement.getInstallLongitude());
 //        return AjaxResult.success(baseCameraManagement);
-        String cameraPreviewURL = GetCameraPreviewURL.getPreviewURLs();
-        log.info("-------------------------------->>>>>" + cameraPreviewURL);
-        JSONObject outJson = JSONObject.parse(cameraPreviewURL);
-        log.info("-------------------------------->>>>>outJson------" + outJson);
-        JSONObject data = outJson.getJSONObject("data");
-        log.info("-------------------------------->>>>>data------" + data);
-        String urls = data.getString("url");
-        log.info("-------------------------------->>>>>urls------" + urls);
-        TimeUnit.SECONDS.sleep(5);
-        String msg = HttpUtils.sendGet("http://10.48.36.47:9080/rtsp/api/pull?target=" + urls + "&streamPath=01ea43e6676f4e47bd6c5cd9e02aa006/01ea43e6676f4e47bd6c5cd9e02aa006&save=0");
-//        String msg = HttpUtils.sendGet("http://10.48.36.47:9080/api/gateway/stop?stream=01ea43e6676f4e47bd6c5cd9e02aa006/01ea43e6676f4e47bd6c5cd9e02aa006");
-        return AjaxResult.success(msg);
+//        String cameraPreviewURL = GetCameraPreviewURL.getPreviewURLs();
+//        log.info("-------------------------------->>>>>" + cameraPreviewURL);
+//        JSONObject outJson = JSONObject.parse(cameraPreviewURL);
+//        log.info("-------------------------------->>>>>outJson------" + outJson);
+//        JSONObject data = outJson.getJSONObject("data");
+//        log.info("-------------------------------->>>>>data------" + data);
+//        String urls = data.getString("url");
+//        log.info("-------------------------------->>>>>urls------" + urls);
+//        TimeUnit.SECONDS.sleep(5);
+//        String msg = HttpUtils.sendGet("http://10.48.36.47:9080/rtsp/api/pull?target=" + urls + "&streamPath=01ea43e6676f4e47bd6c5cd9e02aa006/01ea43e6676f4e47bd6c5cd9e02aa006&save=0");
+////        String msg = HttpUtils.sendGet("http://10.48.36.47:9080/api/gateway/stop?stream=01ea43e6676f4e47bd6c5cd9e02aa006/01ea43e6676f4e47bd6c5cd9e02aa006");
+//        return AjaxResult.success(msg);
+        CompletableFuture.runAsync(() -> cameraUtil.playbackURLs(new ArrayList<String>(),"5"));
+        return AjaxResult.success("ok");
     }
 
     /**

+ 7 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/system/MonitorSystemController.java

@@ -136,6 +136,13 @@ public class MonitorSystemController extends BaseController {
     @RequestMapping("/delete/{ids}")
     @ApiOperation(value = "监测系统-删除")
     public AjaxResult delete(@PathVariable Long[] ids) {
+         MonitorSystem monitorSystem = new MonitorSystem();
+        for (Long id : ids) {
+            monitorSystem.setId(id);
+            if (UserConstants.EXCEPTION.equals(monitorSystemService.checkSystemOnline(monitorSystem))) {
+                return error("删除失败,该系统正在使用中,无法删除");
+            }   
+        }
         monitorSystemService.deleteByIds(ids);
         return AjaxResult.success();
     }

+ 1 - 1
vehicle-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java

@@ -171,7 +171,7 @@ public class SysDeptController extends BaseController {
     }
 
     @Log(title = "部门导出", businessType = BusinessType.EXPORT)
-    @PreAuthorize("@ss.hasPermi('system:dept:export')")
+    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
     @ApiOperation("部门管理")
     @PostMapping("/export")
     public void export(@RequestBody SysDept dept, HttpServletResponse response) {

+ 6 - 2
vehicle-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java

@@ -155,6 +155,10 @@ public class SysUserController extends BaseController {
                 String name = stringBuilder.toString();
                 sysUser.setRoleName(name.substring(0, name.length() - 1));
             }
+            SysDept sysDept = deptService.selectDeptById(sysUser.getDeptId());
+            if (!ObjectUtils.isEmpty(sysDept)) {
+                sysUser.setDeptName(sysDept.getDeptName());
+            }
         }
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.exportExcel(response, usetList, "用户数据");
@@ -249,7 +253,7 @@ public class SysUserController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
-    @RequestMapping(value = "/edit", method = RequestMethod.PUT)
+    @RequestMapping(value = "/edit")
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
 //        userService.checkUserAllowed(user);
 //        userService.checkUserDataScope(user.getId());
@@ -275,7 +279,7 @@ public class SysUserController extends BaseController {
      */
 //    @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
-    @RequestMapping(value = "/updateUser", method = RequestMethod.PUT)
+    @RequestMapping(value = "/updateUser")
     public AjaxResult updateUser(@RequestBody SysUserUpdate user) {
         if (!StringUtils.isEmpty(user) && !StringUtils.isEmpty(user.getPassword())) {
             boolean matches = user.getPassword().matches(PW_PATTERN);