소스 검색

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

wyyay 2 년 전
부모
커밋
fe8cabb1c5
24개의 변경된 파일625개의 추가작업 그리고 96개의 파일을 삭제
  1. 1 1
      .idea/compiler.xml
  2. 2 0
      .idea/encodings.xml
  3. 12 12
      .idea/jarRepositories.xml
  4. 3 5
      business-service/src/main/java/com/ozs/entity/BaseTerminal.java
  5. 9 0
      business-service/src/main/java/com/ozs/entity/BaseVehicleTerminal.java
  6. 1 1
      business-service/src/main/java/com/ozs/entity/SvcAddress.java
  7. 4 0
      business-service/src/main/java/com/ozs/entity/vo/BaseVehicleTerminalVo.java
  8. 11 0
      business-service/src/main/java/com/ozs/entity/vo/ParameterVo.java
  9. 6 0
      business-service/src/main/java/com/ozs/mapper/BaseTerminalMapper.java
  10. 6 0
      business-service/src/main/java/com/ozs/service/BaseVehicleService.java
  11. 6 0
      business-service/src/main/java/com/ozs/service/BaseVehicleTerminalService.java
  12. 69 2
      business-service/src/main/java/com/ozs/service/impl/BaseVehicleServiceImpl.java
  13. 86 0
      business-service/src/main/java/com/ozs/service/impl/BaseVehicleTerminalServiceImpl.java
  14. 7 0
      business-service/src/main/resources/mapper/BaseTerminalMapper.xml
  15. 1 1
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  16. 36 0
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java
  17. 57 1
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleTerminalController.java
  18. 9 10
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  19. 254 53
      vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java
  20. 18 6
      vehicle-admin/src/main/java/com/ozs/web/controller/sdk/UploadController.java
  21. 2 1
      vehicle-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java
  22. 25 3
      vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java
  23. BIN
      vehicle-admin/src/main/resources/template/BaseVehicle.xlsx
  24. BIN
      vehicle-admin/src/main/resources/template/BaseVehicleTerminal.xlsx

+ 1 - 1
.idea/compiler.xml

@@ -8,8 +8,8 @@
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
         <module name="vehicle-admin" />
-        <module name="hazard-admin" />
         <module name="business-service" />
+        <module name="hazard-admin" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>

+ 2 - 0
.idea/encodings.xml

@@ -3,6 +3,8 @@
   <component name="Encoding">
     <file url="file://$PROJECT_DIR$/business-service/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/business-service/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/vehicle-admin/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/vehicle-admin/src/main/resources" charset="UTF-8" />
   </component>

+ 12 - 12
.idea/jarRepositories.xml

@@ -1,16 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://maven.aliyun.com/repository/public" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
     <remote-repository>
       <option name="id" value="public" />
       <option name="name" value="aliyun nexus" />
@@ -18,8 +8,8 @@
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
@@ -36,6 +26,11 @@
       <option name="name" value="Central Repository" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
     <remote-repository>
       <option name="id" value="custom_group" />
       <option name="name" value="Nexus Repository" />
@@ -46,5 +41,10 @@
       <option name="name" value="JBoss Community repository" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </remote-repository>
   </component>
 </project>

+ 3 - 5
business-service/src/main/java/com/ozs/entity/BaseTerminal.java

@@ -2,12 +2,12 @@ package com.ozs.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
-import java.util.Date;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 机车车载终端关联表
@@ -62,6 +62,4 @@ public class BaseTerminal implements Serializable {
      * 备注
      */
     private String remark;
-
-
 }

+ 9 - 0
business-service/src/main/java/com/ozs/entity/BaseVehicleTerminal.java

@@ -1,7 +1,9 @@
 package com.ozs.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -31,17 +33,22 @@ public class BaseVehicleTerminal implements Serializable {
     /**
      * 终端编码
      */
+    @Excel(name = "终端编码")
     private String terminalCode;
 
     /**
      * 终端名称
      */
+    @Excel(name = "终端名称")
     private String terminalName;
 
     /**
      * 状态 1在线2离线
      */
     private Integer status;
+    @Excel(name = "状态")
+    @TableField(exist = false)
+    private String statusStr;
 
     /**
      * 创建者
@@ -71,10 +78,12 @@ public class BaseVehicleTerminal implements Serializable {
     /**
      * 终端经度
      */
+    @Excel(name = "终端经度")
     private String terminalLongitude;
 
     /**
      * 终端纬度
      */
+    @Excel(name = "终端纬度")
     private String terminalLatitude;
 }

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

@@ -30,7 +30,7 @@ public class SvcAddress implements Serializable {
     /**
      * 授权类型,客户端模式(client_credentials)
      */
-    private String grantType;
+    private Integer grantType;
 
     /**
      * 主键

+ 4 - 0
business-service/src/main/java/com/ozs/entity/vo/BaseVehicleTerminalVo.java

@@ -11,6 +11,10 @@ import java.util.Date;
  */
 @Data
 public class BaseVehicleTerminalVo extends PageVo {
+    /**
+     * 是否挂载 0未挂载,1挂载
+     */
+    private String isMount;
 
     /**
      * 主键ID

+ 11 - 0
business-service/src/main/java/com/ozs/entity/vo/ParameterVo.java

@@ -0,0 +1,11 @@
+package com.ozs.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class ParameterVo {
+    private  String parameter;
+}

+ 6 - 0
business-service/src/main/java/com/ozs/mapper/BaseTerminalMapper.java

@@ -2,6 +2,9 @@ package com.ozs.mapper;
 
 import com.ozs.entity.BaseTerminal;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BaseTerminalMapper extends BaseMapper<BaseTerminal> {
 
+    List<String> selectMountCode(@Param("vehicleCode") String vehicleCode);
+
+    BaseTerminal selectTerminal(@Param("vehicleCode") String vehicleCode);
 }

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

@@ -3,7 +3,9 @@ package com.ozs.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.BaseVehicle;
+import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
 
 import java.util.List;
@@ -29,4 +31,8 @@ public interface BaseVehicleService extends IService<BaseVehicle> {
     AjaxResult vehicleDetails(BaseVehicle baseVehicle);
 
     List<BaseVehicle> exportBaseVehicle(BaseVehicle baseVehicle);
+
+    IPage<BaseVehicleTerminalVo> vehicleTerminal(BaseVehicleVo baseVehicle);
+
+    AjaxResult vehicleTerminalAdd(BaseTerminal baseTerminal, String userId);
 }

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

@@ -6,6 +6,8 @@ import com.ozs.entity.BaseVehicleTerminal;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 
+import java.util.List;
+
 /**
  * <p>
  * 机车车载终端信息表 服务类
@@ -23,4 +25,8 @@ public interface BaseVehicleTerminalService extends IService<BaseVehicleTerminal
     AjaxResult vehicleTerminalAdd(BaseVehicleTerminal baseVehicleTerminal, String userId);
 
     AjaxResult vehicleTerminalUpdate(BaseVehicleTerminal baseVehicleTerminal, String userId);
+
+    String importBaseVehicleTerminal(List<BaseVehicleTerminal> accountManageList, boolean updateSupport, String userId);
+
+    List<BaseVehicleTerminal> exportBaseVehicleTerminal(BaseVehicleTerminal baseVehicleTerminal);
 }

+ 69 - 2
business-service/src/main/java/com/ozs/service/impl/BaseVehicleServiceImpl.java

@@ -9,17 +9,23 @@ import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.common.utils.bean.BeanValidators;
+import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.BaseVehicle;
+import com.ozs.entity.BaseVehicleTerminal;
+import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
+import com.ozs.mapper.BaseTerminalMapper;
 import com.ozs.mapper.BaseVehicleMapper;
 import com.ozs.mapper.BaseVehicleTerminalMapper;
 import com.ozs.service.BaseVehicleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import javax.validation.Validator;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -35,6 +41,8 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
     @Autowired
     private BaseVehicleMapper baseVehicleMapper;
     @Autowired
+    private BaseTerminalMapper baseTerminalMapper;
+    @Autowired
     private BaseVehicleTerminalMapper baseVehicleTerminalMapper;
     @Autowired
     protected Validator validator;
@@ -84,7 +92,7 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
 
     @Override
     public AjaxResult vehicleUpdate(BaseVehicle baseVehicle, String userId) {
-        LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<BaseVehicle>();
+        LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<>();
         if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
             wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
         }
@@ -171,7 +179,7 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
 
     @Override
     public List<BaseVehicle> exportBaseVehicle(BaseVehicle baseVehicle) {
-        LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<BaseVehicle>();
+        LambdaQueryWrapper<BaseVehicle> wrapper = new LambdaQueryWrapper<>();
         if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleName())) {
             wrapper.eq(BaseVehicle::getVehicleName, baseVehicle.getVehicleName());
         }
@@ -181,4 +189,63 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
         List<BaseVehicle> baseVehicles = baseVehicleMapper.selectList(wrapper);
         return baseVehicles;
     }
+
+    @Override
+    public IPage<BaseVehicleTerminalVo> vehicleTerminal(BaseVehicleVo baseVehicleVo) {
+        BaseTerminal baseTerminal = baseTerminalMapper.selectTerminal(baseVehicleVo.getVehicleCode());
+        List<String> terminalCodeList = baseTerminalMapper.selectMountCode(baseVehicleVo.getVehicleCode());
+        // List<String> collect = terminalCodeList.stream().map(BaseTerminal::getTerminalCode).collect(Collectors.toList());
+        LambdaQueryWrapper<BaseVehicleTerminal> wrapper = new LambdaQueryWrapper<>();
+        if (!StringUtils.isEmptySunhh(terminalCodeList) && terminalCodeList.size() > 0) {
+            wrapper.notIn(BaseVehicleTerminal::getTerminalCode, terminalCodeList);
+        }
+//        List<BaseVehicleTerminal> baseVehicleTerminalList = baseVehicleTerminalMapper.selectList(wrapper);
+        int pageNum = Integer.parseInt(baseVehicleVo.getPageNum().toString());
+        int pageSize = Integer.parseInt(baseVehicleVo.getPageSize().toString());
+        com.github.pagehelper.Page<BaseVehicleTerminal> page = PageHelper
+                .startPage(pageNum, pageSize).doSelectPage(() -> baseVehicleTerminalMapper.selectList(wrapper));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseVehicleTerminalVo> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        if (!ObjectUtils.isEmpty(page) && page.getResult().size() > 0) {
+            List<BaseVehicleTerminalVo> dto1 = page.getResult().stream().map(o -> {
+                BaseVehicleTerminalVo baseVehicleTerminalVo = new BaseVehicleTerminalVo();
+                BeanUtils.copyProperties(o, baseVehicleTerminalVo);
+                if (baseTerminal.getTerminalCode().equals(o.getTerminalCode())) {
+                    baseVehicleTerminalVo.setIsMount("1");
+                } else {
+                    baseVehicleTerminalVo.setIsMount("0");
+                }
+                return baseVehicleTerminalVo;
+            }).collect(Collectors.toList());
+            pageR.setRecords(dto1);
+        }
+        return pageR;
+    }
+
+    @Override
+    public AjaxResult vehicleTerminalAdd(BaseTerminal baseTerminal1, String userId) {
+        LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<>();
+        if (!StringUtils.isEmptySunhh(baseTerminal1) && !StringUtils.isEmptySunhh(baseTerminal1.getVehicleCode())) {
+            wrapper.eq(BaseTerminal::getVehicleCode, baseTerminal1.getVehicleCode());
+        }
+        BaseTerminal baseTerminal = baseTerminalMapper.selectOne(wrapper);
+        if (StringUtils.isEmptySunhh(baseTerminal)) {
+            BaseTerminal baseTerminal2 = new BaseTerminal();
+            baseTerminal2.setVehicleCode(baseTerminal1.getVehicleCode());
+            baseTerminal2.setTerminalCode(baseTerminal1.getTerminalCode());
+            baseTerminal2.setCreateBy(userId);
+            baseTerminal2.setUpdateBy(userId);
+            Date date = new Date();
+            baseTerminal2.setCreateTime(date);
+            baseTerminal2.setUpdateTime(date);
+            int insert = baseTerminalMapper.insert(baseTerminal2);
+        } else {
+            baseTerminal.setUpdateBy(userId);
+            baseTerminal.setUpdateTime(new Date());
+            baseTerminal.setVehicleCode(baseTerminal1.getVehicleCode());
+            baseTerminal.setTerminalCode(baseTerminal1.getTerminalCode());
+            int updateById = baseTerminalMapper.updateById(baseTerminal);
+        }
+        return AjaxResult.success();
+    }
 }

+ 86 - 0
business-service/src/main/java/com/ozs/service/impl/BaseVehicleTerminalServiceImpl.java

@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.bean.BeanValidators;
 import com.ozs.entity.BaseVehicleTerminal;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.mapper.BaseVehicleTerminalMapper;
@@ -13,6 +15,7 @@ import com.ozs.service.BaseVehicleTerminalService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.validation.Validator;
 import java.util.Date;
 import java.util.List;
 
@@ -29,6 +32,8 @@ public class BaseVehicleTerminalServiceImpl extends ServiceImpl<BaseVehicleTermi
 
     @Autowired
     private BaseVehicleTerminalMapper baseVehicleTerminalMapper;
+    @Autowired
+    protected Validator validator;
 
     @Override
     public IPage<BaseVehicleTerminal> vehicleTerminalList(BaseVehicleTerminalVo baseVehicleTerminalleVo) {
@@ -101,4 +106,85 @@ public class BaseVehicleTerminalServiceImpl extends ServiceImpl<BaseVehicleTermi
             return AjaxResult.error();
         }
     }
+
+    @Override
+    public String importBaseVehicleTerminal(List<BaseVehicleTerminal> accountManageList, boolean updateSupport, String userId) {
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        for (BaseVehicleTerminal baseVehicleTerminal : accountManageList) {
+            try {
+//                BaseVehicle baseVehicle = new BaseVehicle();
+//                BeanUtils.copyProperties(baseVehicleTerminal, baseVehicle);
+                // 判断机车编码是否存在
+                LambdaQueryWrapper<BaseVehicleTerminal> lw = new LambdaQueryWrapper<BaseVehicleTerminal>();
+                if (!StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
+                    lw.eq(BaseVehicleTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
+                }
+                BaseVehicleTerminal baseVehicle1 = baseVehicleTerminalMapper.selectOne(lw);
+                if (StringUtils.isEmptySunhh(baseVehicle1)) {
+                    BeanValidators.validateWithException(validator, baseVehicleTerminal);
+                    baseVehicleTerminal.setStatus("在线".equals(baseVehicleTerminal.getStatusStr()) ? 1 : 2);
+                    baseVehicleTerminal.setUpdateBy(userId);
+                    baseVehicleTerminal.setCreateBy(userId);
+                    Date date = new Date();
+                    baseVehicleTerminal.setCreateTime(date);
+                    baseVehicleTerminal.setUpdateTime(date);
+                    int insert = baseVehicleTerminalMapper.insert(baseVehicleTerminal);
+                    successNum++;
+                    successMsg.append(successNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 导入成功");
+                } else if (updateSupport) {
+                    BeanValidators.validateWithException(validator, baseVehicleTerminal);
+                    LambdaQueryWrapper<BaseVehicleTerminal> lambdaQueryWrapper = new LambdaQueryWrapper<BaseVehicleTerminal>();
+                    if (!StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
+                        lambdaQueryWrapper.eq(BaseVehicleTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
+                    }
+                    BaseVehicleTerminal baseVehicle4 = baseVehicleTerminalMapper.selectOne(lambdaQueryWrapper);
+                    if (StringUtils.isEmptySunhh(baseVehicle4)) {
+                        baseVehicleTerminal.setUpdateBy(userId);
+                        baseVehicleTerminal.setUpdateTime(new Date());
+                        baseVehicleTerminal.setId(baseVehicle4.getId());
+                        baseVehicleTerminalMapper.updateById(baseVehicleTerminal);
+                        successNum++;
+                        successMsg.append(successNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 更新成功");
+                    } else {
+                        failureNum++;
+                        failureMsg.append(failureNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + "不存在");
+                    }
+                }
+            } catch (Exception e) {
+                failureNum++;
+                String msg = failureNum + "、终端编码 " + baseVehicleTerminal.getTerminalCode() + " 导入失败:";
+                failureMsg.append(msg);
+                log.error(msg, e);
+            }
+        }
+        if (failureNum > 0) {
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new ServiceException(failureMsg.toString());
+        } else {
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条。");
+        }
+        return successMsg.toString();
+    }
+
+    @Override
+    public List<BaseVehicleTerminal> exportBaseVehicleTerminal(BaseVehicleTerminal baseVehicleTerminal) {
+        LambdaQueryWrapper<BaseVehicleTerminal> wrapper = new LambdaQueryWrapper<BaseVehicleTerminal>();
+        if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalName())) {
+            wrapper.eq(BaseVehicleTerminal::getTerminalName, baseVehicleTerminal.getTerminalName());
+        }
+        if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalCode())) {
+            wrapper.eq(BaseVehicleTerminal::getTerminalCode, baseVehicleTerminal.getTerminalCode());
+        }
+        if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getStatus())) {
+            wrapper.eq(BaseVehicleTerminal::getStatus, baseVehicleTerminal.getStatus());
+        }
+        List<BaseVehicleTerminal> baseVehicleTerminalList = baseVehicleTerminalMapper.selectList(wrapper);
+        for (BaseVehicleTerminal baseVehicleTerminal1 : baseVehicleTerminalList) {
+            baseVehicleTerminal1.setStatusStr(baseVehicleTerminal1.getStatus() == 1 ? "在线" : "离线");
+        }
+        return baseVehicleTerminalList;
+    }
 }

+ 7 - 0
business-service/src/main/resources/mapper/BaseTerminalMapper.xml

@@ -2,4 +2,11 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ozs.mapper.BaseTerminalMapper">
 
+    <select id="selectMountCode" parameterType="java.lang.String" resultType="java.lang.String">
+        select terminal_code terminalCode from base_terminal where vehicle_code != #{vehicleCode}
+    </select>
+
+    <select id="selectTerminal" parameterType="java.lang.String" resultType="com.ozs.entity.BaseTerminal">
+        select * from base_terminal where vehicle_code = #{vehicleCode} limit 1
+    </select>
 </mapper>

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

@@ -407,7 +407,7 @@ public class BaseCameraManagementController extends BaseController {
             queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
         }
         BaseDeviceDynamicManagement baseDeviceDynamicManagement = baseDeviceDynamicManagementService.getOne(queryWrapper);
-        if (ObjectUtils.isEmpty(baseRailwayManagement)) {
+        if (ObjectUtils.isEmpty(baseDeviceDynamicManagement)) {
             return error("设备动态管理表中没有该相机编码:" + baseCameraManagement.getCameraCode() + "的数据");
         }
         LambdaQueryWrapper<MsgAlarm> wrapper1 = new LambdaQueryWrapper<MsgAlarm>();

+ 36 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java

@@ -8,7 +8,9 @@ import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.BaseVehicle;
+import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
 import com.ozs.service.BaseVehicleService;
 import io.swagger.annotations.ApiOperation;
@@ -43,6 +45,40 @@ public class BaseVehicleController extends BaseController {
         System.out.println(new Date().getTime());
     }
 
+    /**
+     * 车载终端挂载列表
+     *
+     * @param baseVehicleVo
+     * @return
+     */
+    @ApiOperation(value = "车载终端挂载列表")
+    @PostMapping("/vehicleTerminal")
+    @Log(title = "机车信息管理", businessType = BusinessType.SELECT)
+    public AjaxResult vehicleTerminal(@RequestBody BaseVehicleVo baseVehicleVo) {
+        if (StringUtils.isEmptySunhh(baseVehicleVo) || StringUtils.isEmptySunhh(baseVehicleVo.getVehicleCode())) {
+            return AjaxResult.error("机车编码不能为空!");
+        }
+        IPage<BaseVehicleTerminalVo> baseVehicleTerminalVoIPage = baseVehicleService.vehicleTerminal(baseVehicleVo);
+        return AjaxResult.success(baseVehicleTerminalVoIPage);
+    }
+
+    /**
+     * 车载终端挂载 保存
+     *
+     * @param baseTerminal
+     * @return
+     */
+    @ApiOperation(value = "车载终端挂载 保存")
+    @PostMapping("/vehicleTerminalAdd")
+    @Log(title = "机车信息管理", businessType = BusinessType.INSERT)
+    public AjaxResult vehicleTerminalAdd(@RequestBody BaseTerminal baseTerminal) {
+        if (StringUtils.isEmptySunhh(baseTerminal) || StringUtils.isEmptySunhh(baseTerminal.getVehicleCode())
+                || StringUtils.isEmptySunhh(baseTerminal.getTerminalCode())) {
+            return AjaxResult.error("机车编码、终端编码不能为空!");
+        }
+        return baseVehicleService.vehicleTerminalAdd(baseTerminal, getUserId());
+    }
+
     /**
      * 机车信息表 分页查询
      *

+ 57 - 1
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleTerminalController.java

@@ -7,14 +7,20 @@ import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.file.FileUtils;
+import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.entity.BaseVehicleTerminal;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.service.BaseVehicleTerminalService;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
 import java.util.List;
 
 /**
@@ -117,6 +123,57 @@ public class BaseVehicleTerminalController extends BaseController {
         }
     }
 
+    /**
+     * 车载终端信息导入
+     *
+     * @param file
+     * @param updateSupport
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation("车载终端信息导入")
+    @PostMapping("/importBaseVehicleTerminal")
+    @Log(title = "车载终端管理", businessType = BusinessType.IMPORT)
+    public AjaxResult importBaseVehicleTerminal(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<BaseVehicleTerminal> util = new ExcelUtil<BaseVehicleTerminal>(BaseVehicleTerminal.class);
+        List<BaseVehicleTerminal> accountManageList = util.importExcel(file.getInputStream());
+        String message = baseVehicleTerminalService.importBaseVehicleTerminal(accountManageList, updateSupport, getUserId());
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 车载终端信息导出
+     *
+     * @param response
+     */
+    @ApiOperation("车载终端信息导出")
+    @PostMapping("/exportBaseVehicleTerminal")
+    @Log(title = "车载终端管理", businessType = BusinessType.EXPORT)
+    public void exportBaseVehicleTerminal(HttpServletResponse response, @RequestBody BaseVehicleTerminal baseVehicleTerminal) {
+        List<BaseVehicleTerminal> baseVehicleList = baseVehicleTerminalService.exportBaseVehicleTerminal(baseVehicleTerminal);
+        ExcelUtil<BaseVehicleTerminal> util = new ExcelUtil<>(BaseVehicleTerminal.class);
+        util.exportExcel(response, baseVehicleList, "车载终端数据");
+    }
+
+    /**
+     * 车载终端信息模板下载
+     *
+     * @param response
+     */
+    @ApiOperation("车载终端信息模板下载")
+    @GetMapping("/downloaExcel")
+    @Log(title = "车载终端管理", businessType = BusinessType.OTHER)
+    public void downloadZip(HttpServletResponse response) {
+        try {
+            InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/BaseVehicleTerminal.xlsx");
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, "车载终端信息模板.xlsx");
+            FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
+        } catch (Exception e) {
+            log.error("下载文件失败", e);
+        }
+    }
+
     /**
      * 终端信息表 查询
      *
@@ -129,6 +186,5 @@ public class BaseVehicleTerminalController extends BaseController {
         List<BaseVehicleTerminal> list = baseVehicleTerminalService.list();
         return AjaxResult.success(list);
     }
-
 }
 

+ 9 - 10
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -7,33 +7,32 @@ import com.ozs.common.annotation.Log;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDictData;
-import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.entity.*;
-import com.ozs.entity.vo.*;
+import com.ozs.entity.vo.MsgAlarmResp;
+import com.ozs.entity.vo.MsgAlarmVo;
 import com.ozs.mapper.MsgAlarmMapper;
 import com.ozs.service.*;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.ISysDictTypeService;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -167,10 +166,10 @@ public class MsgAlarmController extends BaseController {
                 }
                 BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
                 o.setRailwayName(baseRailwayManagement.getRailwayName());
-//                if (StringUtils.isNotEmpty(o.getReleasedBy())) {
-//                    BaseUser user = baseUserService.getUser(o.getReleasedBy());
-//                    o.setReleasedByName(user.getNickName());
-//                }
+                if (StringUtils.isNotEmpty(o.getReleasedBy())) {
+                    BaseUser user = baseUserService.getUser(o.getReleasedBy());
+                    o.setReleasedByName(user.getNickName());
+                }
                 String mils = AppendUtils.stringAppend(o.getAlarmMile());
                 o.setAlarmMiles(mils);
                 o.setLineDirName(o.getLineDir() == 1 ? "上行" : "下行");

+ 254 - 53
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -34,6 +34,7 @@ import com.ozs.entity.vo.CameraPlayVo;
 import com.ozs.entity.vo.CameraVo;
 import com.ozs.entity.vo.Files;
 import com.ozs.entity.vo.HeartbeatVo;
+import com.ozs.entity.vo.ParameterVo;
 import com.ozs.entity.vo.QueryAlarmVo;
 import com.ozs.entity.vo.ReleaseAlarmVo;
 import com.ozs.entity.vo.ReqMsgAlarmVo;
@@ -88,6 +89,7 @@ import java.util.concurrent.TimeUnit;
 @Slf4j
 public class GeoHazardMonitorTokenController {
     public static final String PATTERN = "^([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)$";
+    public static final String PATTERNS = "^[0-9]*$";
     @Resource
     private ApiTokenUtils apiTokenUtils;
     @Resource
@@ -143,11 +145,24 @@ public class GeoHazardMonitorTokenController {
             jsonObject.put("data", "客户端编号不能为空");
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         }
+        if (!ObjectUtils.isEmpty(svcAddress.getGrantType())) {
+            if (!svcAddress.getGrantType().toString().matches(PATTERNS)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "授权类型填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+        } else {
+            jsonObject.put("resultCode", 0);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "授权类型不能为空");
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        }
         SvcAddress serviceOne = svcAddressService.getOne(lw);
         if (!ObjectUtils.isEmpty(serviceOne)) {
             String clientSecret = SM4Utils.decryptData_ECB(serviceOne.getClientSecret(), "4370780c9a8c43e5");
             if (clientSecret.equals(svcAddress.getClientSecret())) {
-                ArrayList<String> objects = apiTokenUtils.createGeoHazardMonitorToken(svcAddress.getGrantType(), svcAddress.getClientId(), svcAddress.getClientSecret());
+                ArrayList<String> objects = apiTokenUtils.createGeoHazardMonitorToken(svcAddress.getGrantType().toString(), svcAddress.getClientId(), svcAddress.getClientSecret());
                 if (objects.size() > 0) {
                     RespGeoHazardMonitorVo respGeoHazardMonitorVo = new RespGeoHazardMonitorVo();
                     respGeoHazardMonitorVo.setAccessToken(objects.get(1));
@@ -183,13 +198,13 @@ public class GeoHazardMonitorTokenController {
      */
     @PostMapping("/api/alarm")
     @Transactional
-    public String alarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String alarm(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
             if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmAttr())) {
                 if (!reqMsgAlarmVo.getAlarmAttr().matches(PATTERN)) {
@@ -199,6 +214,53 @@ public class GeoHazardMonitorTokenController {
                     return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
                 }
             }
+            if (!reqMsgAlarmVo.getAlarmMile().toString().matches(PATTERNS)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警里程位置填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (reqMsgAlarmVo.getLineDir() != 1 && reqMsgAlarmVo.getLineDir() != 2) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "行别填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+            if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmRailway())) {
+                queryWrapper.eq(BaseRailwayManagement::getRailwayCode, reqMsgAlarmVo.getAlarmRailway());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+            if (ObjectUtils.isEmpty(baseRailwayManagement)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "填写的报警线路编码不存在");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmId())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警的唯一标识不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmTime())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警时间不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (reqMsgAlarmVo.getAlarmType() < 1 || reqMsgAlarmVo.getAlarmType() > 3) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警病害类型填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (!reqMsgAlarmVo.getAlarmLevel().toString().matches(PATTERNS)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警级别填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             if (reqMsgAlarmVo.getAlarmTime().toString().length() == 10) {
                 reqMsgAlarmVo.setAlarmTime(reqMsgAlarmVo.getAlarmTime() * 1000);
             }
@@ -223,7 +285,7 @@ public class GeoHazardMonitorTokenController {
                 lw.eq(MsgAlarm::getAlarmId, reqMsgAlarmVo.getAlarmId());
             }
             MsgAlarm alarm = msgAlarmService.getOne(lw);
-            if (ObjectUtils.isEmpty(alarm)){
+            if (ObjectUtils.isEmpty(alarm)) {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
                 jsonObject.put("data", "没有该报警唯一标识的报警信息");
@@ -247,6 +309,18 @@ public class GeoHazardMonitorTokenController {
                 Files[] files1 = reqMsgAlarmVo.getFiles();
                 if (files1.length > 0) {
                     for (int i = 0; i < files1.length; i++) {
+                        if (ObjectUtils.isEmpty(files1[i].fileUrl)) {
+                            jsonObject.put("resultCode", 0);
+                            jsonObject.put("message", "失败");
+                            jsonObject.put("data", "上传文件地址不能为空");
+                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+                        }
+                        if (files1[i].fileType < 1 || files1[i].fileType > 3) {
+                            jsonObject.put("resultCode", 0);
+                            jsonObject.put("message", "失败");
+                            jsonObject.put("data", "文件类型填写错误");
+                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+                        }
                         MsgAlarmExt msgAlarmExt = new MsgAlarmExt();
                         msgAlarmExt.setAlarmId(msgAlarm.getAlarmId());
                         msgAlarmExt.setAlarmAttPath(files1[i].fileUrl);
@@ -324,19 +398,43 @@ public class GeoHazardMonitorTokenController {
     /**
      * 报警解除接口
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/releaseAlarm")
-    public String releaseAlarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String releaseAlarm(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             ReleaseAlarmVo releaseAlarmVo = JSON.parseObject(s, ReleaseAlarmVo.class);
+            if (ObjectUtils.isEmpty(releaseAlarmVo.getAlarmId())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警的唯一标识不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "解除报警时间不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseContent())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "解除原因不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "解除人不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(MsgAlarm::getAlarmId, releaseAlarmVo.getAlarmId());
             MsgAlarm msgAlarm = msgAlarmService.getOne(wrapper);
@@ -379,29 +477,82 @@ public class GeoHazardMonitorTokenController {
     /**
      * 车载心跳机制交互
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/terminal/heartbeat")
     @Transactional
-    public String heartbeat(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String heartbeat(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         Map<String, Object> twoMap = new HashMap<>();
         int distance = 0;
         RespHeartbeatVo respHeartbeatVo = new RespHeartbeatVo();
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             HeartbeatVo heartbeatVo = JSON.parseObject(s, HeartbeatVo.class);
+            if (ObjectUtils.isEmpty(heartbeatVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (!heartbeatVo.getCurrentMile().toString().matches(PATTERNS)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "当前里程位置填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(heartbeatVo.getLatitude())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "当前所在纬度不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(heartbeatVo.getLongitude())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "当前所在经度不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            LambdaQueryWrapper<BaseRailwayManagement> railway = new LambdaQueryWrapper<BaseRailwayManagement>();
+            if (!ObjectUtils.isEmpty(heartbeatVo.getRailwayCode())) {
+                railway.eq(BaseRailwayManagement::getRailwayCode, heartbeatVo.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(railway);
+            if (ObjectUtils.isEmpty(baseRailwayManagement)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "填写的线路编码不存在");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (heartbeatVo.getLineDir() != 1 && heartbeatVo.getLineDir() != 2) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "行别填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (!heartbeatVo.getVisualDistance().toString().matches(PATTERNS)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "司机目视距离填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (heartbeatVo.getSignalStrength() != 1 && heartbeatVo.getSignalStrength() != 2) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "信号强度填写错误");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             VehiclePosition vehiclePosition = new VehiclePosition();
             BeanUtils.copyProperties(heartbeatVo, vehiclePosition);
             LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(BaseTerminal::getTerminalCode, vehiclePosition.getTerminalCode());
             BaseTerminal baseTerminal = baseTerminalService.getOne(wrapper);
-            if (ObjectUtils.isEmpty(baseTerminal)){
+            if (ObjectUtils.isEmpty(baseTerminal)) {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
                 jsonObject.put("data", "关联表中没有改终端编码的信息");
@@ -435,12 +586,13 @@ public class GeoHazardMonitorTokenController {
                     camera.ge(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
                     camera.le(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
                     camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
+                    camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                     camera.orderByAsc(BaseCameraManagement::getInstallMile);
                     List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
                     List<AlarmListVo> listVos = new ArrayList<>();
                     if (baseCameraManagementList.size() > 0) {
                         //获取视频点播地址
-                        String playFlv = CameraUtil.getPlayFlv(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
+                        String playFlv = CameraUtil.getPlayFlvRtsp(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
                         respHeartbeatVo.setCurrentStream(playFlv);
                         respHeartbeatVo.setIsAlarm(1);
                         respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
@@ -457,7 +609,7 @@ public class GeoHazardMonitorTokenController {
                         LambdaQueryWrapper<MsgAlarmExt> ext = new LambdaQueryWrapper<>();
                         ext.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
                         MsgAlarmExt one = msgAlarmExtService.getOne(ext);
-                        if (ObjectUtils.isEmpty(one)){
+                        if (ObjectUtils.isEmpty(one)) {
                             jsonObject.put("resultCode", 0);
                             jsonObject.put("message", "失败");
                             jsonObject.put("data", "没有该报警ID的关联信息");
@@ -481,6 +633,7 @@ public class GeoHazardMonitorTokenController {
                         ment.ge(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
                         ment.le(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
                         ment.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
+                        ment.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                         ment.orderByAsc(BaseCameraManagement::getInstallMile);
                         if (i == 0) {
                             wrapper.last("limit 1,1000000");
@@ -489,7 +642,7 @@ public class GeoHazardMonitorTokenController {
                         List<BaseCameraManagement> baseList = baseCameraManagementService.list(camera);
                         if (baseList.size() > 0) {
                             for (int o = 0; o < baseList.size(); o++) {
-                                String flv = CameraUtil.getPlayFlv(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
+                                String flv = CameraUtil.getPlayFlvRtsp(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
                                 AlarmListVo alarmListVo = new AlarmListVo();
                                 //alarmList对象
                                 alarmListVo.setCameraStream(flv);
@@ -534,17 +687,12 @@ public class GeoHazardMonitorTokenController {
                     base.orderByAsc(BaseCameraManagement::getInstallMile);
                     base.last("limit 4");
                     List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
-                    String flv = CameraUtil.getPlayFlv(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
+                    CameraUtil.invite(list1.get(0).getCameraCode(), list1.get(0).getChannel());
+                    String flv = CameraUtil.getPlayFlvRtsp(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
                     for (BaseCameraManagement baseCameraManagement : list1) {
-                        String flv1 = CameraUtil.getPlayFlv(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
+                        String flv1 = CameraUtil.getPlayFlvRtsp(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
                         twoMap.put(baseCameraManagement.getCameraCode(), flv1);
-                        String invite = CameraUtil.invite(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
-                        if (!"304".equals(invite) && !"200".equals(invite)) {
-                            jsonObject.put("resultCode", 0);
-                            jsonObject.put("message", "失败");
-                            jsonObject.put("data", "视频邀约失败,视频中心没有该相机编码或通道编码的摄像头!!!");
-                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
-                        }
+                        CameraUtil.invite(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
                     }
                     respHeartbeatVo.setCurrentStream(flv);
                     respHeartbeatVo.setIsAlarm(2);
@@ -575,20 +723,32 @@ public class GeoHazardMonitorTokenController {
     /**
      * 司机忽略报警接口
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/terminal/ignore")
-    public String terminalIgnore(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String terminalIgnore(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         Map<String, Object> map = new HashMap<>();
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             TerminalIgnoreVo terminalIgnoreVo = JSON.parseObject(s, TerminalIgnoreVo.class);
+            if (ObjectUtils.isEmpty(terminalIgnoreVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(terminalIgnoreVo.getAlarmId())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警唯一UUID不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             map.put("terminalCode", terminalIgnoreVo.getTerminalCode());
             map.put("alarmId", terminalIgnoreVo.getAlarmId());
             LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
@@ -632,19 +792,25 @@ public class GeoHazardMonitorTokenController {
     /**
      * 获取所有的相机列表接口定义
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/query/camera")
-    public String camera(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String camera(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             CameraVo cameraVo = JSON.parseObject(s, CameraVo.class);
+            if (ObjectUtils.isEmpty(cameraVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<>();
             if (!ObjectUtils.isEmpty(cameraVo.getRailwayCode())) {
                 wrapper.eq(BaseCameraManagement::getRailwayCode, cameraVo.getRailwayCode());
@@ -653,7 +819,7 @@ public class GeoHazardMonitorTokenController {
                 wrapper.eq(BaseCameraManagement::getLineDir, cameraVo.getLineDir());
             }
             List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
-            if (list.size()<=0){
+            if (list.size() <= 0) {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
                 jsonObject.put("data", "没有该线路编码或行别的相机信息");
@@ -665,7 +831,7 @@ public class GeoHazardMonitorTokenController {
                     queryWrapper.eq(BaseRailwayManagement::getRailwayCode, baseCameraManagement.getRailwayCode());
                 }
                 BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
-                if (ObjectUtils.isEmpty(baseRailwayManagement)){
+                if (ObjectUtils.isEmpty(baseRailwayManagement)) {
                     jsonObject.put("resultCode", 0);
                     jsonObject.put("message", "失败");
                     jsonObject.put("data", "没有该线路编码的线路信息");
@@ -711,21 +877,32 @@ public class GeoHazardMonitorTokenController {
     /**
      * 点播功能接口定义(直播流)
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/camera/play")
-    public String cameraPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String cameraPlay(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         Map<String, Object> map = new HashMap<>();
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             CameraPlayVo cameraPlayVo = JSON.parseObject(s, CameraPlayVo.class);
-
+            if (ObjectUtils.isEmpty(cameraPlayVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(cameraPlayVo.getCameraCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "相机编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
             lw.eq(BaseCameraManagement::getCameraCode, cameraPlayVo.getCameraCode());
             BaseCameraManagement one = baseCameraManagementService.getOne(lw);
@@ -735,7 +912,7 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("data", "没有该相机编码的相机");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
-            String flv = CameraUtil.getPlayFlv(one.getCameraCode(), one.getChannel());
+            String flv = CameraUtil.getPlayFlvRtsp(one.getCameraCode(), one.getChannel(),false);
             map.put("url", flv);
             jsonObject.put("resultCode", 1);
             jsonObject.put("message", "ok");
@@ -753,19 +930,25 @@ public class GeoHazardMonitorTokenController {
     /**
      * 获取报警列表(已解除和未解除)
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/query/alarm")
-    public String queryAlarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String queryAlarm(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             CameraVo cameraVo = JSON.parseObject(s, CameraVo.class);
+            if (ObjectUtils.isEmpty(cameraVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
             if (!ObjectUtils.isEmpty(cameraVo.getRailwayCode())) {
                 wrapper.eq(MsgAlarm::getRailwayCode, cameraVo.getRailwayCode());
@@ -774,7 +957,7 @@ public class GeoHazardMonitorTokenController {
                 wrapper.eq(MsgAlarm::getLineDir, cameraVo.getLineDir());
             }
             List<MsgAlarm> list = msgAlarmService.list(wrapper);
-            if (list.size()<=0){
+            if (list.size() <= 0) {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
                 jsonObject.put("data", "没有该报警线路或行别的报警信息");
@@ -793,7 +976,7 @@ public class GeoHazardMonitorTokenController {
                 LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
                 alarm.eq(MsgAlarmExt::getAlarmId, msgAlarm.getAlarmId());
                 List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
-                if (list1.size()<=0){
+                if (list1.size() <= 0) {
                     jsonObject.put("resultCode", 0);
                     jsonObject.put("message", "失败");
                     jsonObject.put("data", "没有该报警唯一标识的扩展信息");
@@ -827,21 +1010,33 @@ public class GeoHazardMonitorTokenController {
     /**
      * 获取报警回放
      *
-     * @param parameter
+     * @param parameterVo
      * @param request
      * @return
      */
     @PostMapping("/api/alarm/play")
-    public String alarmPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+    public String alarmPlay(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
         Map<String, Object> map = new HashMap<>();
         String urls = null;
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         log.info("token:{}", token);
-        log.info("parameter:{}", parameter);
+        log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
-            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
             TerminalIgnoreVo terminalIgnoreVo = JSON.parseObject(s, TerminalIgnoreVo.class);
+            if (ObjectUtils.isEmpty(terminalIgnoreVo.getTerminalCode())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "车载终端编码不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            if (ObjectUtils.isEmpty(terminalIgnoreVo.getAlarmId())) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "报警唯一UUID不能为空");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
             LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(MsgAlarm::getAlarmId, terminalIgnoreVo.getAlarmId());
             MsgAlarm one = msgAlarmService.getOne(wrapper);
@@ -904,7 +1099,13 @@ public class GeoHazardMonitorTokenController {
     public static void main(String[] args) {
         JSONObject res = new JSONObject();
         res.put("terminalCode", "001");
-        res.put("alarmId","42010001541320001115");
+        res.put("currentMile", 2000);
+        res.put("longitude", "200");
+        res.put("latitude", "300");
+        res.put("railwayCode", "JT01");
+        res.put("lineDir", 1);
+        res.put("visualDistance", 500);
+        res.put("signalStrength", 1);
         String s = SM4Utils.encryptData_ECB(JSONObject.toJSONString(res), "4370780c9a8c43e5");
         System.out.println(s);
     }

+ 18 - 6
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/UploadController.java

@@ -52,30 +52,42 @@ public class UploadController {
 
         JSONObject jsonObject = new JSONObject();
         if (stream.isEmpty()) {
-            jsonObject.put("resultCode", 2);
+            jsonObject.put("resultCode", 0);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "不能上传空文件哦");
             return jsonObject;
         }
         if (lineDir!=1&&lineDir!=2){
-            jsonObject.put("resultCode", 2);
+            jsonObject.put("resultCode", 0);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "行别填写错误");
             return jsonObject;
         }
         if (!alarmMile.toString().matches(PATTERN)) {
-            jsonObject.put("resultCode", 2);
+            jsonObject.put("resultCode", 0);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "报警里程位置填写格式不正确");
             return jsonObject;
         }
+        if (!size.toString().matches(PATTERN)) {
+            jsonObject.put("resultCode", 0);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "要上传的stream的填写格式不正确");
+            return jsonObject;
+        }
+        if (ObjectUtils.isEmpty(contentType)){
+            jsonObject.put("resultCode", 0);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "Content Type不能为空");
+            return jsonObject;
+        }
         LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
         if (!ObjectUtils.isEmpty(alarmRailway)) {
             queryWrapper.eq(BaseRailwayManagement::getRailwayCode, alarmRailway);
         }
         BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
         if (ObjectUtils.isEmpty(baseRailwayManagement)){
-            jsonObject.put("resultCode", 2);
+            jsonObject.put("resultCode", 0);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "填写的报警线路编码不存在");
             return jsonObject;
@@ -83,7 +95,7 @@ public class UploadController {
         //图片保存路径
         //String fileUploadPath ="/"+userId+"/image";
         String uploadFile = null;
-        if (stream != null && !stream.isEmpty()) {
+        if (!stream.isEmpty()) {
 
             String imageName = stream.getOriginalFilename();
             if (StringUtils.isNotBlank(imageName)) {
@@ -95,7 +107,7 @@ public class UploadController {
                 uploadFile = imgUrl+"/" + alarmRailway + "/" + lineDir + "/" + alarmMile + "/" + format1 + "/" + filename;
             }
         } else {
-            jsonObject.put("resultCode", 2);
+            jsonObject.put("resultCode", 0);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "图片为null");
             return jsonObject;

+ 2 - 1
vehicle-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java

@@ -38,5 +38,6 @@ public class CaneraConfig {
     @Value("${base.bakUrl:http://124.70.58.209:18891}")
     private String bakUrl;
 
-
+    @Value("${base.bakUrl:rtsp://124.70.58.209:8554}")
+    private String bakUrlRtsp;
 }

+ 25 - 3
vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -47,6 +47,7 @@ public class CameraUtil {
     private static String transcribeFilePath;
     private static String webUrl;
     private static String bakUrl;
+    private static String bakUrlRtsp;
     private static CmdCameraUtil cUtil;
 
     @Autowired
@@ -164,7 +165,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         }
 
     }
-    
+
     /**
      * 实时播放的拼接流
      *
@@ -179,6 +180,27 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         return webUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
 
 
+//        if (!flay) {
+//            return bakUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
+//        }
+//        return webUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
+    }
+
+
+    /**
+     * Rtsp实时播放的拼接流
+     *
+     * @param cameraCode 相机编码
+     * @param channel    相机通道
+     * @return
+     */
+    public static String getPlayFlvRtsp(String cameraCode, String channel, boolean flay) {
+        if (!flay) {
+            return bakUrlRtsp + "/" + channel + "/" + cameraCode;
+        }
+        return bakUrlRtsp + "/" + channel + "/" + cameraCode;
+
+
 //        if (!flay) {
 //            return bakUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
 //        }
@@ -201,8 +223,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         }
         return result;
     }
-    
-    
+
 
     /**
      * 开启录制功能
@@ -441,6 +462,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         transcribeFilePath = caneraConfig.getTranscribeFilePath();
         webUrl = caneraConfig.getWebUrl();
         bakUrl = caneraConfig.getBakUrl();
+        bakUrlRtsp=caneraConfig.getBakUrlRtsp();
         rc = redisCache;
         cUtil = cmdCameraUtil;
     }

BIN
vehicle-admin/src/main/resources/template/BaseVehicle.xlsx


BIN
vehicle-admin/src/main/resources/template/BaseVehicleTerminal.xlsx