perf: 零部件查询接口性能优化

This commit is contained in:
2024-02-26 15:41:54 +08:00
parent ce556a34f2
commit f7159831fe
2 changed files with 10 additions and 4 deletions
@@ -38,6 +38,12 @@ public class LawsPartNameController {
@RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName,
@RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) {
if (pageNo == null) {
pageNo = 1;
}
if (pageSize == null) {
pageSize = 5;
}
TreePage<PartName> list = partNameService.queryTreeList(nodeName, pageNo, pageSize);
return Result.OK(list);
}
@@ -48,7 +48,7 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
// 不做筛选的时候查询加速
if (StrUtil.isBlank(nodeName)) {
// 构建树结构
topLevelNodes = this.buildTree(new HashSet<>(allNodes));
topLevelNodes = this.buildTree(allNodes);
} else {
// 做筛选的时候需要自己组树
queryWrapper.clear();
@@ -85,11 +85,11 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
return result;
}
private List<PartName> buildTree(Set<PartName> nodesSet) {
private List<PartName> buildTree(Collection<PartName> nodesCollection) {
List<PartName> topLevelNodes = new ArrayList<>();
Map<String, PartName> nodeMap = nodesSet.stream()
Map<String, PartName> nodeMap = nodesCollection.stream()
.collect(Collectors.toMap(PartName::getCode, Function.identity()));
for (PartName node : nodesSet) {
for (PartName node : nodesCollection) {
PartName parentNode = nodeMap.get(node.getParentCode());
if (parentNode != null) {
if (parentNode.getChildPartNameList() == null) {