Browse Source

树形结构优化

dev
v-lijf43 2 months ago
parent
commit
bc587ee1c2
  1. 16
      mh-common/src/main/java/com/mh/common/core/domain/SpaceTreeSelect.java
  2. 8
      mh-system/src/main/java/com/mh/system/service/space/impl/HouseInfoServiceImpl.java

16
mh-common/src/main/java/com/mh/common/core/domain/SpaceTreeSelect.java

@ -26,6 +26,11 @@ public class SpaceTreeSelect implements Serializable
/** 节点名称 */
private String label;
/**
* 节点类型0区域 1楼栋 2楼层 3房屋
*/
private int nodeType;
/** 节点禁用 */
private boolean disabled = false;
@ -42,11 +47,20 @@ public class SpaceTreeSelect implements Serializable
}
public SpaceTreeSelect(String id, String houseName, boolean b, String floorId) {
public SpaceTreeSelect(String id, String houseName, boolean b, String floorId, int nodeType) {
this.id = id;
this.label = houseName;
this.disabled = b;
this.parentId = floorId;
this.nodeType = nodeType;
}
public int getNodeType() {
return nodeType;
}
public void setNodeType(int nodeType) {
this.nodeType = nodeType;
}
public String getId() {

8
mh-system/src/main/java/com/mh/system/service/space/impl/HouseInfoServiceImpl.java

@ -135,13 +135,13 @@ public class HouseInfoServiceImpl implements IHouseInfoService {
List<HouseInfo> houseInfos) {
// 房间 -> 楼层映射
Map<String, List<SpaceTreeSelect>> floorMap = houseInfos.stream()
.map(r -> new SpaceTreeSelect(r.getId(), r.getHouseName(), false, r.getFloorId()))
.map(r -> new SpaceTreeSelect(r.getId(), r.getHouseName(), false, r.getFloorId(), 3))
.collect(Collectors.groupingBy(SpaceTreeSelect::getParentId));
// 楼层 -> 楼栋映射
Map<String, List<SpaceTreeSelect>> buildingMap = floorInfos.stream()
.map(f -> {
SpaceTreeSelect node = new SpaceTreeSelect(f.getId(), f.getFloorName(), false, f.getBuildingId());
SpaceTreeSelect node = new SpaceTreeSelect(f.getId(), f.getFloorName(), false, f.getBuildingId(), 2);
node.setChildren(floorMap.getOrDefault(f.getId(), Collections.emptyList()));
return node;
})
@ -150,7 +150,7 @@ public class HouseInfoServiceImpl implements IHouseInfoService {
// 楼栋 -> 区域映射
Map<String, List<SpaceTreeSelect>> areaMap = buildingInfos.stream()
.map(b -> {
SpaceTreeSelect node = new SpaceTreeSelect(b.getId(), b.getBuildingName(), false, b.getAreaId());
SpaceTreeSelect node = new SpaceTreeSelect(b.getId(), b.getBuildingName(), false, b.getAreaId(), 1);
node.setChildren(buildingMap.getOrDefault(b.getId(), Collections.emptyList()));
return node;
})
@ -159,7 +159,7 @@ public class HouseInfoServiceImpl implements IHouseInfoService {
// 构建区域树
return areaInfos.stream()
.map(a -> {
SpaceTreeSelect node = new SpaceTreeSelect(a.getId(), a.getAreaName(), false, null);
SpaceTreeSelect node = new SpaceTreeSelect(a.getId(), a.getAreaName(), false, null, 0);
node.setChildren(areaMap.getOrDefault(a.getId(), Collections.emptyList()));
return node;
})

Loading…
Cancel
Save