|
@@ -285,6 +285,15 @@ public class BaseBuildingServiceImpl extends ServiceImpl<BaseBuildingMapper, Bas
|
|
return new Result(ResultCode.SUCCESS,resultMap);
|
|
return new Result(ResultCode.SUCCESS,resultMap);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public Result listTreeDuckBuilding(Map<String, String> map) {
|
|
|
|
+ String farmId = map.get("farmId");
|
|
|
|
+ List<BaseBuildingVo> baseBuildings = baseBuildingMapper.listTreeDuckBuilding(farmId);
|
|
|
|
+ List<TreeBaseBuildingVo> treeBaseBuildings = parseBizBaseDuckArea(baseBuildings);
|
|
|
|
+ Collections.sort(treeBaseBuildings);
|
|
|
|
+ return new Result(ResultCode.SUCCESS,treeBaseBuildings);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
// @Override
|
|
// @Override
|
|
// public Result list(String farmCode, String buildName, String stageCode) {
|
|
// public Result list(String farmCode, String buildName, String stageCode) {
|
|
@@ -338,4 +347,40 @@ public class BaseBuildingServiceImpl extends ServiceImpl<BaseBuildingMapper, Bas
|
|
});
|
|
});
|
|
return roots;
|
|
return roots;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private List<TreeBaseBuildingVo> parseBizBaseDuckArea(List<BaseBuildingVo> bizBaseAreas){
|
|
|
|
+ //构建需要展示的树形节点结构
|
|
|
|
+ Map<String, TreeBaseBuildingVo> nodeMap = bizBaseAreas.stream().map(baseBuilding -> {
|
|
|
|
+ TreeBaseBuildingVo baseVo = new TreeBaseBuildingVo();
|
|
|
|
+ baseVo.setId(baseBuilding.getId()+"");
|
|
|
|
+ baseVo.setFarmCode(baseBuilding.getFarmId());
|
|
|
|
+ baseVo.setParentId(baseBuilding.getParentId());
|
|
|
|
+ baseVo.setSort(baseBuilding.getSort());
|
|
|
|
+ baseVo.setChiNum(baseBuilding.getChiNum());
|
|
|
|
+ baseVo.setStageCode(baseBuilding.getStageCode());
|
|
|
|
+ baseVo.setBuildName(baseBuilding.getBuildName());
|
|
|
|
+ baseVo.setFType(baseBuilding.getFType());
|
|
|
|
+ baseVo.setChildNode(new ArrayList<>());
|
|
|
|
+ return baseVo;
|
|
|
|
+ }).collect(Collectors.toMap(TreeBaseBuildingVo::getId, b -> b,(k1, k2)->k1));
|
|
|
|
+ //创建数组存父亲节点
|
|
|
|
+ ArrayList<TreeBaseBuildingVo> roots = new ArrayList<>();
|
|
|
|
+ //构建树形
|
|
|
|
+ nodeMap.values().forEach(item->{
|
|
|
|
+ String parentCode = item.getParentId()+"";
|
|
|
|
+ if (nodeMap.get(parentCode) == null){
|
|
|
|
+ //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
|
|
+ roots.add(item);
|
|
|
|
+ }else {
|
|
|
|
+ //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
|
|
+ nodeMap.get(parentCode).getChildNode().add(item);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ roots.forEach(parent -> {
|
|
|
|
+ List<TreeBaseBuildingVo> childNodes = parent.getChildNode();
|
|
|
|
+ childNodes.sort(Comparator.comparingInt(o -> Integer.parseInt(o.getId())));
|
|
|
|
+ });
|
|
|
|
+ return roots;
|
|
|
|
+ }
|
|
}
|
|
}
|