fix(文档拆分): 合并问题修复、目录新增、目录查询重构
This commit is contained in:
+9
-13
@@ -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) {
|
||||
|
||||
+47
-4
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user