修复bug

dev_xq_0.0.1-2
刘政 2 weeks ago
parent 9ee720b792
commit f856a9614d

@ -0,0 +1,34 @@
package com.sz.admin.monitor.controller;
import com.sz.admin.monitor.pojo.po.ComputerRoom;
import com.sz.admin.monitor.service.ComputerRoomService;
import com.sz.core.common.entity.ApiResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Profile;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* ClassName: ComputerRootController
* Package: com.sz.admin.monitor.controller
* Description:
*/
@Tag(name = "机房表")
@RestController
@RequestMapping("computerRoom")
@RequiredArgsConstructor
@Profile({"dev", "local", "preview"})
public class ComputerRoomController {
private final ComputerRoomService computerRoomService;
@Operation(summary = "获取变电站下的机房列表")
@GetMapping("/list")
public ApiResult<List<ComputerRoom>> getList(@RequestParam("substationId") Long substationId) {
return ApiResult.success(computerRoomService.getComputerRoomList(substationId));
}
}

@ -31,16 +31,14 @@ public class DataModelController {
} }
/** /**
* *
* *
* @param dataModelDTO * @param dataModelDTO
* @return * @return
*/ */
@PostMapping("/saveOrUpdate/modelData") @PostMapping("/saveOrUpdate/modelData")
public ApiResult saveOrUpdateModelData( public ApiResult saveOrUpdateModelData(
@RequestBody DataModelDTO dataModelDTO, @RequestBody DataModelDTO dataModelDTO, HttpServletRequest request, HttpServletResponse response) {
HttpServletRequest request,
HttpServletResponse response) {
return dataModelService.saveOrUpdateModelData(dataModelDTO, request, response); return dataModelService.saveOrUpdateModelData(dataModelDTO, request, response);
} }

@ -39,4 +39,9 @@ public class TreeController {
public ApiResult<List<TreeNodeVO>> getTreePreview() { public ApiResult<List<TreeNodeVO>> getTreePreview() {
return ApiResult.success(treeService.buildTreePreview()); return ApiResult.success(treeService.buildTreePreview());
} }
@Operation(summary = "获取变电站的机房的树型结构数据")
@GetMapping("/substation")
public ApiResult<List<TreeNodeVO>> getTreeSubstation() {
return ApiResult.success(treeService.buildTreeComputeRoom());
}
} }

@ -0,0 +1,12 @@
package com.sz.admin.monitor.mapper;
import com.mybatisflex.core.BaseMapper;
import com.sz.admin.monitor.pojo.po.ComputerRoom;
/**
* ClassName: ComputeRoomMapper
* Package: com.sz.admin.monitor.mapper
* Description:
*/
public interface ComputeRoomMapper extends BaseMapper<ComputerRoom> {
}

@ -2,12 +2,24 @@ package com.sz.admin.monitor.mapper;
import com.mybatisflex.core.BaseMapper; import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.sz.admin.monitor.pojo.po.ModelContentDO; import com.sz.admin.monitor.pojo.po.ModelContentDO;
import java.util.Set;
/** /**
* @description: * @description:
* @author xq * @author xq
* @version 1.0 * @version 1.0
*/ */
public interface ModelContentMapper extends BaseMapper<ModelContentDO> { public interface ModelContentMapper extends BaseMapper<ModelContentDO> {
default void deleteByRoomIds(Set<Long> roomIds)
{
QueryWrapper wrapper = QueryWrapper.create()
.select()
.from(ModelContentDO.class)
.where(ModelContentDO::getRoomId).in(roomIds);
this.deleteByQuery(wrapper);
}
} }

@ -1,6 +1,7 @@
package com.sz.admin.monitor.pojo.dto.dataModel; package com.sz.admin.monitor.pojo.dto.dataModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -22,6 +23,15 @@ public class DataModelDTO {
* *
*/ */
private CanvasCfgDTO canvasCfg; private CanvasCfgDTO canvasCfg;
/**
* ID
*/
private Long substationId;
/**
*ID
*/
private Long roomId;
/** /**
* *

@ -34,6 +34,16 @@ public class ModelContentDTO {
*/ */
private Integer modelIndex=99; private Integer modelIndex=99;
/**
* ID
*/
private Long substationId;
/**
*ID
*/
private Long roomId;
/** /**
* *
*/ */

@ -0,0 +1,28 @@
package com.sz.admin.monitor.pojo.po;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import com.sz.mysql.EntityChangeListener;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* ClassName: ComputerRoom
* Package: com.sz.admin.monitor.pojo.po
* Description:
*/
@Data
@Table(value = "ry_computer_room", onInsert = EntityChangeListener.class, onUpdate = EntityChangeListener.class)
@Schema(description = "机房表")
public class ComputerRoom {
@Id(keyType = KeyType.Auto)
@Schema(description = "id")
private Long id;
@Schema(description = "名称")
private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "变电站ID")
private Long substationId;
}

@ -34,6 +34,17 @@ public class ModelContentDO {
@Schema(description = "模型id") @Schema(description = "模型id")
private String id; private String id;
/**
* ID
*/
@Schema(description = "变电站ID")
private Long substationId;
/**
*ID
*/
@Schema(description = "机房ID")
private Long roomId;
/** /**
* *
*/ */

@ -23,4 +23,9 @@ public class DataModelQue {
* *
*/ */
private String menuType; private String menuType;
/**
* ID
*/
private Long roomId;
} }

@ -0,0 +1,13 @@
package com.sz.admin.monitor.pojo.vo.tree;
import lombok.Data;
/**
* ClassName: ComputerRoomNodeVO
* Package: com.sz.admin.monitor.pojo.vo.tree
* Description:
*/
@Data
public class ComputerRoomNodeVO extends TreeNodeVO{
private Long substationId; //所属变电站
}

@ -17,7 +17,7 @@ import java.util.List;
public class TreeNodeVO { public class TreeNodeVO {
private Long id; private Long id;
private String name; private String name;
private Integer type; // 0: Region, 1: Substation, 2: NVR,3: Camera private Integer type; // 0: Region, 1: Substation, 2: NVR,3: Camera,4: room
private List<TreeNodeVO> children; private List<TreeNodeVO> children;
public TreeNodeVO(Long id, String name, Integer type) { public TreeNodeVO(Long id, String name, Integer type) {
this.id = id; this.id = id;

@ -0,0 +1,17 @@
package com.sz.admin.monitor.service;
import com.mybatisflex.core.service.IService;
import com.sz.admin.monitor.pojo.po.CanvasCfgDO;
import com.sz.admin.monitor.pojo.po.ComputerRoom;
import java.util.List;
/**
* ClassName: ComputerRoomService
* Package: com.sz.admin.monitor.service
* Description:
*/
public interface ComputerRoomService extends IService<ComputerRoom> {
// 获取变电站的机房列表
List<ComputerRoom> getComputerRoomList(Long substationId);
}

@ -14,5 +14,5 @@ import java.util.List;
* @version 1.0 * @version 1.0
*/ */
public interface ModelContentService extends IService<ModelContentDO> { public interface ModelContentService extends IService<ModelContentDO> {
HashMap<String, List<String>> saveOrUpdateModel(List<ModelContentDTO> list,String menuType); void saveOrUpdateModel(List<ModelContentDTO> list,String menuType);
} }

@ -17,4 +17,7 @@ public interface TreeService {
// 获取视频预览的树型结构数据 // 获取视频预览的树型结构数据
List<TreeNodeVO> buildTreePreview(); List<TreeNodeVO> buildTreePreview();
List<TreeNodeVO> buildTreeComputeRoom();
} }

@ -0,0 +1,48 @@
package com.sz.admin.monitor.service.impl;
import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.sz.admin.monitor.mapper.ComputeRoomMapper;
import com.sz.admin.monitor.mapper.NvrMapper;
import com.sz.admin.monitor.pojo.po.ComputerRoom;
import com.sz.admin.monitor.pojo.po.ModelContentDO;
import com.sz.admin.monitor.pojo.po.Nvr;
import com.sz.admin.monitor.pojo.po.table.ComputerRoomTableDef;
import com.sz.admin.monitor.pojo.po.table.ModelContentDOTableDef;
import com.sz.admin.monitor.pojo.po.table.NvrTableDef;
import com.sz.admin.monitor.service.ComputerRoomService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* ClassName: ComputerRoomServiceImpl
* Package: com.sz.admin.monitor.service.impl
* Description:
*/
@Service
public class ComputerRoomServiceImpl extends ServiceImpl<ComputeRoomMapper, ComputerRoom> implements ComputerRoomService {
@Resource
private ComputeRoomMapper computerRoomMapper;
@Override
public List<ComputerRoom> getComputerRoomList(Long substationId) {
// 构建 EXISTS 子查询
QueryWrapper queryWrapper = QueryWrapper.create()
.select(
ComputerRoomTableDef.COMPUTER_ROOM.ID,
ComputerRoomTableDef.COMPUTER_ROOM.SUBSTATION_ID,
ComputerRoomTableDef.COMPUTER_ROOM.NAME,
ComputerRoomTableDef.COMPUTER_ROOM.DESCRIPTION
)
.from(ComputerRoomTableDef.COMPUTER_ROOM)
.where(ComputerRoomTableDef.COMPUTER_ROOM.SUBSTATION_ID.eq(substationId))
.and(ComputerRoomTableDef.COMPUTER_ROOM.ID.in(
QueryWrapper.create()
.select(ModelContentDOTableDef.MODEL_CONTENT_DO.ROOM_ID)
.from(ModelContentDOTableDef.MODEL_CONTENT_DO)
));
return computerRoomMapper.selectListByQuery(queryWrapper);
}
}

@ -64,10 +64,6 @@ public class DataModelServiceImpl {
// 获取画板数据 // 获取画板数据
CanvasCfgDO canvasCfgDO = canvasCfgService.getOne(queryWrapper); CanvasCfgDO canvasCfgDO = canvasCfgService.getOne(queryWrapper);
// CanvasCfgDO canvasCfgDO = canvasCfgService.getOne(new QueryWrapper<CanvasCfgDO>()
// .eq(CanvasCfgDO.USER_ID, que.getUserId())
// .last("limit 1")
// );
if (ObjectUtil.isEmpty(canvasCfgDO)) { if (ObjectUtil.isEmpty(canvasCfgDO)) {
canvasCfgDO = initCanvasCfg(); canvasCfgDO = initCanvasCfg();
canvasCfgService.saveOrUpdate(canvasCfgDO); canvasCfgService.saveOrUpdate(canvasCfgDO);
@ -79,10 +75,6 @@ public class DataModelServiceImpl {
.eq(GridCfgDO.USER_ID, que.getUserId()) .eq(GridCfgDO.USER_ID, que.getUserId())
.limit(1) .limit(1)
); );
// GridCfgDO gridCfgDO = gridCfgService.getOne(new QueryWrapper<GridCfgDO>()
// .eq(GridCfgDO.USER_ID, userId)
// .last("limit 1")
// );
if (ObjectUtil.isEmpty(gridCfgDO)) { if (ObjectUtil.isEmpty(gridCfgDO)) {
gridCfgDO = initGridCfg(); gridCfgDO = initGridCfg();
gridCfgService.saveOrUpdate(gridCfgDO); gridCfgService.saveOrUpdate(gridCfgDO);
@ -94,13 +86,8 @@ public class DataModelServiceImpl {
.eq(UserModelContentDO.USER_ID, userId) .eq(UserModelContentDO.USER_ID, userId)
.eq(UserModelContentDO.MENU_TYPE, que.getMenuType()) .eq(UserModelContentDO.MENU_TYPE, que.getMenuType())
); );
// List<UserModelContentDO> userModelList = userModelContentService.list(new QueryWrapper<UserModelContentDO>()
// .eq(UserModelContentDO.USER_ID, userId)
// .eq(UserModelContentDO.MENU_TYPE, que.getMenuType())
// );
ArrayList<ModelContentDTO> objects = new ArrayList<>(); ArrayList<ModelContentDTO> objects = new ArrayList<>();
if (CollectionUtil.isEmpty(userModelList)) { if (CollectionUtil.isEmpty(userModelList)) {
DataModelDTO build = DataModelDTO.builder() DataModelDTO build = DataModelDTO.builder()
.canvasCfg(CanvasCfgDO.doConvertDTO(canvasCfgDO)) .canvasCfg(CanvasCfgDO.doConvertDTO(canvasCfgDO))
@ -110,17 +97,17 @@ public class DataModelServiceImpl {
return ApiResult.success(build); return ApiResult.success(build);
} }
List<String> collect = userModelList.stream() // List<String> collect = userModelList.stream()
.map(item -> item.getModelContentId()) // .map(item -> item.getModelContentId())
.collect(Collectors.toList()); // .collect(Collectors.toList());
List<ModelContentDO> modelContentDOS = modelContentService.list(QueryWrapper.create() List<ModelContentDO> modelContentDOS = modelContentService.list(QueryWrapper.create()
.from(ModelContentDO.class) .from(ModelContentDO.class)
.in(ModelContentDO.ID, collect) .eq(ModelContentDO::getRoomId, que.getRoomId())
// .in(ModelContentDO.ID, collect)
.orderBy(ModelContentDO.MODEL_INDEX, true) .orderBy(ModelContentDO.MODEL_INDEX, true)
); );
// List<ModelContentDO> modelContentDOS = modelContentService.listByIds(collect);
for (ModelContentDO modelContentDO : modelContentDOS) { for (ModelContentDO modelContentDO : modelContentDOS) {
objects.add(ModelContentDO.doConvertDTO(modelContentDO)); objects.add(ModelContentDO.doConvertDTO(modelContentDO));
} }
@ -185,83 +172,19 @@ public class DataModelServiceImpl {
for (int i = 0; i < dataModelDTO.getJson().size(); i++) { for (int i = 0; i < dataModelDTO.getJson().size(); i++) {
ModelContentDTO modelContentDTO = dataModelDTO.getJson().get(i); ModelContentDTO modelContentDTO = dataModelDTO.getJson().get(i);
modelContentDTO.setModelIndex(i); modelContentDTO.setModelIndex(i);
modelContentDTO.setSubstationId(dataModelDTO.getSubstationId());
modelContentDTO.setRoomId(dataModelDTO.getRoomId());
json.add(modelContentDTO); json.add(modelContentDTO);
} }
//保存、更新面板 //保存、更新面板
canvasCfg.setUserId(userId); canvasCfg.setUserId(userId);
canvasCfgService.saveOrUpdateCanvas(canvasCfg); canvasCfgService.saveOrUpdateCanvas(canvasCfg);
//保存、更新网格 //保存、更新网格
gridCfg.setUserId(userId); gridCfg.setUserId(userId);
gridCfgService.saveOrUpdateGrid(gridCfg); gridCfgService.saveOrUpdateGrid(gridCfg);
//保存数据模型 //保存数据模型
HashMap<String, List<String>> map = modelContentService.saveOrUpdateModel(json, dataModelDTO.getMenuType()); modelContentService.saveOrUpdateModel(json, dataModelDTO.getMenuType());
//获取中间表
List<UserModelContentDO> list = userModelContentService.list(QueryWrapper.create()
.from(UserModelContentDO.class)
.eq(UserModelContentDO.USER_ID, userId) //先写死
.eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType())
);
// List<UserModelContentDO> list = userModelContentService.list(new QueryWrapper<UserModelContentDO>()
// .eq(UserModelContentDO.USER_ID, userId) //先写死
// .eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType())
// );
if (CollectionUtil.isEmpty(map)) {
List<String> modelIds = list.stream()
.map(item -> item.getModelContentId())
.collect(Collectors.toList());
modelContentService.removeByIds(modelIds);
userModelContentService.remove(QueryWrapper.create()
.from(UserModelContentDO.class)
.eq(UserModelContentDO.USER_ID, userId)
.eq(UserModelContentDO.MENU_TYPE, dataModelDTO.getMenuType()));
return ApiResult.success();
}
//增加的id集合
List<String> addIdModels = map.get("addIdModels");
//跟新的id集合
List<String> updateIdModels = map.get("updateIdModels");
if (CollectionUtil.isEmpty(addIdModels))
return ApiResult.success();
//中间表没有数据,直接添加
if (CollectionUtil.isEmpty(list)) {
List<String> allModelIds = Stream.concat(addIdModels.stream(), updateIdModels.stream())
.distinct()
.collect(Collectors.toList());
for (String modelId : allModelIds) {
UserModelContentDO build = UserModelContentDO.builder()
.userId(userId)
.menuType(dataModelDTO.getMenuType())
.modelContentId(modelId)
.build();
userModelContentService.save(build);
}
return ApiResult.success();
} else { //中间表有数据
List<String> collect = list.stream().map(UserModelContentDO::getModelContentId).collect(Collectors.toList());
collect.removeAll(updateIdModels);
modelContentService.removeByIds(collect);
List<String> targetCollect = list.stream()
.filter(item -> collect.contains(item.getModelContentId()))
.map(UserModelContentDO::getId)
.collect(Collectors.toList());
userModelContentService.removeByIds(targetCollect);
for (String addIdModel : addIdModels) {
UserModelContentDO build = UserModelContentDO.builder()
.userId(userId)
.menuType(dataModelDTO.getMenuType())
.modelContentId(addIdModel)
.build();
userModelContentService.save(build);
}
}
return ApiResult.success(); return ApiResult.success();
} }

@ -11,12 +11,15 @@ import com.sz.admin.monitor.pojo.po.ModelContentDO;
import com.sz.admin.monitor.pojo.po.UserModelContentDO; import com.sz.admin.monitor.pojo.po.UserModelContentDO;
import com.sz.admin.monitor.service.ModelContentService; import com.sz.admin.monitor.service.ModelContentService;
import com.sz.admin.monitor.service.UserModelContentService; import com.sz.admin.monitor.service.UserModelContentService;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @author xq * @author xq
@ -28,7 +31,8 @@ public class ModelContentServiceImpl extends ServiceImpl<ModelContentMapper, Mod
@Autowired @Autowired
private UserModelContentService userModelContentService; private UserModelContentService userModelContentService;
@Resource
private ModelContentMapper modelContentMapper;
/** /**
* *
* *
@ -37,44 +41,21 @@ public class ModelContentServiceImpl extends ServiceImpl<ModelContentMapper, Mod
* @return map key addIdModelsid updateIdModelsid * @return map key addIdModelsid updateIdModelsid
*/ */
@Override @Override
public HashMap<String, List<String>> saveOrUpdateModel(List<ModelContentDTO> list, String menuType) { public void saveOrUpdateModel(List<ModelContentDTO> list, String menuType) {
if (CollectionUtil.isEmpty(list)) if (CollectionUtil.isEmpty(list))
return null; return;
// 获取所有roomIds
//获取需要保存的id,然后返回给中间表 Set<Long> roomIds = list.stream().map(ModelContentDTO::getRoomId).collect(Collectors.toSet());
List<String> addIdModels = new ArrayList<>(); // DELETE FROM ry_model_content WHERE room_id in '1'
List<String> updateIdModels = new ArrayList<>(); if (!roomIds.isEmpty())
{
modelContentMapper.deleteByRoomIds(roomIds);
}
for (ModelContentDTO modelContentDTO : list) { for (ModelContentDTO modelContentDTO : list) {
ModelContentDO modelContentDO = ModelContentDTO.dtoConvertDO(modelContentDTO); ModelContentDO modelContentDO = ModelContentDTO.dtoConvertDO(modelContentDTO);
disposeDO(modelContentDO, updateIdModels); disposeDO(modelContentDO);
save(modelContentDO);
//这种情况可能是直接复用其他组件
if (StrUtil.isNotEmpty(modelContentDO.getId())) {
QueryWrapper queryWrapper = QueryWrapper.create()
.select()
.from(UserModelContentDO.class)
.eq(UserModelContentDO.MODEL_CONTENT_ID, modelContentDO.getId())
.eq(UserModelContentDO.MENU_TYPE, menuType)
//true:ASC false:DESC
.orderBy(UserModelContentDO.ID, false)
.limit(1);
List<UserModelContentDO> doList = userModelContentService.list(queryWrapper);
if (CollectionUtil.isEmpty(doList))
modelContentDO.setId(null);
else
updateIdModels.add(modelContentDO.getId());
}
saveOrUpdate(modelContentDO);
if (!updateIdModels.contains(modelContentDO.getId()))
addIdModels.add(modelContentDO.getId());
} }
HashMap<String, List<String>> map = new HashMap<>();
map.put("addIdModels", addIdModels);
map.put("updateIdModels", updateIdModels);
return map;
} }
/** /**
@ -82,7 +63,7 @@ public class ModelContentServiceImpl extends ServiceImpl<ModelContentMapper, Mod
* *
* @param modelContentDO * @param modelContentDO
*/ */
public void disposeDO(ModelContentDO modelContentDO, List<String> updateIdModels) { public void disposeDO(ModelContentDO modelContentDO) {
//这里是空肯定是add //这里是空肯定是add
if (StrUtil.isEmpty(modelContentDO.getId())) if (StrUtil.isEmpty(modelContentDO.getId()))
return; return;

@ -1,16 +1,11 @@
package com.sz.admin.monitor.service.impl; package com.sz.admin.monitor.service.impl;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.sz.admin.monitor.mapper.CameraMapper; import com.sz.admin.monitor.mapper.*;
import com.sz.admin.monitor.mapper.NvrMapper;
import com.sz.admin.monitor.mapper.RegionMapper;
import com.sz.admin.monitor.mapper.SubstationMapper;
import com.sz.admin.monitor.pojo.po.Camera; import com.sz.admin.monitor.pojo.po.*;
import com.sz.admin.monitor.pojo.po.Nvr;
import com.sz.admin.monitor.pojo.po.Region;
import com.sz.admin.monitor.pojo.po.Substation;
import com.sz.admin.monitor.pojo.vo.tree.CameraNodeVO; import com.sz.admin.monitor.pojo.vo.tree.CameraNodeVO;
import com.sz.admin.monitor.pojo.vo.tree.ComputerRoomNodeVO;
import com.sz.admin.monitor.pojo.vo.tree.NvrNodeVO; import com.sz.admin.monitor.pojo.vo.tree.NvrNodeVO;
import com.sz.admin.monitor.pojo.vo.tree.TreeNodeVO; import com.sz.admin.monitor.pojo.vo.tree.TreeNodeVO;
import com.sz.admin.monitor.service.TreeService; import com.sz.admin.monitor.service.TreeService;
@ -38,6 +33,8 @@ public class TreeServiceImpl implements TreeService {
private NvrMapper nvrMapper; private NvrMapper nvrMapper;
@Resource @Resource
private CameraMapper cameraMapper; private CameraMapper cameraMapper;
@Resource
private ComputeRoomMapper computeRoomMapper;
@Override @Override
public List<TreeNodeVO> buildTree() { public List<TreeNodeVO> buildTree() {
@ -68,6 +65,37 @@ public class TreeServiceImpl implements TreeService {
return treeRootList; return treeRootList;
} }
@Override
public List<TreeNodeVO> buildTreeComputeRoom() {
// 查询出所有的边电站
List<Substation> substationList = substationMapper.selectAll();
List<TreeNodeVO> treeRootList = new ArrayList<>();
for (Substation substation : substationList) {
TreeNodeVO rootNode = new TreeNodeVO(substation.getId(), substation.getName(), 1, null);
List<TreeNodeVO> computeChildren = loadChildrenForRoom(substation.getId());
rootNode.setChildren(computeChildren);
treeRootList.add(rootNode);
}
return treeRootList;
}
private List<TreeNodeVO> loadChildrenForRoom(Long id) {
QueryWrapper computeRoomQuery = new QueryWrapper();
computeRoomQuery.eq("substation_id", id);
List<ComputerRoom> computeRoomList = computeRoomMapper.selectListByQuery(computeRoomQuery);
List<TreeNodeVO> children = new ArrayList<>();
for (ComputerRoom computeRoom : computeRoomList) {
ComputerRoomNodeVO computeRoomNode =new ComputerRoomNodeVO();
computeRoomNode.setId(computeRoom.getId());
computeRoomNode.setName(computeRoom.getName());
computeRoomNode.setType(4);
computeRoomNode.setSubstationId(computeRoom.getSubstationId());
computeRoomNode.setChildren(null);
children.add(computeRoomNode);
}
return children;
}
private List<TreeNodeVO> loadChildrenForRegion(Long id) { private List<TreeNodeVO> loadChildrenForRegion(Long id) {
QueryWrapper childRegionQuery = new QueryWrapper(); QueryWrapper childRegionQuery = new QueryWrapper();
childRegionQuery.eq("parent_id", id); childRegionQuery.eq("parent_id", id);

@ -12,6 +12,8 @@ create table ry_model_content
( (
id varchar(32) not null comment '模型id' id varchar(32) not null comment '模型id'
primary key, primary key,
substation_id bigint null comment '变电站ID',
room_id bigint null comment '机房ID',
title varchar(32) null comment '模型名称', title varchar(32) null comment '模型名称',
type varchar(32) null comment '模型类型', type varchar(32) null comment '模型类型',
binfo varchar(128) null comment '位置json', binfo varchar(128) null comment '位置json',
@ -27,7 +29,15 @@ create table ry_model_content
`index` int null comment '索引' `index` int null comment '索引'
) )
comment '模型内容'; comment '模型内容';
create table ry_computer_room
(
id bigint not null comment '机房id' auto_increment
primary key,
substation_id bigint null comment '变电站ID',
name varchar(32) null comment '机房名称',
description varchar(128) null comment '机房描述'
)
comment '机房表';
create table ry_canvas_cfg create table ry_canvas_cfg
( (

Loading…
Cancel
Save