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

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

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

+ 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>

+ 0 - 2
.idea/encodings.xml

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

+ 12 - 12
.idea/jarRepositories.xml

@@ -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>

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

@@ -25,7 +25,7 @@ public class BaseTerminal implements Serializable {
     /**
      * 主键ID
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**

+ 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);
 }

+ 12 - 0
business-service/src/main/java/com/ozs/service/impl/BaseVehicleServiceImpl.java

@@ -232,6 +232,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());

+ 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=")">

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

@@ -385,6 +385,11 @@ public class BaseCameraManagementController extends BaseController {
         return AjaxResult.success(baseCameraManagement);
     }
 
+    /**
+     * ***********************   弃用   ***********************
+     * @param cameraCode
+     * @return
+     */
     @GetMapping("/getDate/{cameraCode}")
     @ApiOperation("视频上方显示的数据")
     @Log(title = "相机台账管理", businessType = BusinessType.OTHER)

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

@@ -1,26 +1,30 @@
 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.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 io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,9 +36,11 @@ 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.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -48,19 +54,17 @@ 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());
-    }
 
     /**
      * 车载终端挂载列表
@@ -255,9 +259,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);
@@ -322,5 +326,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);
+    }
 }
 

+ 22 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -338,6 +338,28 @@ 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)

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

@@ -11,7 +11,7 @@ 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  # 数据库类型