fix(文档拆分): 合并问题修复、目录新增、目录查询重构
This commit is contained in:
-1
@@ -262,5 +262,4 @@ public class DocumentSplitController {
|
||||
public void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response) {
|
||||
documentSplitService.downloadImportTemplate(request, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+9
-7
@@ -357,7 +357,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
String ids = (String) parameter.get(IDS);
|
||||
List<String> idList = Arrays.asList(ids.split(","));
|
||||
// sql where条件拼接
|
||||
String selectCondition = "where del_flag = 0 and s.id in ('" + String.join(",", idList) + "')";
|
||||
String selectCondition = "where del_flag = 0 and s.id in ('" + String.join("','", idList) + "')";
|
||||
// 排序
|
||||
orderBy(new StringBuilder(selectCondition));
|
||||
// 查询数据
|
||||
@@ -365,10 +365,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
// 第一条数据
|
||||
Map<String, Object> firstData = listMap.get(0);
|
||||
listMap.remove(0);
|
||||
// 合并数据(合并每个key对应的value)
|
||||
String content = firstData.get(ITEM_CONTENT) + mergeData(listMap);
|
||||
// 合并数据(条文标题、条文内容)
|
||||
String title = firstData.get(ITEM_TITLE) + " " + mergeData(listMap, ITEM_TITLE);
|
||||
String content = firstData.get(ITEM_CONTENT) + mergeData(listMap, ITEM_CONTENT);
|
||||
String updateByAndUpdateTime = new UniversalImpl().getUpdateByAndUpdateTime();
|
||||
String updateSet = updateByAndUpdateTime + "," + ITEM_CONTENT + " = " + "'" + content + "'";
|
||||
String updateSet = updateByAndUpdateTime +
|
||||
"," + ITEM_TITLE + " = " + "' "+ title + "'" +
|
||||
"," + ITEM_CONTENT + " = " + "'" + content + "'";
|
||||
String updateCondition = "id = " + "'" + firstData.get(ID) + "'";
|
||||
// 修改数据
|
||||
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
|
||||
@@ -555,11 +558,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
}
|
||||
|
||||
|
||||
private String mergeData(List<Map<String, Object>> listMap) {
|
||||
private String mergeData(List<Map<String, Object>> listMap, String key) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
// 合并数据(合并每个key对应的value)
|
||||
for (Map<String, Object> map : listMap) {
|
||||
String content = (String) map.get(ITEM_CONTENT);
|
||||
String content = (String) map.get(key);
|
||||
stringBuilder.append(content);
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
|
||||
+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