소스 검색

修改首页机车列表

hexiao 1 년 전
부모
커밋
26f25b3261

+ 57 - 59
business-service/src/main/java/com/ozs/service/impl/BaseDeviceDynamicManagementServiceImpl.java

@@ -3,25 +3,19 @@ package com.ozs.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ozs.common.utils.AppendUtils;
-import com.ozs.entity.BaseDeviceDynamicManagement;
-import com.ozs.entity.BaseRailwayManagement;
-import com.ozs.entity.CameraTree;
-import com.ozs.entity.VehicleTree;
+import com.ozs.entity.*;
 import com.ozs.entity.vo.BaseCameraManagementDto;
 import com.ozs.entity.vo.BaseVehicleTerminalDto;
 import com.ozs.entity.vo.CameraTreeVo;
 import com.ozs.entity.vo.VehicleTreeVo;
-import com.ozs.mapper.BaseDeviceDynamicManagementMapper;
-import com.ozs.mapper.BaseRailwayManagementMapper;
+import com.ozs.mapper.*;
 import com.ozs.service.BaseDeviceDynamicManagementService;
+import com.ozs.service.VehiclePositionService;
 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;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -39,6 +33,15 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
     @Autowired
     BaseRailwayManagementMapper railwayManagementMapper;
 
+    @Autowired
+    BaseTerminalMapper baseTerminalMapper;
+    @Autowired
+    VehiclePositionMapper vehiclePositionMapper;
+    @Autowired
+    BaseVehicleTerminalMapper baseVehicleTerminalMapper;
+    @Autowired
+    BaseVehicleMapper baseVehicleMapper;
+
     @Override
     public CameraTree cameraTree(CameraTreeVo cameraTreeVo) {
 
@@ -109,9 +112,6 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
 
     @Override
     public VehicleTree vehicleTree(VehicleTreeVo vehicleTreeVo) {
-        // 线路
-        LambdaQueryWrapper<BaseRailwayManagement> rp = new LambdaQueryWrapper();
-        List<BaseRailwayManagement> railwayList = railwayManagementMapper.selectList(rp);
         //1 父
         VehicleTree vehicleTree = VehicleTree.builder()
                 .name("机车树")
@@ -120,62 +120,60 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
                 .children(new ArrayList<>())
                 .build();
 
-        Map<String, VehicleTree> map = new HashMap<>();
-        List<BaseVehicleTerminalDto> list = baseDeviceDynamicManagementMapper.vehicleTreelist(vehicleTreeVo);
-        if (list.size() > 0) {
-            for (BaseVehicleTerminalDto o : list) {
+        // 符合条件的终端行驶记录信息
+        List<VehiclePosition> list = new ArrayList<>();
+
+
+        // 终端数据
+        List<BaseTerminal> baseTerminals = baseTerminalMapper.selectList(new LambdaQueryWrapper<>());
+        if (!ObjectUtils.isEmpty(baseTerminals)) {
+            for (BaseTerminal baseTerminal : baseTerminals) {
+                // 查询所有的终端在行驶记录表的最后一个数据
+                LambdaQueryWrapper<VehiclePosition> lambdaQueryWrapper = new LambdaQueryWrapper();
+                lambdaQueryWrapper.eq(VehiclePosition::getCreateTime, baseTerminal.getTerminalCode());
+                lambdaQueryWrapper.orderByDesc(VehiclePosition::getId);
+                List<VehiclePosition> vehiclePositions = vehiclePositionMapper.selectList(lambdaQueryWrapper);
+                if (!ObjectUtils.isEmpty(vehiclePositions) && vehiclePositions.size() > 0) {
+                    list.add(vehiclePositions.get(0));
+                }
+            }
+        }
 
+        // 线路
+        List<BaseRailwayManagement> railwayList = railwayManagementMapper.selectList(new LambdaQueryWrapper());
+        if (!ObjectUtils.isEmpty(railwayList)) {
+            for (BaseRailwayManagement baseRailwayManagement : railwayList) {
+
+                //  根据线路查询当前机车行驶
                 VehicleTree build = VehicleTree.builder()
-                        .code(o.getRailwayCode())
-                        .flay(true)
-                        .children(new ArrayList<>())
-                        .build();
-                for (BaseRailwayManagement railway : railwayList) {
-                    if (railway.getRailwayCode().equals(build.getCode())) {
-                        build.setName(railway.getRailwayName());
-                        break;
-                    }
-                }
-                if (!vehicleTree.getChildren().stream()
-                        .map(VehicleTree::getCode)
-                        .collect(Collectors.toList())
-                        .contains(build.getCode())) {
-                    vehicleTree.getChildren().add(build);
-                    map.put(o.getRailwayCode(), build);
-                }
-                // 里程
-                String mils = AppendUtils.stringAppend(o.getTravelMile());
-                VehicleTree build1 = VehicleTree.builder()
-                        .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
-                        .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
+                        .code(baseRailwayManagement.getRailwayCode())
+                        .name(baseRailwayManagement.getRailwayName())
                         .flay(true)
-                        .mileage(o.getTravelMile())
                         .children(new ArrayList<>())
                         .build();
-
-
-                if (!ObjectUtils.isEmpty(map.get(o.getRailwayCode()))) {
-                    VehicleTree vehicleTree1 = map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"));
-                    if (ObjectUtils.isEmpty(vehicleTree1)) {
-                        map.put(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"), build1);
-                        map.get(o.getRailwayCode()).getChildren().add(build1);
+                if (list.size() > 0) {
+                    List<VehiclePosition> collect = list.stream().filter(vp -> vp.getRailwayCode().equals(baseRailwayManagement.getRailwayCode())).collect(Collectors.toList());
+                    if (!ObjectUtils.isEmpty(collect)) {
+                        collect.sort((o1, o2) -> o1.getTravelMile().compareTo(o2.getTravelMile()));
+                        List<VehicleTree> childrens = collect.stream().map(vp -> {
+                            LambdaQueryWrapper<BaseVehicle> lambdaQueryWrapper = new LambdaQueryWrapper();
+                            lambdaQueryWrapper.eq(BaseVehicle::getVehicleCode, vp.getVehicleCode());
+                            BaseVehicle baseVehicle = baseVehicleMapper.selectOne(lambdaQueryWrapper);
+                            return VehicleTree.builder()
+                                    .code(vp.getTerminalCode())
+                                    .name(AppendUtils.stringAppend(Integer.valueOf(vp.getTravelMile())) + "-" + (vp.getLineDir().equals("1") ? "上行" : "下行") + "-" + (ObjectUtils.isEmpty(baseVehicle) ? vp.getVehicleCode() : baseVehicle.getVehicleName()))
+                                    .flay(true)
+                                    .children(new ArrayList<>())
+                                    .build();
+                        }).collect(Collectors.toList());
+                        build.setChildren(childrens);
                     }
                 }
+            }
+        }
 
-                // 摄像头
-                VehicleTree build2 = VehicleTree.builder()
-                        .code(o.getTerminalCode())
-                        .name(o.getTerminalCode())
-                        .flay(true)
-                        .children(new ArrayList<>())
-                        .build();
 
 
-                if (!ObjectUtils.isEmpty(map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")))) {
-                    map.get(o.getTravelMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")).getChildren().add(build2);
-                }
-            }
-        }
 
         return vehicleTree;
     }

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

@@ -42,4 +42,6 @@
         </where>
         order by create_time desc
     </select>
+
+
 </mapper>

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

@@ -283,9 +283,6 @@ public class BaseVehicleController extends BaseController {
     @PostMapping("/vehicleTree")
     @Log(title = "首页机车列表", businessType = BusinessType.SELECT)
     public AjaxResult vehicleTree(@RequestBody VehicleTreeVo vehicleTreeVo) {
-
-        vehicleTreeVo = (VehicleTreeVo) dataScoreUtil.setDataScore(getUserId(), vehicleTreeVo);
-        int count = 0;
         if (!ObjectUtils.isEmpty(vehicleTreeVo.getMils())) {
             vehicleTreeVo.setMils(vehicleTreeVo.getMils() * 1000);
         }
@@ -301,37 +298,6 @@ public class BaseVehicleController extends BaseController {
                 return substring1.compareTo(substring2);
             }
         });
-
-
-        for (VehicleTree child : children) {
-            List<VehicleTree> children1 = child.getChildren();
-            children1.sort(new Comparator<VehicleTree>() {
-                @Override
-                public int compare(VehicleTree o1, VehicleTree o2) {
-                    int i = o1.getMileage() - o2.getMileage();
-                    if (i == 0) {
-                        String[] split = o1.getName().split("-");
-                        return "上行".equals(split[1]) ? -1 : 1;
-                    } else {
-                        return i;
-                    }
-                }
-            });
-            for (VehicleTree tree : children1) {
-                List<VehicleTree> children2 = tree.getChildren();
-                if (children2.size() < 2) {
-                    String code = children2.get(0).getCode();
-                    tree.setCode(code);
-                    children2.remove(0);
-                } else {
-                    for (VehicleTree vehicleTree1 : children2) {
-                        count = count + 1;
-                        vehicleTree1.setName("相机" + count);
-                    }
-                    count = 0;
-                }
-            }
-        }
         return success(vehicleTree);
     }