fix(文档拆分): 合并问题修复、目录新增、目录查询重构

This commit is contained in:
yjz
2023-10-18 14:22:43 +08:00
parent e49e44c29b
commit 558b424574
4 changed files with 65 additions and 25 deletions
@@ -3,9 +3,6 @@ package com.jero.modules.split.controller;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel;
import com.jero.modules.laws.enterprise.util.FindsTreeNodeChildrenUtil;
import com.jero.modules.laws.standard.entity.LawsTreeNode;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.IFileSplitItemsEOService;
@@ -52,21 +49,20 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
@GetMapping("/getSplitMenusByInfoId")
@RequiresPermissions("split:sarFileSplitItems:page")
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
final String temporaryName = page.getName();
page.setName(null);
// page.setName(null);
page.setValidFlag("0");
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
page.setOrderBy("display_seq asc");
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
//转树结构
List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
if (StringUtils.isBlank(temporaryName)){
menuEOS = convertToTree(getList);
}
if (StringUtils.isNotBlank(temporaryName)){
menuEOS = convertToTree(getList, temporaryName);
}
return Result.OK(menuEOS);
// List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
// if (StringUtils.isBlank(temporaryName)){
// menuEOS = convertToTree(getList);
// }
// if (StringUtils.isNotBlank(temporaryName)){
// menuEOS = convertToTree(getList, temporaryName);
// }
return Result.OK(getList);
}
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList, String name) {
@@ -60,9 +60,9 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
// 新增对应条款
Map<String, Object> parameter = new HashMap<>();
if (StringUtils.isNotEmpty(sarFileSplitMenuEO.getName())) {
parameter.put("items_num", sarFileSplitMenuEO.getName());
parameter.put("item_num", sarFileSplitMenuEO.getName());
}
parameter.put("items_name", sarFileSplitMenuEO.getItemName());
parameter.put("item_title", sarFileSplitMenuEO.getItemName());
parameter.put("info_id", sarFileSplitMenuEO.getInfoId());
parameter.put("menu_id", sarFileSplitMenuEO.getId());
String itemId = UUID.randomUUID().toString().replace("-", "");
@@ -165,6 +165,13 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
@Override
public List<SarFileSplitMenuEO> queryByList(SarFileSplitMenuEOPage page) {
String itemName;
if (StringUtils.isNotBlank(page.getName())){
itemName = page.getName();
page.setName(null);
} else {
itemName = "";
}
List<SarFileSplitMenuEO> result = dao.queryByList(page);
// 处理数据是否可以上下移动标识
@@ -185,10 +192,46 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
sarFileSplitMenuEO.setMoveUpFlag(moveUpFlag);
sarFileSplitMenuEO.setMoveDownFlag(moveDownFlag);
}
return result;
// 关键字查询
if (StringUtils.isNotBlank(itemName) && !result.isEmpty()){
List<SarFileSplitMenuEO> trees = result.stream()
.filter(v -> (StringUtils.isNotBlank(v.getItemName())
&& v.getItemName().contains(itemName)) || v.getName().contains(itemName))
.collect(Collectors.toList());
// 递归查找所有符合项的父节点
List<SarFileSplitMenuEO> newTrees = new ArrayList<>(trees);
queryTreeFather(result, trees, newTrees);
// 过滤重复项
result = newTrees.stream().distinct().collect(Collectors.toList());
}
// 构建树结构
List<SarFileSplitMenuEO> finalResult = result;
return result.stream().filter(v -> StringUtils.isBlank(v.getPId()))
.peek(v -> v.setChildren(createChildList(v, finalResult))).collect(Collectors.toList());
}
@Override
private void queryTreeFather(List<SarFileSplitMenuEO> treeList, List<SarFileSplitMenuEO> trees, List<SarFileSplitMenuEO> newTrees) {
for (SarFileSplitMenuEO tree : trees) {
// 父节点
List<SarFileSplitMenuEO> treeFather = treeList.stream().filter(v -> v.getId().equals(tree.getPId())).collect(Collectors.toList());
if (!treeFather.isEmpty()){
newTrees.addAll(treeFather);
queryTreeFather(treeList, treeFather, newTrees);
}else {
return;
}
}
}
private List<SarFileSplitMenuEO> createChildList(SarFileSplitMenuEO testTree, List<SarFileSplitMenuEO> treeList) {
return treeList.stream().filter(v -> testTree.getId().equals(v.getPId()))
.peek(v -> v.setChildren(createChildList(v, treeList)))
.collect(Collectors.toList());
}
@Override
public int queryByCount(SarFileSplitMenuEOPage page) {
return dao.queryByCount(page);
}