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.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.service.BaseDeviceDynamicManagementService; 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.stream.Collectors; /** *

* 设备动态管理表 服务实现类 *

* * @author ozs * @since 2023-02-22 */ @Service public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl implements BaseDeviceDynamicManagementService { @Autowired BaseDeviceDynamicManagementMapper baseDeviceDynamicManagementMapper; @Autowired BaseRailwayManagementMapper railwayManagementMapper; @Override public CameraTree cameraTree(CameraTreeVo cameraTreeVo) { //1 父 CameraTree cameraTree = CameraTree.builder() .name("相机树") .code("0") .flay(false) .children(new ArrayList<>()) .build(); Map map = new HashMap<>(); List list = baseDeviceDynamicManagementMapper.list(cameraTreeVo); if (list.size() > 0) { for (BaseCameraManagementDto o : list) { // 线路 CameraTree build = CameraTree.builder() .code(o.getRailwayCode()) .name(o.getRailwayName()) .flay(true) .children(new ArrayList<>()) .build(); if (!cameraTree.getChildren().stream() .map(CameraTree::getCode) .collect(Collectors.toList()) .contains(build.getCode())) { cameraTree.getChildren().add(build); map.put(o.getRailwayCode(), build); } // 里程 String mils = AppendUtils.stringAppend(o.getInstallMile()); CameraTree build1 = CameraTree.builder() .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")) .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")) .flay(true) .mileage(o.getInstallMile()) .children(new ArrayList<>()) .build(); if (!ObjectUtils.isEmpty(map.get(o.getRailwayCode()))) { CameraTree cameraTree1 = map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")); if (ObjectUtils.isEmpty(cameraTree1)) { map.put(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"), build1); map.get(o.getRailwayCode()).getChildren().add(build1); } } // 摄像头 CameraTree build2 = CameraTree.builder() .code(o.getCameraCode()) .name(o.getCameraCode()) .flay(true) .children(new ArrayList<>()) .build(); if (!ObjectUtils.isEmpty(map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")))) { map.get(o.getInstallMile() + "-" + (o.getLineDir().equals("1") ? "上行" : "下行")).getChildren().add(build2); } } } return cameraTree; } @Override public VehicleTree vehicleTree(VehicleTreeVo vehicleTreeVo) { // 线路 LambdaQueryWrapper rp = new LambdaQueryWrapper(); List railwayList = railwayManagementMapper.selectList(rp); //1 父 VehicleTree vehicleTree = VehicleTree.builder() .name("机车树") .code("0") .flay(false) .children(new ArrayList<>()) .build(); Map map = new HashMap<>(); List list = baseDeviceDynamicManagementMapper.vehicleTreelist(vehicleTreeVo); if (list.size() > 0) { for (BaseVehicleTerminalDto o : list) { 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") ? "上行" : "下行")) .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); } } // 摄像头 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; } }