Просмотр исходного кода

Merge branch 'master' of http://124.70.58.209:3000/ytrd-project-management/GeoHazardMonitor

 Conflicts:
	business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java
	hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
	hazard-admin/src/main/java/com/ozs/web/controller/system/SysProfileController.java
gao.qiang 2 лет назад
Родитель
Сommit
9d4797417e

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

@@ -104,7 +104,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      * 物联网卡号
      */
     @Excel(name = "物联网卡号")
-    private String cardNo;
+    private String cardNum;
 
     /**
      * 创建人

+ 3 - 3
business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementVo.java

@@ -16,18 +16,18 @@ import java.io.Serializable;
 public class BaseCameraManagementVo extends PageVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
-    
+
     /**
      * 所属工务段
      */
-    private String publicWorksSection;
+    private Long deptId;
 
     /**
      * 行别
      */
     private String lineDir;
 
-  
+
     /**
      * 线路名称
      */

+ 8 - 5
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -12,6 +12,7 @@ import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.framework.config.ServerConfig;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.vo.BaseCameraManagementVo;
@@ -64,6 +65,8 @@ public class BaseCameraManagementController extends BaseController {
     BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
     @Autowired
     private CaneraConfig caneraConfig;
+    @Autowired
+    private ServerConfig serverConfig;
 
     /**
      * 相机台账管理分页
@@ -81,8 +84,8 @@ public class BaseCameraManagementController extends BaseController {
         if (!StringUtils.isBlank(baseCameraManagementVo.getRailwayName())) {
             lw.eq(BaseCameraManagement::getRailwayCode, baseCameraManagementVo.getRailwayName());
         }
-        if (!StringUtils.isBlank(baseCameraManagementVo.getPublicWorksSection())) {
-            lw.eq(BaseCameraManagement::getDeptId, baseCameraManagementVo.getPublicWorksSection());
+        if (!ObjectUtils.isEmpty(baseCameraManagementVo.getDeptId())) {
+            lw.eq(BaseCameraManagement::getDeptId, baseCameraManagementVo.getDeptId());
         }
         if (!ObjectUtils.isEmpty(baseCameraManagementVo.getBeginMile())) {
             lw.ge(BaseCameraManagement::getBeginMile, baseCameraManagementVo.getBeginMile());
@@ -181,8 +184,8 @@ public class BaseCameraManagementController extends BaseController {
         if (!StringUtils.isBlank(baseAccountManagementVo.getRailwayName())) {
             lw.eq(BaseCameraManagement::getRailwayCode, baseAccountManagementVo.getRailwayName());
         }
-        if (!StringUtils.isBlank(baseAccountManagementVo.getPublicWorksSection())) {
-            lw.eq(BaseCameraManagement::getDeptId, baseAccountManagementVo.getPublicWorksSection());
+        if (!ObjectUtils.isEmpty(baseAccountManagementVo.getDeptId())) {
+            lw.eq(BaseCameraManagement::getDeptId, baseAccountManagementVo.getDeptId());
         }
         if (!ObjectUtils.isEmpty(baseAccountManagementVo.getBeginMile())) {
             lw.ge(BaseCameraManagement::getBeginMile, baseAccountManagementVo.getBeginMile());
@@ -230,7 +233,7 @@ public class BaseCameraManagementController extends BaseController {
         if (ObjectUtils.isEmpty(one)) {
             throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
         }
-        return success(CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime()));
+        return success(serverConfig.getUrl() + CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime()));
     }
 
 

+ 2 - 4
hazard-admin/src/main/java/com/ozs/web/controller/system/SysProfileController.java

@@ -64,13 +64,11 @@ public class SysProfileController extends BaseController
         SysUser sysUser = loginUser.getUser();
         user.setUserName(sysUser.getUserName());
         if (StringUtils.isNotEmpty(user.getPhoneNum())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         if (StringUtils.isNotEmpty(user.getEmail())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setUserId(sysUser.getUserId());

+ 49 - 42
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -6,20 +6,15 @@ import com.ozs.common.config.BaseConfig;
 import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.http.HttpUtils;
-import com.ozs.framework.config.ServerConfig;
 import com.ozs.web.core.config.CaneraConfig;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
-import springfox.documentation.spring.web.json.Json;
 
 import javax.annotation.PostConstruct;
 import java.io.*;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -36,45 +31,20 @@ public class CameraUtil {
     @Autowired
     private CaneraConfig caneraConfig;
 
+
     /**
      * 历史回放
      *
-     * @param channel
-     * @param startTm
-     * @param endTm
+     * @param fromVideoFileList
+     * @param ph
      * @return
      * @throws IOException
      */
-    public static String historyPlay(String channel, Date startTm, Date endTm) throws IOException {
-        if (StringUtils.isBlank(channel)
-                || ObjectUtils.isEmpty(startTm)
-                || ObjectUtils.isEmpty(endTm)) {
-            return null;
-        }
-        // 调用视频服务返回参数
-        String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
-        String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
-        String param = "channel=" + channel + "&startTime=" + startTime + "&endTime=" + endTime;
-        String s = HttpUtils.sendGet(historyUrl + "/api/record/flv/list", param);
-
-        // 视频拼接
-        if (!StringUtils.isBlank(s)) {
-            List<Map<String, Object>> maps = JSON.parseArray(s, Map.class);
-            // 视频服务映射路径
-            String NewfilePath = BaseConfig.getProfile() + "/" + channel + "/" + startTime + "/" + endTime + ".flv";
-            List<String> fromVideoFileList = new ArrayList();
-            for (Map<String, Object> map : maps) {
-                Object path = map.get("Path");
-                if (!ObjectUtils.isEmpty(path)) {
-                    fromVideoFileList.add(mappingUrl + path);
-                }
-            }
-            convetor(fromVideoFileList, NewfilePath);
-            return null;
-//            return systemUrl + "/profile" + "/" + channel + "/" + startTime + "/" + endTime + ".flv";
-        }
-        // http://47.106.159.135/record/flv/34020000001320000002/20230304_183122_183222-d98df13f-ba77-11ed-aeb9-00163e06a5f3.flv
-        return null;
+    public static String historyPlay(List<String> fromVideoFileList, String ph) throws IOException {
+        // 视频服务映射路径
+        String NewfilePath = BaseConfig.getProfile() + ph;
+        convetor(fromVideoFileList, NewfilePath);
+        return "/profile" + ph;
     }
 
     public static String getPlayFlv(String cameraCode, String channel) {
@@ -96,16 +66,21 @@ public class CameraUtil {
         return HttpUtils.sendGet(url + "/gb28181/api/records", param);
     }
 
-    public static List<String> historyPlayList(String channel, Date startTm, Date endTm) {
+
+    public static String historyPlayList(String channel, Date startTm, Date endTm) {
         if (StringUtils.isBlank(channel)
                 || ObjectUtils.isEmpty(startTm)
                 || ObjectUtils.isEmpty(endTm)) {
             return null;
         }
+
         List<String> ls = new ArrayList<>();
         // 调用视频服务返回参数
         String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
         String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
+        String ph = "/flv/" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date())
+                + "/" + channel + "/" + startTime + "/" + endTime + "/"
+                + UUID.randomUUID().toString() + ".flv";
         String param = "channel=" + channel + "&startTime=" + startTime + "&endTime=" + endTime;
         String s = HttpUtils.sendGet(historyUrl + "/api/record/flv/list", param);
         // 视频拼接
@@ -114,11 +89,43 @@ public class CameraUtil {
             for (Map<String, Object> map : maps) {
                 Object path = map.get("Path");
                 if (!ObjectUtils.isEmpty(path)) {
-                    ls.add(mappingUrl + path.toString());
+                    String s1 = path.toString();
+                    String substring = s1.substring(s1.lastIndexOf("/") + 1, s1.length());
+                    String substring1 = substring.substring(0, substring.indexOf("-"));
+                    String[] s2 = substring1.split("_");
+                    if (!ObjectUtils.isEmpty(s2)) {
+                        String s3 = s2[0] + s2[1];
+                        String s4 = s2[0] + s2[2];
+                        Date sdate = DateUtils.dateTime(DateUtils.YYYYMMDDHHMMSS, s3);
+                        Date edate = DateUtils.dateTime(DateUtils.YYYYMMDDHHMMSS, s4);
+                        /*     s | e     | */
+                        if (sdate.compareTo(startTm) <= 0 && edate.compareTo(startTm) > 0) {
+                            ls.add(mappingUrl + path.toString());
+
+                            /*  |   s    e    | */
+                        } else if (sdate.compareTo(startTm) >= 0 && edate.compareTo(endTm) <= 0) {
+                            ls.add(mappingUrl + path.toString());
+
+                            /*  |   s     |  e  */
+                        } else if (sdate.compareTo(startTm) >= 0 && edate.compareTo(endTm) >= 0) {
+                            ls.add(mappingUrl + path.toString());
+
+                            /*  s|      | e  */
+                        } else if (sdate.compareTo(startTm) <= 0 && edate.compareTo(endTm) >= 0) {
+                            ls.add(mappingUrl + path.toString());
+                        }
+                    }
                 }
             }
         }
-        return ls;
+        if (!ObjectUtils.isEmpty(ls)) {
+            try {
+                return historyPlay(ls, ph);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
     }
 
     @PostConstruct

+ 2 - 2
hazard-admin/src/main/resources/application.yml

@@ -9,14 +9,14 @@ base:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: C:/base/uploadPath
+  profile: /data/service/hazard-admin/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
   captchaType: math
 #  path: http://47.106.159.135:8554
   path: http://47.106.159.135:8554
-  ffmpegPath: C:\Users\Administrator.DESKTOP-0NUUTMM\Downloads\ffmpeg-5.1.2-essentials_build\ffmpeg-5.1.2-essentials_build\bin\ffmpeg.exe
+  ffmpegPath: /usr/local/ffmpeg/bin/ffmpeg
 
 # 开发环境配置
 server: