fix(文档拆分): 合并问题修复、目录新增、目录查询重构
This commit is contained in:
-1
@@ -262,5 +262,4 @@ public class DocumentSplitController {
|
|||||||
public void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response) {
|
public void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response) {
|
||||||
documentSplitService.downloadImportTemplate(request, response);
|
documentSplitService.downloadImportTemplate(request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-7
@@ -357,7 +357,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
String ids = (String) parameter.get(IDS);
|
String ids = (String) parameter.get(IDS);
|
||||||
List<String> idList = Arrays.asList(ids.split(","));
|
List<String> idList = Arrays.asList(ids.split(","));
|
||||||
// sql where条件拼接
|
// 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));
|
orderBy(new StringBuilder(selectCondition));
|
||||||
// 查询数据
|
// 查询数据
|
||||||
@@ -365,10 +365,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
// 第一条数据
|
// 第一条数据
|
||||||
Map<String, Object> firstData = listMap.get(0);
|
Map<String, Object> firstData = listMap.get(0);
|
||||||
listMap.remove(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 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) + "'";
|
String updateCondition = "id = " + "'" + firstData.get(ID) + "'";
|
||||||
// 修改数据
|
// 修改数据
|
||||||
documentSplitMapper.editDocumentSplitDetail(updateSet, updateCondition);
|
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();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
// 合并数据(合并每个key对应的value)
|
|
||||||
for (Map<String, Object> map : listMap) {
|
for (Map<String, Object> map : listMap) {
|
||||||
String content = (String) map.get(ITEM_CONTENT);
|
String content = (String) map.get(key);
|
||||||
stringBuilder.append(content);
|
stringBuilder.append(content);
|
||||||
}
|
}
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
|
|||||||
+9
-13
@@ -3,9 +3,6 @@ package com.jero.modules.split.controller;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
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.entity.SarFileSplitMenuEO;
|
||||||
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
||||||
import com.jero.modules.split.service.IFileSplitItemsEOService;
|
import com.jero.modules.split.service.IFileSplitItemsEOService;
|
||||||
@@ -52,21 +49,20 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
|
|||||||
@GetMapping("/getSplitMenusByInfoId")
|
@GetMapping("/getSplitMenusByInfoId")
|
||||||
@RequiresPermissions("split:sarFileSplitItems:page")
|
@RequiresPermissions("split:sarFileSplitItems:page")
|
||||||
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
|
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
|
||||||
final String temporaryName = page.getName();
|
// page.setName(null);
|
||||||
page.setName(null);
|
|
||||||
page.setValidFlag("0");
|
page.setValidFlag("0");
|
||||||
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
|
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
|
||||||
page.setOrderBy("display_seq asc");
|
page.setOrderBy("display_seq asc");
|
||||||
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
|
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
|
||||||
//转树结构
|
//转树结构
|
||||||
List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
|
// List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
|
||||||
if (StringUtils.isBlank(temporaryName)){
|
// if (StringUtils.isBlank(temporaryName)){
|
||||||
menuEOS = convertToTree(getList);
|
// menuEOS = convertToTree(getList);
|
||||||
}
|
// }
|
||||||
if (StringUtils.isNotBlank(temporaryName)){
|
// if (StringUtils.isNotBlank(temporaryName)){
|
||||||
menuEOS = convertToTree(getList, temporaryName);
|
// menuEOS = convertToTree(getList, temporaryName);
|
||||||
}
|
// }
|
||||||
return Result.OK(menuEOS);
|
return Result.OK(getList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList, String name) {
|
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<>();
|
Map<String, Object> parameter = new HashMap<>();
|
||||||
if (StringUtils.isNotEmpty(sarFileSplitMenuEO.getName())) {
|
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("info_id", sarFileSplitMenuEO.getInfoId());
|
||||||
parameter.put("menu_id", sarFileSplitMenuEO.getId());
|
parameter.put("menu_id", sarFileSplitMenuEO.getId());
|
||||||
String itemId = UUID.randomUUID().toString().replace("-", "");
|
String itemId = UUID.randomUUID().toString().replace("-", "");
|
||||||
@@ -165,6 +165,13 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SarFileSplitMenuEO> queryByList(SarFileSplitMenuEOPage page) {
|
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);
|
List<SarFileSplitMenuEO> result = dao.queryByList(page);
|
||||||
|
|
||||||
// 处理数据是否可以上下移动标识
|
// 处理数据是否可以上下移动标识
|
||||||
@@ -185,10 +192,46 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
|||||||
sarFileSplitMenuEO.setMoveUpFlag(moveUpFlag);
|
sarFileSplitMenuEO.setMoveUpFlag(moveUpFlag);
|
||||||
sarFileSplitMenuEO.setMoveDownFlag(moveDownFlag);
|
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) {
|
public int queryByCount(SarFileSplitMenuEOPage page) {
|
||||||
return dao.queryByCount(page);
|
return dao.queryByCount(page);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user