|
@@ -12,7 +12,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class FzxzServiceImpl implements IFzxzService {
|
|
@@ -48,26 +50,53 @@ public class FzxzServiceImpl implements IFzxzService {
|
|
|
if (StringUtils.isEmpty(fzbs)) {
|
|
|
return RequestResult.error("参数未传递!", null);
|
|
|
}
|
|
|
- List<FzxzDldmTreeDTO> treeNode = new ArrayList<FzxzDldmTreeDTO>();
|
|
|
+
|
|
|
List<FzxzDldmTreeDTO> trees = fzxzMapper.GetDldmTree(fzbs);
|
|
|
if (trees == null || trees.size() == 0) {
|
|
|
return RequestResult.success("查询成功!", new ArrayList<>());
|
|
|
}
|
|
|
- for (FzxzDldmTreeDTO dltbTree : trees) {
|
|
|
- dltbTree.setChildren(new ArrayList<>());
|
|
|
- if (StringUtils.isEmpty(dltbTree.getParent())) {
|
|
|
- dltbTree.setIsparent(true);
|
|
|
- treeNode.add(dltbTree);
|
|
|
+ // 生成树结构
|
|
|
+ Map<String, FzxzDldmTreeDTO> nodeMap = new HashMap<>();
|
|
|
+ List<FzxzDldmTreeDTO> treeNode = new ArrayList<>();
|
|
|
+
|
|
|
+ // 将所有节点放入map中
|
|
|
+ for (FzxzDldmTreeDTO node : trees) {
|
|
|
+ nodeMap.put(node.getValue(), node);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建树结构
|
|
|
+ for (FzxzDldmTreeDTO node : trees) {
|
|
|
+ if (StringUtils.isEmpty(node.getParent())) {
|
|
|
+ // 如果是根节点
|
|
|
+ node.setIsparent(true);
|
|
|
+ treeNode.add(node);
|
|
|
} else {
|
|
|
- for (FzxzDldmTreeDTO cur : treeNode) {
|
|
|
- if (cur.getValue().equals(dltbTree.getParent())) {
|
|
|
- dltbTree.setIsparent(false);
|
|
|
- cur.getChildren().add(dltbTree);
|
|
|
- break;
|
|
|
- }
|
|
|
+ // 否则找到其父节点,并将其添加到父节点的children列表中
|
|
|
+ node.setIsparent(false);
|
|
|
+ FzxzDldmTreeDTO parent = nodeMap.get(node.getParent());
|
|
|
+ if (parent != null) {
|
|
|
+ parent.getChildren().add(node);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ // List<FzxzDldmTreeDTO> rootNodes = new ArrayList<>();
|
|
|
+ // for (FzxzDldmTreeDTO dltbTree : trees) {
|
|
|
+ // dltbTree.setChildren(new ArrayList<>());
|
|
|
+ // if (StringUtils.isEmpty(dltbTree.getParent())) {
|
|
|
+ // dltbTree.setIsparent(true);
|
|
|
+ // treeNode.add(dltbTree);
|
|
|
+ // } else {
|
|
|
+ // for (FzxzDldmTreeDTO cur : treeNode) {
|
|
|
+ // if (cur.getValue().equals(dltbTree.getParent())) {
|
|
|
+ // dltbTree.setIsparent(false);
|
|
|
+ // cur.getChildren().add(dltbTree);
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
return RequestResult.success("查询成功!", treeNode);
|
|
|
}
|
|
|
|