Преглед изворни кода

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

 Conflicts:
	vehicle-admin/src/main/resources/logback.xml
hexiao пре 1 година
родитељ
комит
d1ed8987a6
32 измењених фајлова са 459 додато и 190 уклоњено
  1. 1 1
      .idea/compiler.xml
  2. 12 12
      .idea/jarRepositories.xml
  3. 4 1
      business-service/src/main/java/com/ozs/entity/BaseTerminal.java
  4. 12 0
      business-service/src/main/java/com/ozs/entity/BaseVehicle.java
  5. 9 5
      business-service/src/main/java/com/ozs/entity/BaseVehicleTerminal.java
  6. 2 0
      business-service/src/main/java/com/ozs/entity/MsgAlarm.java
  7. 1 1
      business-service/src/main/java/com/ozs/entity/VehiclePosition.java
  8. 3 0
      business-service/src/main/java/com/ozs/entity/vo/BaseVehicleTerminalVo.java
  9. 3 0
      business-service/src/main/java/com/ozs/entity/vo/BaseVehicleVo.java
  10. 5 0
      business-service/src/main/java/com/ozs/entity/vo/MsgAlarmResp.java
  11. 24 2
      business-service/src/main/java/com/ozs/entity/vo/MsgAlarmVo.java
  12. 3 0
      business-service/src/main/java/com/ozs/service/MsgAlarmService.java
  13. 53 3
      business-service/src/main/java/com/ozs/service/impl/BaseVehicleServiceImpl.java
  14. 1 0
      business-service/src/main/java/com/ozs/service/impl/BaseVehicleTerminalServiceImpl.java
  15. 63 1
      business-service/src/main/java/com/ozs/service/impl/MsgAlarmServiceImpl.java
  16. 3 4
      business-service/src/main/resources/mapper/BaseDeviceDynamicManagementMapper.xml
  17. 4 4
      business-service/src/main/resources/mapper/MsgAlarmMapper.xml
  18. 3 3
      business-service/src/main/resources/mapper/VehiclePositionMapper.xml
  19. 5 0
      vehicle-admin/src/main/java/com/ozs/web/common/Constant.java
  20. 39 25
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  21. 77 12
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java
  22. 27 2
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  23. 6 14
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/VehiclePositionController.java
  24. 73 69
      vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java
  25. 3 3
      vehicle-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java
  26. 0 7
      vehicle-admin/src/main/java/com/ozs/web/controller/system/SysLoginController.java
  27. 8 6
      vehicle-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  28. 3 4
      vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java
  29. 2 1
      vehicle-admin/src/main/resources/application.yml
  30. 10 10
      vehicle-admin/src/main/resources/logback.xml
  31. BIN
      vehicle-admin/src/main/resources/template/BaseVehicle.xlsx
  32. BIN
      vehicle-admin/src/main/resources/template/baseCameraManagement.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="business-service" />
         <module name="hazard-admin" />
+        <module name="business-service" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>

+ 12 - 12
.idea/jarRepositories.xml

@@ -2,8 +2,8 @@
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
     <remote-repository>
-      <option name="id" value="public" />
-      <option name="name" value="aliyun nexus" />
+      <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>
@@ -11,6 +11,16 @@
       <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" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </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="central" />
       <option name="name" value="Central Repository" />
@@ -26,11 +36,6 @@
       <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" />
@@ -41,10 +46,5 @@
       <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>

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

@@ -2,6 +2,7 @@ package com.ozs.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -25,7 +26,7 @@ public class BaseTerminal implements Serializable {
     /**
      * 主键ID
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
@@ -46,6 +47,7 @@ public class BaseTerminal implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -56,6 +58,7 @@ public class BaseTerminal implements Serializable {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**

+ 12 - 0
business-service/src/main/java/com/ozs/entity/BaseVehicle.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.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -49,6 +51,7 @@ public class BaseVehicle implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -59,10 +62,19 @@ public class BaseVehicle implements Serializable {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
+    /**
+     * 挂载终端名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "挂载终端名称")
+    private String terminalName;
+
     /**
      * 备注
      */
+    @Excel(name = "备注")
     private String remark;
 }

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

@@ -3,6 +3,7 @@ package com.ozs.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -58,6 +59,7 @@ public class BaseVehicleTerminal implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -68,13 +70,9 @@ public class BaseVehicleTerminal implements Serializable {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
-    /**
-     * 备注
-     */
-    private String remark;
-
     /**
      * 终端经度
      */
@@ -86,4 +84,10 @@ public class BaseVehicleTerminal implements Serializable {
      */
     @Excel(name = "终端纬度")
     private String terminalLatitude;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    private String remark;
 }

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

@@ -223,4 +223,6 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     @Excel(name = "报警是否解除")
     @TableField(exist = false)
     private String  isReleaseName;
+
+    private String releasedUrl;
 }

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

@@ -71,7 +71,7 @@ public class VehiclePosition implements Serializable {
     /**
      *创建时间
      */
-    @Excel(name = "解除时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 

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

@@ -1,5 +1,6 @@
 package com.ozs.entity.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.vo.PageVo;
 import lombok.Data;
 
@@ -44,6 +45,7 @@ public class BaseVehicleTerminalVo extends PageVo {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -54,6 +56,7 @@ public class BaseVehicleTerminalVo extends PageVo {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**

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

@@ -2,6 +2,7 @@ package com.ozs.entity.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.vo.PageVo;
 import lombok.Data;
 
@@ -38,6 +39,7 @@ public class BaseVehicleVo extends PageVo {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -48,6 +50,7 @@ public class BaseVehicleVo extends PageVo {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**

+ 5 - 0
business-service/src/main/java/com/ozs/entity/vo/MsgAlarmResp.java

@@ -27,6 +27,11 @@ public class MsgAlarmResp implements Serializable {
      */
     private String pushId;
 
+    /**
+     * 线路编码
+     */
+    private String railwayCode;
+
     /**
      * 线路名称
      */

+ 24 - 2
business-service/src/main/java/com/ozs/entity/vo/MsgAlarmVo.java

@@ -18,15 +18,39 @@ public class MsgAlarmVo extends PageVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 报警ID
+     */
+    private Long id;
+
+    /**
+     * 相机编码
+     */
+    private String cameraCode;
+
+    /**
+     * 剩余电量
+     */
+    private Integer electricity;
+
     /**
      * 线路编码
      */
     private String railwayCode;
 
+    /**
+     * 线路编码名称
+     */
+    private String railwayCodeName;
+
     /**
      * 报警行别
      */
     private Integer lineDir;
+    /**
+     * 报警行别 字符串
+     */
+    private String lineDirStr;
     
     /**
      * 报警病害类型(目前只有1泥石流,后续可扩展使用)
@@ -86,6 +110,4 @@ public class MsgAlarmVo extends PageVo implements Serializable {
      * 监控范围结束里程位置字符串形式
      */
     private String endMiles;
-
-   
 }

+ 3 - 0
business-service/src/main/java/com/ozs/service/MsgAlarmService.java

@@ -2,6 +2,7 @@ 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.MsgAlarm;
 import com.ozs.entity.vo.*;
 
@@ -56,4 +57,6 @@ public interface MsgAlarmService extends IService<MsgAlarm> {
     Integer appAlarmNum(MsgAlarmVo msgAlarmVo);
 
     List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo);
+
+    AjaxResult getDate(MsgAlarmVo msgAlarmVo);
 }

+ 53 - 3
business-service/src/main/java/com/ozs/service/impl/BaseVehicleServiceImpl.java

@@ -12,7 +12,6 @@ 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.BaseCameraManagementDto;
 import com.ozs.entity.vo.BaseVehicleTerminalDto;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
@@ -61,10 +60,27 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
         if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
             wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
         }
+        wrapper.orderByDesc(BaseVehicle::getCreateTime);
         int pageNum = Integer.parseInt(baseVehicle.getPageNum().toString());
         int pageSize = Integer.parseInt(baseVehicle.getPageSize().toString());
         com.github.pagehelper.Page<BaseVehicle> page = PageHelper.startPage(pageNum, pageSize)
                 .doSelectPage(() -> baseVehicleMapper.selectList(wrapper));
+        if (!StringUtils.isEmptySunhh(page) && page.getResult().size() > 0) {
+            List<BaseVehicle> dto1 = page.getResult().stream().map(o -> {
+                BaseTerminal baseTerminal = baseTerminalMapper.selectTerminal(o.getVehicleCode());
+                if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getVehicleCode())) {
+                    LambdaQueryWrapper<BaseVehicleTerminal> wrapperBaseVehicleTerminal = new LambdaQueryWrapper<>();
+                    if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getTerminalCode())) {
+                        wrapperBaseVehicleTerminal.eq(BaseVehicleTerminal::getTerminalCode, baseTerminal.getTerminalCode());
+                    }
+                    BaseVehicleTerminal baseVehicleTerminal = baseVehicleTerminalMapper.selectOne(wrapperBaseVehicleTerminal);
+                    if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalName())) {
+                        o.setTerminalName(baseVehicleTerminal.getTerminalName());
+                    }
+                }
+                return o;
+            }).collect(Collectors.toList());
+        }
         com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseVehicle> pageR =
                 new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
         pageR.setRecords(page.getResult());
@@ -101,6 +117,9 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
         if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
             wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
         }
+        if (!StringUtils.isEmptySunhh(baseVehicle) && !StringUtils.isEmptySunhh(baseVehicle.getId())) {
+            wrapper.ne(BaseVehicle::getId, baseVehicle.getId());
+        }
         List<BaseVehicle> baseVehicles = baseVehicleMapper.selectList(wrapper);
         if (baseVehicles.size() > 0) {
             return AjaxResult.error("机车编码已存在!");
@@ -192,6 +211,21 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
             wrapper.eq(BaseVehicle::getVehicleCode, baseVehicle.getVehicleCode());
         }
         List<BaseVehicle> baseVehicles = baseVehicleMapper.selectList(wrapper);
+        for (BaseVehicle baseVehicle1 : baseVehicles) {
+            BaseTerminal baseTerminal = baseTerminalMapper.selectTerminal(baseVehicle1.getVehicleCode());
+            if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getVehicleCode())) {
+                LambdaQueryWrapper<BaseVehicleTerminal> wrapperBaseVehicleTerminal = new LambdaQueryWrapper<>();
+                if (!StringUtils.isEmptySunhh(baseTerminal) && !StringUtils.isEmptySunhh(baseTerminal.getTerminalCode())) {
+                    wrapperBaseVehicleTerminal.eq(BaseVehicleTerminal::getTerminalCode, baseTerminal.getTerminalCode());
+                }
+                BaseVehicleTerminal baseVehicleTerminal = baseVehicleTerminalMapper.selectOne(wrapperBaseVehicleTerminal);
+                if (!StringUtils.isEmptySunhh(baseVehicleTerminal) && !StringUtils.isEmptySunhh(baseVehicleTerminal.getTerminalName())) {
+                    baseVehicle1.setTerminalName(baseVehicleTerminal.getTerminalName());
+                } else {
+                    baseVehicle1.setTerminalName("");
+                }
+            }
+        }
         return baseVehicles;
     }
 
@@ -215,8 +249,12 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
             List<BaseVehicleTerminalVo> dto1 = page.getResult().stream().map(o -> {
                 BaseVehicleTerminalVo baseVehicleTerminalVo = new BaseVehicleTerminalVo();
                 BeanUtils.copyProperties(o, baseVehicleTerminalVo);
-                if (baseTerminal.getTerminalCode().equals(o.getTerminalCode())) {
-                    baseVehicleTerminalVo.setIsMount("2");
+                if (!StringUtils.isEmptySunhh(baseTerminal)) {
+                    if (baseTerminal.getTerminalCode().equals(o.getTerminalCode())) {
+                        baseVehicleTerminalVo.setIsMount("2");
+                    } else {
+                        baseVehicleTerminalVo.setIsMount("1");
+                    }
                 } else {
                     baseVehicleTerminalVo.setIsMount("1");
                 }
@@ -229,6 +267,18 @@ public class BaseVehicleServiceImpl extends ServiceImpl<BaseVehicleMapper, BaseV
 
     @Override
     public AjaxResult vehicleTerminalAdd(BaseTerminal baseTerminal1, String userId) {
+        LambdaQueryWrapper<BaseTerminal> wrapper1 = new LambdaQueryWrapper<>();
+        if (!StringUtils.isEmptySunhh(baseTerminal1) && !StringUtils.isEmptySunhh(baseTerminal1.getVehicleCode())) {
+            wrapper1.ne(BaseTerminal::getVehicleCode, baseTerminal1.getVehicleCode());
+        }
+        if (!StringUtils.isEmptySunhh(baseTerminal1) && !StringUtils.isEmptySunhh(baseTerminal1.getTerminalCode())) {
+            wrapper1.eq(BaseTerminal::getTerminalCode, baseTerminal1.getTerminalCode());
+        }
+        List<BaseTerminal> baseTerminals = baseTerminalMapper.selectList(wrapper1);
+        if (!StringUtils.isEmptySunhh(baseTerminals) && baseTerminals.size() > 0) {
+            return AjaxResult.error("此终端已经挂载其他机车!");
+        }
+
         LambdaQueryWrapper<BaseTerminal> wrapper = new LambdaQueryWrapper<>();
         if (!StringUtils.isEmptySunhh(baseTerminal1) && !StringUtils.isEmptySunhh(baseTerminal1.getVehicleCode())) {
             wrapper.eq(BaseTerminal::getVehicleCode, baseTerminal1.getVehicleCode());

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

@@ -47,6 +47,7 @@ public class BaseVehicleTerminalServiceImpl extends ServiceImpl<BaseVehicleTermi
         if (!StringUtils.isEmptySunhh(baseVehicleTerminalleVo) && !StringUtils.isEmptySunhh(baseVehicleTerminalleVo.getStatus())) {
             wrapper.eq(BaseVehicleTerminal::getStatus, baseVehicleTerminalleVo.getStatus());
         }
+        wrapper.orderByDesc(BaseVehicleTerminal::getCreateTime);
         int pageNum = Integer.parseInt(baseVehicleTerminalleVo.getPageNum().toString());
         int pageSize = Integer.parseInt(baseVehicleTerminalleVo.getPageSize().toString());
         com.github.pagehelper.Page<BaseVehicleTerminal> page = PageHelper.startPage(pageNum, pageSize)

+ 63 - 1
business-service/src/main/java/com/ozs/service/impl/MsgAlarmServiceImpl.java

@@ -1,16 +1,26 @@
 package com.ozs.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.entity.BaseCameraManagement;
+import com.ozs.entity.BaseDeviceDynamicManagement;
+import com.ozs.entity.BaseRailwayManagement;
 import com.ozs.entity.MsgAlarm;
 import com.ozs.entity.vo.*;
 import com.ozs.mapper.BaseCameraManagementMapper;
+import com.ozs.mapper.BaseDeviceDynamicManagementMapper;
+import com.ozs.mapper.BaseRailwayManagementMapper;
 import com.ozs.mapper.MsgAlarmMapper;
 import com.ozs.service.MsgAlarmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -31,6 +41,10 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
     private MsgAlarmMapper msgAlarmMapper;
     @Autowired
     private BaseCameraManagementMapper baseCameraManagementMapper;
+    @Autowired
+    private BaseRailwayManagementMapper baseRailwayManagementMapper;
+    @Autowired
+    private BaseDeviceDynamicManagementMapper baseDeviceDynamicManagementMapper;
 
     public IPage listToPage(List list, int pageNum, int pageSize) {
         List pageList = new ArrayList<>();
@@ -84,7 +98,7 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
 
     @Override
     public Long getAlarmNum() {
-        Long alarmNum =  msgAlarmMapper.getAlarmNum();
+        Long alarmNum = msgAlarmMapper.getAlarmNum();
         return alarmNum;
     }
 
@@ -141,4 +155,52 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
     public List<MsgAlarm> msgAlarmList(MsgAlarmVo msgAlarmVo) {
         return msgAlarmMapper.selectMsgAlarmList(msgAlarmVo);
     }
+
+    @Override
+    public AjaxResult getDate(MsgAlarmVo msgAlarmVo) {
+        // 查询报警信息
+        MsgAlarm msgAlarm = msgAlarmMapper.selectById(msgAlarmVo.getId());
+        if (StringUtils.isEmptySunhh(msgAlarm)) {
+            return AjaxResult.error("报警信息不存在!");
+        }
+        // 查询线路
+        LambdaQueryWrapper<BaseRailwayManagement> lwBaseRailwayManagement = new LambdaQueryWrapper<>();
+        if (!StringUtils.isEmptySunhh(msgAlarmVo.getRailwayCode())) {
+            lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, msgAlarmVo.getRailwayCode());
+        }
+        BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement);
+        if (StringUtils.isEmptySunhh(baseRailwayManagement)) {
+            return AjaxResult.error("线路编码:" + msgAlarmVo.getRailwayCode() + "不存在!");
+        }
+        // 查询里程位置最近的相机
+        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<>();
+        if (!StringUtils.isEmptySunhh(msgAlarmVo.getRailwayCode())) {
+            lw.eq(BaseCameraManagement::getRailwayCode, msgAlarmVo.getRailwayCode());
+        }
+        if (!StringUtils.isEmptySunhh(msgAlarmVo.getAlarmMile())) {
+            lw.le(BaseCameraManagement::getBeginMile, msgAlarmVo.getAlarmMile());
+            lw.gt(BaseCameraManagement::getEndMile, msgAlarmVo.getAlarmMile());
+        }
+        BaseCameraManagement baseCameraManagement = baseCameraManagementMapper.selectOne(lw);
+        if (StringUtils.isEmptySunhh(baseCameraManagement)) {
+            return AjaxResult.error("线路编码:" + msgAlarmVo.getRailwayCode() + "不存在对应里程范围为:"+ msgAlarmVo.getAlarmMile() +"的相机!");
+        }
+        LambdaQueryWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaQueryWrapper<>();
+        if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
+            queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
+        }
+        BaseDeviceDynamicManagement baseDeviceDynamicManagement = baseDeviceDynamicManagementMapper.selectOne(queryWrapper);
+        if (StringUtils.isEmptySunhh(baseDeviceDynamicManagement)) {
+            return AjaxResult.error("设备动态管理表中没有该相机编码:" + baseCameraManagement.getCameraCode() + "的数据");
+        }
+        MsgAlarmVo msgAlarmVo1 = new MsgAlarmVo();
+        // BeanUtils.copyProperties(msgAlarm, msgAlarmVo1);
+        msgAlarmVo1.setRailwayCode(msgAlarm.getRailwayCode());
+        msgAlarmVo1.setRailwayCodeName(baseRailwayManagement.getRailwayName());
+        msgAlarmVo1.setAlarmMiles(AppendUtils.stringAppend(msgAlarmVo.getAlarmMile()));
+        msgAlarmVo1.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
+        msgAlarmVo1.setCameraCode(baseCameraManagement.getCameraCode());
+        msgAlarmVo1.setElectricity(baseDeviceDynamicManagement.getElectricity());
+        return AjaxResult.success(msgAlarmVo1);
+    }
 }

+ 3 - 4
business-service/src/main/resources/mapper/BaseDeviceDynamicManagementMapper.xml

@@ -67,13 +67,12 @@
 		where df.current_time IS NOT NULL and df.vehicle_code = vp.vehicle_code
 		and df.current_time > vp.current_time )
 		GROUP BY vp.vehicle_code ) AS l
-		WHERE a.terminal_code=l.terminal_code
-		ORDER BY l.current_time DESC
 		<where>
+			a.terminal_code=l.terminal_code
 			<if test="railwayCode != null and railwayCode !=''">
-				concat(l.railway_code,a.terminal_code)
-				like concat("%",#{railwayCode},"%")
+				and l.railway_code like concat("%",#{railwayCode},"%")
 			</if>
 		</where>
+		ORDER BY l.current_time DESC
 	</select>
 </mapper>

+ 4 - 4
business-service/src/main/resources/mapper/MsgAlarmMapper.xml

@@ -230,9 +230,9 @@
     </select>
 
     <select id="countJC" parameterType="com.ozs.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
-        select count(1) from msg_alarm AS a  join base_camera_management AS b on a.camera_code=b.camera_code
+        select count(1) from msg_alarm AS a join base_camera_management AS b on a.railway_code=b.railway_code
         <where>
-            is_lock = 1
+            a.is_release = 1
             <if test="!dsFlay">
                 and
                 <trim prefix="(" prefixOverrides="or" suffix=")">
@@ -254,9 +254,9 @@
     </select>
 
     <select id="countWJC" parameterType="com.ozs.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
-        select count(1) from msg_alarm AS a  join base_camera_management AS b on a.camera_code=b.camera_code
+        select count(1) from msg_alarm AS a join base_camera_management AS b on a.railway_code=b.railway_code
         <where>
-            is_lock = 2
+            a.is_release = 2
             <if test="!dsFlay">
                 and
                 <trim prefix="(" prefixOverrides="or" suffix=")">

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

@@ -29,9 +29,9 @@
         b.vehicle_name,
         d.railway_name,
         c.status
-        FROM vehicle_position AS a INNER JOIN
-        base_vehicle AS b ON a.vehicle_code = b.vehicle_code INNER JOIN
-        base_vehicle_terminal c ON a.terminal_code = c.terminal_code INNER JOIN
+        FROM vehicle_position AS a LEFT JOIN
+        base_vehicle AS b ON a.vehicle_code = b.vehicle_code LEFT JOIN
+        base_vehicle_terminal c ON a.terminal_code = c.terminal_code LEFT JOIN
         base_railway_management d ON a.railway_code = d.railway_code
 
         <where>

+ 5 - 0
vehicle-admin/src/main/java/com/ozs/web/common/Constant.java

@@ -0,0 +1,5 @@
+package com.ozs.web.common;
+
+public class Constant {
+    public static final String HERTBEA_KEY ="hertbea_";
+}

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

@@ -104,8 +104,8 @@ public class BaseCameraManagementController extends BaseController {
                 queryWrapper.eq(BaseRailwayManagement::getRailwayCode, baseCameraManagement.getRailwayCode());
             }
             BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
-            SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
-            baseCameraManagement.setDeptName(sysDept.getDeptName());
+//            SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
+//            baseCameraManagement.setDeptName(sysDept.getDeptName());
             baseCameraManagement.setRailwayName(baseRailwayManagement.getRailwayName());
             String mils = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
             baseCameraManagement.setInstallMiles(mils);
@@ -244,7 +244,7 @@ public class BaseCameraManagementController extends BaseController {
             return error("你的网络卡顿,请不要一直添加!!!");
         }
         idempotenceUtils.createIdempotence(baseCameraManagement.getCameraCode());
-        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<>();
         if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
             lw.eq(BaseCameraManagement::getCameraCode, baseCameraManagement.getCameraCode());
         }
@@ -253,7 +253,7 @@ public class BaseCameraManagementController extends BaseController {
             idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
             return error("相机台账管理信息相机编码已存在,不能重复添加");
         }
-        LambdaQueryWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaQueryWrapper<BaseDeviceDynamicManagement>();
+        LambdaQueryWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaQueryWrapper<>();
         if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
             queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
         }
@@ -262,22 +262,22 @@ public class BaseCameraManagementController extends BaseController {
             idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
             return error("设备动态管理表该相机编码已存在,不能重复添加");
         }
-        if (!baseCameraManagement.getBeginMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getBeginMile().toString().matches(PATTERN)) {
             return error("监控范围开始里程位置填写格式不正确");
         } else {
-            double begin = Double.parseDouble(baseCameraManagement.getBeginMiles());
+            double begin = Double.parseDouble(baseCameraManagement.getBeginMile().toString());
             baseCameraManagement.setBeginMile((int) (begin * 1000));
         }
-        if (!baseCameraManagement.getInstallMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getInstallMile().toString().matches(PATTERN)) {
             return error("监控相机安装里程位置填写格式不正确");
         } else {
-            double install = Double.parseDouble(baseCameraManagement.getInstallMiles());
+            double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString());
             baseCameraManagement.setInstallMile((int) (install * 1000));
         }
-        if (!baseCameraManagement.getEndMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getEndMile().toString().matches(PATTERN)) {
             return error("监控范围结束里程位置填写格式不正确");
         } else {
-            double end = Double.parseDouble(baseCameraManagement.getEndMiles());
+            double end = Double.parseDouble(baseCameraManagement.getEndMile().toString());
             baseCameraManagement.setEndMile((int) (end * 1000));
         }
         if (baseCameraManagement.getBeginMile() > baseCameraManagement.getEndMile()) {
@@ -322,22 +322,22 @@ public class BaseCameraManagementController extends BaseController {
         if (!ObjectUtils.isEmpty(cameraManagement) && !cameraManagement.getId().equals(baseCameraManagement.getId())) {
             return error("相机编码已存在,不能进行修改操作");
         }
-        if (!baseCameraManagement.getBeginMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getBeginMile().toString().matches(PATTERN)) {
             return error("监控范围开始里程位置填写格式不正确");
         } else {
-            double begin = Double.parseDouble(baseCameraManagement.getBeginMiles());
+            double begin = Double.parseDouble(baseCameraManagement.getBeginMile().toString());
             baseCameraManagement.setBeginMile((int) (begin * 1000));
         }
-        if (!baseCameraManagement.getInstallMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getInstallMile().toString().matches(PATTERN)) {
             return error("监控相机安装里程位置填写格式不正确");
         } else {
-            double install = Double.parseDouble(baseCameraManagement.getInstallMiles());
+            double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString());
             baseCameraManagement.setInstallMile((int) (install * 1000));
         }
-        if (!baseCameraManagement.getEndMiles().matches(PATTERN)) {
+        if (!baseCameraManagement.getEndMile().toString().matches(PATTERN)) {
             return error("监控范围结束里程位置填写格式不正确");
         } else {
-            double end = Double.parseDouble(baseCameraManagement.getEndMiles());
+            double end = Double.parseDouble(baseCameraManagement.getEndMile().toString());
             baseCameraManagement.setEndMile((int) (end * 1000));
         }
         if (baseCameraManagement.getBeginMile() > baseCameraManagement.getEndMile()) {
@@ -373,18 +373,32 @@ public class BaseCameraManagementController extends BaseController {
 //        SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
 //        baseCameraManagement.setDeptName(sysDept.getDeptName());
         baseCameraManagement.setRailwayName(baseRailwayManagement.getRailwayName());
-        String mils = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
-        baseCameraManagement.setInstallMiles(mils);
-        String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
-        baseCameraManagement.setEndMiles(end);
-        String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
-        baseCameraManagement.setBeginMiles(begin);
+//        String mils = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
+//        baseCameraManagement.setInstallMiles(mils);
+//        String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
+//        baseCameraManagement.setEndMiles(end);
+//        String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
+//        baseCameraManagement.setBeginMiles(begin);
+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMile())) {
+            baseCameraManagement.setInstallMile(baseCameraManagement.getInstallMile()/1000);
+        }
+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getBeginMile())) {
+            baseCameraManagement.setBeginMile(baseCameraManagement.getBeginMile()/1000);
+        }
+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getEndMile())) {
+            baseCameraManagement.setEndMile(baseCameraManagement.getEndMile()/1000);
+        }
         baseCameraManagement.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
-        baseCameraManagement.setMilesRange(begin + "-" + end);
+//        baseCameraManagement.setMilesRange(begin + "-" + end);
         baseCameraManagement.setLongitudeAndLatitude(baseCameraManagement.getInstallLongitude() + "," + baseCameraManagement.getInstallLongitude());
         return AjaxResult.success(baseCameraManagement);
     }
 
+    /**
+     * ***********************   弃用   ***********************
+     * @param cameraCode
+     * @return
+     */
     @GetMapping("/getDate/{cameraCode}")
     @ApiOperation("视频上方显示的数据")
     @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
@@ -467,8 +481,8 @@ public class BaseCameraManagementController extends BaseController {
         }
         List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.baseCameraManagementList(baseCameraManagementVo);
         for (BaseCameraManagement baseCameraManagement : baseCameraManagementList) {
-            SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
-            baseCameraManagement.setDeptName(sysDept.getDeptName());
+//            SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
+//            baseCameraManagement.setDeptName(sysDept.getDeptName());
             LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
             if (!ObjectUtils.isEmpty(baseCameraManagement.getRailwayCode())) {
                 queryWrapper.eq(BaseRailwayManagement::getRailwayCode, baseCameraManagement.getRailwayCode());

+ 77 - 12
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java

@@ -1,26 +1,32 @@
 package com.ozs.web.controller.accountmanagment;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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.redis.RedisCache;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.ChineseToPingyin;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.entity.BaseRailwayManagement;
 import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.BaseVehicle;
-import com.ozs.entity.CameraTree;
-import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.VehicleTree;
+import com.ozs.entity.vo.BaseRailwayManagementVo;
 import com.ozs.entity.vo.BaseVehicleTerminalVo;
 import com.ozs.entity.vo.BaseVehicleVo;
 import com.ozs.entity.vo.VehicleTreeVo;
 import com.ozs.service.BaseDeviceDynamicManagementService;
+import com.ozs.service.BaseRailwayManagementService;
 import com.ozs.service.BaseVehicleService;
 import com.ozs.service.VehiclePositionService;
 import com.ozs.system.service.DataScoreUtil;
+import com.ozs.system.service.ISysDictTypeService;
+import com.ozs.web.common.Constant;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,9 +38,13 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -48,19 +58,18 @@ import java.util.List;
 @RequestMapping("/baseVehicle")
 @Slf4j
 public class BaseVehicleController extends BaseController {
-
+    @Resource
+    BaseRailwayManagementService baseRailwayManagementService;
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
     @Autowired
     private BaseVehicleService baseVehicleService;
+    @Autowired
+    private ISysDictTypeService dictTypeService;
     @Resource
     BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
     @Autowired
-    private VehiclePositionService vehiclePositionService;
-    @Autowired
-    private DataScoreUtil dataScoreUtil;
-
-    public static void main(String[] args) {
-        System.out.println(new Date().getTime());
-    }
+    private RedisCache redisCache;
 
     /**
      * 车载终端挂载列表
@@ -255,9 +264,9 @@ public class BaseVehicleController extends BaseController {
      * <p>
      * 获取机车列表和线路编码,组成树结构
      */
-    @ApiOperation("视频服务树形结构")
+    @ApiOperation("机车树形结构")
     @PostMapping("/vehicleTree")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "首页机车列表", businessType = BusinessType.SELECT)
     public AjaxResult vehicleTree(@RequestBody VehicleTreeVo vehicleTreeVo) {
 
         vehicleTreeVo = (VehicleTreeVo) dataScoreUtil.setDataScore(getUserId(), vehicleTreeVo);
@@ -311,6 +320,29 @@ public class BaseVehicleController extends BaseController {
         return success(vehicleTree);
     }
 
+    /**
+     * 前端传终端码
+     * 1、根据终端码  查询  行驶记录表  获取最新的机车位置  \ 司机的目视距离;
+     * 2、根据 机车的位置  和线路 查询  机车前方1路视频 ( 10KM  是否有报警 )
+     */
+    @ApiOperation(value = "通过终端编码获取流")
+    @GetMapping("/vehicleCurrentStream")
+    @Log(title = "通过终端编码获取流", businessType = BusinessType.SELECT)
+    public AjaxResult vehicleCurrentStream(String zdCode) {
+        Map<String, Object> cacheMap = redisCache.getCacheMap(Constant.HERTBEA_KEY + zdCode);
+        if (!ObjectUtils.isEmpty(cacheMap)) {
+            Map<String, String> ccMap = new HashMap<>();
+            Object cameraCode = cacheMap.get("cameraCode");
+            Object stream = cacheMap.get("currentStream");
+            if (!ObjectUtils.isEmpty(cameraCode)) {
+                ccMap.put("cameraCode", cameraCode.toString());
+                ccMap.put("currentStream", stream.toString());
+                return AjaxResult.success(ccMap);
+            }
+        }
+        return AjaxResult.error("当前机车无实时流");
+    }
+
     /**
      * 机车信息表 (首页地图中的机车信息)
      *
@@ -322,5 +354,38 @@ public class BaseVehicleController extends BaseController {
     public AjaxResult vehicleList() {
         return AjaxResult.success(baseVehicleService.vehicleList());
     }
+
+    /**
+     * 查询线路信息集合
+     *
+     * @param baseRailwayManagementVo
+     * @return
+     */
+    @ApiOperation(value = "查询线路信息集合")
+    @PostMapping("/railwayList")
+    @Log(title = "线路台账管理", businessType = BusinessType.SELECT)
+    public AjaxResult selectBaseLineManagement(@RequestBody BaseRailwayManagementVo baseRailwayManagementVo) {
+        LambdaQueryWrapper<BaseRailwayManagement> lw = new LambdaQueryWrapper<BaseRailwayManagement>();
+        if (!StringUtils.isBlank(baseRailwayManagementVo.getRailwayCode())) {
+            lw.like(BaseRailwayManagement::getRailwayCode, "%" + baseRailwayManagementVo.getRailwayCode() + "%");
+        }
+        if (!ObjectUtils.isEmpty(baseRailwayManagementVo.getRailwayType()) && baseRailwayManagementVo.getRailwayType() != 0) {
+            lw.eq(BaseRailwayManagement::getRailwayType, baseRailwayManagementVo.getRailwayType());
+        }
+        List<BaseRailwayManagement> list = baseRailwayManagementService.list(lw);
+        List<SysDictData> data = dictTypeService.selectDictDataByType("railway_type");
+        List<BaseRailwayManagement> dto1 = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            dto1 = list.stream().map(o -> {
+                for (SysDictData datum : data) {
+                    if (datum.getDictValue().equals(o.getRailwayType().toString())) {
+                        o.setRailwayTypeName(datum.getDictLabel());
+                    }
+                }
+                return o;
+            }).collect(Collectors.toList());
+        }
+        return AjaxResult.success(dto1);
+    }
 }
 

+ 27 - 2
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -165,7 +165,9 @@ public class MsgAlarmController extends BaseController {
                     queryWrapper.eq(BaseRailwayManagement::getRailwayCode, o.getRailwayCode());
                 }
                 BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
-                o.setRailwayName(baseRailwayManagement.getRailwayName());
+                if (!StringUtils.isEmptySunhh(baseRailwayManagement) && !StringUtils.isEmptySunhh(baseRailwayManagement.getRailwayName())) {
+                    o.setRailwayName(baseRailwayManagement.getRailwayName());
+                }
                 if (StringUtils.isNotEmpty(o.getReleasedBy())) {
                     BaseUser user = baseUserService.getUser(o.getReleasedBy());
                     o.setReleasedByName(user.getNickName());
@@ -338,6 +340,29 @@ public class MsgAlarmController extends BaseController {
         }
     }
 
+    /**
+     * 视频上方显示的数据
+     *
+     * @param msgAlarmVo
+     * @return
+     */
+    @PostMapping("/getDate")
+    @ApiOperation("视频上方显示的数据")
+    @Log(title = "报警信息管理", businessType = BusinessType.OTHER)
+    public AjaxResult getDate(@RequestBody MsgAlarmVo msgAlarmVo) {
+        if (StringUtils.isEmptySunhh(msgAlarmVo) || StringUtils.isEmptySunhh(msgAlarmVo.getId())) {
+            return error("报警id不能为空!");
+        }
+        if (StringUtils.isEmptySunhh(msgAlarmVo) || StringUtils.isEmptySunhh(msgAlarmVo.getRailwayCode())) {
+            return error("报警线路编码不能为空!");
+        }
+        if (StringUtils.isEmptySunhh(msgAlarmVo) || StringUtils.isEmptySunhh(msgAlarmVo.getAlarmMile())) {
+            return error("报警里程位置不能为空!");
+        }
+//        MsgAlarmVo msgAlarmVo1 = msgAlarmService.getDate(msgAlarmVo);
+        return msgAlarmService.getDate(msgAlarmVo);
+    }
+
     @PutMapping(value = "/updateIsRelease")
     @ApiOperation("根据报警信息ID解除报警")
     @Log(title = "报警信息管理", businessType = BusinessType.UPDATE)
@@ -353,7 +378,7 @@ public class MsgAlarmController extends BaseController {
     @GetMapping(value = "/alarmHistoricalAlarm/{alarmId}")
     @ApiOperation("报警消息详情历史报警次数信息")
     @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
-    public AjaxResult alarmHistoricalAlarm(@PathVariable Long alarmId) {
+    public AjaxResult alarmHistoricalAlarm(@PathVariable String alarmId) {
         QueryWrapper<MsgAlarmFrequency> wrapper = new QueryWrapper<>();
         wrapper.eq("alarm_id", alarmId);
         wrapper.orderByDesc("alarm_time");

+ 6 - 14
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/VehiclePositionController.java

@@ -7,9 +7,11 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.entity.BaseVehicle;
 import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.VehiclePositionResp;
 import com.ozs.framework.manager.factory.AsyncFactory;
+import com.ozs.service.BaseVehicleService;
 import com.ozs.service.VehiclePositionService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +34,8 @@ import java.util.List;
 public class VehiclePositionController extends BaseController {
     @Autowired
     private VehiclePositionService vehiclePositionService;
+    @Autowired
+    private BaseVehicleService baseVehicleService;
 
 
     /**
@@ -63,25 +67,13 @@ public class VehiclePositionController extends BaseController {
 
     /**
      * 获取机车行驶日志列表
-     *
-     * @param vehiclePositionResp
      * @return
      */
     @ApiOperation(value = "获取机车日志列表")
     @PostMapping("/listNoPage")
     @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
-    public AjaxResult listNoPage(@RequestBody VehiclePositionResp vehiclePositionResp) {
-        List<VehiclePosition> list = vehiclePositionService.selectVehiclePositionList(vehiclePositionResp);
-        if(!ObjectUtils.isEmpty(list)){
-            list.forEach(l -> {
-                if (!ObjectUtils.isEmpty(l.getTravelMile())) {
-                    l.setTravelMileFormat(AppendUtils.stringAppend(Integer.valueOf(l.getTravelMile())));
-                }
-                if(!ObjectUtils.isEmpty(l.getLineDir())){
-                    l.setLineDirName(l.getLineDir() == 1 ? "上行" : "下行");
-                }
-            });
-        }
+    public AjaxResult listNoPage() {
+        List<BaseVehicle> list = baseVehicleService.list();
         return AjaxResult.success(list);
     }
 

+ 73 - 69
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -61,6 +61,7 @@ import com.ozs.service.TerminalIgnoreAlarmService;
 import com.ozs.service.VehiclePositionService;
 import com.ozs.system.domain.SysUserOnline;
 import com.ozs.system.mapper.SysUserMapper;
+import com.ozs.web.common.Constant;
 import com.ozs.web.controller.monitor.SysUserOnlineController;
 import com.ozs.web.controller.websocket.WebSocketServer;
 import com.ozs.web.core.util.CameraUtil;
@@ -503,7 +504,9 @@ public class GeoHazardMonitorTokenController {
         log.info("parameter:{}", parameterVo);
         JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(token)) {
+            //  1.  解密参数
             String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), "4370780c9a8c43e5");
+            //  2、 心跳参数
             HeartbeatVo heartbeatVo = JSON.parseObject(s, HeartbeatVo.class);
             if (ObjectUtils.isEmpty(heartbeatVo.getTerminalCode())) {
                 jsonObject.put("resultCode", 0);
@@ -550,6 +553,7 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("resultCode", 0);
                 jsonObject.put("message", "失败");
                 jsonObject.put("data", "司机目视距离填写错误");
+                //  todo   请把目视距离写入到缓存(Redis)中  ,key 为终端编码+盐值  每次心跳监测都修改。
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
             if (heartbeatVo.getSignalStrength() != 1 && heartbeatVo.getSignalStrength() != 2) {
@@ -573,6 +577,8 @@ public class GeoHazardMonitorTokenController {
             vehiclePosition.setVehicleCode(baseTerminal.getVehicleCode());
             vehiclePosition.setTerminalLatitude(heartbeatVo.getLatitude());
             vehiclePosition.setTerminalLongitude(heartbeatVo.getLongitude());
+            vehiclePosition.setCreateTime(new Date());
+            vehiclePosition.setCurrentTime(vehiclePosition.getCreateTime());
             //机车行驶表添加数据
             boolean save = vehiclePositionService.save(vehiclePosition);
             //修改车载终端经度纬度
@@ -582,27 +588,27 @@ public class GeoHazardMonitorTokenController {
             LambdaQueryWrapper<BaseVehicleTerminal> terminal = new LambdaQueryWrapper<>();
             terminal.eq(BaseVehicleTerminal::getTerminalCode, vehiclePosition.getTerminalCode());
             boolean update = baseVehicleTerminalService.update(baseVehicleTerminal, terminal);
-            //*******获取终端经度纬度,将车载终端code改为机车的code,便是机车的位置
-            HeartbeatVo heartbeatVoCH = new HeartbeatVo();
-            BeanUtils.copyProperties(heartbeatVo, heartbeatVoCH);
-            //*******将终端关联的机车编码赋值给推送信息对象
-            heartbeatVoCH.setVehicleCode(baseTerminal.getVehicleCode());
-            String content = objStr(heartbeatVoCH);
-            //获取在线用户
-            List<SysUserOnline> rows = (List<SysUserOnline>) sysUserOnlineController.list(null, null).getRows();
-            if (!ObjectUtils.isEmpty(rows)) {
-                //拿到用户userNameList
-                List<String> userNameList = rows.stream().map(SysUserOnline::getUserName).collect(Collectors.toList());
-                LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
-                userWrapper.in(SysUser::getUserName, userNameList);
-                List<SysUser> sysUsers = sysUserMapper.selectList(userWrapper);
-                //拿到用户userIdList
-                List<Long> userIdList = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
-                for (Long userid : userIdList) {
-                    //推送给在线用户
-                    webSocketServer.sendOneMessage(String.valueOf(userid), content);
-                }
-            }
+//            //*******获取终端经度纬度,将车载终端code改为机车的code,便是机车的位置
+//            HeartbeatVo heartbeatVoCH = new HeartbeatVo();
+//            BeanUtils.copyProperties(heartbeatVo, heartbeatVoCH);
+//            //*******将终端关联的机车编码赋值给推送信息对象
+//            heartbeatVoCH.setVehicleCode(baseTerminal.getVehicleCode());
+//            String content = objStr(heartbeatVoCH);
+//            //获取在线用户
+//            List<SysUserOnline> rows = (List<SysUserOnline>) sysUserOnlineController.list(null, null).getRows();
+//            if (!ObjectUtils.isEmpty(rows)) {
+//                //拿到用户userNameList
+//                List<String> userNameList = rows.stream().map(SysUserOnline::getUserName).collect(Collectors.toList());
+//                LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
+//                userWrapper.in(SysUser::getUserName, userNameList);
+//                List<SysUser> sysUsers = sysUserMapper.selectList(userWrapper);
+//                //拿到用户userIdList
+//                List<Long> userIdList = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+//                for (Long userid : userIdList) {
+//                    //推送给在线用户
+//                    webSocketServer.sendOneMessage(String.valueOf(userid), content);
+//                }
+//            }
 
             //目视距离和里程位置
             if (save && update) {
@@ -616,8 +622,8 @@ public class GeoHazardMonitorTokenController {
                 if (list.size() > 0) {
                     //获取报警里程所监控的所有相机
                     LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
-                    camera.ge(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
-                    camera.le(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
+                    camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
+                    camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
                     camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
                     camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                     camera.orderByAsc(BaseCameraManagement::getInstallMile);
@@ -629,7 +635,8 @@ public class GeoHazardMonitorTokenController {
                         respHeartbeatVo.setCurrentStream(playFlv);
                         respHeartbeatVo.setIsAlarm(1);
                         respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
-                        twoMap.put(respHeartbeatVo.getCameraCode(), respHeartbeatVo.getCurrentStream());
+                        twoMap.put("currentStream", playFlv);
+                        twoMap.put("cameraCode", baseCameraManagementList.get(0).getCameraCode());
                         //alarmInfo对象
                         AlarmInfoVo alarmInfoVo = new AlarmInfoVo();
                         alarmInfoVo.setAlarmId(list.get(0).getAlarmId());
@@ -642,17 +649,13 @@ 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)) {
-                            jsonObject.put("resultCode", 0);
-                            jsonObject.put("message", "失败");
-                            jsonObject.put("data", "没有该报警ID的关联信息");
-                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+                        if (!ObjectUtils.isEmpty(one)) {
+                            files[0] = new AlarmFilesVo();
+                            files[0].setAlarmAttType(one.getAlarmAttType());
+                            files[0].setAlarmAttPath(one.getAlarmAttPath());
+                            //返回结果
+                            alarmInfoVo.setAlarmFiles(files);
                         }
-                        files[0] = new AlarmFilesVo();
-                        files[0].setAlarmAttType(one.getAlarmAttType());
-                        files[0].setAlarmAttPath(one.getAlarmAttPath());
-                        //返回结果
-                        alarmInfoVo.setAlarmFiles(files);
                         respHeartbeatVo.setAlarmInfo(alarmInfoVo);
                     } else {
                         jsonObject.put("resultCode", 0);
@@ -680,7 +683,6 @@ public class GeoHazardMonitorTokenController {
                                 //alarmList对象
                                 alarmListVo.setCameraStream(flv);
                                 alarmListVo.setCameraCode(baseList.get(o).getCameraCode());
-                                twoMap.put(alarmListVo.getCameraCode(), alarmListVo.getCameraStream());
                                 //alarmInfo对象
                                 AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
                                 alarmInfoVo1.setAlarmId(list.get(i).getAlarmId());
@@ -692,13 +694,15 @@ public class GeoHazardMonitorTokenController {
                                 LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
                                 alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
                                 List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
-                                AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
-                                for (int i1 = 0; i1 < list1.size(); i1++) {
-                                    vo[i1] = new AlarmFilesVo();
-                                    vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
-                                    vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
+                                if (list1.size() > 0) {
+                                    AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
+                                    for (int i1 = 0; i1 < list1.size(); i1++) {
+                                        vo[i1] = new AlarmFilesVo();
+                                        vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
+                                        vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
+                                    }
+                                    alarmInfoVo1.setAlarmFiles(vo);
                                 }
-                                alarmInfoVo1.setAlarmFiles(vo);
                                 alarmListVo.setAlarmInfo(alarmInfoVo1);
                                 listVos.add(alarmListVo);
                             }
@@ -722,9 +726,10 @@ public class GeoHazardMonitorTokenController {
                     List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
                     CameraUtil.invite(list1.get(0).getCameraCode(), list1.get(0).getChannel());
                     String flv = CameraUtil.getPlayFlvRtsp(list1.get(0).getCameraCode(), list1.get(0).getChannel(), false);
+                    twoMap.put("currentStream", flv);
+                    twoMap.put("cameraCode", list1.get(0).getCameraCode());
                     for (BaseCameraManagement baseCameraManagement : list1) {
                         String flv1 = CameraUtil.getPlayFlvRtsp(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), false);
-                        twoMap.put(baseCameraManagement.getCameraCode(), flv1);
                         CameraUtil.invite(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
                     }
                     respHeartbeatVo.setCurrentStream(flv);
@@ -733,7 +738,7 @@ public class GeoHazardMonitorTokenController {
                     respHeartbeatVo.setAlarmList(null);
                     respHeartbeatVo.setAlarmInfo(null);
                 }
-                heartbeatUtils.createHeartbeat(heartbeatVo.getTerminalCode(), twoMap);
+                heartbeatUtils.createHeartbeat(Constant.HERTBEA_KEY+heartbeatVo.getTerminalCode(), twoMap);
                 jsonObject.put("resultCode", 1);
                 jsonObject.put("message", "ok");
                 jsonObject.put("data", respHeartbeatVo);
@@ -1075,47 +1080,46 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("data", "没有该报警唯一UUID的报警数据");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             } else {
-                //获取报警里程所监控的所有相机
-                LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
-                camera.ge(BaseCameraManagement::getBeginMile, one.getAlarmMile());
-                camera.le(BaseCameraManagement::getEndMile, one.getAlarmMile());
-                camera.eq(BaseCameraManagement::getLineDir, one.getLineDir());
-                camera.orderByAsc(BaseCameraManagement::getInstallMile);
-                List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
-                if (baseCameraManagementList.size() > 0) {
-                    BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0);
-                    Object cacheObject = redisCache.getCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode());
-                    if (ObjectUtils.isEmpty(cacheObject)) {
+                if (ObjectUtils.isEmpty(one.getReleasedUrl())) {
+                    //获取报警里程所监控的所有相机
+                    LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
+                    camera.ge(BaseCameraManagement::getBeginMile, one.getAlarmMile());
+                    camera.le(BaseCameraManagement::getEndMile, one.getAlarmMile());
+                    camera.eq(BaseCameraManagement::getLineDir, one.getLineDir());
+                    camera.orderByAsc(BaseCameraManagement::getInstallMile);
+                    List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
+                    if (baseCameraManagementList.size() > 0) {
+                        BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0);
+                        long time = one.getAlarmTime().getTime();
+                        long time2 = time - 600000L;
+                        one.setAlarmTime(new Date(time2));
                         String url = null;
                         if ("1".equals(one.getIsRelease().toString())) {
                             url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(),
                                     one.getAlarmTime(),
                                     one.getReleasedTime(),
                                     true);
-                            redisCache.setCacheObject("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), url);
-                            redisCache.expire("STREAMING_ALARM_VIDEO:" + baseCameraManagement.getCameraCode(), 365L, TimeUnit.DAYS);
-                        } else {
+                        }else {
                             url = CameraUtil.historyPlayListStr(baseCameraManagement.getChannel(),
                                     one.getAlarmTime(),
                                     new Date(),
                                     false);
                         }
-                        urls = serverConfig.getUrl() + url;
+                        one.setReleasedUrl(url);
+                        msgAlarmService.updateById(one);
                     } else {
-                        urls = serverConfig.getUrl() + cacheObject;
+                        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");
                 }
-                map.put("url", urls);
-                jsonObject.put("resultCode", 1);
-                jsonObject.put("message", "ok");
-                jsonObject.put("data", map);
-                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
+            map.put("url", serverConfig.getUrl() + one.getReleasedUrl());
+            jsonObject.put("resultCode", 1);
+            jsonObject.put("message", "ok");
+            jsonObject.put("data", map);
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         } else {
             jsonObject.put("resultCode", 2);
             jsonObject.put("message", "失败");

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

@@ -95,7 +95,7 @@ public class SysDeptController extends BaseController {
     @PreAuthorize("@ss.hasPermi('system:dept:query')")
     @GetMapping(value = "/{deptId}")
     public AjaxResult getInfo(@PathVariable Long deptId) {
-        deptService.checkDeptDataScope(deptId);
+        //deptService.checkDeptDataScope(deptId);
         SysDept dept = deptService.selectDeptById(deptId);
         dept.setParentName(deptService.selectDeptById(dept.getParentId()).getDeptName());
         return success(dept);
@@ -132,7 +132,7 @@ public class SysDeptController extends BaseController {
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDept dept) {
         Long deptId = dept.getDeptId();
-        deptService.checkDeptDataScope(deptId);
+        //deptService.checkDeptDataScope(deptId);
         if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         } else if (dept.getParentId().equals(deptId)) {
@@ -166,7 +166,7 @@ public class SysDeptController extends BaseController {
         if (deptService.checkDeptExistUser(deptId)) {
             return warn("部门存在用户,不允许删除");
         }
-        deptService.checkDeptDataScope(deptId);
+        //deptService.checkDeptDataScope(deptId);
         return toAjax(deptService.deleteDeptById(deptId));
     }
 

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

@@ -54,13 +54,6 @@ public class SysLoginController extends BaseController {
      */
     @PostMapping("/login")
     public AjaxResult login(@RequestBody LoginBody loginBody) {
-        // 判断账号是否在其他电脑登陆
-        String userId = loginService.getUserIdByUserName(loginBody.getUsername());
-        log.info("111111111-----" + userId);
-        if (!StringUtils.isEmpty(userId)) {
-            log.info("22222222-----" + userId);
-            redisCache.deleteObject(userId);
-        }
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),

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

@@ -14,9 +14,11 @@ import com.ozs.common.utils.SecurityUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.entity.BaseUser;
 import com.ozs.framework.web.service.TokenService;
 //import com.ozs.service.entity.BaseUser;
 //import com.ozs.service.service.BaseUserService;
+import com.ozs.service.BaseUserService;
 import com.ozs.system.service.*;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -69,8 +71,8 @@ public class SysUserController extends BaseController {
     private DataScoreUtil dataScoreUtil;
     @Autowired
     private ISysDictTypeService dictTypeService;
-//    @Resource
-//    private BaseUserService baseUserService;
+    @Resource
+    private BaseUserService baseUserService;
 //    /**
 //     * 获取用户列表
 //     */
@@ -244,10 +246,10 @@ public class SysUserController extends BaseController {
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
 //        userService.checkUserAllowed(user);
 //        userService.checkUserDataScope(user.getId());
-//        BaseUser baseUser = baseUserService.getUserById(user.getId());
-//        if (baseUser.getUserName().equals("admin")){
-//            return success("admin账号不能修改");
-//        }
+        BaseUser baseUser = baseUserService.getUserById(user.getId());
+        if (baseUser.getUserName().equals("admin")) {
+            return success("admin账号不能修改");
+        }
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
             return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
         } else if (StringUtils.isNotEmpty(user.getPhoneNum())

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

@@ -56,8 +56,7 @@ public class CameraUtil {
 
     @Autowired
     private SysDictDataMapper dictDataMapper;
-    @Resource
-    BaseCameraManagementService baseCameraManagementService;
+
     private static RedisCache rc;
     @Autowired
     private RedisCache redisCache;
@@ -231,7 +230,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      * @return
      */
     public static String startRecording(String cameraCode, String channel) {
-        return historyUrl + "/api/record/flv/start?streamPath=" + channel + "/" + cameraCode;
+        return historyUrl + "/recordpro/api/start?streamPath=" + channel + "/" + cameraCode;
     }
 
     /**
@@ -241,7 +240,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      * @return
      */
     public static String endRecording(String taskId) {
-        return historyUrl + "/api/record/flv/stop?id=" + taskId;
+        return historyUrl + "/recordpro/api/stop?id=" + taskId;
     }
 
 

+ 2 - 1
vehicle-admin/src/main/resources/application.yml

@@ -11,13 +11,14 @@ base:
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
   profile: /data/service/vehicle-admin/uploadPath
   # 获取ip地址开关
-  addressEnabled: false
+  addressEnabled: true
   # 验证码类型 math 数组计算 char 字符验证
   captchaType: math
 #  sqlType: kingbasees  # 数据库类型
   dbname: vehicle #数据库名
   #图片路径前缀
   imgUrl: http://124.71.171.71:18801/picbucket
+  historyUrl: http://124.70.58.209:18812
 
 server:
   # 服务器的HTTP端口,默认为8080

+ 10 - 10
vehicle-admin/src/main/resources/logback.xml

@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-    <property name="log.path" value="/home/base/logs"/>
-    <!--    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/project/logs"/>-->
+	<property name="log.path" value="/home/base/logs" />
+<!--    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/project/logs"/>-->
     <!-- 日志输出格式 -->
-    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
-    <!-- 控制台输出 -->
-    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
+	<!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
 
-    <!-- 系统日志输出 -->
+	<!-- 系统日志输出 -->
 	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	    <file>${log.path}/sys-info.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->

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


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