feat: 零部件接口选中为空时返回空数组

This commit is contained in:
2024-01-22 15:30:26 +08:00
parent dc43cc9128
commit 57b84758ad
3 changed files with 65 additions and 10 deletions
@@ -37,11 +37,19 @@ public class LawsPartNameController {
@ApiOperation(value = "企业标准-零部件树", notes = "企业标准-零部件树")
@GetMapping("/")
public Result<TreePage<PartName>> queryENTreeList(
@RequestParam(name = "selectNodeNames", required = false, defaultValue = "") @ApiParam("选中的节点名称") String selectNodeNames,
@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) {
TreePage<PartName> list = partNameService.queryTreeList(selectNodeNames, nodeName, pageNo, pageSize);
TreePage<PartName> list = partNameService.queryTreeList(nodeName, pageNo, pageSize);
return Result.OK(list);
}
@AutoLog(value = "企业标准-零部件树选中回显")
@ApiOperation(value = "企业标准-零部件树选中回显", notes = "企业标准-零部件树选中回显")
@GetMapping("/echo")
public Result<TreePage<PartName>> queryEcho(@RequestParam(name = "selectNodeCodes", required = false, defaultValue = "")
@ApiParam("选中的节点名称") String selectNodeCodes) {
TreePage<PartName> list = partNameService.queryEcho(selectNodeCodes);
return Result.OK(list);
}
@@ -18,10 +18,18 @@ public interface PartNameService extends IService<PartName> {
/**
* 查询零部件树
*
* @param nodeName
* @param pageNo
* @param pageSize
* @return
* @param nodeName 节点名称
* @param pageNo 页码
* @param pageSize 页面大小
* @return 零部件树
*/
TreePage<PartName> queryTreeList(String selectedNodeNames, String nodeName, Integer pageNo, Integer pageSize);
TreePage<PartName> queryTreeList(String nodeName, Integer pageNo, Integer pageSize);
/**
* 零部件树选中回显
*
* @param selectNodeCodes 选中的节点code
* @return 零部件树
*/
TreePage<PartName> queryEcho(String selectNodeCodes);
}
@@ -36,11 +36,10 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
private PartNameMapper partNameMapper;
@Override
public TreePage<PartName> queryTreeList(String selectedNodeNames, String nodeName, Integer pageNo, Integer pageSize) {
public TreePage<PartName> queryTreeList(String nodeName, Integer pageNo, Integer pageSize) {
LambdaQueryWrapper<PartName> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue())
.like(StrUtil.isNotBlank(nodeName), PartName::getName, nodeName)
.in(PartName::getName, selectedNodeNames.split(","));
.like(StrUtil.isNotBlank(nodeName), PartName::getName, nodeName);
List<PartName> allNodes = partNameMapper.selectList(queryWrapper);
// 将所有节点转换为映射,以便快速查找
@@ -77,6 +76,46 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
return result;
}
@Override
public TreePage<PartName> queryEcho(String selectNodeCodes) {
int pageNo = 1;
int pageSize = 1000;
LambdaQueryWrapper<PartName> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue())
.in(PartName::getCode, selectNodeCodes.split(","));
List<PartName> allNodes = partNameMapper.selectList(queryWrapper);
// 将所有节点转换为映射,以便快速查找
Map<String, PartName> nodeMap = allNodes.stream()
.collect(Collectors.toMap(PartName::getId, Function.identity()));
// 构建树形结构
List<PartName> topLevelNodes = new ArrayList<>();
allNodes.forEach(node -> {
if (node.getParentId() == null) {
topLevelNodes.add(node);
} else {
PartName parentNode = nodeMap.get(node.getParentId());
if (parentNode != null) {
if (parentNode.getChildPartNameList() == null) {
parentNode.setChildPartNameList(new ArrayList<>());
}
parentNode.getChildPartNameList().add(node);
}
}
});
// 实现分页逻辑
int start = 0;
int end = Math.min(start + pageSize, topLevelNodes.size());
List<PartName> pageData = topLevelNodes.subList(start, end);
// 封装分页信息
TreePage<PartName> result = new TreePage<>();
result.setRecords(pageData);
return result;
}
}