Browse Source

相机树假视频上次接口,车载终端监控,监测系统监控

gao.qiang 1 year ago
parent
commit
626a848272
18 changed files with 387 additions and 43 deletions
  1. 13 0
      business-service/pom.xml
  2. 24 0
      business-service/src/main/java/com/ozs/entity/MonitorSystem.java
  3. 6 0
      business-service/src/main/java/com/ozs/entity/VehiclePosition.java
  4. 2 0
      business-service/src/main/java/com/ozs/mapper/MonitorSystemMapper.java
  5. 6 0
      business-service/src/main/java/com/ozs/service/MonitorSystemService.java
  6. 8 0
      business-service/src/main/java/com/ozs/service/OssService.java
  7. 1 0
      business-service/src/main/java/com/ozs/service/VehiclePositionService.java
  8. 5 1
      business-service/src/main/java/com/ozs/service/impl/BaseCameraManagementServiceImpl.java
  9. 65 23
      business-service/src/main/java/com/ozs/service/impl/MonitorSystemServiceImpl.java
  10. 72 0
      business-service/src/main/java/com/ozs/service/impl/OssServiceImpl.java
  11. 59 2
      business-service/src/main/java/com/ozs/service/impl/VehiclePositionServiceImpl.java
  12. 35 0
      business-service/src/main/java/com/ozs/utils/ConstantPropertiesUtils.java
  13. 21 16
      business-service/src/main/resources/mapper/MonitorSystemMapper.xml
  14. 15 0
      vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/VehiclePositionController.java
  15. 27 0
      vehicle-admin/src/main/java/com/ozs/web/controller/oss/OssController.java
  16. 19 0
      vehicle-admin/src/main/java/com/ozs/web/controller/system/MonitorSystemController.java
  17. 1 1
      vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java
  18. 8 0
      vehicle-admin/src/main/resources/application.yml

+ 13 - 0
business-service/pom.xml

@@ -42,6 +42,19 @@
             <version>1.8</version>
         </dependency>
 
+        <!-- 阿里云oss依赖 -->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+        <!-- 日期工具栏依赖 -->
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.10.1</version>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 24 - 0
business-service/src/main/java/com/ozs/entity/MonitorSystem.java

@@ -11,6 +11,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @author wyy
@@ -88,4 +89,27 @@ public class MonitorSystem extends BaseEntity implements Serializable {
      */
     @TableField(exist = false)
     private String countAlarm;
+
+    /**
+     * 状态 1在线2离线
+     */
+    @TableField(exist = false)
+    private String statusName;
+
+    /**
+     * 最新接入时间
+     */
+    @TableField(exist = false)
+    private Date turnOnTime;
+    /**
+     * 报警总数
+     */
+    @TableField(exist = false)
+    private  Integer countAll;
+    /**
+     * 未报警总数
+     */
+    @TableField(exist = false)
+    private  Integer failureToReport
+            ;
 }

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

@@ -107,6 +107,12 @@ public class VehiclePosition implements Serializable {
     @Excel(name = "线路名称")
     private String railwayName;
 
+    /**
+     * 终端名称
+     */
+    @TableField(exist = false)
+    private String terminalName;
+
     /**
      *车载状态
      */

+ 2 - 0
business-service/src/main/java/com/ozs/mapper/MonitorSystemMapper.java

@@ -59,5 +59,7 @@ public interface MonitorSystemMapper extends BaseMapper<MonitorSystem> {
     List<MonitorSystem> monitorSystemList();
 
     AlarmHeartbeatLog selectAlarmHeartbeatLogByClientId(@Param("clientId") String clientId);
+
+    List<MonitorSystem> monitorSystemPage();
 }
 

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

@@ -3,8 +3,10 @@ package com.ozs.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.entity.MonitorSystem;
+import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.MonitorSystemVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -72,4 +74,8 @@ public interface MonitorSystemService extends IService<MonitorSystem> {
     MonitorSystem selectByClientId(String clientId);
 
     Map<String, Object> monitorSystem();
+
+     IPage listToPage(List list, int pageNum, int pageSize);
+
+    List<MonitorSystem> monitorSystemPage(MonitorSystemVo monitorSystemVo);
 }

+ 8 - 0
business-service/src/main/java/com/ozs/service/OssService.java

@@ -0,0 +1,8 @@
+package com.ozs.service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+public interface OssService {
+    //上传头像到oss
+    String uploadFileAvatar(MultipartFile file);
+}

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

@@ -21,4 +21,5 @@ public interface VehiclePositionService extends IService<VehiclePosition> {
 
     public IPage listToPage(List list, int pageNum, int pageSize);
 
+    List<VehiclePosition> vehiclePositionPage(VehiclePositionResp vehiclePositionResp);
 }

+ 5 - 1
business-service/src/main/java/com/ozs/service/impl/BaseCameraManagementServiceImpl.java

@@ -352,17 +352,21 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
                 SkynetHeartbeatLog skynetHeartbeatLog = baseCameraManagementMapper.selectSkynetHeartbeatLogByCameraCode(baseCameraManagement.getCameraCode());
                 if (StringUtils.isEmptySunhh(skynetHeartbeatLog)) {
                     offline++;
+                    baseCameraManagement.setOnline(0);
                 } else {
-                    long timeNow = new Date().getTime();
+                    long timeNow = System.currentTimeMillis();
                     long createTime = skynetHeartbeatLog.getCreateTime().getTime();
                     long thereHourMillis = 60 * 60 * 1000 * 3;
                     long timeNew = timeNow - thereHourMillis;
                     if (timeNew <= createTime) {
+                        baseCameraManagement.setOnline(1);
                         online++;
                     } else {
+                        baseCameraManagement.setOnline(0);
                         offline++;
                     }
                 }
+                baseCameraManagementMapper.updateById(baseCameraManagement);
             }
         }
         Map<String, Integer> map = new HashMap<>();

+ 65 - 23
business-service/src/main/java/com/ozs/service/impl/MonitorSystemServiceImpl.java

@@ -1,7 +1,9 @@
 package com.ozs.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.constant.UserConstants;
@@ -9,11 +11,15 @@ import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.entity.MonitorSystem;
+import com.ozs.entity.MsgAlarm;
 import com.ozs.entity.SkynetHeartbeatLog;
 import com.ozs.entity.SvcAddress;
+import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.AlarmHeartbeatLog;
 import com.ozs.entity.vo.MonitorSystemVo;
+import com.ozs.mapper.AlarmHeartbeatLogMapper;
 import com.ozs.mapper.MonitorSystemMapper;
+import com.ozs.mapper.MsgAlarmMapper;
 import com.ozs.mapper.SvcAddressMapper;
 import com.ozs.service.MonitorSystemService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,33 +43,35 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
     @Autowired
     private SvcAddressMapper svcAddressMapper;
     public static final String KEY = "58792429c08c43e9";
+    @Autowired
+    private MsgAlarmMapper msgAlarmMapper;
 
     @Override
     public int insertMonitorSystem(MonitorSystem monitorSystem) {
         int row = monitorSystemMapper.insertMonitorSystem(monitorSystem);
-        Integer grantType =1;
+        Integer grantType = 1;
 
         SvcAddress svc = new SvcAddress();
         svc.setClientId(monitorSystem.getClientId());
         svc.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getClientSecret(), KEY));//正式环境
         svc.setGrantType(grantType);
         svc.setEnv(2);
-        int row1 =  svcAddressMapper.insert(svc);
+        int row1 = svcAddressMapper.insert(svc);
         SvcAddress svc1 = new SvcAddress();
         svc1.setClientId(monitorSystem.getClientId());
         svc1.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getTestSecret(), KEY));//测试环境
         svc1.setGrantType(grantType);
         svc1.setEnv(1);
-        int row2 =  svcAddressMapper.insert(svc1);
-        return row+row1+row2;
+        int row2 = svcAddressMapper.insert(svc1);
+        return row + row1 + row2;
     }
 
     @Override
     public void deleteByIds(Long[] ids) {
-        for(Long id :ids){
+        for (Long id : ids) {
             MonitorSystem monitorSystem = monitorSystemMapper.selectById(id);
             LambdaQueryWrapper<SvcAddress> wrapper = new LambdaQueryWrapper<SvcAddress>();
-            wrapper.eq(SvcAddress::getClientId,monitorSystem.getClientId());
+            wrapper.eq(SvcAddress::getClientId, monitorSystem.getClientId());
             svcAddressMapper.delete(wrapper);
             monitorSystemMapper.deleteById(id);
         }
@@ -77,36 +85,36 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
         if (!CollectionUtils.isEmpty(list) && Objects.nonNull(list.get(0))) {
             list.forEach(l -> {
                 if (l.getEnv().equals(1)) {//测试环境
-                    monitor.setTestSecret(SM4Utils.decryptData_ECB(l.getClientSecret(),KEY));
+                    monitor.setTestSecret(SM4Utils.decryptData_ECB(l.getClientSecret(), KEY));
                 } else if (l.getEnv().equals(2)) {//正式环境
-                    monitor.setClientSecret(SM4Utils.decryptData_ECB(l.getClientSecret(),KEY));
+                    monitor.setClientSecret(SM4Utils.decryptData_ECB(l.getClientSecret(), KEY));
                 }
             });
         }
-        Integer grantType =1;
+        Integer grantType = 1;
         int row1 = 0;
         int row2 = 0;
-        if(!monitorSystem.getClientId().equals(monitor.getClientId()) || !monitorSystem.getClientSecret().equals(monitor.getClientSecret())
-            || !monitorSystem.getTestSecret().equals(monitor.getTestSecret())){//客户端编号或者正式环境密钥或者测试环境密钥改变
+        if (!monitorSystem.getClientId().equals(monitor.getClientId()) || !monitorSystem.getClientSecret().equals(monitor.getClientSecret())
+                || !monitorSystem.getTestSecret().equals(monitor.getTestSecret())) {//客户端编号或者正式环境密钥或者测试环境密钥改变
             LambdaQueryWrapper<SvcAddress> wrapper = new LambdaQueryWrapper<SvcAddress>();
-            wrapper.eq(SvcAddress::getClientId,monitor.getClientId());
+            wrapper.eq(SvcAddress::getClientId, monitor.getClientId());
             svcAddressMapper.delete(wrapper);
 
             SvcAddress svc = new SvcAddress();
             svc.setClientId(monitorSystem.getClientId());
-            svc.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getClientSecret(),KEY));//正式环境
+            svc.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getClientSecret(), KEY));//正式环境
             svc.setGrantType(grantType);
             svc.setEnv(2);
-            row1 =  svcAddressMapper.insert(svc);
+            row1 = svcAddressMapper.insert(svc);
             SvcAddress svc1 = new SvcAddress();
             svc1.setClientId(monitorSystem.getClientId());
-            svc1.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getTestSecret(),KEY));//测试环境
+            svc1.setClientSecret(SM4Utils.encryptData_ECB(monitorSystem.getTestSecret(), KEY));//测试环境
             svc1.setGrantType(grantType);
             svc1.setEnv(1);
-            row2 =  svcAddressMapper.insert(svc1);
+            row2 = svcAddressMapper.insert(svc1);
         }
         int row = monitorSystemMapper.updateById(monitorSystem);
-        return row+row1+row2;
+        return row + row1 + row2;
     }
 
     @Override
@@ -123,7 +131,7 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
     public String checkSystemOnline(MonitorSystem monitorSystem) {
         Long id = StringUtils.isNull(monitorSystem.getId()) ? -1L : monitorSystem.getId();
         MonitorSystem monitor = monitorSystemMapper.checkSystemOnline(id);
-        if (StringUtils.isNotNull(monitor.getStatus()) && monitor.getStatus().equals(1)){
+        if (StringUtils.isNotNull(monitor.getStatus()) && monitor.getStatus().equals(1)) {
             return UserConstants.EXCEPTION;
         }
         return UserConstants.NORMAL;
@@ -136,9 +144,9 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
         if (!CollectionUtils.isEmpty(list) && Objects.nonNull(list.get(0))) {
             list.forEach(l -> {
                 if (l.getEnv().equals(1)) {//测试环境
-                    monitor.setTestSecret(SM4Utils.decryptData_ECB(l.getClientSecret(),KEY));
+                    monitor.setTestSecret(SM4Utils.decryptData_ECB(l.getClientSecret(), KEY));
                 } else if (l.getEnv().equals(2)) {//正式环境
-                    monitor.setClientSecret(SM4Utils.decryptData_ECB(l.getClientSecret(),KEY));
+                    monitor.setClientSecret(SM4Utils.decryptData_ECB(l.getClientSecret(), KEY));
                 }
             });
         }
@@ -148,8 +156,8 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
     @Override
     public IPage<MonitorSystemVo> pageList(MonitorSystemVo monitorSystemVo) {
         LambdaQueryWrapper<MonitorSystem> wrapper = new LambdaQueryWrapper<MonitorSystem>();
-        wrapper.like(!Objects.isNull(monitorSystemVo.getMonitorSystemName()),MonitorSystem::getMonitorSystemName,monitorSystemVo.getMonitorSystemName());
-        wrapper.eq(!Objects.isNull(monitorSystemVo.getStatus()),MonitorSystem::getStatus,monitorSystemVo.getStatus());
+        wrapper.like(!Objects.isNull(monitorSystemVo.getMonitorSystemName()), MonitorSystem::getMonitorSystemName, monitorSystemVo.getMonitorSystemName());
+        wrapper.eq(!Objects.isNull(monitorSystemVo.getStatus()), MonitorSystem::getStatus, monitorSystemVo.getStatus());
         int pageNum = Integer.parseInt(monitorSystemVo.getPageNum().toString());
         int pageSize = Integer.parseInt(monitorSystemVo.getPageSize().toString());
         com.github.pagehelper.Page<MonitorSystem> page = PageHelper
@@ -171,7 +179,7 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
     @Override
     public MonitorSystem selectByClientId(String clientId) {
         LambdaQueryWrapper<MonitorSystem> wrapper = new LambdaQueryWrapper<MonitorSystem>();
-        wrapper.eq(MonitorSystem::getClientId,clientId);
+        wrapper.eq(MonitorSystem::getClientId, clientId);
         MonitorSystem monitorSystem = monitorSystemMapper.selectOne(wrapper);
         return monitorSystem;
     }
@@ -211,4 +219,38 @@ public class MonitorSystemServiceImpl extends ServiceImpl<MonitorSystemMapper, M
         mapCount.put("onlineMonitor", onlineMonitor);
         return mapCount;
     }
+
+    @Override
+    public IPage listToPage(List list, int pageNum, int pageSize) {
+        List pageList = new ArrayList<>();
+        int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
+        for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
+            pageList.add(list.get(curIdx + i));
+        }
+        IPage page = new Page<>(pageNum, pageSize);
+        page.setRecords(pageList);
+        page.setTotal(list.size());
+        return page;
+    }
+
+    @Override
+    public List<MonitorSystem> monitorSystemPage(MonitorSystemVo monitorSystemVo) {
+        List<MonitorSystem> monitorSystemList = monitorSystemMapper.monitorSystemPage();
+        for (MonitorSystem monitorSystem : monitorSystemList) {
+            if (!ObjectUtils.isEmpty(monitorSystem.getStatus())) {
+                monitorSystem.setStatusName(monitorSystem.getStatus() == 1 ? "已联通" : "未联通");
+            }
+            QueryWrapper<MsgAlarm> wrapper = new QueryWrapper<>();
+            wrapper.eq("source",monitorSystem.getClientId());
+            List<MsgAlarm> msgAlarms = msgAlarmMapper.selectList(wrapper);
+            List<MsgAlarm> collect = msgAlarms.stream().filter(msgAlarm -> msgAlarm.getIsRelease() == 2).collect(Collectors.toList());
+            if (!ObjectUtils.isEmpty(msgAlarms)) {
+                monitorSystem.setCountAll(msgAlarms.size());
+            }
+            if (!ObjectUtils.isEmpty(collect)) {
+                monitorSystem.setFailureToReport(collect.size());
+            }
+        }
+        return monitorSystemList;
+    }
 }

+ 72 - 0
business-service/src/main/java/com/ozs/service/impl/OssServiceImpl.java

@@ -0,0 +1,72 @@
+package com.ozs.service.impl;
+
+
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.ozs.service.OssService;
+import com.ozs.utils.ConstantPropertiesUtils;
+import org.joda.time.DateTime;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.UUID;
+
+@Service
+public class OssServiceImpl implements OssService {
+
+    //上传头像到oss
+    @Override
+    public String uploadFileAvatar(MultipartFile file) {
+        //工具类获取值
+        String endpoint = ConstantPropertiesUtils.END_POINT;
+        String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
+        String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
+        String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
+
+
+        try {
+            // 创建OSSClient实例。
+            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+
+            //获取上传文件输入流
+            InputStream inputStream = file.getInputStream();
+
+            //获取文件名称
+            String fileName = file.getOriginalFilename();
+
+            //1.在文件名称里面添加随机唯一的值
+            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+            fileName = uuid + fileName;
+
+
+            //2.把文件按照日期进行分类
+            //2019/11/12/
+            //获取当前日期
+            String datePath = new DateTime().toString("yyyy/MM/dd");
+            //拼接
+            //2019/11/12/esds56501.jpg
+            fileName=datePath+"/"+fileName;
+
+            //调用oss方法实现上传
+            //第一个参数 Bucket名称
+            //第二个参数 上传到oss文件路径和文件名称
+            //第三个参数 上传文件输入流
+            ossClient.putObject(bucketName, fileName, inputStream);
+
+            // 关闭OSSClient。
+            ossClient.shutdown();
+
+            //把上传之后文件路径返回
+            //需要把上传到阿里云oss路径手动拼接出来
+            //https://hxs-1010.oss-cn-beijing.aliyuncs.com/1607084234471.jpg
+            String url = "https://" + bucketName + "." + endpoint + "/" + fileName;
+
+            return url;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+}

+ 59 - 2
business-service/src/main/java/com/ozs/service/impl/VehiclePositionServiceImpl.java

@@ -1,14 +1,23 @@
 package com.ozs.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.entity.BaseRailwayManagement;
+import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.VehiclePositionResp;
+import com.ozs.mapper.BaseRailwayManagementMapper;
+import com.ozs.mapper.BaseTerminalMapper;
 import com.ozs.mapper.VehiclePositionMapper;
 import com.ozs.service.VehiclePositionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -26,11 +35,15 @@ public class VehiclePositionServiceImpl extends ServiceImpl<VehiclePositionMappe
 
     @Autowired
     private VehiclePositionMapper vehiclePositionMapper;
+    @Autowired
+    private BaseTerminalMapper baseTerminalMapper;
+    @Autowired
+    private BaseRailwayManagementMapper baseRailwayManagementMapper;
 
     @Override
     public List<VehiclePosition> selectVehiclePositionList(VehiclePositionResp vehiclePositionResp) {
-        List<VehiclePosition> list = vehiclePositionMapper.list(vehiclePositionResp.getVehicleCode(),vehiclePositionResp.getRailwayCode(),
-                vehiclePositionResp.getLineDir(),vehiclePositionResp.getStatus());
+        List<VehiclePosition> list = vehiclePositionMapper.list(vehiclePositionResp.getVehicleCode(), vehiclePositionResp.getRailwayCode(),
+                vehiclePositionResp.getLineDir(), vehiclePositionResp.getStatus());
         return list;
     }
 
@@ -46,4 +59,48 @@ public class VehiclePositionServiceImpl extends ServiceImpl<VehiclePositionMappe
         page.setTotal(list.size());
         return page;
     }
+
+    @Override
+    public List<VehiclePosition> vehiclePositionPage(VehiclePositionResp vehiclePositionResp) {
+        boolean state=true;
+        List<BaseTerminal> baseTerminals = baseTerminalMapper.selectList(null);
+        QueryWrapper<VehiclePosition> wrapper = new QueryWrapper<>();
+        wrapper.orderByDesc("create_time");
+        List<VehiclePosition> vehiclePositions = baseMapper.selectList(wrapper);
+        ArrayList<VehiclePosition> vehiclePositionArrayList = new ArrayList<>();
+        for (BaseTerminal baseTerminal : baseTerminals) {
+            state=true;
+            for (VehiclePosition vehiclePosition : vehiclePositions) {
+                if (baseTerminal.getTerminalCode().equals(vehiclePosition.getTerminalCode())) {
+                    vehiclePosition.setTerminalName(baseTerminal.getTerminalName());
+                    // 查询线路
+                    LambdaQueryWrapper<BaseRailwayManagement> lwBaseRailwayManagement = new LambdaQueryWrapper<>();
+                    if (!StringUtils.isEmptySunhh(vehiclePosition.getRailwayCode())) {
+                        lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, vehiclePosition.getRailwayCode());
+                    }
+                    BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement);
+                    vehiclePosition.setRailwayName(baseRailwayManagement.getRailwayName());
+                    if (!ObjectUtils.isEmpty(vehiclePosition.getTravelMile())) {
+                        vehiclePosition.setTravelMileFormat(AppendUtils.stringAppend(vehiclePosition.getTravelMile()));
+                    }
+                    if (!ObjectUtils.isEmpty(vehiclePosition.getLineDir())) {
+                        vehiclePosition.setLineDirName(vehiclePosition.getLineDir() == 1 ? "上行" : "下行");
+                    }
+                    if (!ObjectUtils.isEmpty(baseTerminal.getStatus())) {
+                        vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线");
+                    }
+                    vehiclePositionArrayList.add(vehiclePosition);
+                    state=false;
+                    break;
+                }
+            }
+            if (state){
+                VehiclePosition  vehiclePosition =new VehiclePosition();
+                vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线");
+                vehiclePosition.setTerminalCode(baseTerminal.getTerminalCode());
+                vehiclePositionArrayList.add(vehiclePosition);
+            }
+        }
+        return vehiclePositionArrayList;
+    }
 }

+ 35 - 0
business-service/src/main/java/com/ozs/utils/ConstantPropertiesUtils.java

@@ -0,0 +1,35 @@
+package com.ozs.utils;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+//当项目已启动,spring接口,spring加载之后,执行接口一个方法
+@Component
+public class ConstantPropertiesUtils implements InitializingBean {
+
+    //读取配置文件内容
+    @Value("${aliyun.oss.file.endpoint}")
+    private String endpoint;
+    @Value("${aliyun.oss.file.keyid}")
+    private String keyId;
+    @Value("${aliyun.oss.file.keysecret}")
+    private String keySecret;
+    @Value("${aliyun.oss.file.bucketname}")
+    private String bucketName;
+
+
+    //定义公开静态常量
+    public static String END_POINT;
+    public static String ACCESS_KEY_ID;
+    public static String ACCESS_KEY_SECRET;
+    public static String BUCKET_NAME;
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        END_POINT = endpoint;
+        ACCESS_KEY_ID = keyId;
+        ACCESS_KEY_SECRET = keySecret;
+        BUCKET_NAME = bucketName;
+    }
+}

+ 21 - 16
business-service/src/main/resources/mapper/MonitorSystemMapper.xml

@@ -3,20 +3,20 @@
 <mapper namespace="com.ozs.mapper.MonitorSystemMapper">
 
     <resultMap type="com.ozs.entity.MonitorSystem" id="MonitorSystemResult">
-        <id     property="id"     column="id"     />
-        <result property="clientId"   column="client_id"   />
-        <result property="monitorSystemName"   column="monitor_system_name"   />
-        <result property="systemIntroduce"   column="system_introduce"   />
-        <result property="alarmContent"     column="alarm_content"      />
-        <result property="alarmGenerate"     column="alarm_generate"      />
-        <result property="alarmRelease"   column="alarm_release"   />
-        <result property="treateMeasure" column="treate_measure" />
-        <result property="status"   column="status"   />
-        <result property="remark"     column="remark"      />
-        <result property="createBy"   column="create_by"   />
-        <result property="createTime" column="create_time" />
-        <result property="updateBy"   column="update_by"   />
-        <result property="updateTime" column="update_time" />
+        <id property="id" column="id"/>
+        <result property="clientId" column="client_id"/>
+        <result property="monitorSystemName" column="monitor_system_name"/>
+        <result property="systemIntroduce" column="system_introduce"/>
+        <result property="alarmContent" column="alarm_content"/>
+        <result property="alarmGenerate" column="alarm_generate"/>
+        <result property="alarmRelease" column="alarm_release"/>
+        <result property="treateMeasure" column="treate_measure"/>
+        <result property="status" column="status"/>
+        <result property="remark" column="remark"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
     </resultMap>
 
     <sql id="selectMonitorSystemVo">
@@ -66,7 +66,7 @@
         where id = #{id}
     </select>
 
-    <select id="monitorSystemCount"  resultType="java.util.Map">
+    <select id="monitorSystemCount" resultType="java.util.Map">
         select count(id) AS countAllMonitor,
                SUM(CASE status WHEN '2' THEN 1 ELSE 0 end) AS offlineMonitor,
                SUM(CASE status WHEN '1' THEN 1 ELSE 0 end) AS onlineMonitor
@@ -81,7 +81,12 @@
         ) b ON a.CLIENT_ID = b.SOURCE
     </select>
 
-    <select id="selectAlarmHeartbeatLogByClientId" resultType="com.ozs.entity.vo.AlarmHeartbeatLog" parameterType="java.lang.String">
+    <select id="selectAlarmHeartbeatLogByClientId" resultType="com.ozs.entity.vo.AlarmHeartbeatLog"
+            parameterType="java.lang.String">
         select /*+ GROUP_OPT_FLAG(1)*/ id, client_id, max(create_time) as createTime from alarm_heartbeat_log where client_id = #{clientId}
     </select>
+    <select id="monitorSystemPage" resultType="com.ozs.entity.MonitorSystem">
+        select mon.CLIENT_ID,max(create_time) as turnOnTime from  alarm_heartbeat_log  log right join 
+(select CLIENT_ID from monitor_system) mon  on log.CLIENT_ID=mon.CLIENT_ID   GROUP BY mon.CLIENT_ID
+    </select>
 </mapper>

+ 15 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/VehiclePositionController.java

@@ -77,6 +77,21 @@ public class VehiclePositionController extends BaseController {
         return AjaxResult.success(list);
     }
 
+    /**
+     * 车载终端监控列表
+     * @return
+     */
+    @ApiOperation(value = "车载终端监控列表")
+    @PostMapping("/vehiclePositionPage")
+    @Log(title = "车载终端监控列表", businessType = BusinessType.SELECT)
+    public AjaxResult vehiclePositionPage(@RequestBody VehiclePositionResp vehiclePositionResp) {
+        Integer pageNum = vehiclePositionResp.getPageNum().intValue();
+        Integer pageSize = vehiclePositionResp.getPageSize().intValue();
+        List<VehiclePosition> list = vehiclePositionService.vehiclePositionPage(vehiclePositionResp);
+        IPage page = vehiclePositionService.listToPage(list, pageNum, pageSize);
+        return AjaxResult.success(page);
+    }
+
     @Log(title = "机车行驶日志", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @ApiOperation(value = "机车行驶日志导出")

+ 27 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/oss/OssController.java

@@ -0,0 +1,27 @@
+package com.ozs.web.controller.oss;
+
+import com.ozs.common.core.domain.R;
+import com.ozs.service.OssService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+
+@RestController
+@RequestMapping("/service/fileoss")
+//@CrossOrigin  //跨域
+public class OssController {
+
+    @Autowired
+    private OssService ossService;
+
+    //上传头像的方法
+    @PostMapping
+    public R uploadOssFile(MultipartFile file) {//MultipartFile获取上传文件
+        //返回上传到oss的路径
+        String url = ossService.uploadFileAvatar(file);
+        return R.ok(url);
+    }
+}

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

@@ -8,6 +8,7 @@ import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.entity.MonitorSystem;
+import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.MonitorSystemVo;
 import com.ozs.service.MonitorSystemService;
 import io.swagger.annotations.ApiOperation;
@@ -46,6 +47,24 @@ public class MonitorSystemController extends BaseController {
         return AjaxResult.success(monitorSystem);
     }
 
+    /**
+     * 监测系统监控分页
+     *
+     * @param
+     * @return
+     */
+    @Log(title = "监测系统监控分页", businessType = BusinessType.SELECT)
+    @PostMapping("/monitorSystemPage")
+    @ApiOperation(value = "监测系统分页查询")
+    public AjaxResult monitorSystemPage(@RequestBody MonitorSystemVo monitorSystemVo) {
+        Integer pageNum = monitorSystemVo.getPageNum().intValue();
+        Integer pageSize = monitorSystemVo.getPageSize().intValue();
+        List<MonitorSystem> list = monitorSystemService.monitorSystemPage(monitorSystemVo);
+        IPage page = monitorSystemService.listToPage(list, pageNum, pageSize);
+        return AjaxResult.success(page);
+    }
+
+
     /**
      * 分页查询
      *

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

@@ -771,7 +771,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
                 rmaps.add(m.get(d));
             });
-            log.info("rmaps:{}", rmaps);
+            log.info("rmaps:{}", rmaps);    
             return rmaps;
         }
         return null;

+ 8 - 0
vehicle-admin/src/main/resources/application.yml

@@ -162,3 +162,11 @@ minio:
   bucketName: picbucket #存储桶名称
   accessKey: admin #访问的key
   secretKey: admin123 #访问的秘钥
+  
+aliyun:
+    oss:
+      file:
+        endpoint: oss-cn-beijing.aliyuncs.com
+        keyid: LTAI5tGRWozi6CLywJSXMkTh
+        keysecret: LhJI1KcaN84MjLvtHzDX3KpXeBnT2p
+        bucketname: hxs-1010